@bnsights/bbsf-controls 1.0.31 → 1.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -2
- package/bnsights-bbsf-controls-1.0.34.tgz +0 -0
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +356 -78
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/lib/Shared/Models/MultiLingualTextAreaOptions.js +1 -1
- package/esm2015/lib/Shared/Models/MultilingualTextBoxOptions.js +1 -1
- package/esm2015/lib/Shared/Models/RepeaterOptions.js +1 -2
- package/esm2015/lib/Shared/Models/TextAreaOptions.js +1 -1
- package/esm2015/lib/Shared/Models/TextBoxOptions.js +1 -1
- package/esm2015/lib/Shared/Models/datePickerOptions.js +3 -1
- package/esm2015/lib/Shared/config/environment.js +2 -2
- package/esm2015/lib/Shared/services/ControlUtility.js +24 -1
- package/esm2015/lib/Shared/services/GlobalSettings.service.js +9 -1
- package/esm2015/lib/Shared/services/validationErrorMassage.service.js +16 -1
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +1 -2
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +49 -3
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +1 -3
- package/esm2015/lib/controls/Form/Form.component.js +2 -18
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +7 -4
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +79 -8
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +79 -16
- package/esm2015/lib/controls/Paging/Paging.component.js +1 -3
- package/esm2015/lib/controls/TextArea/TextArea.component.js +43 -4
- package/esm2015/lib/controls/TextBox/TextBox.component.js +49 -19
- package/esm2015/lib/controls/bbsf-controls.module.js +1 -3
- package/fesm2015/bnsights-bbsf-controls.js +350 -74
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/Shared/Models/MultiLingualTextAreaOptions.d.ts +1 -0
- package/lib/Shared/Models/MultilingualTextBoxOptions.d.ts +1 -0
- package/lib/Shared/Models/TextAreaOptions.d.ts +1 -0
- package/lib/Shared/Models/TextBoxOptions.d.ts +1 -0
- package/lib/Shared/Models/datePickerOptions.d.ts +2 -0
- package/lib/Shared/services/ControlUtility.d.ts +1 -0
- package/lib/Shared/services/GlobalSettings.service.d.ts +4 -0
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +9 -0
- package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +13 -2
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +13 -2
- package/lib/controls/TextArea/TextArea.component.d.ts +7 -1
- package/lib/controls/TextBox/TextBox.component.d.ts +8 -3
- package/package.json +2 -3
- package/bnsights-bbsf-controls-1.0.31.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('
|
|
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', '
|
|
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.
|
|
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,
|
|
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';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -90,6 +90,12 @@
|
|
|
90
90
|
case "max":
|
|
91
91
|
result = this.utilityService.getResourceValue("MaxValueValidationKey") + " " + error.value.max;
|
|
92
92
|
break;
|
|
93
|
+
case "IntegerNumberValidationKey":
|
|
94
|
+
result = this.utilityService.getResourceValue("IntegerNumberValidationKey");
|
|
95
|
+
break;
|
|
96
|
+
case "PositiveNumberValidationKey":
|
|
97
|
+
result = this.utilityService.getResourceValue("PositiveNumberValidationKey");
|
|
98
|
+
break;
|
|
93
99
|
case "validatePhoneNumber":
|
|
94
100
|
result = this.utilityService.getResourceValue("PhoneNumberValidationKey");
|
|
95
101
|
break;
|
|
@@ -105,6 +111,9 @@
|
|
|
105
111
|
case "EnglishLetterOnly":
|
|
106
112
|
result = this.utilityService.getResourceValue("EnglishLetterOnly");
|
|
107
113
|
break;
|
|
114
|
+
case "ArabicIsRequiredAndOnly50CharactersEnglish":
|
|
115
|
+
result = this.utilityService.getResourceValue("ArabicIsRequiredAndOnly50CharactersEnglish");
|
|
116
|
+
break;
|
|
108
117
|
case "PasswordComplexityHasCapitalLetter":
|
|
109
118
|
result = this.utilityService.getResourceValue("PasswordComplexityHasCapitalLetter");
|
|
110
119
|
break;
|
|
@@ -135,6 +144,12 @@
|
|
|
135
144
|
case "ToolTipTypeError":
|
|
136
145
|
result = this.utilityService.getResourceValue("ToolTipTypeError") + " " + error.value;
|
|
137
146
|
break;
|
|
147
|
+
case "InvalidEndDate":
|
|
148
|
+
result = this.utilityService.getResourceValue("InvalidEndDate");
|
|
149
|
+
break;
|
|
150
|
+
case "InvalidStartDate":
|
|
151
|
+
result = this.utilityService.getResourceValue("InvalidStartDate");
|
|
152
|
+
break;
|
|
138
153
|
default:
|
|
139
154
|
break;
|
|
140
155
|
}
|
|
@@ -197,6 +212,29 @@
|
|
|
197
212
|
return valid ? null : error;
|
|
198
213
|
};
|
|
199
214
|
};
|
|
215
|
+
ControlUtility.prototype.arabicValidator = function (error) {
|
|
216
|
+
return function (control) {
|
|
217
|
+
if (control.value.match('[\u0600-\u06FF]')) {
|
|
218
|
+
if (control.value.match('[A-Za-z]') != null) {
|
|
219
|
+
//FOUND ENGLISH CHARS
|
|
220
|
+
var length = control.value.replace(/\W/g, '').replace(/[0-9]/g, '').length;
|
|
221
|
+
if (length > 50) {
|
|
222
|
+
return error;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
//NO ENGLISH CHARACTERS AT ALL
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
return error;
|
|
235
|
+
}
|
|
236
|
+
};
|
|
237
|
+
};
|
|
200
238
|
ControlUtility.prototype.getInputType = function (type) {
|
|
201
239
|
return exports.InputType[type];
|
|
202
240
|
};
|
|
@@ -344,9 +382,37 @@
|
|
|
344
382
|
this.markAllAsTouched = false;
|
|
345
383
|
this.validationRules = [];
|
|
346
384
|
this.validationRulesasync = [];
|
|
385
|
+
this.comparedControl = null;
|
|
386
|
+
this.dateError = false;
|
|
347
387
|
this.resetError = function () {
|
|
348
388
|
_this.controlValidationService.RemoveGlobalError();
|
|
349
389
|
};
|
|
390
|
+
this.checkIfEndDateAfterStartDate = function () {
|
|
391
|
+
if (!_this.comparedControl.value || !_this.group.get(_this.options.Name).value) {
|
|
392
|
+
return null;
|
|
393
|
+
}
|
|
394
|
+
if (new Date(_this.comparedControl.value) < new Date(_this.group.get(_this.options.Name).value)) {
|
|
395
|
+
_this.comparedControl.setErrors(null);
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
else {
|
|
399
|
+
_this.comparedControl.setErrors(null);
|
|
400
|
+
return { InvalidEndDate: true };
|
|
401
|
+
}
|
|
402
|
+
};
|
|
403
|
+
this.checkIfStartDateBeForEndDate = function () {
|
|
404
|
+
if (!_this.comparedControl.value || !_this.group.get(_this.options.Name).value) {
|
|
405
|
+
return null;
|
|
406
|
+
}
|
|
407
|
+
if (new Date(_this.comparedControl.value) < new Date(_this.group.get(_this.options.Name).value)) {
|
|
408
|
+
_this.group.get(_this.options.Name).setErrors(null);
|
|
409
|
+
return null;
|
|
410
|
+
}
|
|
411
|
+
else {
|
|
412
|
+
_this.group.get(_this.options.Name).setErrors(null);
|
|
413
|
+
return { InvalidStartDate: true };
|
|
414
|
+
}
|
|
415
|
+
};
|
|
350
416
|
//External Method
|
|
351
417
|
this.RemoveRequiredValidation = function () {
|
|
352
418
|
_this.controlUtility.RemoveRequiredValidation(_this.DatePickerFormControl, _this.validationRules, _this.options);
|
|
@@ -389,11 +455,17 @@
|
|
|
389
455
|
}
|
|
390
456
|
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
391
457
|
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
392
|
-
this.DatePickerFormControl.setValidators(this.validationRules);
|
|
393
|
-
this.DatePickerFormControl.setAsyncValidators(this.validationRulesasync);
|
|
394
458
|
if (this.options.IsDisabled) {
|
|
395
459
|
this.DatePickerFormControl.disable();
|
|
396
460
|
}
|
|
461
|
+
if (this.options.StartControlToCompareWith) {
|
|
462
|
+
if (this.group.get(this.options.StartControlToCompareWith)) {
|
|
463
|
+
this.comparedControl = this.group.get(this.options.StartControlToCompareWith);
|
|
464
|
+
this.subscribeDateChanges();
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
this.DatePickerFormControl.setValidators(this.validationRules);
|
|
468
|
+
this.DatePickerFormControl.setAsyncValidators(this.validationRulesasync);
|
|
397
469
|
this.DateInputControlHost.ngSubmit.subscribe(function (value) {
|
|
398
470
|
_this.group.markAllAsTouched();
|
|
399
471
|
_this.markAllAsTouched = true;
|
|
@@ -447,6 +519,19 @@
|
|
|
447
519
|
this.onChangeService.ChangeValue(this.options.Name);
|
|
448
520
|
this.OnChange.emit(DateValue);
|
|
449
521
|
};
|
|
522
|
+
DateInputComponent.prototype.subscribeDateChanges = function () {
|
|
523
|
+
var _this = this;
|
|
524
|
+
var startDateChanges = this.comparedControl.valueChanges;
|
|
525
|
+
var endDateChanges = this.group.get(this.options.Name).valueChanges;
|
|
526
|
+
startDateChanges.subscribe(function (start) {
|
|
527
|
+
_this.comparedControl.addValidators(_this.checkIfStartDateBeForEndDate);
|
|
528
|
+
_this.comparedControl.updateValueAndValidity();
|
|
529
|
+
});
|
|
530
|
+
endDateChanges.subscribe(function (end) {
|
|
531
|
+
_this.DatePickerFormControl.addValidators(_this.checkIfEndDateAfterStartDate);
|
|
532
|
+
_this.DatePickerFormControl.updateValueAndValidity();
|
|
533
|
+
});
|
|
534
|
+
};
|
|
450
535
|
return DateInputComponent;
|
|
451
536
|
}());
|
|
452
537
|
DateInputComponent.controlContainerstatic = null;
|
|
@@ -517,6 +602,14 @@
|
|
|
517
602
|
/**To Set LanguageMode To MultipleLanguageText */
|
|
518
603
|
this.LanguageMode = exports.LanguageMode.Both_Languages_are_visible;
|
|
519
604
|
this.HideAstericsWhenRequired = false;
|
|
605
|
+
//**To set maxlength warning message when equals limit
|
|
606
|
+
this.MaxLengthWarningLimit = 10;
|
|
607
|
+
//**Set any texbox maxlength default value
|
|
608
|
+
this.MaxLengthTextBox = 255;
|
|
609
|
+
//**Set any textArea maxlength default value
|
|
610
|
+
this.MaxLengthTextArea = 1000;
|
|
611
|
+
//**Set default image source
|
|
612
|
+
this.DefaultImageSrc = "./src/assets/images/uploadimg.png";
|
|
520
613
|
}
|
|
521
614
|
return GlobalSettings;
|
|
522
615
|
}());
|
|
@@ -738,7 +831,6 @@
|
|
|
738
831
|
this_1.uploader.queue = [];
|
|
739
832
|
return { value: void 0 };
|
|
740
833
|
}
|
|
741
|
-
debugger;
|
|
742
834
|
var reader_1 = new FileReader();
|
|
743
835
|
var fileObject = file.rawFile;
|
|
744
836
|
reader_1.readAsDataURL(fileObject);
|
|
@@ -779,7 +871,6 @@
|
|
|
779
871
|
}
|
|
780
872
|
};
|
|
781
873
|
FileUploadComponent.prototype.removeFromControlValue = function (item) {
|
|
782
|
-
debugger;
|
|
783
874
|
if (this.options.IsMultipleFile == false) {
|
|
784
875
|
this.fileUploadModel = null;
|
|
785
876
|
if (this.options.IsRequired == true) {
|
|
@@ -1205,6 +1296,16 @@
|
|
|
1205
1296
|
this.markAllAsTouched = false;
|
|
1206
1297
|
this.ArabicLetterOnly = "";
|
|
1207
1298
|
this.EnglishLetterOnly = "";
|
|
1299
|
+
//For Show warning message of max length limit
|
|
1300
|
+
this.minCharsLimit = -1; //To disable chars limit feature by default
|
|
1301
|
+
this.englishCurrentCharsCount = 0;
|
|
1302
|
+
this.arabicCurrentCharsCount = 0;
|
|
1303
|
+
this.showEnglishCharsLimitMsg = false;
|
|
1304
|
+
this.showArabicCharsLimitMsg = false;
|
|
1305
|
+
this.hasEnglishCharsLimitValidationError = false;
|
|
1306
|
+
this.hasArabicCharsLimitValidationError = false;
|
|
1307
|
+
this.englishMaxLimitWarningMsg = "";
|
|
1308
|
+
this.arabicMaxLimitWarningMsg = "";
|
|
1208
1309
|
//External Method
|
|
1209
1310
|
this.RemoveRequiredValidation = function () {
|
|
1210
1311
|
_this.controlUtility.RemoveRequiredValidation(_this.ArabicFormControl, _this.EnglishValidationRules, _this.options);
|
|
@@ -1234,12 +1335,12 @@
|
|
|
1234
1335
|
this.CurrentLanguage = translate.currentLang != undefined ? translate.currentLang : translate.defaultLang;
|
|
1235
1336
|
}
|
|
1236
1337
|
MultiLingualTextBoxComponent.prototype.getCustomErrorsMassages = function () {
|
|
1237
|
-
this.ArabicLetterOnly = this.UtilityService.getResourceValue("
|
|
1338
|
+
this.ArabicLetterOnly = this.UtilityService.getResourceValue("ArabicIsRequiredAndOnly50CharactersEnglish");
|
|
1238
1339
|
this.EnglishLetterOnly = this.UtilityService.getResourceValue("EnglishLetterOnly");
|
|
1239
1340
|
};
|
|
1240
1341
|
MultiLingualTextBoxComponent.prototype.ngOnInit = function () {
|
|
1241
1342
|
return __awaiter(this, void 0, void 0, function () {
|
|
1242
|
-
var _a, Validations, index, Validation
|
|
1343
|
+
var _a, Validations, index, Validation;
|
|
1243
1344
|
var _this = this;
|
|
1244
1345
|
return __generator(this, function (_b) {
|
|
1245
1346
|
switch (_b.label) {
|
|
@@ -1267,6 +1368,8 @@
|
|
|
1267
1368
|
this.options.LanguageMode = this.globalSettings.LanguageMode;
|
|
1268
1369
|
if (!this.options.MultiControlPlacementType)
|
|
1269
1370
|
this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
|
|
1371
|
+
if (!this.options.MaxLength)
|
|
1372
|
+
this.options.MaxLength = this.globalSettings.MaxLengthTextBox;
|
|
1270
1373
|
if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != "")
|
|
1271
1374
|
this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);
|
|
1272
1375
|
if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != "")
|
|
@@ -1279,14 +1382,6 @@
|
|
|
1279
1382
|
this.ArabicValidationRules.push(Validation.functionBody);
|
|
1280
1383
|
}
|
|
1281
1384
|
}
|
|
1282
|
-
if (this.options.CustomValidation.length > 0) {
|
|
1283
|
-
Validations = this.options.CustomValidation;
|
|
1284
|
-
for (index = 0; index < Validations.length; index++) {
|
|
1285
|
-
Validation = Validations[index];
|
|
1286
|
-
this.EnglishValidationRules.push(Validation.functionBody);
|
|
1287
|
-
this.ArabicValidationRules.push(Validation.functionBody);
|
|
1288
|
-
}
|
|
1289
|
-
}
|
|
1290
1385
|
if (this.options.MinLength > 0) {
|
|
1291
1386
|
this.ArabicValidationRules.push(forms.Validators.minLength(this.options.MinLength));
|
|
1292
1387
|
this.EnglishValidationRules.push(forms.Validators.minLength(this.options.MinLength));
|
|
@@ -1294,10 +1389,13 @@
|
|
|
1294
1389
|
if (this.options.MaxLength > 0) {
|
|
1295
1390
|
this.EnglishValidationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
1296
1391
|
this.ArabicValidationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
1392
|
+
if (!this.options.MaxLengthWarningLimit)
|
|
1393
|
+
this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;
|
|
1394
|
+
this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;
|
|
1297
1395
|
}
|
|
1298
1396
|
this.showInputUsingLanguageMode();
|
|
1299
1397
|
this.ArabicValidationRules.push(forms.Validators.compose([
|
|
1300
|
-
this.controlUtility.
|
|
1398
|
+
this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),
|
|
1301
1399
|
]));
|
|
1302
1400
|
this.EnglishValidationRules.push(forms.Validators.compose([
|
|
1303
1401
|
this.controlUtility.patternValidator(/^[\x00-\x7F]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),
|
|
@@ -1346,6 +1444,27 @@
|
|
|
1346
1444
|
englishValue = this.EnglishFormControl.value;
|
|
1347
1445
|
}
|
|
1348
1446
|
}
|
|
1447
|
+
//Check for maxlength limit count
|
|
1448
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
1449
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
1450
|
+
this.englishCurrentCharsCount = this.EnglishFormControl.value.length;
|
|
1451
|
+
if (this.englishCurrentCharsCount >= this.minCharsLimit) {
|
|
1452
|
+
this.showEnglishCharsLimitMsg = true;
|
|
1453
|
+
this.hasEnglishCharsLimitValidationError = true;
|
|
1454
|
+
if (this.englishCurrentCharsCount == this.options.MaxLength)
|
|
1455
|
+
this.englishCharsLimitMsgClass = "danger";
|
|
1456
|
+
else
|
|
1457
|
+
this.englishCharsLimitMsgClass = "warning";
|
|
1458
|
+
}
|
|
1459
|
+
else {
|
|
1460
|
+
this.showEnglishCharsLimitMsg = false;
|
|
1461
|
+
this.hasEnglishCharsLimitValidationError = false;
|
|
1462
|
+
}
|
|
1463
|
+
var max = this.options.MaxLength;
|
|
1464
|
+
var current = this.englishCurrentCharsCount;
|
|
1465
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
1466
|
+
this.englishMaxLimitWarningMsg = eval('`' + resource + '`');
|
|
1467
|
+
}
|
|
1349
1468
|
}
|
|
1350
1469
|
if (this.ArabicFormControl.value == "") {
|
|
1351
1470
|
this.ArabicWordCountArray = 0;
|
|
@@ -1367,6 +1486,27 @@
|
|
|
1367
1486
|
arabicValue = this.ArabicFormControl.value;
|
|
1368
1487
|
}
|
|
1369
1488
|
}
|
|
1489
|
+
//Check for maxlength limit count
|
|
1490
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
1491
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
1492
|
+
this.arabicCurrentCharsCount = this.ArabicFormControl.value.length;
|
|
1493
|
+
if (this.arabicCurrentCharsCount >= this.minCharsLimit) {
|
|
1494
|
+
this.showArabicCharsLimitMsg = true;
|
|
1495
|
+
this.hasArabicCharsLimitValidationError = true;
|
|
1496
|
+
if (this.arabicCurrentCharsCount == this.options.MaxLength)
|
|
1497
|
+
this.arabicCharsLimitMsgClass = "danger";
|
|
1498
|
+
else
|
|
1499
|
+
this.arabicCharsLimitMsgClass = "warning";
|
|
1500
|
+
}
|
|
1501
|
+
else {
|
|
1502
|
+
this.showArabicCharsLimitMsg = false;
|
|
1503
|
+
this.hasArabicCharsLimitValidationError = false;
|
|
1504
|
+
}
|
|
1505
|
+
var max = this.options.MaxLength;
|
|
1506
|
+
var current = this.arabicCurrentCharsCount;
|
|
1507
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
1508
|
+
this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');
|
|
1509
|
+
}
|
|
1370
1510
|
}
|
|
1371
1511
|
var mulitLangModel = new EnglishArabicDTO();
|
|
1372
1512
|
mulitLangModel.Arabic = arabicValue;
|
|
@@ -1486,11 +1626,25 @@
|
|
|
1486
1626
|
this.ArabicFormControl.updateValueAndValidity();
|
|
1487
1627
|
this.EnglishFormControl.updateValueAndValidity();
|
|
1488
1628
|
};
|
|
1489
|
-
MultiLingualTextBoxComponent.prototype.
|
|
1490
|
-
this.IsShowArabicWordCount =
|
|
1629
|
+
MultiLingualTextBoxComponent.prototype.onArabicFocus = function (isFocus) {
|
|
1630
|
+
this.IsShowArabicWordCount = isFocus;
|
|
1631
|
+
//onFocus
|
|
1632
|
+
if (isFocus) {
|
|
1633
|
+
if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error
|
|
1634
|
+
this.showArabicCharsLimitMsg = true;
|
|
1635
|
+
}
|
|
1636
|
+
else //onFocusOut
|
|
1637
|
+
this.showArabicCharsLimitMsg = false;
|
|
1491
1638
|
};
|
|
1492
|
-
MultiLingualTextBoxComponent.prototype.
|
|
1493
|
-
this.IsShowEnglishWordCount =
|
|
1639
|
+
MultiLingualTextBoxComponent.prototype.onEnglishFocus = function (isFocus) {
|
|
1640
|
+
this.IsShowEnglishWordCount = isFocus;
|
|
1641
|
+
//onFocus
|
|
1642
|
+
if (isFocus) {
|
|
1643
|
+
if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error
|
|
1644
|
+
this.showEnglishCharsLimitMsg = true;
|
|
1645
|
+
}
|
|
1646
|
+
else //onFocusOut
|
|
1647
|
+
this.showEnglishCharsLimitMsg = false;
|
|
1494
1648
|
};
|
|
1495
1649
|
return MultiLingualTextBoxComponent;
|
|
1496
1650
|
}());
|
|
@@ -1498,7 +1652,7 @@
|
|
|
1498
1652
|
MultiLingualTextBoxComponent.decorators = [
|
|
1499
1653
|
{ type: i0.Component, args: [{
|
|
1500
1654
|
selector: 'BBSF-MultiLingualTextBox',
|
|
1501
|
-
template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\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}}\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 align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [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 class=\"form-control bnsights-control\"\r\n (focus)=\"
|
|
1655
|
+
template: "<div class=\"b-control b-multilangual-textbox\">\r\n <div class=\"form-group validate is-invalid\" [formGroup]=\"group\">\r\n\r\n <div class=\"form-group row\" [formGroup]=\"MultiLanguagegroup\">\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowEnglishTextBox\">\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}}\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 align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [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 class=\"form-control bnsights-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 #userinputEnglish>\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideEnglishFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputEnglish)\">\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 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowEnglishWordCount\">{{EnglishWordCount}}/{{options.MaxWordCount}}</div>\r\n <div class=\"text-danger Required-text\" *ngIf=\"(EnglishFormControl.invalid && EnglishFormControl.touched)\">\r\n {{getErrorValidation(EnglishFormControl.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 <!-- <div *ngIf=\"EnglishFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div [ngClass]=\"(options.MultiControlPlacementType==1)?'col-md-12':'col-md-6'\">\r\n <div class=\"row\" *ngIf=\"ShowArabicTextBox\">\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}}\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" 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 align-items-center\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPositionEN==1)?'right-icon':'left-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-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 (change)=\"trimControlValue('Ar')\" #userinputArabic>\r\n\r\n <div class=\"input-group-append\" [hidden]=\"options.IsHideArabicFields\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinputArabic)\">\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\" *ngIf=\"(ArabicFormControl.invalid && ArabicFormControl.touched)\">\r\n {{getErrorValidation(ArabicFormControl.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=\"ArabicFormControl.valid\">{{resetError()}}</div> -->\r\n <div *ngIf=\"group.valid\">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n",
|
|
1502
1656
|
styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
|
|
1503
1657
|
},] }
|
|
1504
1658
|
];
|
|
@@ -1533,6 +1687,12 @@
|
|
|
1533
1687
|
this.markAllAsTouched = false;
|
|
1534
1688
|
this.validationRules = [];
|
|
1535
1689
|
this.validationRulesasync = [];
|
|
1690
|
+
//For Show warning message of max length limit
|
|
1691
|
+
this.currentCharsCount = 0;
|
|
1692
|
+
this.showCharsLimitMsg = false;
|
|
1693
|
+
this.hasCharsLimitValidationError = false;
|
|
1694
|
+
this.minCharsLimit = -1; //To disable chars limit feature by default
|
|
1695
|
+
this.maxLimitWarningMsg = "";
|
|
1536
1696
|
this.resetError = function () {
|
|
1537
1697
|
_this.controlValidationService.RemoveGlobalError();
|
|
1538
1698
|
};
|
|
@@ -1563,6 +1723,8 @@
|
|
|
1563
1723
|
this.controlValidationService.isCreatedBefor = false;
|
|
1564
1724
|
this.group.addControl(this.options.Name, new forms.FormControl(''));
|
|
1565
1725
|
this.TextAreaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
1726
|
+
if (!this.options.MaxLength)
|
|
1727
|
+
this.options.MaxLength = this.globalSettings.MaxLengthTextArea;
|
|
1566
1728
|
if (!this.options.ViewType)
|
|
1567
1729
|
this.options.ViewType = this.globalSettings.ViewType;
|
|
1568
1730
|
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
@@ -1580,6 +1742,9 @@
|
|
|
1580
1742
|
}
|
|
1581
1743
|
if (this.options.MaxLength > 0) {
|
|
1582
1744
|
this.validationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
1745
|
+
if (!this.options.MaxLengthWarningLimit)
|
|
1746
|
+
this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;
|
|
1747
|
+
this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;
|
|
1583
1748
|
}
|
|
1584
1749
|
if (this.options.IsRequired) {
|
|
1585
1750
|
this.validationRules.push(forms.Validators.required);
|
|
@@ -1636,10 +1801,38 @@
|
|
|
1636
1801
|
}
|
|
1637
1802
|
}
|
|
1638
1803
|
}
|
|
1804
|
+
//Check for maxlength limit count
|
|
1805
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
1806
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
1807
|
+
this.currentCharsCount = this.TextAreaFormControl.value.length;
|
|
1808
|
+
if (this.currentCharsCount >= this.minCharsLimit) {
|
|
1809
|
+
this.showCharsLimitMsg = true;
|
|
1810
|
+
this.hasCharsLimitValidationError = true;
|
|
1811
|
+
if (this.currentCharsCount == this.options.MaxLength)
|
|
1812
|
+
this.charsLimitMsgClass = "danger";
|
|
1813
|
+
else
|
|
1814
|
+
this.charsLimitMsgClass = "warning";
|
|
1815
|
+
}
|
|
1816
|
+
else {
|
|
1817
|
+
this.showCharsLimitMsg = false;
|
|
1818
|
+
this.hasCharsLimitValidationError = false;
|
|
1819
|
+
}
|
|
1820
|
+
var max = this.options.MaxLength;
|
|
1821
|
+
var current = this.currentCharsCount;
|
|
1822
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
1823
|
+
this.maxLimitWarningMsg = eval('`' + resource + '`');
|
|
1824
|
+
}
|
|
1639
1825
|
this.OnChange.emit(this.TextAreaFormControl.value);
|
|
1640
1826
|
};
|
|
1641
|
-
TextAreaComponent.prototype.
|
|
1642
|
-
this.IsShowWordCount =
|
|
1827
|
+
TextAreaComponent.prototype.onFocus = function (isFocus) {
|
|
1828
|
+
this.IsShowWordCount = isFocus;
|
|
1829
|
+
//onFocus
|
|
1830
|
+
if (isFocus) {
|
|
1831
|
+
if (this.hasCharsLimitValidationError) //check if there was previous validation error
|
|
1832
|
+
this.showCharsLimitMsg = true;
|
|
1833
|
+
}
|
|
1834
|
+
else //onFocusOut
|
|
1835
|
+
this.showCharsLimitMsg = false;
|
|
1643
1836
|
};
|
|
1644
1837
|
return TextAreaComponent;
|
|
1645
1838
|
}());
|
|
@@ -1647,7 +1840,7 @@
|
|
|
1647
1840
|
TextAreaComponent.decorators = [
|
|
1648
1841
|
{ type: i0.Component, args: [{
|
|
1649
1842
|
selector: 'BBSF-TextArea',
|
|
1650
|
-
template: "<div class=\"b-control b-textarea\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n (focus)=\"
|
|
1843
|
+
template: "<div class=\"b-control b-textarea\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\"\r\n *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group\">\r\n <textarea class=\"form-control bnsights-control {{options.ExtraClasses}}\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\" aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\"\r\n [class.is-invalid]=\"TextAreaFormControl.invalid && TextAreaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" rows=\"{{options.Rows}}\" (keyup)=\"onTextChange()\" cols=\"{{options.Cols}}\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #TextAreainput></textarea>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(TextAreainput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} words</div>\r\n </div>\r\n <div class=\"text-danger Required-text\"\r\n *ngIf=\"(TextAreaFormControl.invalid && TextAreaFormControl.touched)\">\r\n {{getErrorValidation(TextAreaFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc text-dark\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- <div *ngIf=\"TextAreaFormControl.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 </div>\r\n </div>\r\n</div>\r\n",
|
|
1651
1844
|
styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
|
|
1652
1845
|
},] }
|
|
1653
1846
|
];
|
|
@@ -1691,6 +1884,16 @@
|
|
|
1691
1884
|
this.markAllAsTouched = false;
|
|
1692
1885
|
this.ArabicLetterOnly = "";
|
|
1693
1886
|
this.EnglishLetterOnly = "";
|
|
1887
|
+
//For Show warning message of max length limit
|
|
1888
|
+
this.minCharsLimit = -1; //To disable chars limit feature by default
|
|
1889
|
+
this.englishCurrentCharsCount = 0;
|
|
1890
|
+
this.arabicCurrentCharsCount = 0;
|
|
1891
|
+
this.showEnglishCharsLimitMsg = false;
|
|
1892
|
+
this.showArabicCharsLimitMsg = false;
|
|
1893
|
+
this.hasEnglishCharsLimitValidationError = false;
|
|
1894
|
+
this.hasArabicCharsLimitValidationError = false;
|
|
1895
|
+
this.englishMaxLimitWarningMsg = "";
|
|
1896
|
+
this.arabicMaxLimitWarningMsg = "";
|
|
1694
1897
|
this.resetError = function () {
|
|
1695
1898
|
_this.controlValidationService.RemoveGlobalError();
|
|
1696
1899
|
};
|
|
@@ -1722,7 +1925,7 @@
|
|
|
1722
1925
|
MultiLingualTextAreaComponent.controlContainerstatic = this.controlContainer;
|
|
1723
1926
|
}
|
|
1724
1927
|
MultiLingualTextAreaComponent.prototype.getCustomErrorsMassages = function () {
|
|
1725
|
-
this.ArabicLetterOnly = this.UtilityService.getResourceValue("
|
|
1928
|
+
this.ArabicLetterOnly = this.UtilityService.getResourceValue("ArabicIsRequiredAndOnly50CharactersEnglish");
|
|
1726
1929
|
this.EnglishLetterOnly = this.UtilityService.getResourceValue("EnglishLetterOnly");
|
|
1727
1930
|
};
|
|
1728
1931
|
MultiLingualTextAreaComponent.prototype.ngOnInit = function () {
|
|
@@ -1747,6 +1950,8 @@
|
|
|
1747
1950
|
this.options.LanguageMode = this.globalSettings.LanguageMode;
|
|
1748
1951
|
if (!this.options.MultiControlPlacementType)
|
|
1749
1952
|
this.options.MultiControlPlacementType = this.globalSettings.MultiControlPlacementType;
|
|
1953
|
+
if (!this.options.MaxLength)
|
|
1954
|
+
this.options.MaxLength = this.globalSettings.MaxLengthTextArea;
|
|
1750
1955
|
if (this.options.ArabicLabelKey != null && this.options.ArabicLabelKey != "")
|
|
1751
1956
|
this.options.ArabicLabelValue = this.UtilityService.getResourceValue(this.options.ArabicLabelKey);
|
|
1752
1957
|
if (this.options.EnglishLabelKey != null && this.options.EnglishLabelKey != "")
|
|
@@ -1787,10 +1992,13 @@
|
|
|
1787
1992
|
if (this.options.MaxLength > 0) {
|
|
1788
1993
|
this.EnglishValidationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
1789
1994
|
this.ArabicValidationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
1995
|
+
if (!this.options.MaxLengthWarningLimit)
|
|
1996
|
+
this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;
|
|
1997
|
+
this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;
|
|
1790
1998
|
}
|
|
1791
1999
|
this.showInputUsingLanguageMode();
|
|
1792
2000
|
this.ArabicValidationRules.push(forms.Validators.compose([
|
|
1793
|
-
this.controlUtility.
|
|
2001
|
+
this.controlUtility.arabicValidator({ ArabicIsRequiredAndOnly50CharactersEnglish: this.ArabicLetterOnly }),
|
|
1794
2002
|
]));
|
|
1795
2003
|
this.EnglishValidationRules.push(forms.Validators.compose([
|
|
1796
2004
|
this.controlUtility.patternValidator(/^[\x00-\x7F]*$/, { EnglishLetterOnly: this.EnglishLetterOnly }),
|
|
@@ -1837,6 +2045,27 @@
|
|
|
1837
2045
|
englishValue = this.EnglishTextAreaFormControl.value;
|
|
1838
2046
|
}
|
|
1839
2047
|
}
|
|
2048
|
+
//Check for maxlength limit count
|
|
2049
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
2050
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
2051
|
+
this.englishCurrentCharsCount = this.EnglishTextAreaFormControl.value.length;
|
|
2052
|
+
if (this.englishCurrentCharsCount >= this.minCharsLimit) {
|
|
2053
|
+
this.showEnglishCharsLimitMsg = true;
|
|
2054
|
+
this.hasEnglishCharsLimitValidationError = true;
|
|
2055
|
+
if (this.englishCurrentCharsCount == this.options.MaxLength)
|
|
2056
|
+
this.englishCharsLimitMsgClass = "danger";
|
|
2057
|
+
else
|
|
2058
|
+
this.englishCharsLimitMsgClass = "warning";
|
|
2059
|
+
}
|
|
2060
|
+
else {
|
|
2061
|
+
this.showEnglishCharsLimitMsg = false;
|
|
2062
|
+
this.hasEnglishCharsLimitValidationError = false;
|
|
2063
|
+
}
|
|
2064
|
+
var max = this.options.MaxLength;
|
|
2065
|
+
var current = this.englishCurrentCharsCount;
|
|
2066
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
2067
|
+
this.englishMaxLimitWarningMsg = eval('`' + resource + '`');
|
|
2068
|
+
}
|
|
1840
2069
|
}
|
|
1841
2070
|
if (this.ArabicTextAreaFormControl.value == "") {
|
|
1842
2071
|
this.ArabicWordCountArray = 0;
|
|
@@ -1858,6 +2087,27 @@
|
|
|
1858
2087
|
arabicValue = this.ArabicTextAreaFormControl.value;
|
|
1859
2088
|
}
|
|
1860
2089
|
}
|
|
2090
|
+
//Check for maxlength limit count
|
|
2091
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
2092
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
2093
|
+
this.arabicCurrentCharsCount = this.ArabicTextAreaFormControl.value.length;
|
|
2094
|
+
if (this.arabicCurrentCharsCount >= this.minCharsLimit) {
|
|
2095
|
+
this.showArabicCharsLimitMsg = true;
|
|
2096
|
+
this.hasArabicCharsLimitValidationError = true;
|
|
2097
|
+
if (this.arabicCurrentCharsCount == this.options.MaxLength)
|
|
2098
|
+
this.arabicCharsLimitMsgClass = "danger";
|
|
2099
|
+
else
|
|
2100
|
+
this.arabicCharsLimitMsgClass = "warning";
|
|
2101
|
+
}
|
|
2102
|
+
else {
|
|
2103
|
+
this.showArabicCharsLimitMsg = false;
|
|
2104
|
+
this.hasArabicCharsLimitValidationError = false;
|
|
2105
|
+
}
|
|
2106
|
+
var max = this.options.MaxLength;
|
|
2107
|
+
var current = this.arabicCurrentCharsCount;
|
|
2108
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
2109
|
+
this.arabicMaxLimitWarningMsg = eval('`' + resource + '`');
|
|
2110
|
+
}
|
|
1861
2111
|
}
|
|
1862
2112
|
var mulitLangModel = new EnglishArabicDTO();
|
|
1863
2113
|
mulitLangModel.Arabic = arabicValue;
|
|
@@ -1968,11 +2218,25 @@
|
|
|
1968
2218
|
this.ArabicTextAreaFormControl.updateValueAndValidity();
|
|
1969
2219
|
this.EnglishTextAreaFormControl.updateValueAndValidity();
|
|
1970
2220
|
};
|
|
1971
|
-
MultiLingualTextAreaComponent.prototype.
|
|
1972
|
-
this.IsShowArabicWordCount =
|
|
2221
|
+
MultiLingualTextAreaComponent.prototype.onArabicFocus = function (isFocus) {
|
|
2222
|
+
this.IsShowArabicWordCount = isFocus;
|
|
2223
|
+
//onFocus
|
|
2224
|
+
if (isFocus) {
|
|
2225
|
+
if (this.hasArabicCharsLimitValidationError) //check if there was previous validation error
|
|
2226
|
+
this.showArabicCharsLimitMsg = true;
|
|
2227
|
+
}
|
|
2228
|
+
else //onFocusOut
|
|
2229
|
+
this.showArabicCharsLimitMsg = false;
|
|
1973
2230
|
};
|
|
1974
|
-
MultiLingualTextAreaComponent.prototype.
|
|
1975
|
-
this.IsShowEnglishWordCount =
|
|
2231
|
+
MultiLingualTextAreaComponent.prototype.onEnglishFocus = function (isFocus) {
|
|
2232
|
+
this.IsShowEnglishWordCount = isFocus;
|
|
2233
|
+
//onFocus
|
|
2234
|
+
if (isFocus) {
|
|
2235
|
+
if (this.hasEnglishCharsLimitValidationError) //check if there was previous validation error
|
|
2236
|
+
this.showEnglishCharsLimitMsg = true;
|
|
2237
|
+
}
|
|
2238
|
+
else //onFocusOut
|
|
2239
|
+
this.showEnglishCharsLimitMsg = false;
|
|
1976
2240
|
};
|
|
1977
2241
|
return MultiLingualTextAreaComponent;
|
|
1978
2242
|
}());
|
|
@@ -1980,7 +2244,7 @@
|
|
|
1980
2244
|
MultiLingualTextAreaComponent.decorators = [
|
|
1981
2245
|
{ type: i0.Component, args: [{
|
|
1982
2246
|
selector: 'BBSF-MultiLingualTextArea',
|
|
1983
|
-
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)=\"
|
|
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",
|
|
1984
2248
|
styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}\n"]
|
|
1985
2249
|
},] }
|
|
1986
2250
|
];
|
|
@@ -3091,7 +3355,6 @@
|
|
|
3091
3355
|
this.controlValidationService = controlValidationService;
|
|
3092
3356
|
this.globalSettings = globalSettings;
|
|
3093
3357
|
this.files = [];
|
|
3094
|
-
this.ImageSource = "./src/assets/images/uploadimg.png";
|
|
3095
3358
|
this.OnChange = new i0.EventEmitter();
|
|
3096
3359
|
this.ValidationMessage = "";
|
|
3097
3360
|
this.AcceptedType = "";
|
|
@@ -3139,8 +3402,10 @@
|
|
|
3139
3402
|
this.controlValidationService.isCreatedBefor = false;
|
|
3140
3403
|
if (!this.options.ViewType)
|
|
3141
3404
|
this.options.ViewType = this.globalSettings.ViewType;
|
|
3142
|
-
if (this.options.DefaultImageSrc
|
|
3143
|
-
this.
|
|
3405
|
+
if (!this.options.DefaultImageSrc)
|
|
3406
|
+
this.options.DefaultImageSrc = this.globalSettings.DefaultImageSrc;
|
|
3407
|
+
//Set img src by default value
|
|
3408
|
+
this.ImageSource = this.options.DefaultImageSrc;
|
|
3144
3409
|
if (this.options.AllowImageCropper) {
|
|
3145
3410
|
this.config = {
|
|
3146
3411
|
aspectRatio: this.options.ImageCropperWidth / this.options.ImageCropperHeight,
|
|
@@ -3314,6 +3579,8 @@
|
|
|
3314
3579
|
var ItemList = this.group.get(this.options.Name).value;
|
|
3315
3580
|
this.files = [];
|
|
3316
3581
|
ItemList = null;
|
|
3582
|
+
//Set Img src by default image (upload)
|
|
3583
|
+
this.ImageSource = this.options.DefaultImageSrc;
|
|
3317
3584
|
if ((this.files.length == 0) && this.options.IsRequired) {
|
|
3318
3585
|
this.ImageUploadFormControl.markAsTouched();
|
|
3319
3586
|
this.ImageUploadFormControl.setErrors(forms.Validators.required);
|
|
@@ -3942,7 +4209,6 @@
|
|
|
3942
4209
|
return __generator(this, function (_a) {
|
|
3943
4210
|
switch (_a.label) {
|
|
3944
4211
|
case 0:
|
|
3945
|
-
debugger;
|
|
3946
4212
|
this.Search = search;
|
|
3947
4213
|
this.SelectedValue = "";
|
|
3948
4214
|
return [4 /*yield*/, this.suggestions$.subscribe(function (result) {
|
|
@@ -4411,7 +4677,6 @@
|
|
|
4411
4677
|
}
|
|
4412
4678
|
this.requestHandlerService.post(this.options.ActionPostURL, pagingDTO, null, params, null)
|
|
4413
4679
|
.subscribe(function (responseData) {
|
|
4414
|
-
debugger;
|
|
4415
4680
|
_this.result = responseData.items; //this.castItems(responseData.items);
|
|
4416
4681
|
var castedResult = classTransformer.plainToClass(_this.options.TypeOfResponse, _this.result, { excludeExtraneousValues: true });
|
|
4417
4682
|
_this.Items.emit(castedResult);
|
|
@@ -4427,7 +4692,6 @@
|
|
|
4427
4692
|
});
|
|
4428
4693
|
};
|
|
4429
4694
|
PagingComponent.prototype.castItems = function (objectArr) {
|
|
4430
|
-
debugger;
|
|
4431
4695
|
var originalArray = [];
|
|
4432
4696
|
for (var index = 0; index < objectArr.length; index++) {
|
|
4433
4697
|
var element = objectArr[index];
|
|
@@ -4700,7 +4964,12 @@
|
|
|
4700
4964
|
this.markAllAsTouched = false;
|
|
4701
4965
|
this.validationRules = [];
|
|
4702
4966
|
this.validationRulesasync = [];
|
|
4703
|
-
|
|
4967
|
+
//For Show warning message of max length limit
|
|
4968
|
+
this.currentCharsCount = 0;
|
|
4969
|
+
this.showCharsLimitMsg = false;
|
|
4970
|
+
this.hasCharsLimitValidationError = false;
|
|
4971
|
+
this.minCharsLimit = -1; //To disable chars limit feature by default
|
|
4972
|
+
this.maxLimitWarningMsg = "";
|
|
4704
4973
|
this.resetError = function () {
|
|
4705
4974
|
_this.controlValidationService.RemoveGlobalError();
|
|
4706
4975
|
};
|
|
@@ -4726,22 +4995,11 @@
|
|
|
4726
4995
|
};
|
|
4727
4996
|
TextboxComponent.controlContainerstatic = this.controlContainer;
|
|
4728
4997
|
}
|
|
4729
|
-
// static showErrorOfInputs(errors: any) {
|
|
4730
|
-
// const controlContainerstatic = TextboxComponent.controlContainerstatic;
|
|
4731
|
-
// const formGroup = controlContainerstatic.control as FormGroup;
|
|
4732
|
-
// for (const key in errors) {
|
|
4733
|
-
// if (errors.hasOwnProperty(key)) {
|
|
4734
|
-
// for (const iterator of errors[key]) {
|
|
4735
|
-
// const formControl = formGroup.get(key) as FormControl;
|
|
4736
|
-
// formControl.setErrors({ "FluentApi": iterator });
|
|
4737
|
-
// formControl.markAsTouched();
|
|
4738
|
-
// }
|
|
4739
|
-
// }
|
|
4740
|
-
// }
|
|
4741
|
-
// }
|
|
4742
4998
|
TextboxComponent.prototype.ngOnInit = function () {
|
|
4743
4999
|
var _this = this;
|
|
4744
5000
|
this.controlValidationService.isCreatedBefor = false;
|
|
5001
|
+
if (!this.options.MaxLength)
|
|
5002
|
+
this.options.MaxLength = this.globalSettings.MaxLengthTextBox;
|
|
4745
5003
|
if (!this.options.ViewType)
|
|
4746
5004
|
this.options.ViewType = this.globalSettings.ViewType;
|
|
4747
5005
|
if (this.options.MaskPattern != null && this.options.MaskPattern != "") {
|
|
@@ -4765,7 +5023,12 @@
|
|
|
4765
5023
|
this.options.Placeholder = this.MaskPattern;
|
|
4766
5024
|
break;
|
|
4767
5025
|
case exports.InputType.Number:
|
|
4768
|
-
this.validationRules.push(forms.Validators.
|
|
5026
|
+
this.validationRules.push(forms.Validators.compose([
|
|
5027
|
+
this.controlUtility.patternValidator(/^[0-9]*$/, { IntegerNumberValidationKey: "" }),
|
|
5028
|
+
]));
|
|
5029
|
+
this.validationRules.push(forms.Validators.compose([
|
|
5030
|
+
this.controlUtility.patternValidator(/^[+]?([.]\d+|\d+[.]?\d*)$/, { PositiveNumberValidationKey: "" }),
|
|
5031
|
+
]));
|
|
4769
5032
|
if (this.options.NumberRange != null) {
|
|
4770
5033
|
this.validationRules.push(forms.Validators.min(this.options.NumberRange.From));
|
|
4771
5034
|
this.validationRules.push(forms.Validators.max(this.options.NumberRange.To));
|
|
@@ -4807,6 +5070,9 @@
|
|
|
4807
5070
|
}
|
|
4808
5071
|
if (this.options.MaxLength > 0) {
|
|
4809
5072
|
this.validationRules.push(forms.Validators.maxLength(this.options.MaxLength));
|
|
5073
|
+
if (!this.options.MaxLengthWarningLimit)
|
|
5074
|
+
this.options.MaxLengthWarningLimit = this.globalSettings.MaxLengthWarningLimit;
|
|
5075
|
+
this.minCharsLimit = this.options.MaxLength - this.options.MaxLengthWarningLimit;
|
|
4810
5076
|
}
|
|
4811
5077
|
if (this.options.IsRequired) {
|
|
4812
5078
|
this.validationRules.push(forms.Validators.required);
|
|
@@ -4873,11 +5139,39 @@
|
|
|
4873
5139
|
this.WordCount = this.WordCountArray;
|
|
4874
5140
|
}
|
|
4875
5141
|
}
|
|
5142
|
+
//Check for maxlength limit count
|
|
5143
|
+
//MaxLength should be gretaer than or equals chars limit so that minCharsLimit would be >= 0
|
|
5144
|
+
if (this.options.MaxLength && this.minCharsLimit >= 0) {
|
|
5145
|
+
this.currentCharsCount = this.TextBoxFormControl.value.length;
|
|
5146
|
+
if (this.currentCharsCount >= this.minCharsLimit) {
|
|
5147
|
+
this.showCharsLimitMsg = true;
|
|
5148
|
+
this.hasCharsLimitValidationError = true;
|
|
5149
|
+
if (this.currentCharsCount == this.options.MaxLength)
|
|
5150
|
+
this.charsLimitMsgClass = "danger";
|
|
5151
|
+
else
|
|
5152
|
+
this.charsLimitMsgClass = "warning";
|
|
5153
|
+
}
|
|
5154
|
+
else {
|
|
5155
|
+
this.showCharsLimitMsg = false;
|
|
5156
|
+
this.hasCharsLimitValidationError = false;
|
|
5157
|
+
}
|
|
5158
|
+
var max = this.options.MaxLength;
|
|
5159
|
+
var current = this.currentCharsCount;
|
|
5160
|
+
var resource = this.UtilityService.getResourceValue("MaxLengthLimitWarning");
|
|
5161
|
+
this.maxLimitWarningMsg = eval('`' + resource + '`');
|
|
5162
|
+
}
|
|
4876
5163
|
}
|
|
4877
5164
|
this.OnChange.emit(this.TextBoxFormControl.value);
|
|
4878
5165
|
};
|
|
4879
|
-
TextboxComponent.prototype.
|
|
4880
|
-
this.IsShowWordCount =
|
|
5166
|
+
TextboxComponent.prototype.onFocus = function (isFocus) {
|
|
5167
|
+
this.IsShowWordCount = isFocus;
|
|
5168
|
+
//onFocus
|
|
5169
|
+
if (isFocus) {
|
|
5170
|
+
if (this.hasCharsLimitValidationError) //check if there was previous validation error
|
|
5171
|
+
this.showCharsLimitMsg = true;
|
|
5172
|
+
}
|
|
5173
|
+
else //onFocusOut
|
|
5174
|
+
this.showCharsLimitMsg = false;
|
|
4881
5175
|
};
|
|
4882
5176
|
return TextboxComponent;
|
|
4883
5177
|
}());
|
|
@@ -4885,7 +5179,7 @@
|
|
|
4885
5179
|
TextboxComponent.decorators = [
|
|
4886
5180
|
{ type: i0.Component, args: [{
|
|
4887
5181
|
selector: 'BBSF-TextBox',
|
|
4888
|
-
template: "<div class=\"b-control b-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\" [ngClass]=\"(options.NoMargin==true)?'':'NoMargin'\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern!=null&&MaskPattern!=''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\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 type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n </div>\r\n\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern==null||MaskPattern==''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (focus)=\"
|
|
5182
|
+
template: "<div class=\"b-control b-textbox\">\r\n <div class=\"form-group row validate is-invalid\" [formGroup]=\"group\" [ngClass]=\"(options.NoMargin==true)?'':'NoMargin'\">\r\n <label class=\"b-label col-form-label col-sm-12 \" [ngClass]=\"(options.ViewType==1)?'col-md-12':'col-md-3'\" *ngIf=\"!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)?'': ((options.HideLabel)?'col-md-12':'col-md-9')\">\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern!=null&&MaskPattern!=''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\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 type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\">\r\n <span class=\"input-group-text\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n\r\n </div>\r\n\r\n <div class=\"input-group align-items-center\" *ngIf=\"MaskPattern==null||MaskPattern==''\">\r\n <div class=\"svg svg-icon-grey\" [ngClass]=\"(options.IconPosition==1)?'left-icon':'right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <input class=\"form-control bnsights-control {{options.ExtraClasses}} \"\r\n dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\"\r\n aria-describedby=\"email-error\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\"\r\n #userinput>\r\n <div class=\"input-group-append\" *ngIf=\"options.EnableCopyToClipboard\">\r\n <span class=\"input-group-text\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <div class=\"text-muted font-weight-500 word-count float-end\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}} Words</div>\r\n </div>\r\n <div class=\"text-danger Required-text\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"showCharsLimitMsg\">\r\n <span class=\"badge b-character-warning float-end\" [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </span>\r\n </div>\r\n <div class=\"control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
4889
5183
|
styles: [".example-form{min-width:150px;max-width:500px;width:100%}.example-full-width{width:100%}.flip_V{transform:scaleY(-1)}\n"]
|
|
4890
5184
|
},] }
|
|
4891
5185
|
];
|
|
@@ -5434,23 +5728,7 @@
|
|
|
5434
5728
|
this.utilityService.notifyErrorMessage();
|
|
5435
5729
|
}
|
|
5436
5730
|
else {
|
|
5437
|
-
|
|
5438
|
-
if (err.status == 400) {
|
|
5439
|
-
this.controlValidationService.renderServerErrors(this.options.FormGroup, err, new bbsfUtilities.RequestOptionsModel(), this.fromName);
|
|
5440
|
-
}
|
|
5441
|
-
else if (err.status == 401) {
|
|
5442
|
-
this.router.navigate(["/Admin/account/login"]);
|
|
5443
|
-
}
|
|
5444
|
-
else if (err.status == 510) {
|
|
5445
|
-
errorMessage = this.utilityService.getCurrentLanguage() == "en" ? "Can not delete this item as it is related to others" : "لا يمكن حذف هذا العنصر لأنه مرتبط بعناصر أخرى";
|
|
5446
|
-
if (!this.options.DisableErrorNotification)
|
|
5447
|
-
this.utilityService.notifyErrorMessage(errorMessage);
|
|
5448
|
-
}
|
|
5449
|
-
else {
|
|
5450
|
-
errorMessage = "error message is: " + (err.error ? err.error.Message : err.message);
|
|
5451
|
-
if (!this.options.DisableErrorNotification)
|
|
5452
|
-
this.utilityService.notifyErrorMessage(errorMessage);
|
|
5453
|
-
}
|
|
5731
|
+
this.controlValidationService.renderServerErrors(this.options.FormGroup, err, new bbsfUtilities.RequestOptionsModel(), this.fromName);
|
|
5454
5732
|
}
|
|
5455
5733
|
if (!this.options.DisableBlockUI)
|
|
5456
5734
|
this.utilityService.stopBlockUI();
|
|
@@ -5830,6 +6108,8 @@
|
|
|
5830
6108
|
/**To set SelectMode to DatePicker is Single or Range */
|
|
5831
6109
|
this.SelectMode = exports.SelectMode.Single;
|
|
5832
6110
|
this.ForceDirection = exports.ForceDirection.English;
|
|
6111
|
+
/**Name of DatePicker control to compare value with it */
|
|
6112
|
+
this.StartControlToCompareWith = null;
|
|
5833
6113
|
}
|
|
5834
6114
|
return DatePickerOptions;
|
|
5835
6115
|
}());
|
|
@@ -6955,7 +7235,6 @@
|
|
|
6955
7235
|
angular.FullCalendarModule,
|
|
6956
7236
|
typeahead.TypeaheadModule.forRoot(),
|
|
6957
7237
|
angularEditor.AngularEditorModule,
|
|
6958
|
-
angularNgAutocomplete.AutocompleteLibModule,
|
|
6959
7238
|
bbsfUtilities.BBSFUtilitiesModule,
|
|
6960
7239
|
ngInlineSvg.InlineSVGModule.forRoot(),
|
|
6961
7240
|
ngxSweetalert2.SweetAlert2Module
|
|
@@ -7016,7 +7295,7 @@
|
|
|
7016
7295
|
// This file can be replaced during build by using the `fileReplacements` array.
|
|
7017
7296
|
// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
|
|
7018
7297
|
// The list of file replacements can be found in `angular.json`.
|
|
7019
|
-
var environment = Object.assign({}, window.
|
|
7298
|
+
var environment = Object.assign({}, window.Environment);
|
|
7020
7299
|
/*
|
|
7021
7300
|
* In development mode, to ignore zone related error stack frames such as
|
|
7022
7301
|
* `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
|
|
@@ -7409,7 +7688,6 @@
|
|
|
7409
7688
|
|
|
7410
7689
|
var RepeaterOptions = /** @class */ (function () {
|
|
7411
7690
|
function RepeaterOptions() {
|
|
7412
|
-
this.MinRequiredItems = 1;
|
|
7413
7691
|
this.ActionLabelKey = "";
|
|
7414
7692
|
this.AddButtonText = "Add";
|
|
7415
7693
|
this.DeleteButtonText = "Delete";
|