@bnsights/bbsf-controls 1.0.95 → 1.0.97
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 +10 -0
- package/bnsights-bbsf-controls.d.ts +1 -1
- package/bnsights-bbsf-controls.metadata.json +1 -1
- package/bundles/bnsights-bbsf-controls.umd.js +350 -329
- package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
- package/esm2015/bnsights-bbsf-controls.js +2 -2
- package/esm2015/lib/Shared/{components → Components}/ng-tag-input.js +1 -1
- package/esm2015/lib/Shared/Enums/InputType.js +1 -1
- package/esm2015/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.js +3 -1
- package/esm2015/lib/controls/ConfirmationModal/ConfirmationModal.component.js +3 -3
- package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +5 -2
- package/esm2015/lib/controls/DropdownList/DropdownList.component.js +4 -2
- package/esm2015/lib/controls/FileUplaod/FileUplaod.component.js +2 -2
- package/esm2015/lib/controls/Form/Form.component.js +2 -2
- package/esm2015/lib/controls/ImageUpload/ImageUpload.component.js +2 -2
- package/esm2015/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.js +4 -4
- package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +5 -1
- package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +5 -1
- package/esm2015/lib/controls/Phone/Phone.component.js +9 -7
- package/esm2015/lib/controls/TagsInput/TagsInput.component.js +3 -1
- package/esm2015/lib/controls/TextArea/TextArea.component.js +3 -1
- package/esm2015/lib/controls/TextBox/TextBox.component.js +6 -3
- package/esm2015/lib/controls/bbsf-controls.module.js +9 -8
- package/fesm2015/bnsights-bbsf-controls.js +361 -340
- package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +2 -2
- package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +1 -0
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
- package/lib/controls/Phone/Phone.component.d.ts +6 -6
- package/package.json +2 -2
- package/bnsights-bbsf-controls-1.0.95.tgz +0 -0
- /package/esm2015/lib/Shared/{components → Components}/app-base-component.js +0 -0
- /package/lib/Shared/{components → Components}/app-base-component.d.ts +0 -0
- /package/lib/Shared/{components → Components}/ng-tag-input.d.ts +0 -0
|
@@ -636,12 +636,15 @@ class DateInputComponent {
|
|
|
636
636
|
this.DatePickerFormControl.updateValueAndValidity();
|
|
637
637
|
});
|
|
638
638
|
}
|
|
639
|
+
getDateValue() {
|
|
640
|
+
return this.options.Value ? this.datepipe.transform(this.options.Value, 'MMM d, y, h:mm a') : this.UtilityService.getResourceValue('NA');
|
|
641
|
+
}
|
|
639
642
|
}
|
|
640
643
|
DateInputComponent.controlContainerstatic = null;
|
|
641
644
|
DateInputComponent.decorators = [
|
|
642
645
|
{ type: Component, args: [{
|
|
643
646
|
selector: 'BBSF-DateTimePicker',
|
|
644
|
-
template: "
|
|
647
|
+
template: "<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\r\n {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input autocomplete=\"off\" (dateTimeChange)=\"onDateSelect($event)\" [dir]=\"textDir\" class=\"form-control bnsights-control\r\n {{options.ExtraClasses}} \" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" [owlDateTime]=\"dt1\" [owlDateTimeTrigger]=\"dt1\" [class.is-invalid]=\"DatePickerFormControl.invalid &&\r\n DatePickerFormControl.touched\" [min]=\"options.StartDate\" [max]=\"options.EndDate\" [hour12Timer]=\"options.Hour12Timer\"\r\n [selectMode]=\"getSelectMode(options.SelectMode)\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" #Dateinput>\r\n\r\n <owl-date-time [pickerType]=\"getPickerType(options.PickerType)\" [startView]=\"startView\" [firstDayOfWeek]=\"options.FirstDayOfWeek\"\r\n [hour12Timer]=\"options.Hour12Timer\" #dt1></owl-date-time>\r\n <!--icon-->\r\n <span class=\"copy-clipboard\" [owlDateTimeTrigger]=\"dt1\">\r\n <span class=\"svg-icon\">\r\n <svg id=\"Group_356\" data-name=\"Group 356\" xmlns=\"http://www.w3.org/2000/svg\" width=\"15\" height=\"15\" viewBox=\"0\r\n 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\"\r\n fill=\"#d5d5d5\"></path>\r\n <path id=\"Path_6740\" data-name=\"Path 6740\"\r\n 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\"\r\n fill=\"#595959\"></path>\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getDateValue()}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\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 &&\r\n DatePickerFormControl.touched)\">\r\n {{getErrorValidation(DatePickerFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched\r\n )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>",
|
|
645
648
|
providers: [
|
|
646
649
|
{ provide: OwlDateTimeIntl, useClass: DefaultIntl }
|
|
647
650
|
]
|
|
@@ -1145,7 +1148,7 @@ FileUploadComponent.controlContainerstatic = null;
|
|
|
1145
1148
|
FileUploadComponent.decorators = [
|
|
1146
1149
|
{ type: Component, args: [{
|
|
1147
1150
|
selector: 'BBSF-FileUplaod',
|
|
1148
|
-
template: "<div class=\"form-group bbsf-control bbsf-file-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div
|
|
1151
|
+
template: "<div class=\"form-group bbsf-control bbsf-file-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div ng2FileDrop class=\"bbsf-input-container {{options.ExtraClasses}}\"\r\n *ngIf=\"(options.IsDropZone)&&(!((options.IsMultipleFile==false)&&(uploader.queue.length)>0))&&!options.IsReadonly\"\r\n [ngClass]=\"{'another-file-over-class': hasAnotherDropZoneOver}\" (onFileDrop)=\"onFileChange()\" (fileOver)=\"fileOverAnother($event)\"\r\n [uploader]=\"uploader\" [accept]=\"AcceptedType\" (change)=\"onFileChange()\" id=\"{{options.Name}}\"\r\n multiple=\"{{options.IsMultipleFile?'multiple':''}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" type=\"file\"\r\n formControlName=\"{{options.Name}}\" #fileInput [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"DragAndDropHere\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"(!options.IsDropZone)&&!(isHideInput())&&!options.IsReadonly\" (click)=\"fileInput.click();\">\r\n <div class=\"dropzone-label\">\r\n <div class=\"svg-and-validation\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg text-center\">{{UtilityService.getResourceValue(\"Upload\")}} </div>\r\n <div class=\"bbsf-validation-msg text-center\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n <div class=\"bbsf-validation-msg ng-star-inserted text-center text-danger\"\r\n *ngIf=\"ValidationCountMessage &&options.IsMultipleFile &&options.MaxNoOfFiles>0\" [innerHTML]=\"ValidationCountMessage\"></div>\r\n </div>\r\n </div>\r\n <input ng2FileSelect [uploader]=\"uploader\" [accept]=\"AcceptedType\"\r\n class=\"fileSelector customFileUploadPlacment hidden v-required-multiplefiles d-none\" multiple=\"{{options.IsMultipleFile?'multiple':''}}\"\r\n name=\"file\" type=\"file\" value=\"\" autocomplete=\"off\" (change)=\"onFileChange()\" [ngClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n id=\"{{options.Name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" #fileInput\r\n [class.is-invalid]=\"fileUploadFormControl.invalid && fileUploadFormControl.touched\">\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly && !options.Value\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </div>\r\n <!--items uploaded-->\r\n <div class=\"uploaded-items\">\r\n <div class=\"btn-group\" *ngFor=\"let item of uploader.queue\">\r\n <a href=\"{{ item?.file?.rawFile?.url }}\" class=\"btn btn-download-file btn-sm\" download>\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M21 22H3C2.4 22 2 21.6 2 21C2 20.4 2.4 20 3 20H21C21.6 20 22 20.4 22 21C22 21.6 21.6 22 21 22ZM13 13.4V3C13 2.4 12.6 2 12 2C11.4 2 11 2.4 11 3V13.4H13Z\"\r\n fill=\"currentColor\"></path>\r\n <path opacity=\"0.3\" d=\"M7 13.4H17L12.7 17.7C12.3 18.1 11.7 18.1 11.3 17.7L7 13.4Z\" fill=\"currentColor\"></path>\r\n </svg>\r\n <span class=\"file-name\">{{ item?.file?.name }}</span>\r\n </a>\r\n <button *ngIf=\"!options.IsReadonly\" class=\"btn btn-download-file btn-sm btn-danger\" (click)=\"item.remove();removeFromControlValue(item)\">\r\n <i class=\"fa fa-times px-0\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(fileUploadFormControl.invalid && fileUploadFormControl.touched)\">\r\n {{getErrorValidation(fileUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\"> {{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n\r\n</div>"
|
|
1149
1152
|
},] }
|
|
1150
1153
|
];
|
|
1151
1154
|
FileUploadComponent.ctorParameters = () => [
|
|
@@ -1310,6 +1313,10 @@ class MultiLingualTextBoxComponent {
|
|
|
1310
1313
|
}
|
|
1311
1314
|
this.ArabicFormControl.setValue(this.options.Value.Arabic);
|
|
1312
1315
|
this.EnglishFormControl.setValue(this.options.Value.English);
|
|
1316
|
+
if (this.options.IsReadonly && !this.options.Value) {
|
|
1317
|
+
this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');
|
|
1318
|
+
this.options.Value.English = this.UtilityService.getResourceValue('NA');
|
|
1319
|
+
}
|
|
1313
1320
|
this.MultiLingualTextBoxFormControlHost.ngSubmit.subscribe((value) => {
|
|
1314
1321
|
this.group.markAllAsTouched();
|
|
1315
1322
|
this.markAllAsTouched = true;
|
|
@@ -1638,6 +1645,8 @@ class TextAreaComponent {
|
|
|
1638
1645
|
TextAreaComponent.controlContainerstatic = this.controlContainer;
|
|
1639
1646
|
}
|
|
1640
1647
|
ngOnInit() {
|
|
1648
|
+
if (this.options.IsReadonly && !this.options.Value)
|
|
1649
|
+
this.options.Value = this.UtilityService.getResourceValue('NA');
|
|
1641
1650
|
if (this.options.ForceDirection)
|
|
1642
1651
|
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
1643
1652
|
else
|
|
@@ -1937,6 +1946,10 @@ class MultiLingualTextAreaComponent {
|
|
|
1937
1946
|
this.group.markAllAsTouched();
|
|
1938
1947
|
this.markAllAsTouched = true;
|
|
1939
1948
|
});
|
|
1949
|
+
if (this.options.IsReadonly && !this.options.Value) {
|
|
1950
|
+
this.options.Value.Arabic = this.UtilityService.getResourceValue('NA');
|
|
1951
|
+
this.options.Value.English = this.UtilityService.getResourceValue('NA');
|
|
1952
|
+
}
|
|
1940
1953
|
});
|
|
1941
1954
|
}
|
|
1942
1955
|
onTextChange() {
|
|
@@ -2434,6 +2447,8 @@ class DropdownListComponent {
|
|
|
2434
2447
|
else
|
|
2435
2448
|
return this.options.DataSource.filter(item => this.options.SelectedItems.includes(item[this.options.ItemTempletkey])).map(item => item[this.options.ItemTempletvalue]);
|
|
2436
2449
|
}
|
|
2450
|
+
else
|
|
2451
|
+
return this.UtilityService.getResourceValue('NA');
|
|
2437
2452
|
}
|
|
2438
2453
|
onItemSelect() {
|
|
2439
2454
|
this.onChangeService.ChangeValue(this.options.Name);
|
|
@@ -2480,7 +2495,7 @@ DropdownListComponent.decorators = [
|
|
|
2480
2495
|
{ type: Component, args: [{
|
|
2481
2496
|
// tslint:disable-next-line: component-selector
|
|
2482
2497
|
selector: 'BBSF-DropdownList',
|
|
2483
|
-
template: "<div class=\"form-group bbsf-control bbsf-dropdown\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n
|
|
2498
|
+
template: "<div class=\"form-group bbsf-control bbsf-dropdown\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\"\r\n aria-required=\"true\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\">\r\n <!--input enabled bootstrap select-->\r\n <ng-select class=\"form-control\" *ngIf=\"options.DisableBootstrapSelect==false&&!options.IsReadonly\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n [bindValue]=\"options.ItemTempletkey\" [bindLabel]=\"options.ItemTempletvalue\" [items]=\"options.DataSource\" [notFoundText]=\"options.NotFoundText\"\r\n [maxSelectedItems]=\"options.LimitSelection\" [searchable]=\"options.AllowSearchFilter\" [multiple]=\"!options.SingleSelection\"\r\n [readonly]=\"options.IsDisabled\" [clearable]=\"true\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.Name}}\" [(ngModel)]=\"options.SelectedItems\" (change)=\"onItemSelect()\"\r\n (clear)=\"Clear()\" [class.is-invalid]=\"DropdownListFormControl.invalid && DropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.SingleSelection ? true : false\">\r\n <!--No checkbox-->\r\n <ng-template *ngIf=\"!options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.DisabledItemsTooltipValue : ''}}\" id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox-->\r\n <ng-template *ngIf=\"options.ShowCheckbox\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <div class=\" bbsf-checkbox\">\r\n <div class=\"bbsf-input-container align-items-center\">\r\n <input class=\"bbsf-checkbox-input\" id=\"item-{{index}}\" type=\"checkbox\" [ngModelOptions]=\"{standalone: true}\"\r\n [ngModel]=\"item$.selected\" />\r\n <div class=\"label-subtext-container\">\r\n <label class=\"bbsf-label\" id={{item.key}}>{{item.value}}</label>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.DisableBootstrapSelect&&!options.IsReadonly\" class=\"form-control\" dir=\"{{options.ForceDirection==2?'rtl':''}}\"\r\n (change)=\"onItemSelect()\" [(ngModel)]=\"options.SelectedItems\" [disabled]=\"options.IsDisabled\" formControlName=\"{{options.Name}}\">\r\n <option value=\"\" disabled>--{{UtilityService.getResourceValue(\"select\")}}--</option>\r\n <option *ngFor=\"let item of options.DataSource\" value=\"{{item.key}}\" [ngValue]=\"item.key\">\r\n {{item.value}}\r\n </option>\r\n </select>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\">{{getSelectedItemValue()}}</span>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(DropdownListFormControl.invalid && DropdownListFormControl.touched)\">\r\n {{getErrorValidation(DropdownListFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n</div>"
|
|
2484
2499
|
},] }
|
|
2485
2500
|
];
|
|
2486
2501
|
DropdownListComponent.ctorParameters = () => [
|
|
@@ -2541,6 +2556,8 @@ class PhoneComponent {
|
|
|
2541
2556
|
PhoneComponent.controlContainerstatic = this.controlContainer;
|
|
2542
2557
|
}
|
|
2543
2558
|
ngOnInit() {
|
|
2559
|
+
if (this.options.IsReadonly && !this.options.Value)
|
|
2560
|
+
this.options.Value = this.UtilityService.getResourceValue('NA');
|
|
2544
2561
|
if (this.options.ForceDirection)
|
|
2545
2562
|
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
2546
2563
|
else
|
|
@@ -2568,7 +2585,7 @@ class PhoneComponent {
|
|
|
2568
2585
|
if (this.options.IsDisabled) {
|
|
2569
2586
|
this.PhoneFormControl.disable();
|
|
2570
2587
|
}
|
|
2571
|
-
this.PhoneControlHost.ngSubmit.subscribe((
|
|
2588
|
+
this.PhoneControlHost.ngSubmit.subscribe(() => {
|
|
2572
2589
|
this.group.markAllAsTouched();
|
|
2573
2590
|
this.markAllAsTouched = true;
|
|
2574
2591
|
});
|
|
@@ -2603,7 +2620,7 @@ PhoneComponent.controlContainerstatic = null;
|
|
|
2603
2620
|
PhoneComponent.decorators = [
|
|
2604
2621
|
{ type: Component, args: [{
|
|
2605
2622
|
selector: 'BBSF-Phone',
|
|
2606
|
-
template: "
|
|
2623
|
+
template: "<div class=\"form-group bbsf-control bbsf-phone\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label\r\n {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div *ngIf=\"!options.IsReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <ngx-intl-tel-input [dir]=\"textDir\" [cssClass]=\"options.ExtraClasses\" [preferredCountries]=\"options.PreferredCountries\"\r\n [onlyCountries]=\"options.OnlyCountries\" [enableAutoCountrySelect]=\"true\" [enablePlaceholder]=\"options.EnablePlaceholder\"\r\n [searchCountryFlag]=\"options.AllowSearch\" [searchCountryField]=\"[SearchCountryField.Iso2,\r\n SearchCountryField.Name]\" [selectFirstCountry]=\"options.SelectFirstCountry\"\r\n [selectedCountryISO]=\"getSelectedCountry(options.SelectedCountryISO)\" [separateDialCode]=\"separateDialCode\" maxlength=\"15\"\r\n [(ngModel)]=\"options.Value\" [phoneValidation]=\"options.PhoneValidation\" [id]=\"options.Name\" name=\"{{options.Name}}\"\r\n formControlName=\"{{options.Name}}\" (change)=\"onValueChanged()\" [class.is-invalid]=\"PhoneFormControl.invalid &&\r\n PhoneFormControl.touched\" aria-invalid=\"true\" class=\"form-control\">\r\n </ngx-intl-tel-input>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\"><a href=\"tel:{{options.Value}}\">{{options.Value}}</a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!options.IsReadonly\" class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(PhoneFormControl.invalid &&\r\n PhoneFormControl.touched)\">\r\n {{getErrorValidation(PhoneFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched)||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>"
|
|
2607
2624
|
},] }
|
|
2608
2625
|
];
|
|
2609
2626
|
PhoneComponent.ctorParameters = () => [
|
|
@@ -2620,91 +2637,6 @@ PhoneComponent.propDecorators = {
|
|
|
2620
2637
|
OnChange: [{ type: Output }]
|
|
2621
2638
|
};
|
|
2622
2639
|
|
|
2623
|
-
class ToggleslideComponent {
|
|
2624
|
-
// tslint:disable-next-line: max-line-length
|
|
2625
|
-
constructor(controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
2626
|
-
this.controlUtility = controlUtility;
|
|
2627
|
-
this.controlContainer = controlContainer;
|
|
2628
|
-
this.ToggleslideControlHost = ToggleslideControlHost;
|
|
2629
|
-
this.TextControlHost = TextControlHost;
|
|
2630
|
-
this.UtilityService = UtilityService;
|
|
2631
|
-
this.controlValidationService = controlValidationService;
|
|
2632
|
-
this.globalSettings = globalSettings;
|
|
2633
|
-
this.OnChange = new EventEmitter();
|
|
2634
|
-
this.SlideValue = false;
|
|
2635
|
-
this.markAllAsTouched = false;
|
|
2636
|
-
ToggleslideComponent.controlContainerstatic = this.controlContainer;
|
|
2637
|
-
}
|
|
2638
|
-
ngOnInit() {
|
|
2639
|
-
if (this.options.ForceDirection)
|
|
2640
|
-
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
2641
|
-
else
|
|
2642
|
-
this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
|
|
2643
|
-
this.group.addControl(this.options.Name, new FormControl(''));
|
|
2644
|
-
this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
2645
|
-
let validationRules = [];
|
|
2646
|
-
let validationRulesasync = [];
|
|
2647
|
-
this.SlideValue = this.options.Value == undefined ? false : this.options.Value;
|
|
2648
|
-
if (!this.options.ViewType)
|
|
2649
|
-
this.options.ViewType = this.globalSettings.ViewType;
|
|
2650
|
-
if (this.options.IsDisabled || this.options.IsReadonly) {
|
|
2651
|
-
this.ToggleslideFormControl.disable();
|
|
2652
|
-
}
|
|
2653
|
-
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
2654
|
-
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
2655
|
-
}
|
|
2656
|
-
ngAfterViewInit() {
|
|
2657
|
-
if (this.options.AttributeList != null) {
|
|
2658
|
-
var element = document.getElementById(this.options.Name);
|
|
2659
|
-
for (let index = 0; index < this.options.AttributeList.length; index++) {
|
|
2660
|
-
element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);
|
|
2661
|
-
}
|
|
2662
|
-
}
|
|
2663
|
-
}
|
|
2664
|
-
resetError() {
|
|
2665
|
-
this.controlValidationService.RemoveGlobalError();
|
|
2666
|
-
}
|
|
2667
|
-
showGlobalError() {
|
|
2668
|
-
this.controlUtility.showGlobalError();
|
|
2669
|
-
}
|
|
2670
|
-
getErrorValidation(ErrorList) {
|
|
2671
|
-
if (this.markAllAsTouched && this.group.invalid) {
|
|
2672
|
-
this.showGlobalError();
|
|
2673
|
-
this.markAllAsTouched = false;
|
|
2674
|
-
}
|
|
2675
|
-
return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
|
|
2676
|
-
}
|
|
2677
|
-
changeValueToggle() {
|
|
2678
|
-
this.OnChange.emit(this.SlideValue);
|
|
2679
|
-
this.options.Value = this.SlideValue;
|
|
2680
|
-
this.ToggleslideFormControl.setValue(this.SlideValue);
|
|
2681
|
-
if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {
|
|
2682
|
-
this.controlUtility.patchControlValue(this.SlideValue, this.options.PatchFunction, this.options.PatchPath);
|
|
2683
|
-
}
|
|
2684
|
-
}
|
|
2685
|
-
}
|
|
2686
|
-
ToggleslideComponent.controlContainerstatic = null;
|
|
2687
|
-
ToggleslideComponent.decorators = [
|
|
2688
|
-
{ type: Component, args: [{
|
|
2689
|
-
selector: 'BBSF-Toggleslide',
|
|
2690
|
-
template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\"class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"SlideValue\" [dir]=\"textDir\" [cssClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.Name}}\" disableRipple=\"true\" [disabled]=\"options.IsDisabled\" (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.Value\">{{UtilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.Value\">{{UtilityService.getResourceValue(\"No\")}}</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 </div>\r\n</div>\r\n"
|
|
2691
|
-
},] }
|
|
2692
|
-
];
|
|
2693
|
-
ToggleslideComponent.ctorParameters = () => [
|
|
2694
|
-
{ type: ControlUtility },
|
|
2695
|
-
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
2696
|
-
{ type: FormGroupDirective },
|
|
2697
|
-
{ type: FormGroupDirective },
|
|
2698
|
-
{ type: UtilityService },
|
|
2699
|
-
{ type: ControlValidationService },
|
|
2700
|
-
{ type: GlobalSettings }
|
|
2701
|
-
];
|
|
2702
|
-
ToggleslideComponent.propDecorators = {
|
|
2703
|
-
group: [{ type: Input }],
|
|
2704
|
-
options: [{ type: Input }],
|
|
2705
|
-
OnChange: [{ type: Output }]
|
|
2706
|
-
};
|
|
2707
|
-
|
|
2708
2640
|
class HtmlEditorComponent {
|
|
2709
2641
|
constructor(zone, controlUtility, controlContainer, HtmlEditorControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
2710
2642
|
this.zone = zone;
|
|
@@ -3164,8 +3096,8 @@ class MultiLingualHtmlEditorComponent {
|
|
|
3164
3096
|
]));
|
|
3165
3097
|
// this.ArabicHtmlEditorFormControl.setValidators(this.ArabicValidationRules);
|
|
3166
3098
|
// this.ArabicHtmlEditorFormControl.setAsyncValidators(this.ArabicValidationRulesasync);
|
|
3167
|
-
this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);
|
|
3168
|
-
this.EnglishHtmlEditorFormControl.setAsyncValidators(this.EnglishValidationRulesasync);
|
|
3099
|
+
// this.EnglishHtmlEditorFormControl.setValidators(this.EnglishValidationRules);
|
|
3100
|
+
// this.EnglishHtmlEditorFormControl.setAsyncValidators(this.EnglishValidationRulesasync);
|
|
3169
3101
|
if (this.options.IsDisabled) {
|
|
3170
3102
|
this.EnglishHtmlEditorFormControl.disable();
|
|
3171
3103
|
this.ArabicHtmlEditorFormControl.disable();
|
|
@@ -3329,7 +3261,7 @@ MultiLingualHtmlEditorComponent.controlContainerstatic = null;
|
|
|
3329
3261
|
MultiLingualHtmlEditorComponent.decorators = [
|
|
3330
3262
|
{ type: Component, args: [{
|
|
3331
3263
|
selector: 'BBSF-MultiLingualHtmlEditor',
|
|
3332
|
-
template: "
|
|
3264
|
+
template: "<div [formGroup]=\"group\">\r\n <div class=\"bbsf-control form-group bbsf-multilang-htmleditor mb-0\" [formGroup]=\"MultilingualHtmlEditorgroup\">\r\n <div class=\"row\">\r\n <!--English htmleditor-->\r\n <div [ngClass]=\"ShowArabicHtmlEditor? 'col-md-6' : 'col-md-12'\" *ngIf=\"ShowEnglishHtmlEditor\" class=\" bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideEnglishLabel\">\r\n {{(options.EnglishLabelValue!=null&&options.EnglishLabelValue!=\"\")?options.EnglishLabelValue:options.LabelValue+\"in English\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)&&IsShowAsteriskInEnglish))&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--input-->\r\n <angular-editor class=\"{{options.ExtraClasses_EN}}\" (change)=\"onTextChange('en')\"\r\n [class.is-invalid]=\"EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched\" formControlName=\"English\"\r\n [config]=\"editorEnglishConfig\"></angular-editor>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.English\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='') ||(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!='')\">\r\n {{(options.EnglishLabelDescription!=null&&options.EnglishLabelDescription!=\"\")?options.EnglishLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(EnglishHtmlEditorFormControl.invalid && EnglishHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(EnglishHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <!--Arabic htmleditor-->\r\n <div *ngIf=\"ShowArabicHtmlEditor\" [ngClass]=\"ShowEnglishHtmlEditor? 'col-md-6' : 'col-md-12'\" class=\"bbsf-multilang-form-group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label class=\"bbsf-label {{options.LabelExtraClasses}}\" [hidden]=\"options.IsHideArabicLabel\">\r\n {{(options.ArabicLabelValue!=null&&options.ArabicLabelValue!=\"\")?options.ArabicLabelValue:options.LabelValue+\"in Arabic\"}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&IsShowAsteriskInArabic)&&!options.IsReadonly\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.IsReadonly\">\r\n <!--input-->\r\n <angular-editor dir=\"rtl\" class=\"{{options.ExtraClasses_AR}} \" (change)=\"onTextChange('ar')\"\r\n [class.is-invalid]=\"ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched\" formControlName=\"Arabic\"\r\n [config]=\"editorArabicConfig\"></angular-editor>\r\n </div>\r\n <div *ngIf=\"options.IsReadonly\"><span class=\"readonly-view\" [innerHTML]=\"options.Value.Arabic\"></span>\r\n\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\"\r\n *ngIf=\"(options.LabelDescription!=null&&options.LabelDescription!='')||(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!='')\">\r\n {{(options.ArabicLabelDescription!=null&&options.ArabicLabelDescription!=\"\")?options.ArabicLabelDescription:options.LabelDescription}}\r\n </div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ArabicHtmlEditorFormControl.invalid && ArabicHtmlEditorFormControl.touched)\">\r\n {{getErrorValidation(ArabicHtmlEditorFormControl.errors|keyvalue)}}\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>"
|
|
3333
3265
|
},] }
|
|
3334
3266
|
];
|
|
3335
3267
|
MultiLingualHtmlEditorComponent.ctorParameters = () => [
|
|
@@ -3665,7 +3597,7 @@ ImageUploaderComponent.controlContainerstatic = null;
|
|
|
3665
3597
|
ImageUploaderComponent.decorators = [
|
|
3666
3598
|
{ type: Component, args: [{
|
|
3667
3599
|
selector: 'BBSF-ImageUpload',
|
|
3668
|
-
template: "<div class=\"form-group bbsf-control bbsf-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\"
|
|
3600
|
+
template: "<div class=\"form-group bbsf-control bbsf-image-upload\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--Allow dropZone-->\r\n <div *ngIf=\"options.AllowDropZone&&!options.IsReadonly\" class=\"bbsf-input-container {{options.ExtraClasses}}\" ngx-dropzone\r\n [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\" [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl\r\n formControlName=\"{{options.Name}}\" [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\"\r\n [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n <ngx-dropzone-label class=\"dropzone-label\">\r\n <img *ngIf=\"ImageSource\" [src]=\"ImageSource\"\r\n style=\"align-items: center;border-radius: 5px;display: flex;height: 100px;justify-content: center;margin: 10px;max-width: 180px;min-height: 100px;min-width: 180px;padding: 0px 20px;position: relative;\" />\r\n <div class=\"svg-and-validation\" *ngIf=\"!ImageSource\">\r\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"width: 50px; height: 50px;\">\r\n <path opacity=\"0.3\"\r\n d=\"M5 16C3.3 16 2 14.7 2 13C2 11.3 3.3 10 5 10H5.1C5 9.7 5 9.3 5 9C5 6.2 7.2 4 10 4C11.9 4 13.5 5 14.3 6.5C14.8 6.2 15.4 6 16 6C17.7 6 19 7.3 19 9C19 9.4 18.9 9.7 18.8 10C18.9 10 18.9 10 19 10C20.7 10 22 11.3 22 13C22 14.7 20.7 16 19 16H5ZM8 13.6H16L12.7 10.3C12.3 9.89999 11.7 9.89999 11.3 10.3L8 13.6Z\"\r\n fill=\"currentColor\" style=\"fill: #a1a1a1;\"></path>\r\n <path d=\"M11 13.6V19C11 19.6 11.4 20 12 20C12.6 20 13 19.6 13 19V13.6H11Z\" fill=\"currentColor\" style=\"fill: #989898;\"></path>\r\n </svg>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n </ngx-dropzone-label>\r\n <ngx-dropzone-image-preview class=\"dropzone-preview\" *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n </div>\r\n <!--Not allowed dropZone-->\r\n <div *ngIf=\"!options.AllowDropZone&&!options.IsReadonly\">\r\n <ngx-dropzone-label *ngIf=\"files.length==0\">\r\n <div #element (click)=\"showImageUploader(element)\">\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n </ngx-dropzone-label>\r\n <div class=\"d-none {{options.ExtraClasses}}\" ngx-dropzone [disabled]=\"options.IsDisabled\" [accept]=\"AcceptedType\"\r\n [multiple]=\"options.IsMultiple\" (change)=\"onFileChange($event)\" ngDefaultControl formControlName=\"{{options.Name}}\"\r\n [maxFileSize]=\"maxFileSize\" id=\"{{options.Name}}\" [class.is-invalid]=\"ImageUploadFormControl.invalid && ImageUploadFormControl.touched\">\r\n </div>\r\n <ngx-dropzone-image-preview *ngFor=\"let f of files\" [file]=\"f\" [removable]=\"true\" (removed)=\"removeFromControlValue(f)\"\r\n ngProjectAs=\"ngx-dropzone-preview\">\r\n </ngx-dropzone-image-preview>\r\n <!--Validation text-->\r\n <div class=\"bbsf-validation-msg\" *ngIf=\"ValidationMessage\" [innerHTML]=\"ValidationMessage\"></div>\r\n </div>\r\n\r\n <ngx-dropzone-label *ngIf=\"files.length==0&&options.IsReadonly\">\r\n <div *ngIf=\"ImageSource\" #element>\r\n <img [src]=\"ImageSource\" />\r\n </div>\r\n <div *ngIf=\"!ImageSource\">\r\n <span class=\"readonly-view\">{{UtilityService.getResourceValue('NA')}}</span>\r\n </div>\r\n </ngx-dropzone-label>\r\n </div>\r\n <div class=\"subtext-container\" *ngIf=\"!options.IsReadonly\">\r\n <!-- required text-->\r\n <div class=\"bbsf-validation\" *ngIf=\"(ImageUploadFormControl.invalid && ImageUploadFormControl.touched)\">\r\n {{getErrorValidation(ImageUploadFormControl.errors|keyvalue)}}\r\n </div>\r\n\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n </div>\r\n <!-- image cropper modal-->\r\n <div id=\"mdlSample\" class=\"modal bbsf-cropper-modal\" role=\"dialog\" [ngStyle]=\"{'display': mdlSampleIsOpen ? 'block' : 'none', 'opacity': 1}\">\r\n <div class=\"modal-dialog modal-lg\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h4 class=\"modal-title\">\r\n {{UtilityService.getResourceValue(\"CropImage\")}}\r\n </h4>\r\n <button type=\"button\" class=\"btn-close\" data-dismiss=\"modal\" (click)=\"openModal(false)\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <div *ngIf=\"imageUrl\">\r\n <angular-cropper #angularCropper [cropperOptions]=\"config\" [imageUrl]=\"imageUrl\">\r\n </angular-cropper>\r\n <img [src]=\"imgwUrl\" />\r\n </div>\r\n <div class=\"cropper-btns\">\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"zoomImage(0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomIn\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-plus\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"zoomImage(-0.1)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"ZoomOut\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-search-minus\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"moveImage(-10,0)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveLeft\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-left\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(10,0)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-right\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,-10)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveUp\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-up\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"moveImage(0,10)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"MoveDown\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-arrow-down\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"btn-group\">\r\n <button type=\"button\" (click)=\"rotateImage(-45)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateLeft\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-undo-alt\"></span>\r\n </span>\r\n </button>\r\n <button type=\"button\" (click)=\"rotateImage(45)\" class=\"btn btn-default\" ngbTooltip='{{UtilityService.getResourceValue(\"RotateRight\")}}'>\r\n <span class=\"docs-tooltip\">\r\n <span class=\"fa fa-redo-alt\"></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"modal-footer\" align=\"right\">\r\n <button type=\"button\" id=\"btnClose\" class=\"btn btn-sm btn-light\" (click)=\"openModal(false)\">\r\n {{UtilityService.getResourceValue(\"CancelLabel\")}}\r\n </button>\r\n <button type=\"button\" (click)=\"cropImage()\" id=\"btnOK\" class=\"btn btn-sm btn-brand\">\r\n {{UtilityService.getResourceValue(\"Crop\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- readonly -->\r\n\r\n\r\n</div>"
|
|
3669
3601
|
},] }
|
|
3670
3602
|
];
|
|
3671
3603
|
ImageUploaderComponent.ctorParameters = () => [
|
|
@@ -4144,6 +4076,8 @@ class AutocompleteTextBoxComponent {
|
|
|
4144
4076
|
AutocompleteTextBoxComponent.controlContainerstatic = this.controlContainer;
|
|
4145
4077
|
}
|
|
4146
4078
|
ngOnInit() {
|
|
4079
|
+
if (this.options.IsReadonly && !this.options.Value)
|
|
4080
|
+
this.options.Value = this.UtilityService.getResourceValue('NA');
|
|
4147
4081
|
if (this.options.ForceDirection)
|
|
4148
4082
|
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
4149
4083
|
else
|
|
@@ -4365,6 +4299,8 @@ class TagsInputComponent {
|
|
|
4365
4299
|
this.changeValueSubscription.unsubscribe();
|
|
4366
4300
|
}
|
|
4367
4301
|
ngOnInit() {
|
|
4302
|
+
if (this.options.IsReadonly && !this.options.Value)
|
|
4303
|
+
this.options.Value = this.UtilityService.getResourceValue('NA');
|
|
4368
4304
|
if (this.options.ForceDirection)
|
|
4369
4305
|
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
4370
4306
|
else
|
|
@@ -5188,6 +5124,9 @@ class TextboxComponent {
|
|
|
5188
5124
|
TextboxComponent.controlContainerstatic = this.controlContainer;
|
|
5189
5125
|
}
|
|
5190
5126
|
ngOnInit() {
|
|
5127
|
+
if (this.options.IsReadonly && !this.options.Value) {
|
|
5128
|
+
this.options.Value = this.UtilityService.getResourceValue('NA');
|
|
5129
|
+
}
|
|
5191
5130
|
if (this.options.ForceDirection)
|
|
5192
5131
|
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
5193
5132
|
else
|
|
@@ -5217,7 +5156,7 @@ class TextboxComponent {
|
|
|
5217
5156
|
]));
|
|
5218
5157
|
break;
|
|
5219
5158
|
case InputType.URL:
|
|
5220
|
-
var pattern = new RegExp("(https
|
|
5159
|
+
var pattern = new RegExp("(https:\/\/www\.|http:\/\/www\.|https:\/\/|http:\/\/)?[a-zA-Z0-9]{2,}(\.[a-zA-Z0-9]{2,})(\.[a-zA-Z0-9]{2,})?");
|
|
5221
5160
|
this.validationRules.push(Validators.compose([
|
|
5222
5161
|
this.controlUtility.patternValidator(pattern, { URLValidationKey: this.URLValidationKey }),
|
|
5223
5162
|
]));
|
|
@@ -5415,7 +5354,7 @@ TextboxComponent.controlContainerstatic = null;
|
|
|
5415
5354
|
TextboxComponent.decorators = [
|
|
5416
5355
|
{ type: Component, args: [{
|
|
5417
5356
|
selector: 'BBSF-TextBox',
|
|
5418
|
-
template: "<div class=\"form-group bbsf-control bbsf-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\"
|
|
5357
|
+
template: "<div class=\"form-group bbsf-control bbsf-textbox\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.ShowAsterisk&&options.IsRequired)||(options.IsRequired))&&!options.IsReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--MaskPattern-->\r\n <div *ngIf=\"MaskPattern!=null&&MaskPattern!=''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div *ngIf=\"options.Icon!=null\" class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}}\" [mask]=\"MaskPattern\" placeHolderCharacter=\" \" [showMaskTyped]=\"true\" [validation]=\"true\"\r\n [dir]=\"textDir\" aria-describedby=\"email-error\" aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [(ngModel)]=\"options.Value\" [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\"\r\n (keyup)=\"onTextChange()\" [readonly]=\"options.IsReadonly\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" *ngIf=\"options.EnableCopyToClipboard\" (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!--NoMaskPattern-->\r\n <div *ngIf=\"MaskPattern==null||MaskPattern==''&&!options.IsReadonly\" class=\"bbsf-input-container\"\r\n [ngClass]=\"options.EnableCopyToClipboard? 'p-40px' : '' \">\r\n <!--Icon-->\r\n <div class=\"svg svg-icon-grey bbsf-icon\" [ngClass]=\"(options.IconPosition==1)?'bbsf-left-icon':'bbsf-right-icon'\" *ngIf=\"options.Icon!=null\">\r\n <span [inlineSVG]=\"options.Icon\"></span>\r\n </div>\r\n <!--input-->\r\n <input class=\"form-control {{options.ExtraClasses}} \" [dir]=\"textDir\" (focus)=\"onFocus(true)\" (focusout)=\"onFocus(false)\"\r\n maxlength=\"{{options.MaxLength}}\" minlength=\"{{options.MinLength}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n formControlName=\"{{options.Name}}\" type=\"{{getInputType(options.Type)}}\"\r\n [class.is-invalid]=\"TextBoxFormControl.invalid && TextBoxFormControl.touched\" placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\"\r\n autocomplete=\"{{options.AutoComplete}}\" (change)=\"trimControlValue()\" (keyup)=\"onTextChange()\" [(ngModel)]=\"options.Value\"\r\n (keydown)=\"WordCountArray>options.MaxWordCount&&$event.keyCode !=8?$event.preventDefault():null\" [readonly]=\"options.IsReadonly\" #userinput>\r\n <!--CopyToClipboard-->\r\n <span class=\"copy-clipboard\" ngbTooltip=\"Copied!\" triggers=\"click:blur\" *ngIf=\"options.EnableCopyToClipboard\"\r\n (click)=\"copyInputMessage(userinput)\">\r\n <i class=\"fas fa-copy\"></i>\r\n </span>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <a *ngIf=\"options.Type==inputType.Email\" href=\"mailto: {{options.Value}}\">{{options.Value}}</a>\r\n <a *ngIf=\"options.Type==inputType.URL\" href=\"{{options.Value}}\" target=\"_blank\">{{options.Value}}</a>\r\n <span *ngIf=\"options.Type!=inputType.URL&&options.Type!=inputType.Email\" class=\"readonly-view\">{{options.Value}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!--wordCount-->\r\n <div class=\"bbsf-word-count\" *ngIf=\"options.MaxWordCount>0&&IsShowWordCount\">{{WordCount}}/{{options.MaxWordCount}}\r\n Words</div>\r\n <!-- CharsLimitMsg-->\r\n <div class=\"bbsf-character-count\" *ngIf=\"showCharsLimitMsg\"\r\n [ngClass]=\"{'badge-light-warning': charsLimitMsgClass === 'warning', 'badge-light-danger' : charsLimitMsgClass === 'danger' }\">\r\n {{maxLimitWarningMsg}}\r\n </div>\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\" [dir]=\"textDir\" *ngIf=\"(TextBoxFormControl.invalid && TextBoxFormControl.touched)\">\r\n {{getErrorValidation(TextBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty)\">{{resetError()}}</div>\r\n</div>"
|
|
5419
5358
|
},] }
|
|
5420
5359
|
];
|
|
5421
5360
|
TextboxComponent.ctorParameters = () => [
|
|
@@ -6016,7 +5955,7 @@ FormComponent.decorators = [
|
|
|
6016
5955
|
{ type: Component, args: [{
|
|
6017
5956
|
// tslint:disable-next-line: component-selector
|
|
6018
5957
|
selector: 'BBSF-Form',
|
|
6019
|
-
template: "<form id=\"{{fromName}}\" [FormGroup]=\"options.FormGroup\" (
|
|
5958
|
+
template: "<form id=\"{{fromName}}\" [FormGroup]=\"options.FormGroup\" (keydown.enter)=\"submit()\" (ngSubmit)=\"submit()\">\r\n\r\n <ng-template #content><ng-content></ng-content></ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n</form>"
|
|
6020
5959
|
},] }
|
|
6021
5960
|
];
|
|
6022
5961
|
FormComponent.ctorParameters = () => [
|
|
@@ -6032,6 +5971,13 @@ FormComponent.propDecorators = {
|
|
|
6032
5971
|
options: [{ type: Input }]
|
|
6033
5972
|
};
|
|
6034
5973
|
|
|
5974
|
+
var StyleConfirmationMode;
|
|
5975
|
+
(function (StyleConfirmationMode) {
|
|
5976
|
+
StyleConfirmationMode[StyleConfirmationMode["Danger"] = 0] = "Danger";
|
|
5977
|
+
StyleConfirmationMode[StyleConfirmationMode["Warning"] = 1] = "Warning";
|
|
5978
|
+
StyleConfirmationMode[StyleConfirmationMode["Success"] = 2] = "Success";
|
|
5979
|
+
})(StyleConfirmationMode || (StyleConfirmationMode = {}));
|
|
5980
|
+
|
|
6035
5981
|
class ConfirmationModalComponent {
|
|
6036
5982
|
constructor(utilityService, modalService, router) {
|
|
6037
5983
|
this.utilityService = utilityService;
|
|
@@ -6503,6 +6449,91 @@ RenderComponentService.ctorParameters = () => [
|
|
|
6503
6449
|
{ type: ComponentFactoryResolver }
|
|
6504
6450
|
];
|
|
6505
6451
|
|
|
6452
|
+
class ToggleslideComponent {
|
|
6453
|
+
// tslint:disable-next-line: max-line-length
|
|
6454
|
+
constructor(controlUtility, controlContainer, ToggleslideControlHost, TextControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
6455
|
+
this.controlUtility = controlUtility;
|
|
6456
|
+
this.controlContainer = controlContainer;
|
|
6457
|
+
this.ToggleslideControlHost = ToggleslideControlHost;
|
|
6458
|
+
this.TextControlHost = TextControlHost;
|
|
6459
|
+
this.UtilityService = UtilityService;
|
|
6460
|
+
this.controlValidationService = controlValidationService;
|
|
6461
|
+
this.globalSettings = globalSettings;
|
|
6462
|
+
this.OnChange = new EventEmitter();
|
|
6463
|
+
this.SlideValue = false;
|
|
6464
|
+
this.markAllAsTouched = false;
|
|
6465
|
+
ToggleslideComponent.controlContainerstatic = this.controlContainer;
|
|
6466
|
+
}
|
|
6467
|
+
ngOnInit() {
|
|
6468
|
+
if (this.options.ForceDirection)
|
|
6469
|
+
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
6470
|
+
else
|
|
6471
|
+
this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
|
|
6472
|
+
this.group.addControl(this.options.Name, new FormControl(''));
|
|
6473
|
+
this.ToggleslideFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
6474
|
+
let validationRules = [];
|
|
6475
|
+
let validationRulesasync = [];
|
|
6476
|
+
this.SlideValue = this.options.Value == undefined ? false : this.options.Value;
|
|
6477
|
+
if (!this.options.ViewType)
|
|
6478
|
+
this.options.ViewType = this.globalSettings.ViewType;
|
|
6479
|
+
if (this.options.IsDisabled || this.options.IsReadonly) {
|
|
6480
|
+
this.ToggleslideFormControl.disable();
|
|
6481
|
+
}
|
|
6482
|
+
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
6483
|
+
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
6484
|
+
}
|
|
6485
|
+
ngAfterViewInit() {
|
|
6486
|
+
if (this.options.AttributeList != null) {
|
|
6487
|
+
var element = document.getElementById(this.options.Name);
|
|
6488
|
+
for (let index = 0; index < this.options.AttributeList.length; index++) {
|
|
6489
|
+
element.setAttribute(this.options.AttributeList[index].Key, this.options.AttributeList[index].value);
|
|
6490
|
+
}
|
|
6491
|
+
}
|
|
6492
|
+
}
|
|
6493
|
+
resetError() {
|
|
6494
|
+
this.controlValidationService.RemoveGlobalError();
|
|
6495
|
+
}
|
|
6496
|
+
showGlobalError() {
|
|
6497
|
+
this.controlUtility.showGlobalError();
|
|
6498
|
+
}
|
|
6499
|
+
getErrorValidation(ErrorList) {
|
|
6500
|
+
if (this.markAllAsTouched && this.group.invalid) {
|
|
6501
|
+
this.showGlobalError();
|
|
6502
|
+
this.markAllAsTouched = false;
|
|
6503
|
+
}
|
|
6504
|
+
return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
|
|
6505
|
+
}
|
|
6506
|
+
changeValueToggle() {
|
|
6507
|
+
this.OnChange.emit(this.SlideValue);
|
|
6508
|
+
this.options.Value = this.SlideValue;
|
|
6509
|
+
this.ToggleslideFormControl.setValue(this.SlideValue);
|
|
6510
|
+
if (this.options.PatchFunction && this.options.PatchPath && this.ToggleslideFormControl.valid) {
|
|
6511
|
+
this.controlUtility.patchControlValue(this.SlideValue, this.options.PatchFunction, this.options.PatchPath);
|
|
6512
|
+
}
|
|
6513
|
+
}
|
|
6514
|
+
}
|
|
6515
|
+
ToggleslideComponent.controlContainerstatic = null;
|
|
6516
|
+
ToggleslideComponent.decorators = [
|
|
6517
|
+
{ type: Component, args: [{
|
|
6518
|
+
selector: 'BBSF-Toggleslide',
|
|
6519
|
+
template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n </label>\r\n <div *ngIf=\"!options.IsReadonly\"class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"SlideValue\" [dir]=\"textDir\" [cssClass]=\"(options.ViewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.Name}}\" disableRipple=\"true\" [disabled]=\"options.IsDisabled\" (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.IsReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.Value\">{{UtilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.Value\">{{UtilityService.getResourceValue(\"No\")}}</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 </div>\r\n</div>\r\n"
|
|
6520
|
+
},] }
|
|
6521
|
+
];
|
|
6522
|
+
ToggleslideComponent.ctorParameters = () => [
|
|
6523
|
+
{ type: ControlUtility },
|
|
6524
|
+
{ type: ControlContainer, decorators: [{ type: Optional }] },
|
|
6525
|
+
{ type: FormGroupDirective },
|
|
6526
|
+
{ type: FormGroupDirective },
|
|
6527
|
+
{ type: UtilityService },
|
|
6528
|
+
{ type: ControlValidationService },
|
|
6529
|
+
{ type: GlobalSettings }
|
|
6530
|
+
];
|
|
6531
|
+
ToggleslideComponent.propDecorators = {
|
|
6532
|
+
group: [{ type: Input }],
|
|
6533
|
+
options: [{ type: Input }],
|
|
6534
|
+
OnChange: [{ type: Output }]
|
|
6535
|
+
};
|
|
6536
|
+
|
|
6506
6537
|
class RepeaterFieldBuilderComponent {
|
|
6507
6538
|
constructor(renderComponentService, TextControlHost) {
|
|
6508
6539
|
this.renderComponentService = renderComponentService;
|
|
@@ -7345,77 +7376,242 @@ RepeaterTableComponent.propDecorators = {
|
|
|
7345
7376
|
options: [{ type: Input }]
|
|
7346
7377
|
};
|
|
7347
7378
|
|
|
7348
|
-
class
|
|
7349
|
-
constructor(
|
|
7350
|
-
this.
|
|
7351
|
-
}
|
|
7352
|
-
transform(value) {
|
|
7353
|
-
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
|
|
7354
|
-
return latest_date;
|
|
7355
|
-
}
|
|
7356
|
-
}
|
|
7357
|
-
BBSFDateTimePipe.decorators = [
|
|
7358
|
-
{ type: Pipe, args: [{
|
|
7359
|
-
name: 'bbsfDateTime'
|
|
7360
|
-
},] }
|
|
7361
|
-
];
|
|
7362
|
-
BBSFDateTimePipe.ctorParameters = () => [
|
|
7363
|
-
{ type: DatePipe }
|
|
7364
|
-
];
|
|
7365
|
-
|
|
7366
|
-
class BBSFDatePipe {
|
|
7367
|
-
constructor(datePipe) {
|
|
7368
|
-
this.datePipe = datePipe;
|
|
7369
|
-
}
|
|
7370
|
-
transform(value) {
|
|
7371
|
-
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
|
|
7372
|
-
return latest_date;
|
|
7379
|
+
class RecaptchaModel {
|
|
7380
|
+
constructor() {
|
|
7381
|
+
this.ImageJpeg = [];
|
|
7373
7382
|
}
|
|
7374
|
-
}
|
|
7375
|
-
BBSFDatePipe.decorators = [
|
|
7376
|
-
{ type: Pipe, args: [{
|
|
7377
|
-
name: 'bbsfDate'
|
|
7378
|
-
},] }
|
|
7379
|
-
];
|
|
7380
|
-
BBSFDatePipe.ctorParameters = () => [
|
|
7381
|
-
{ type: DatePipe }
|
|
7382
|
-
];
|
|
7383
|
+
}
|
|
7383
7384
|
|
|
7384
|
-
|
|
7385
|
-
|
|
7386
|
-
TagInputView[TagInputView["WithImage"] = 1] = "WithImage";
|
|
7387
|
-
TagInputView[TagInputView["WithoutImage"] = 2] = "WithoutImage";
|
|
7388
|
-
TagInputView[TagInputView["WithInitial"] = 3] = "WithInitial";
|
|
7389
|
-
})(TagInputView || (TagInputView = {}));
|
|
7385
|
+
class CaptchaStyle {
|
|
7386
|
+
}
|
|
7390
7387
|
|
|
7391
|
-
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
|
|
7395
|
-
|
|
7396
|
-
|
|
7397
|
-
|
|
7398
|
-
|
|
7399
|
-
|
|
7400
|
-
|
|
7401
|
-
|
|
7402
|
-
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7411
|
-
|
|
7412
|
-
|
|
7413
|
-
|
|
7414
|
-
|
|
7415
|
-
|
|
7416
|
-
|
|
7417
|
-
|
|
7418
|
-
|
|
7388
|
+
class RecaptchaComponent {
|
|
7389
|
+
constructor(controlUtility, requestHandlerService, recaptchaControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
7390
|
+
this.controlUtility = controlUtility;
|
|
7391
|
+
this.requestHandlerService = requestHandlerService;
|
|
7392
|
+
this.recaptchaControlHost = recaptchaControlHost;
|
|
7393
|
+
this.UtilityService = UtilityService;
|
|
7394
|
+
this.controlValidationService = controlValidationService;
|
|
7395
|
+
this.globalSettings = globalSettings;
|
|
7396
|
+
this.OnChange = new EventEmitter();
|
|
7397
|
+
this.validationRules = [];
|
|
7398
|
+
this.validationRulesAsync = [];
|
|
7399
|
+
this.recaptchaModel = new RecaptchaModel();
|
|
7400
|
+
this.resetError = () => {
|
|
7401
|
+
this.controlValidationService.RemoveGlobalError();
|
|
7402
|
+
};
|
|
7403
|
+
//External Method
|
|
7404
|
+
this.RemoveRequiredValidation = () => {
|
|
7405
|
+
this.controlUtility.RemoveRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options);
|
|
7406
|
+
};
|
|
7407
|
+
//External Method
|
|
7408
|
+
this.AddRequiredValidation = () => {
|
|
7409
|
+
this.controlUtility.AddRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options);
|
|
7410
|
+
};
|
|
7411
|
+
//External Method
|
|
7412
|
+
this.RemoveCustomValidation = (CustomValidation) => {
|
|
7413
|
+
this.controlUtility.RemoveCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation);
|
|
7414
|
+
};
|
|
7415
|
+
//External Method
|
|
7416
|
+
this.AddCustomValidation = (CustomValidation) => {
|
|
7417
|
+
this.controlUtility.AddCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation);
|
|
7418
|
+
};
|
|
7419
|
+
//External Method
|
|
7420
|
+
this.IsValid = () => {
|
|
7421
|
+
this.controlUtility.IsValid(this.ReCaptchaFormControl);
|
|
7422
|
+
};
|
|
7423
|
+
}
|
|
7424
|
+
ngOnInit() {
|
|
7425
|
+
if (this.options.ForceDirection)
|
|
7426
|
+
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
7427
|
+
else
|
|
7428
|
+
this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
|
|
7429
|
+
this.controlValidationService.isCreatedBefor = false;
|
|
7430
|
+
this.loadImage();
|
|
7431
|
+
if (!this.options.ViewType)
|
|
7432
|
+
this.options.ViewType = this.globalSettings.ViewType;
|
|
7433
|
+
this.group.addControl(this.options.Name, new FormControl(''));
|
|
7434
|
+
this.ReCaptchaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
7435
|
+
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
7436
|
+
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
7437
|
+
if (this.options.IsRequired) {
|
|
7438
|
+
this.validationRules.push(Validators.required);
|
|
7439
|
+
}
|
|
7440
|
+
if (this.options.CustomValidation.length > 0) {
|
|
7441
|
+
let Validations = this.options.CustomValidation;
|
|
7442
|
+
for (let index = 0; index < Validations.length; index++) {
|
|
7443
|
+
const Validation = Validations[index];
|
|
7444
|
+
this.validationRules.push(Validation.functionBody);
|
|
7445
|
+
}
|
|
7446
|
+
}
|
|
7447
|
+
this.ReCaptchaFormControl.setValidators(this.validationRules);
|
|
7448
|
+
this.ReCaptchaFormControl.setAsyncValidators(this.validationRulesAsync);
|
|
7449
|
+
if (this.options.IsDisabled) {
|
|
7450
|
+
this.ReCaptchaFormControl.disable();
|
|
7451
|
+
}
|
|
7452
|
+
this.recaptchaControlHost.ngSubmit.subscribe((value) => {
|
|
7453
|
+
this.group.markAllAsTouched();
|
|
7454
|
+
this.markAllAsTouched = true;
|
|
7455
|
+
});
|
|
7456
|
+
}
|
|
7457
|
+
loadImage() {
|
|
7458
|
+
let style = new CaptchaStyle();
|
|
7459
|
+
style.BackgroundColorPrimary = this.options.BackgroundColorPrimary;
|
|
7460
|
+
style.BackgroundColorSecondary = this.options.BackgroundColorSecondary;
|
|
7461
|
+
style.TextColorPrimary = this.options.TextColorPrimary;
|
|
7462
|
+
style.TextColorSecondary = this.options.TextColorSecondary;
|
|
7463
|
+
style.FontSize = this.options.FontSize;
|
|
7464
|
+
let requestOptionsModel = new RequestOptionsModel();
|
|
7465
|
+
requestOptionsModel.disableBlockUI = true;
|
|
7466
|
+
requestOptionsModel.disableSuccessNotification = true;
|
|
7467
|
+
this.requestHandlerService.post(this.options.ActionURL, style, null, null, requestOptionsModel).subscribe((res) => {
|
|
7468
|
+
let model = res;
|
|
7469
|
+
this.recaptchaModel.ID = model.id;
|
|
7470
|
+
this.recaptchaModel.EncryptedText = model.encryptedText;
|
|
7471
|
+
this.recaptchaModel.ImageJpeg = model.imageJpeg;
|
|
7472
|
+
this.image = 'data:image/jpeg;base64,' + this.recaptchaModel.ImageJpeg;
|
|
7473
|
+
});
|
|
7474
|
+
}
|
|
7475
|
+
ngAfterViewInit() {
|
|
7476
|
+
this.controlUtility.setAttributeForControl(this.options);
|
|
7477
|
+
}
|
|
7478
|
+
showGlobalError() {
|
|
7479
|
+
this.controlUtility.showGlobalError();
|
|
7480
|
+
}
|
|
7481
|
+
getErrorValidation(ErrorList) {
|
|
7482
|
+
if (this.markAllAsTouched && this.group.invalid) {
|
|
7483
|
+
this.showGlobalError();
|
|
7484
|
+
this.markAllAsTouched = false;
|
|
7485
|
+
}
|
|
7486
|
+
return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
|
|
7487
|
+
}
|
|
7488
|
+
onTextChange(valueText) {
|
|
7489
|
+
let value = valueText.target.value;
|
|
7490
|
+
this.recaptchaModel.Text = value;
|
|
7491
|
+
this.group.get(this.options.Name).setValue(this.recaptchaModel);
|
|
7492
|
+
this.options.Value = this.recaptchaModel;
|
|
7493
|
+
this.OnChange.emit(this.ReCaptchaFormControl.value);
|
|
7494
|
+
}
|
|
7495
|
+
}
|
|
7496
|
+
RecaptchaComponent.decorators = [
|
|
7497
|
+
{ type: Component, args: [{
|
|
7498
|
+
selector: 'BBSF-Recaptcha',
|
|
7499
|
+
template: "<div class=\"form-group bbsf-control bbsf-recaptcha\" [formGroup]=\"group\">\r\n <img class=\"h-100 w-100\" [src]=\"image\" />\r\n <button class=\"btn btn-sm btn-icon\" type=\"button\" ngbTooltip=\"{{UtilityService.getResourceValue('ReloadCaptcha')}}\"\r\n (click)=\"loadImage()\">\r\n <i class=\"fas fa-refresh\"></i>\r\n </button>\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div class=\"bbsf-input-container\">\r\n <input class=\"form-control {{options.ExtraClasses}}\"\r\n [dir]=\"textDir\"\r\n aria-describedby=\"email-error\" value=\"{{options.Value.Text}}\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"text\"\r\n [class.is-invalid]=\"ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"onTextChange($event)\" [readonly]=\"options.IsReadonly\" />\r\n\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\"\r\n [dir]=\"textDir\"\r\n *ngIf=\"(ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched)\">\r\n {{getErrorValidation(ReCaptchaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>\r\n"
|
|
7500
|
+
},] }
|
|
7501
|
+
];
|
|
7502
|
+
RecaptchaComponent.ctorParameters = () => [
|
|
7503
|
+
{ type: ControlUtility },
|
|
7504
|
+
{ type: RequestHandlerService },
|
|
7505
|
+
{ type: FormGroupDirective },
|
|
7506
|
+
{ type: UtilityService },
|
|
7507
|
+
{ type: ControlValidationService },
|
|
7508
|
+
{ type: GlobalSettings }
|
|
7509
|
+
];
|
|
7510
|
+
RecaptchaComponent.propDecorators = {
|
|
7511
|
+
group: [{ type: Input }],
|
|
7512
|
+
options: [{ type: Input }],
|
|
7513
|
+
OnChange: [{ type: Output }]
|
|
7514
|
+
};
|
|
7515
|
+
|
|
7516
|
+
class PageHeaderComponentComponent {
|
|
7517
|
+
constructor(router, utilityService) {
|
|
7518
|
+
this.router = router;
|
|
7519
|
+
this.utilityService = utilityService;
|
|
7520
|
+
this.DataTypeEnum = DataType;
|
|
7521
|
+
}
|
|
7522
|
+
translate(key) {
|
|
7523
|
+
return this.utilityService.getResourceValue(key);
|
|
7524
|
+
}
|
|
7525
|
+
ngOnInit() {
|
|
7526
|
+
this.EN = this.utilityService.isCurrentLanguageEnglish();
|
|
7527
|
+
}
|
|
7528
|
+
}
|
|
7529
|
+
PageHeaderComponentComponent.decorators = [
|
|
7530
|
+
{ type: Component, args: [{
|
|
7531
|
+
selector: 'bbsf-page-header-component',
|
|
7532
|
+
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"
|
|
7533
|
+
},] }
|
|
7534
|
+
];
|
|
7535
|
+
PageHeaderComponentComponent.ctorParameters = () => [
|
|
7536
|
+
{ type: Router },
|
|
7537
|
+
{ type: UtilityService }
|
|
7538
|
+
];
|
|
7539
|
+
PageHeaderComponentComponent.propDecorators = {
|
|
7540
|
+
group: [{ type: Input }],
|
|
7541
|
+
options: [{ type: Input }]
|
|
7542
|
+
};
|
|
7543
|
+
|
|
7544
|
+
class BBSFDateTimePipe {
|
|
7545
|
+
constructor(datePipe) {
|
|
7546
|
+
this.datePipe = datePipe;
|
|
7547
|
+
}
|
|
7548
|
+
transform(value) {
|
|
7549
|
+
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy hh:mm a');
|
|
7550
|
+
return latest_date;
|
|
7551
|
+
}
|
|
7552
|
+
}
|
|
7553
|
+
BBSFDateTimePipe.decorators = [
|
|
7554
|
+
{ type: Pipe, args: [{
|
|
7555
|
+
name: 'bbsfDateTime'
|
|
7556
|
+
},] }
|
|
7557
|
+
];
|
|
7558
|
+
BBSFDateTimePipe.ctorParameters = () => [
|
|
7559
|
+
{ type: DatePipe }
|
|
7560
|
+
];
|
|
7561
|
+
|
|
7562
|
+
class BBSFDatePipe {
|
|
7563
|
+
constructor(datePipe) {
|
|
7564
|
+
this.datePipe = datePipe;
|
|
7565
|
+
}
|
|
7566
|
+
transform(value) {
|
|
7567
|
+
let latest_date = this.datePipe.transform(value, 'dd/MM/yyyy');
|
|
7568
|
+
return latest_date;
|
|
7569
|
+
}
|
|
7570
|
+
}
|
|
7571
|
+
BBSFDatePipe.decorators = [
|
|
7572
|
+
{ type: Pipe, args: [{
|
|
7573
|
+
name: 'bbsfDate'
|
|
7574
|
+
},] }
|
|
7575
|
+
];
|
|
7576
|
+
BBSFDatePipe.ctorParameters = () => [
|
|
7577
|
+
{ type: DatePipe }
|
|
7578
|
+
];
|
|
7579
|
+
|
|
7580
|
+
var TagInputView;
|
|
7581
|
+
(function (TagInputView) {
|
|
7582
|
+
TagInputView[TagInputView["WithImage"] = 1] = "WithImage";
|
|
7583
|
+
TagInputView[TagInputView["WithoutImage"] = 2] = "WithoutImage";
|
|
7584
|
+
TagInputView[TagInputView["WithInitial"] = 3] = "WithInitial";
|
|
7585
|
+
})(TagInputView || (TagInputView = {}));
|
|
7586
|
+
|
|
7587
|
+
const noop = () => { };
|
|
7588
|
+
const ɵ0$1 = noop;
|
|
7589
|
+
const TAGS_INPUT_TEMPLATE = `
|
|
7590
|
+
|
|
7591
|
+
<div class="tags-input">
|
|
7592
|
+
<span class="tags-input__tag label label-primary badge badge-primary" *ngFor="let tag of tags">
|
|
7593
|
+
|
|
7594
|
+
<span [ngSwitch]="ViewMode">
|
|
7595
|
+
<span *ngSwitchCase="tagInputViewEnum.WithImage">
|
|
7596
|
+
<img style="border-radius:50%; height:40px; width: 40px; float:left; margin-left:5px ; margin-top: 5px;margin-right: 5px;"
|
|
7597
|
+
src="{{(tag.imageURL?tag.imageURL:defaultImageURL)}}" />
|
|
7598
|
+
</span>
|
|
7599
|
+
|
|
7600
|
+
<span *ngSwitchCase="tagInputViewEnum.WithInitial">
|
|
7601
|
+
<div class="user-initials">{{calculateInitials(tag.name)}}</div>
|
|
7602
|
+
</span>
|
|
7603
|
+
|
|
7604
|
+
<span *ngSwitchDefault>
|
|
7605
|
+
</span>
|
|
7606
|
+
|
|
7607
|
+
</span>
|
|
7608
|
+
{{tag[displayField]}}
|
|
7609
|
+
<span *ngIf="isDeleteable(tag)" role="button" class="tags-input__tag-remove-btn" (click)="removeTag(tag)"
|
|
7610
|
+
(touch)="removeTag(tag)">
|
|
7611
|
+
<span aria-hidden="true">×</span>
|
|
7612
|
+
<span class="sr-only">Close</span>
|
|
7613
|
+
</span>
|
|
7614
|
+
</span>
|
|
7419
7615
|
|
|
7420
7616
|
<input *ngIf="options === null; else withTypeahead" class="tags-input__input-field" type="text"
|
|
7421
7617
|
[placeholder]="getPlaceholder()" name="tags" (keyup.enter)="addTag(tagInput)"
|
|
@@ -7707,171 +7903,6 @@ BTagsInputComponent.propDecorators = {
|
|
|
7707
7903
|
onBlurInput: [{ type: Output }]
|
|
7708
7904
|
};
|
|
7709
7905
|
|
|
7710
|
-
class RecaptchaModel {
|
|
7711
|
-
constructor() {
|
|
7712
|
-
this.ImageJpeg = [];
|
|
7713
|
-
}
|
|
7714
|
-
}
|
|
7715
|
-
|
|
7716
|
-
class CaptchaStyle {
|
|
7717
|
-
}
|
|
7718
|
-
|
|
7719
|
-
class RecaptchaComponent {
|
|
7720
|
-
constructor(controlUtility, requestHandlerService, recaptchaControlHost, UtilityService, controlValidationService, globalSettings) {
|
|
7721
|
-
this.controlUtility = controlUtility;
|
|
7722
|
-
this.requestHandlerService = requestHandlerService;
|
|
7723
|
-
this.recaptchaControlHost = recaptchaControlHost;
|
|
7724
|
-
this.UtilityService = UtilityService;
|
|
7725
|
-
this.controlValidationService = controlValidationService;
|
|
7726
|
-
this.globalSettings = globalSettings;
|
|
7727
|
-
this.OnChange = new EventEmitter();
|
|
7728
|
-
this.validationRules = [];
|
|
7729
|
-
this.validationRulesAsync = [];
|
|
7730
|
-
this.recaptchaModel = new RecaptchaModel();
|
|
7731
|
-
this.resetError = () => {
|
|
7732
|
-
this.controlValidationService.RemoveGlobalError();
|
|
7733
|
-
};
|
|
7734
|
-
//External Method
|
|
7735
|
-
this.RemoveRequiredValidation = () => {
|
|
7736
|
-
this.controlUtility.RemoveRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options);
|
|
7737
|
-
};
|
|
7738
|
-
//External Method
|
|
7739
|
-
this.AddRequiredValidation = () => {
|
|
7740
|
-
this.controlUtility.AddRequiredValidation(this.ReCaptchaFormControl, this.validationRules, this.options);
|
|
7741
|
-
};
|
|
7742
|
-
//External Method
|
|
7743
|
-
this.RemoveCustomValidation = (CustomValidation) => {
|
|
7744
|
-
this.controlUtility.RemoveCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation);
|
|
7745
|
-
};
|
|
7746
|
-
//External Method
|
|
7747
|
-
this.AddCustomValidation = (CustomValidation) => {
|
|
7748
|
-
this.controlUtility.AddCustomValidation(this.ReCaptchaFormControl, this.validationRules, CustomValidation);
|
|
7749
|
-
};
|
|
7750
|
-
//External Method
|
|
7751
|
-
this.IsValid = () => {
|
|
7752
|
-
this.controlUtility.IsValid(this.ReCaptchaFormControl);
|
|
7753
|
-
};
|
|
7754
|
-
}
|
|
7755
|
-
ngOnInit() {
|
|
7756
|
-
if (this.options.ForceDirection)
|
|
7757
|
-
this.textDir = this.options.ForceDirection == 2 ? 'rtl' : 'ltr';
|
|
7758
|
-
else
|
|
7759
|
-
this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
|
|
7760
|
-
this.controlValidationService.isCreatedBefor = false;
|
|
7761
|
-
this.loadImage();
|
|
7762
|
-
if (!this.options.ViewType)
|
|
7763
|
-
this.options.ViewType = this.globalSettings.ViewType;
|
|
7764
|
-
this.group.addControl(this.options.Name, new FormControl(''));
|
|
7765
|
-
this.ReCaptchaFormControl = this.group.controls[this.options.Name]; // new FormControl('',validationRules);
|
|
7766
|
-
if (this.options.LabelKey != null && this.options.LabelKey != "")
|
|
7767
|
-
this.options.LabelValue = this.UtilityService.getResourceValue(this.options.LabelKey);
|
|
7768
|
-
if (this.options.IsRequired) {
|
|
7769
|
-
this.validationRules.push(Validators.required);
|
|
7770
|
-
}
|
|
7771
|
-
if (this.options.CustomValidation.length > 0) {
|
|
7772
|
-
let Validations = this.options.CustomValidation;
|
|
7773
|
-
for (let index = 0; index < Validations.length; index++) {
|
|
7774
|
-
const Validation = Validations[index];
|
|
7775
|
-
this.validationRules.push(Validation.functionBody);
|
|
7776
|
-
}
|
|
7777
|
-
}
|
|
7778
|
-
this.ReCaptchaFormControl.setValidators(this.validationRules);
|
|
7779
|
-
this.ReCaptchaFormControl.setAsyncValidators(this.validationRulesAsync);
|
|
7780
|
-
if (this.options.IsDisabled) {
|
|
7781
|
-
this.ReCaptchaFormControl.disable();
|
|
7782
|
-
}
|
|
7783
|
-
this.recaptchaControlHost.ngSubmit.subscribe((value) => {
|
|
7784
|
-
this.group.markAllAsTouched();
|
|
7785
|
-
this.markAllAsTouched = true;
|
|
7786
|
-
});
|
|
7787
|
-
}
|
|
7788
|
-
loadImage() {
|
|
7789
|
-
let style = new CaptchaStyle();
|
|
7790
|
-
style.BackgroundColorPrimary = this.options.BackgroundColorPrimary;
|
|
7791
|
-
style.BackgroundColorSecondary = this.options.BackgroundColorSecondary;
|
|
7792
|
-
style.TextColorPrimary = this.options.TextColorPrimary;
|
|
7793
|
-
style.TextColorSecondary = this.options.TextColorSecondary;
|
|
7794
|
-
style.FontSize = this.options.FontSize;
|
|
7795
|
-
let requestOptionsModel = new RequestOptionsModel();
|
|
7796
|
-
requestOptionsModel.disableBlockUI = true;
|
|
7797
|
-
requestOptionsModel.disableSuccessNotification = true;
|
|
7798
|
-
this.requestHandlerService.post(this.options.ActionURL, style, null, null, requestOptionsModel).subscribe((res) => {
|
|
7799
|
-
let model = res;
|
|
7800
|
-
this.recaptchaModel.ID = model.id;
|
|
7801
|
-
this.recaptchaModel.EncryptedText = model.encryptedText;
|
|
7802
|
-
this.recaptchaModel.ImageJpeg = model.imageJpeg;
|
|
7803
|
-
this.image = 'data:image/jpeg;base64,' + this.recaptchaModel.ImageJpeg;
|
|
7804
|
-
});
|
|
7805
|
-
}
|
|
7806
|
-
ngAfterViewInit() {
|
|
7807
|
-
this.controlUtility.setAttributeForControl(this.options);
|
|
7808
|
-
}
|
|
7809
|
-
showGlobalError() {
|
|
7810
|
-
this.controlUtility.showGlobalError();
|
|
7811
|
-
}
|
|
7812
|
-
getErrorValidation(ErrorList) {
|
|
7813
|
-
if (this.markAllAsTouched && this.group.invalid) {
|
|
7814
|
-
this.showGlobalError();
|
|
7815
|
-
this.markAllAsTouched = false;
|
|
7816
|
-
}
|
|
7817
|
-
return this.controlUtility.getErrorValidationMassage(ErrorList, this.group, this.options);
|
|
7818
|
-
}
|
|
7819
|
-
onTextChange(valueText) {
|
|
7820
|
-
let value = valueText.target.value;
|
|
7821
|
-
this.recaptchaModel.Text = value;
|
|
7822
|
-
this.group.get(this.options.Name).setValue(this.recaptchaModel);
|
|
7823
|
-
this.options.Value = this.recaptchaModel;
|
|
7824
|
-
this.OnChange.emit(this.ReCaptchaFormControl.value);
|
|
7825
|
-
}
|
|
7826
|
-
}
|
|
7827
|
-
RecaptchaComponent.decorators = [
|
|
7828
|
-
{ type: Component, args: [{
|
|
7829
|
-
selector: 'BBSF-Recaptcha',
|
|
7830
|
-
template: "<div class=\"form-group bbsf-control bbsf-recaptcha\" [formGroup]=\"group\">\r\n <img class=\"h-100 w-100\" [src]=\"image\" />\r\n <button class=\"btn btn-sm btn-icon\" type=\"button\" ngbTooltip=\"{{UtilityService.getResourceValue('ReloadCaptcha')}}\"\r\n (click)=\"loadImage()\">\r\n <i class=\"fas fa-refresh\"></i>\r\n </button>\r\n <div [ngClass]=\"(options.ViewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label *ngIf=\"!options.HideLabel\" class=\"bbsf-label {{options.LabelExtraClasses}}\">\r\n {{options.LabelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"(options.ShowAsterisk&&options.IsRequired)||(options.IsRequired)\" class=\"text-danger\">*</span>\r\n </label>\r\n <!--input-->\r\n <div class=\"bbsf-input-container\">\r\n <input class=\"form-control {{options.ExtraClasses}}\"\r\n [dir]=\"textDir\"\r\n aria-describedby=\"email-error\" value=\"{{options.Value.Text}}\"\r\n aria-invalid=\"true\" formControlName=\"{{options.Name}}\" type=\"text\"\r\n [class.is-invalid]=\"ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched\"\r\n placeholder=\"{{options.Placeholder}}\" id=\"{{options.Name}}\" autocomplete=\"{{options.AutoComplete}}\"\r\n (change)=\"onTextChange($event)\" [readonly]=\"options.IsReadonly\" />\r\n\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.LabelDescription!=null\">{{options.LabelDescription}}</div>\r\n <!-- requiredText-->\r\n <div class=\"bbsf-validation\"\r\n [dir]=\"textDir\"\r\n *ngIf=\"(ReCaptchaFormControl.invalid && ReCaptchaFormControl.touched)\">\r\n {{getErrorValidation(ReCaptchaFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">{{resetError()}}</div>\r\n</div>\r\n"
|
|
7831
|
-
},] }
|
|
7832
|
-
];
|
|
7833
|
-
RecaptchaComponent.ctorParameters = () => [
|
|
7834
|
-
{ type: ControlUtility },
|
|
7835
|
-
{ type: RequestHandlerService },
|
|
7836
|
-
{ type: FormGroupDirective },
|
|
7837
|
-
{ type: UtilityService },
|
|
7838
|
-
{ type: ControlValidationService },
|
|
7839
|
-
{ type: GlobalSettings }
|
|
7840
|
-
];
|
|
7841
|
-
RecaptchaComponent.propDecorators = {
|
|
7842
|
-
group: [{ type: Input }],
|
|
7843
|
-
options: [{ type: Input }],
|
|
7844
|
-
OnChange: [{ type: Output }]
|
|
7845
|
-
};
|
|
7846
|
-
|
|
7847
|
-
class PageHeaderComponentComponent {
|
|
7848
|
-
constructor(router, utilityService) {
|
|
7849
|
-
this.router = router;
|
|
7850
|
-
this.utilityService = utilityService;
|
|
7851
|
-
this.DataTypeEnum = DataType;
|
|
7852
|
-
}
|
|
7853
|
-
translate(key) {
|
|
7854
|
-
return this.utilityService.getResourceValue(key);
|
|
7855
|
-
}
|
|
7856
|
-
ngOnInit() {
|
|
7857
|
-
this.EN = this.utilityService.isCurrentLanguageEnglish();
|
|
7858
|
-
}
|
|
7859
|
-
}
|
|
7860
|
-
PageHeaderComponentComponent.decorators = [
|
|
7861
|
-
{ type: Component, args: [{
|
|
7862
|
-
selector: 'bbsf-page-header-component',
|
|
7863
|
-
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"
|
|
7864
|
-
},] }
|
|
7865
|
-
];
|
|
7866
|
-
PageHeaderComponentComponent.ctorParameters = () => [
|
|
7867
|
-
{ type: Router },
|
|
7868
|
-
{ type: UtilityService }
|
|
7869
|
-
];
|
|
7870
|
-
PageHeaderComponentComponent.propDecorators = {
|
|
7871
|
-
group: [{ type: Input }],
|
|
7872
|
-
options: [{ type: Input }]
|
|
7873
|
-
};
|
|
7874
|
-
|
|
7875
7906
|
let options;
|
|
7876
7907
|
let AppInjector;
|
|
7877
7908
|
const ɵ0 = ControlUtility.getLocal();
|
|
@@ -7964,10 +7995,7 @@ BBSFControlsModule.decorators = [
|
|
|
7964
7995
|
OverlayModule,
|
|
7965
7996
|
StoreDevtoolsModule.instrument(),
|
|
7966
7997
|
FormsModule,
|
|
7967
|
-
NgxIntlTelInputModule,
|
|
7968
|
-
NgxIntlTelInputModule,
|
|
7969
7998
|
BsDatepickerModule.forRoot(),
|
|
7970
|
-
FullCalendarModule,
|
|
7971
7999
|
TypeaheadModule.forRoot(),
|
|
7972
8000
|
AngularEditorModule,
|
|
7973
8001
|
AutocompleteLibModule,
|
|
@@ -8538,13 +8566,6 @@ class FormOptions {
|
|
|
8538
8566
|
}
|
|
8539
8567
|
}
|
|
8540
8568
|
|
|
8541
|
-
var StyleConfirmationMode;
|
|
8542
|
-
(function (StyleConfirmationMode) {
|
|
8543
|
-
StyleConfirmationMode[StyleConfirmationMode["Danger"] = 0] = "Danger";
|
|
8544
|
-
StyleConfirmationMode[StyleConfirmationMode["Warning"] = 1] = "Warning";
|
|
8545
|
-
StyleConfirmationMode[StyleConfirmationMode["Success"] = 2] = "Success";
|
|
8546
|
-
})(StyleConfirmationMode || (StyleConfirmationMode = {}));
|
|
8547
|
-
|
|
8548
8569
|
class ConfirmationModalOptions {
|
|
8549
8570
|
constructor() {
|
|
8550
8571
|
//Represents confirmation modal title
|