@bnsights/bbsf-controls 1.0.68 → 1.0.70

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 (32) hide show
  1. package/README.md +12 -0
  2. package/bnsights-bbsf-controls-1.0.70.tgz +0 -0
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +355 -31
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/lib/Shared/Models/bread-crumb.js +8 -0
  7. package/esm2015/lib/Shared/Models/control-filter-Item.js +6 -0
  8. package/esm2015/lib/Shared/Models/filter-options.js +9 -0
  9. package/esm2015/lib/Shared/Models/page-header-options.js +78 -0
  10. package/esm2015/lib/Shared/components/app-base-component.js +168 -0
  11. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +3 -4
  12. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +2 -2
  13. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +2 -2
  14. package/esm2015/lib/controls/bbsf-controls.module.js +6 -3
  15. package/esm2015/lib/controls/page-header-component/page-header-component.component.js +32 -0
  16. package/esm2015/public-api.js +7 -1
  17. package/fesm2015/bnsights-bbsf-controls.js +313 -23
  18. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  19. package/lib/Shared/Models/bread-crumb.d.ts +6 -0
  20. package/lib/Shared/Models/control-filter-Item.d.ts +6 -0
  21. package/lib/Shared/Models/filter-options.d.ts +7 -0
  22. package/lib/Shared/Models/page-header-options.d.ts +71 -0
  23. package/lib/Shared/components/app-base-component.d.ts +47 -0
  24. package/lib/controls/page-header-component/page-header-component.component.d.ts +17 -0
  25. package/package.json +4 -3
  26. package/public-api.d.ts +6 -0
  27. package/src/lib/assets/Style-rtl.scss +51 -54
  28. package/src/lib/assets/Style.scss +4 -0
  29. package/src/lib/assets/images/Bg-pattern.png +0 -0
  30. package/src/lib/assets/sass/base.scss +5 -1
  31. package/src/lib/assets/sass/datetime-picker.scss +123 -0
  32. package/bnsights-bbsf-controls-1.0.68.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('@ng-bootstrap/ng-bootstrap'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), 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', '@ng-bootstrap/ng-bootstrap', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@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.ngBootstrap, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, 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, ngBootstrap, ngxDropzone, angularCropperjs, ngxImageCropper, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, angularNgAutocomplete, 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('@ng-bootstrap/ng-bootstrap'), require('ngx-dropzone'), require('angular-cropperjs'), require('ngx-image-cropper'), 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'), require('@angular/platform-browser'), require('file-saver')) :
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', '@ng-bootstrap/ng-bootstrap', 'ngx-dropzone', 'angular-cropperjs', 'ngx-image-cropper', '@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', '@angular/platform-browser', 'file-saver'], 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.ngBootstrap, global.ngxDropzone, global.angularCropperjs, global.ngxImageCropper, 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, global.ng.platformBrowser, global.saveAs));
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, ngBootstrap, ngxDropzone, angularCropperjs, ngxImageCropper, core$1, http$1, ngxTypeahead, operators, ngxTagsInput, ngSelect, ngxInfiniteScroll, core, googleMapsAutocomplete, enGbLocale, ArLocale, typeahead, slideToggle, angularEditor, angularNgAutocomplete, ngInlineSvg, Swal, ngxSweetalert2, platformBrowser, saveAs) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -32,6 +32,7 @@
32
32
  var enGbLocale__default = /*#__PURE__*/_interopDefaultLegacy(enGbLocale);
33
33
  var ArLocale__default = /*#__PURE__*/_interopDefaultLegacy(ArLocale);
34
34
  var Swal__default = /*#__PURE__*/_interopDefaultLegacy(Swal);
35
+ var saveAs__namespace = /*#__PURE__*/_interopNamespace(saveAs);
35
36
 
36
37
  var ErrorMassageValidation = /** @class */ (function () {
37
38
  // tslint:disable-next-line: deprecation
@@ -903,11 +904,10 @@
903
904
  DateInputComponent.decorators = [
904
905
  { type: i0.Component, args: [{
905
906
  selector: 'BBSF-DateTimePicker',
906
- template: "<div class=\"b-control b-date-picker\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 {{options.LabelExtraClasses}}\" [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 <div class=\"input-group\">\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\"\r\n [class.is-invalid]=\"DatePickerFormControl.invalid && DatePickerFormControl.touched\"\r\n [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\" [selectMode]=\"getSelectMode(options.SelectMode)\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\"\r\n [startView]=\"getStartView(options.StartView)\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n \r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\" d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\" d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\" d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\" fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\" d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\" fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n <!--<span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(Dateinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>-->\r\n </div>\r\n </div>\r\n\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(DatePickerFormControl.invalid && DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <div class=\"control-desc\"*ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</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\r\n\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
907
+ template: "\r\n<div class=\"form-group bbsf-control bbsf-datetime-picker\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\"\r\n [class.is-invalid]=\"DatePickerFormControl.invalid && DatePickerFormControl.touched\"\r\n [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\" [selectMode]=\"getSelectMode(options.SelectMode)\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\"\r\n [startView]=\"getStartView(options.StartView)\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n <!--icon-->\r\n <span class=\"copy-clipboard\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0 0 48 48\">\r\n <path id=\"Path_6737\" data-name=\"Path 6737\" d=\"M11.583,1a1,1,0,0,0-2,0V5.7h2Z\" style=\"\"></path>\r\n <path id=\"Path_6738\" data-name=\"Path 6738\" d=\"M38.417,1a1,1,0,0,0-2,0V5.7h2Z\"></path>\r\n <path id=\"Path_6739\" data-name=\"Path 6739\" d=\"M0,43.146C0,45.822,1.826,48,4.07,48H43.928C46.174,48,48,45.822,48,43.146V17.121H0Z\" fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\" d=\"M43.929,5.7H38.417v5.512a1,1,0,1,1-2,0V5.7H11.583v5.512a1,1,0,1,1-2,0V5.7H4.07C1.826,5.7,0,7.877,0,10.555v4.566H48V10.555C48,7.877,46.174,5.7,43.929,5.7Z\" fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DatePickerFormControl.invalid && DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>\r\n",
907
908
  providers: [
908
909
  { provide: ngPickDatetime.OwlDateTimeIntl, useClass: DefaultIntl }
909
- ],
910
- styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
910
+ ]
911
911
  },] }
912
912
  ];
913
913
  DateInputComponent.ctorParameters = function () { return [
@@ -1761,7 +1761,7 @@
1761
1761
  MultiLingualTextBoxComponent.decorators = [
1762
1762
  { type: i0.Component, args: [{
1763
1763
  selector: 'BBSF-MultiLingualTextBox',
1764
- template: "\r\n<div [formGroup]=\"group\">\r\n <div class=\"form-group bbsf-control bbsf-multilang-textbox\" [formGroup]=\"MultiLanguagegroup\">\r\n <div class=\"row\">\r\n <!--English textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowEnglishTextBox\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.English\" [(ngModel)]=\"options.Value.English\"\r\n #userinputEnglish>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowArabicTextBox\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\" dir=\"rtl\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.Arabic\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\"(click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n"
1764
+ template: "\r\n<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control bbsf-multilang-textbox\" [formGroup]=\"MultiLanguagegroup\">\r\n <div class=\"row\">\r\n <!--English textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowEnglishTextBox\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish)\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPositionEN==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\" dir=\"ltr\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"English\"\r\n [hidden]=\"options.IsHideEnglishFields\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"EnglishFormControl.invalid && EnglishFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.English\" [(ngModel)]=\"options.Value.English\"\r\n #userinputEnglish>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowArabicTextBox\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control\" dir=\"rtl\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicFormControl.invalid && ArabicFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n autocomplete=\"{{options.AutoComplete}}\"\r\n id=\"{{options.Name}}.Arabic\"\r\n (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\"(click)=\"copyInputMessage(userinputArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n"
1765
1765
  },] }
1766
1766
  ];
1767
1767
  MultiLingualTextBoxComponent.ctorParameters = function () { return [
@@ -2384,7 +2384,7 @@
2384
2384
  MultiLingualTextAreaComponent.decorators = [
2385
2385
  { type: i0.Component, args: [{
2386
2386
  selector: 'BBSF-MultiLingualTextArea',
2387
- template: "<div [formGroup]=\"group\">\r\n <div class=\"form-group bbsf-control bbsf-multilang-textarea\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div class=\"row\">\r\n <!--English textarea-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowEngishTextArea\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}} <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInEnglish\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\" [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.English\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowArabicTextArea\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control bnsights-control\" dir=\"rtl\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (change)=\"trimControlValue('Ar')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.Arabic\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"
2387
+ template: "<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control bbsf-multilang-textarea\" [formGroup]=\"MultiLanguageTextAreagroup\">\r\n <div class=\"row\">\r\n <!--English textarea-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowEngishTextArea\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}} <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInEnglish\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control\" dir=\"ltr\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onEnglishFocus(true)\" (focusout)=\"onEnglishFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"English\" [hidden]=\"options.IsHideEnglishFields\"\r\n [class.is-invalid]=\"EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched\"\r\n placeholder=\"{{options.EnglishPlaceholder}}\" (change)=\"trimControlValue('En')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.English\"\r\n (keydown)=\"EnglishWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaEnglish>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaEnglish)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showEnglishCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': englishCharsLimitMsgClass === 'warning', 'badge-light-danger' : englishCharsLimitMsgClass === 'danger' }\">\r\n {{englishMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishTextAreaFormControl.invalid && EnglishTextAreaFormControl.touched)\">\r\n {{getErrorValidation(EnglishTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n <!--Arabic textbox-->\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\" *ngIf=\"ShowArabicTextArea\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic\" class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--input-->\r\n <textarea class=\"form-control bnsights-control\" dir=\"rtl\" rows=\"{{options.Rows}}\" cols=\"{{options.Cols}}\"\r\n (focus)=\"onArabicFocus(true)\" (focusout)=\"onArabicFocus(false)\"\r\n [hidden]=\"options.IsHideArabicFields\"\r\n aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"Arabic\" rows=\"{{options.Rows}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n [class.is-invalid]=\"ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched\"\r\n placeholder=\"{{options.ArabicPlaceholder}}\" (change)=\"trimControlValue('Ar')\"\r\n (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value.Arabic\"\r\n (keydown)=\"ArabicWordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinputTextAreaArabic>\r\n </textarea>\r\n <!--CopyToClipboard-->\r\n <div class=\"copy-clipboard\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinputTextAreaArabic)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowArabicWordCount\">{{ArabicWordCount}}/{{options.MaxWordCount}} Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showArabicCharsLimitMsg\" [ngClass]=\"{'badge-light-warning': arabicCharsLimitMsgClass === 'warning', 'badge-light-danger' : arabicCharsLimitMsgClass === 'danger' }\">\r\n {{arabicMaxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicTextAreaFormControl.invalid && ArabicTextAreaFormControl.touched)\">\r\n {{getErrorValidation(ArabicTextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n"
2388
2388
  },] }
2389
2389
  ];
2390
2390
  MultiLingualTextAreaComponent.ctorParameters = function () { return [
@@ -7929,6 +7929,35 @@
7929
7929
  OnChange: [{ type: i0.Output }]
7930
7930
  };
7931
7931
 
7932
+ var PageHeaderComponentComponent = /** @class */ (function () {
7933
+ function PageHeaderComponentComponent(router, utilityService) {
7934
+ this.router = router;
7935
+ this.utilityService = utilityService;
7936
+ this.DataTypeEnum = exports.DataType;
7937
+ }
7938
+ PageHeaderComponentComponent.prototype.translate = function (key) {
7939
+ return this.utilityService.getResourceValue(key);
7940
+ };
7941
+ PageHeaderComponentComponent.prototype.ngOnInit = function () {
7942
+ this.EN = this.utilityService.isCurrentLanguageEnglish();
7943
+ };
7944
+ return PageHeaderComponentComponent;
7945
+ }());
7946
+ PageHeaderComponentComponent.decorators = [
7947
+ { type: i0.Component, args: [{
7948
+ selector: 'bbsf-page-header-component',
7949
+ template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\"/>\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.Listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.TitleKey||options.TitleValue\">{{options.TitleValue == null ? translate(options.TitleKey) : options.TitleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.Listing\">\r\n {{translate(options.SubTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.BreadCrumb.Active\">\r\n <ng-container *ngFor=\"let item of options.BreadCrumb.BreadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.DropDownActions.Active\">\r\n <button [routerLink]=\"item.RouterLink\" (click)='item.Function?item.Function():\"\"' class=\"btn btn-light btn-sm subheader-btn export-btn\" *ngFor=\"let item of options.DropDownActions.DropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.SVG\"></span>\r\n {{item.Text}}\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.SearchTextBox.Active\" [options]=\"options.SearchTextBox.TextSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.GridView.Active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.ExportButton.Active\" (click)=\"options.ExportButton.Function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.ExportButton.ButtonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.FiltersButton.Active\" ngbDropdown container=\"body\" [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" \r\n #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.FiltersButton.Function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.FiltersButton.ButtonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [(hidden)]=\"options.Filters.ShowLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.Filters.ControlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\"\r\n (click)=\"options.Filters.RestFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\"\r\n (click)=\"options.Filters.ApplyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.AddButton.Active\" (click)=\"options.AddButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.AddButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.EditButton.Active\" (click)=\"options.EditButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.EditButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.DeleteButton.Active\" (click)=\"options.DeleteButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.DeleteButton.ButtonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--End toolbar-->\r\n"
7950
+ },] }
7951
+ ];
7952
+ PageHeaderComponentComponent.ctorParameters = function () { return [
7953
+ { type: router.Router },
7954
+ { type: bbsfUtilities.UtilityService }
7955
+ ]; };
7956
+ PageHeaderComponentComponent.propDecorators = {
7957
+ group: [{ type: i0.Input }],
7958
+ options: [{ type: i0.Input }]
7959
+ };
7960
+
7932
7961
  var options;
7933
7962
  exports.AppInjector = void 0;
7934
7963
  angular.FullCalendarModule.registerPlugins([
@@ -7981,7 +8010,8 @@
7981
8010
  BBSFDateTimePipe,
7982
8011
  BBSFDatePipe,
7983
8012
  BTagsInputComponent,
7984
- RecaptchaComponent
8013
+ RecaptchaComponent,
8014
+ PageHeaderComponentComponent
7985
8015
  ],
7986
8016
  imports: [
7987
8017
  common.CommonModule,
@@ -8081,7 +8111,8 @@
8081
8111
  RepeaterTableComponent,
8082
8112
  BBSFDateTimePipe,
8083
8113
  BBSFDatePipe,
8084
- RecaptchaComponent
8114
+ RecaptchaComponent,
8115
+ PageHeaderComponentComponent
8085
8116
  ]
8086
8117
  },] }
8087
8118
  ];
@@ -8090,6 +8121,188 @@
8090
8121
  { type: core$1.TranslateService }
8091
8122
  ]; };
8092
8123
 
8124
+ var CustomValidation = /** @class */ (function () {
8125
+ function CustomValidation() {
8126
+ }
8127
+ return CustomValidation;
8128
+ }());
8129
+ var CustomValidator = /** @class */ (function () {
8130
+ function CustomValidator() {
8131
+ }
8132
+ // Number only validation
8133
+ CustomValidator.numeric = function (control) {
8134
+ var val = control.value;
8135
+ if (val === null || val === '')
8136
+ return null;
8137
+ if (!val.toString().match(/^[0-9]+(\.?[0-9]+)?$/))
8138
+ return { 'invalidNumber': true };
8139
+ return null;
8140
+ };
8141
+ return CustomValidator;
8142
+ }());
8143
+
8144
+ var AppBaseComponent = /** @class */ (function () {
8145
+ function AppBaseComponent(injector) {
8146
+ var _this = this;
8147
+ this.pageTitle = "";
8148
+ this.PageCount = 12;
8149
+ this.onSuccessAddHandler = function (success) {
8150
+ _this.utilityService.notifySuccessMessage(_this.l("RecordAdded"), null, null, false);
8151
+ };
8152
+ this.onSuccessEditHandler = function (success) {
8153
+ _this.utilityService.notifySuccessMessage(_this.l("RecordUpdated"), null, null, false);
8154
+ };
8155
+ this.onSuccessDeleteHandler = function (success) {
8156
+ _this.utilityService.notifySuccessMessage(_this.l("RecordDeleted"), null, null, false);
8157
+ };
8158
+ this.utilityService = injector.get(bbsfUtilities.UtilityService);
8159
+ this.controlUtility = injector.get(ControlUtility);
8160
+ this.configurationService = injector.get(bbsfUtilities.ConfigurationService);
8161
+ this.environmentService = injector.get(bbsfUtilities.EnvironmentService);
8162
+ this.modalService = injector.get(ngBootstrap.NgbModal);
8163
+ this.titleService = injector.get(platformBrowser.Title);
8164
+ this.auhService = injector.get(bbsfUtilities.AuthService);
8165
+ this.exportLabel = this.utilityService.getResourceValue("Export");
8166
+ this.filtersLabel = this.utilityService.getResourceValue("Filters");
8167
+ this.addLabel = this.utilityService.getResourceValue("Add");
8168
+ this.userName = this.auhService.name();
8169
+ }
8170
+ AppBaseComponent.prototype.updatePageTitle = function (title) {
8171
+ this.titleService.setTitle(this.calculatePageTitle(title));
8172
+ };
8173
+ AppBaseComponent.prototype.l = function (key) {
8174
+ return this.utilityService.getResourceValue(key);
8175
+ };
8176
+ AppBaseComponent.prototype.getConfigurationValue = function (key) {
8177
+ return this.configurationService.getConfigurationValue(key);
8178
+ };
8179
+ AppBaseComponent.prototype.getLanguageModeValue = function () {
8180
+ return this.configurationService.getConfigurationValue("LanguageMode");
8181
+ };
8182
+ AppBaseComponent.prototype.stopBlockUI = function () {
8183
+ this.utilityService.stopBlockUI();
8184
+ };
8185
+ AppBaseComponent.prototype.startBlockUI = function () {
8186
+ this.utilityService.startBlockUI();
8187
+ };
8188
+ AppBaseComponent.prototype.openModal = function (modal, size) {
8189
+ if (size)
8190
+ this.modalService.open(modal, { size: size, backdrop: 'static' });
8191
+ else
8192
+ this.modalService.open(modal, { backdrop: 'static' });
8193
+ };
8194
+ AppBaseComponent.prototype.download = function (fileDTO, fileName) {
8195
+ /*let blob = new Blob([file]);*/
8196
+ var file = new Blob([fileDTO], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' });
8197
+ saveAs__namespace(file, fileName);
8198
+ };
8199
+ AppBaseComponent.prototype.base64toBlob = function (base64Data, contentType) {
8200
+ contentType = contentType || '';
8201
+ var sliceSize = 1024;
8202
+ var byteCharacters = atob(base64Data);
8203
+ var bytesLength = byteCharacters.length;
8204
+ var slicesCount = Math.ceil(bytesLength / sliceSize);
8205
+ var byteArrays = new Array(slicesCount);
8206
+ for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
8207
+ var begin = sliceIndex * sliceSize;
8208
+ var end = Math.min(begin + sliceSize, bytesLength);
8209
+ var bytes = new Array(end - begin);
8210
+ for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
8211
+ bytes[i] = byteCharacters[offset].charCodeAt(0);
8212
+ }
8213
+ byteArrays[sliceIndex] = new Uint8Array(bytes);
8214
+ }
8215
+ return new Blob(byteArrays, { type: contentType });
8216
+ };
8217
+ AppBaseComponent.prototype.calculatePageTitle = function (title) {
8218
+ return title ? title.substring(0, 100) + (" | " + this.l("ApplicationName")) : "" + this.l("ApplicationName");
8219
+ };
8220
+ AppBaseComponent.prototype.getPagingFiltersValues = function (form, filters) {
8221
+ var model = new Object();
8222
+ for (var i = 0; i < filters.length; i++) {
8223
+ var filterItem = filters[i];
8224
+ if (form.controls[filterItem.FormControlName].value == undefined)
8225
+ continue;
8226
+ model[filterItem.ActionParameterName] = form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value;
8227
+ // params = params.append(filterItem.ActionParameterName, form.controls[filterItem.FormControlName].value == undefined ? '' : form.controls[filterItem.FormControlName].value);
8228
+ }
8229
+ return model;
8230
+ };
8231
+ AppBaseComponent.prototype.removeControl = function (controlName, form) {
8232
+ form.removeControl(controlName);
8233
+ };
8234
+ AppBaseComponent.prototype.copyToClipboard = function (val) {
8235
+ var selBox = document.createElement('textarea');
8236
+ selBox.style.position = 'fixed';
8237
+ selBox.style.left = '0';
8238
+ selBox.style.top = '0';
8239
+ selBox.style.opacity = '0';
8240
+ selBox.value = val;
8241
+ document.body.appendChild(selBox);
8242
+ selBox.focus();
8243
+ selBox.select();
8244
+ document.execCommand('copy');
8245
+ document.body.removeChild(selBox);
8246
+ this.utilityService.notifySuccessMessage(this.l("CopiedSuccessfully"));
8247
+ };
8248
+ AppBaseComponent.prototype.addRequiredRule = function (control, controlOptions) {
8249
+ this.controlUtility.addRequiredToControl(control, controlOptions);
8250
+ };
8251
+ AppBaseComponent.prototype.removeRequiredRule = function (control, controlOptions) {
8252
+ this.controlUtility.removeRequiredFromControl(control, controlOptions);
8253
+ };
8254
+ AppBaseComponent.prototype.validateDates = function (form, fromDateControl, toDateControl, validationMessageKey) {
8255
+ var validator = new CustomValidation();
8256
+ validator.functionBody = function (control) {
8257
+ var fromDate = form.controls[fromDateControl].value;
8258
+ var toDate = form.controls[toDateControl].value;
8259
+ if (fromDate && toDate && toDate <= fromDate)
8260
+ return { 'customerError': true };
8261
+ return null;
8262
+ };
8263
+ validator.massage = this.l(validationMessageKey);
8264
+ return validator;
8265
+ };
8266
+ AppBaseComponent.prototype.recalculatePageTitle = function () {
8267
+ this.titleService.setTitle(this.calculatePageTitle(""));
8268
+ };
8269
+ AppBaseComponent.prototype.isEnglish = function () {
8270
+ return this.utilityService.isCurrentLanguageEnglish();
8271
+ };
8272
+ AppBaseComponent.prototype.calculateInitials = function (name) {
8273
+ var _a;
8274
+ var fullName = name === null || name === void 0 ? void 0 : name.split(' ');
8275
+ if (!fullName)
8276
+ return null;
8277
+ var initials = fullName.shift().charAt(0) + ((_a = fullName.pop()) === null || _a === void 0 ? void 0 : _a.charAt(0));
8278
+ return initials.toUpperCase();
8279
+ };
8280
+ AppBaseComponent.prototype.getCurrentUserInitials = function () {
8281
+ return this.calculateInitials(this.auhService.name());
8282
+ };
8283
+ AppBaseComponent.prototype.getCurrentFailOver = function (val) {
8284
+ if (this.isEnglish()) {
8285
+ if (val.English)
8286
+ return val.English;
8287
+ else
8288
+ return val.Arabic;
8289
+ }
8290
+ else {
8291
+ if (val.Arabic)
8292
+ return val.Arabic;
8293
+ else
8294
+ return val.English;
8295
+ }
8296
+ };
8297
+ return AppBaseComponent;
8298
+ }());
8299
+ AppBaseComponent.decorators = [
8300
+ { type: i0.Injectable }
8301
+ ];
8302
+ AppBaseComponent.ctorParameters = function () { return [
8303
+ { type: i0.Injector }
8304
+ ]; };
8305
+
8093
8306
  // This file can be replaced during build by using the `fileReplacements` array.
8094
8307
  // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
8095
8308
  // The list of file replacements can be found in `angular.json`.
@@ -8139,26 +8352,6 @@
8139
8352
  return MultilingualControlOptionsBase;
8140
8353
  }());
8141
8354
 
8142
- var CustomValidation = /** @class */ (function () {
8143
- function CustomValidation() {
8144
- }
8145
- return CustomValidation;
8146
- }());
8147
- var CustomValidator = /** @class */ (function () {
8148
- function CustomValidator() {
8149
- }
8150
- // Number only validation
8151
- CustomValidator.numeric = function (control) {
8152
- var val = control.value;
8153
- if (val === null || val === '')
8154
- return null;
8155
- if (!val.toString().match(/^[0-9]+(\.?[0-9]+)?$/))
8156
- return { 'invalidNumber': true };
8157
- return null;
8158
- };
8159
- return CustomValidator;
8160
- }());
8161
-
8162
8355
  var MultiLingualTextBoxOptions = /** @class */ (function (_super) {
8163
8356
  __extends(MultiLingualTextBoxOptions, _super);
8164
8357
  function MultiLingualTextBoxOptions() {
@@ -8523,6 +8716,121 @@
8523
8716
  return RepeaterOptions;
8524
8717
  }());
8525
8718
 
8719
+ var FilterOptions = /** @class */ (function () {
8720
+ function FilterOptions() {
8721
+ this.ControlsOptions = [];
8722
+ this.ApplyFunction = null;
8723
+ this.RestFunction = null;
8724
+ this.ShowLoadingInFiltersBox = false;
8725
+ }
8726
+ return FilterOptions;
8727
+ }());
8728
+
8729
+ var PageHeaderOptions = /** @class */ (function () {
8730
+ function PageHeaderOptions() {
8731
+ this.BreadCrumb = new BreadCrumbModel();
8732
+ this.AddButton = new AddButton();
8733
+ this.EditButton = new EditButton();
8734
+ this.DeleteButton = new DeleteButton();
8735
+ this.ExportButton = new ExportButton();
8736
+ this.GridView = new GridViewModel();
8737
+ this.SearchTextBox = new TextBoxModel();
8738
+ this.FiltersButton = new FiltersButton();
8739
+ this.Filters = new FilterOptions();
8740
+ this.DropDownActions = new DropdownActions();
8741
+ }
8742
+ return PageHeaderOptions;
8743
+ }());
8744
+ var BreadCrumbModel = /** @class */ (function () {
8745
+ function BreadCrumbModel() {
8746
+ this.BreadCrumbItems = [];
8747
+ }
8748
+ return BreadCrumbModel;
8749
+ }());
8750
+ var AddButton = /** @class */ (function () {
8751
+ function AddButton() {
8752
+ this.ButtonTextKey = "Add";
8753
+ this.Function = null;
8754
+ }
8755
+ return AddButton;
8756
+ }());
8757
+ var EditButton = /** @class */ (function () {
8758
+ function EditButton() {
8759
+ this.ButtonTextKey = "Edit";
8760
+ this.Function = null;
8761
+ }
8762
+ return EditButton;
8763
+ }());
8764
+ var DeleteButton = /** @class */ (function () {
8765
+ function DeleteButton() {
8766
+ this.ButtonTextKey = "Delete";
8767
+ this.Function = null;
8768
+ }
8769
+ return DeleteButton;
8770
+ }());
8771
+ var FiltersButton = /** @class */ (function () {
8772
+ function FiltersButton() {
8773
+ this.ButtonTextKey = "Filter";
8774
+ this.Function = null;
8775
+ this.ShowLoadingInFiltersBox = true;
8776
+ this.ButtonTextKey = "Filter";
8777
+ }
8778
+ return FiltersButton;
8779
+ }());
8780
+ var ExportButton = /** @class */ (function () {
8781
+ function ExportButton() {
8782
+ this.ButtonTextKey = "Export";
8783
+ this.Function = null;
8784
+ }
8785
+ return ExportButton;
8786
+ }());
8787
+ var GridViewModel = /** @class */ (function () {
8788
+ function GridViewModel() {
8789
+ this.ToggleFunction = null;
8790
+ }
8791
+ return GridViewModel;
8792
+ }());
8793
+ var TextBoxModel = /** @class */ (function () {
8794
+ function TextBoxModel() {
8795
+ this.TextSearchBoxOptions = new TextBoxOptions();
8796
+ }
8797
+ return TextBoxModel;
8798
+ }());
8799
+ var DropdownActions = /** @class */ (function () {
8800
+ function DropdownActions() {
8801
+ this.DropdownActionItems = [];
8802
+ }
8803
+ return DropdownActions;
8804
+ }());
8805
+ var DropdownActionItem = /** @class */ (function () {
8806
+ function DropdownActionItem(text, svg, functionName, routerLink) {
8807
+ if (routerLink === void 0) { routerLink = null; }
8808
+ this.Function = null;
8809
+ this.Text = text;
8810
+ this.SVG = svg;
8811
+ this.Function = functionName;
8812
+ this.RouterLink = routerLink;
8813
+ }
8814
+ return DropdownActionItem;
8815
+ }());
8816
+
8817
+ var ControlFilterItem = /** @class */ (function () {
8818
+ function ControlFilterItem() {
8819
+ this.onChange = null;
8820
+ }
8821
+ return ControlFilterItem;
8822
+ }());
8823
+
8824
+ var BreadCrumb = /** @class */ (function () {
8825
+ function BreadCrumb(label, active, route) {
8826
+ if (route === void 0) { route = null; }
8827
+ this.label = label;
8828
+ this.active = active;
8829
+ this.route = route;
8830
+ }
8831
+ return BreadCrumb;
8832
+ }());
8833
+
8526
8834
  exports.MenuListType = void 0;
8527
8835
  (function (MenuListType) {
8528
8836
  MenuListType[MenuListType["AdminType"] = 1] = "AdminType";
@@ -8846,6 +9154,8 @@
8846
9154
  * Generated bundle index. Do not edit.
8847
9155
  */
8848
9156
 
9157
+ exports.AddButton = AddButton;
9158
+ exports.AppBaseComponent = AppBaseComponent;
8849
9159
  exports.Attribute = Attribute;
8850
9160
  exports.AutocompleteDTO = AutocompleteDTO;
8851
9161
  exports.AutocompleteOptions = AutocompleteOptions;
@@ -8853,6 +9163,8 @@
8853
9163
  exports.BBSFControlsModule = BBSFControlsModule;
8854
9164
  exports.BBSFDatePipe = BBSFDatePipe;
8855
9165
  exports.BBSFDateTimePipe = BBSFDateTimePipe;
9166
+ exports.BreadCrumb = BreadCrumb;
9167
+ exports.BreadCrumbModel = BreadCrumbModel;
8856
9168
  exports.CalendarComponent = CalendarComponent;
8857
9169
  exports.CalendarEventDTO = CalendarEventDTO;
8858
9170
  exports.CalendarOptions = CalendarOptions;
@@ -8861,6 +9173,7 @@
8861
9173
  exports.CheckBoxOptions = CheckBoxOptions;
8862
9174
  exports.ConfirmationModalComponent = ConfirmationModalComponent;
8863
9175
  exports.ConfirmationModalOptions = ConfirmationModalOptions;
9176
+ exports.ControlFilterItem = ControlFilterItem;
8864
9177
  exports.ControlOptionsBase = ControlOptionsBase;
8865
9178
  exports.ControlUtility = ControlUtility;
8866
9179
  exports.CustomValidation = CustomValidation;
@@ -8868,19 +9181,27 @@
8868
9181
  exports.DateInputComponent = DateInputComponent;
8869
9182
  exports.DatePickerOptions = DatePickerOptions;
8870
9183
  exports.DefaultIntl = DefaultIntl;
9184
+ exports.DeleteButton = DeleteButton;
9185
+ exports.DropdownActionItem = DropdownActionItem;
9186
+ exports.DropdownActions = DropdownActions;
8871
9187
  exports.DropdownListComponent = DropdownListComponent;
8872
9188
  exports.DropdownListItem = DropdownListItem;
8873
9189
  exports.DropdownOptions = DropdownOptions;
9190
+ exports.EditButton = EditButton;
8874
9191
  exports.EditPersonalImage = EditPersonalImage;
8875
9192
  exports.EnglishArabicDTO = EnglishArabicDTO;
8876
9193
  exports.ErrorMassageValidation = ErrorMassageValidation;
9194
+ exports.ExportButton = ExportButton;
8877
9195
  exports.FileUploadComponent = FileUploadComponent;
8878
9196
  exports.FileUploadModel = FileUploadModel;
8879
9197
  exports.FileUploadOptions = FileUploadOptions;
8880
9198
  exports.FilterItem = FilterItem;
9199
+ exports.FilterOptions = FilterOptions;
9200
+ exports.FiltersButton = FiltersButton;
8881
9201
  exports.FormComponent = FormComponent;
8882
9202
  exports.FormOptions = FormOptions;
8883
9203
  exports.GlobalSettings = GlobalSettings;
9204
+ exports.GridViewModel = GridViewModel;
8884
9205
  exports.HtmlEditorComponent = HtmlEditorComponent;
8885
9206
  exports.HtmlEditorOptions = HtmlEditorOptions;
8886
9207
  exports.ImageUploadOptions = ImageUploadOptions;
@@ -8899,6 +9220,8 @@
8899
9220
  exports.MultipleFileUploadModel = MultipleFileUploadModel;
8900
9221
  exports.NgTemplateNameDirective = NgTemplateNameDirective;
8901
9222
  exports.OnPagingFiltersChangeService = OnPagingFiltersChangeService;
9223
+ exports.PageHeaderComponentComponent = PageHeaderComponentComponent;
9224
+ exports.PageHeaderOptions = PageHeaderOptions;
8902
9225
  exports.PagingComponent = PagingComponent;
8903
9226
  exports.PagingDTO = PagingDTO;
8904
9227
  exports.PagingOptions = PagingOptions;
@@ -8927,6 +9250,7 @@
8927
9250
  exports.TagsInputOptions = TagsInputOptions;
8928
9251
  exports.TextAreaComponent = TextAreaComponent;
8929
9252
  exports.TextAreaOptions = TextAreaOptions;
9253
+ exports.TextBoxModel = TextBoxModel;
8930
9254
  exports.TextBoxOptions = TextBoxOptions;
8931
9255
  exports.TextboxComponent = TextboxComponent;
8932
9256
  exports.ToggleSlideOptions = ToggleSlideOptions;