@bnsights/bbsf-controls 1.0.138 → 1.0.140
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 +9 -1
- package/esm2022/lib/Shared/services/render-component-service.service.mjs +1 -1
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +3 -3
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +14 -10
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +9 -9
- package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +1 -1
- package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +5 -3
- package/esm2022/lib/controls/TextBox/TextBox.component.mjs +3 -3
- package/fesm2022/bnsights-bbsf-controls.mjs +29 -23
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +4 -4
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +1 -1
- package/package.json +2 -2
|
@@ -1424,11 +1424,11 @@ class CheckBoxComponent {
|
|
|
1424
1424
|
}
|
|
1425
1425
|
}
|
|
1426
1426
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: CheckBoxComponent, deps: [{ token: ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.BBSFTranslateService }, { token: i3.ControlValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1427
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: CheckBoxComponent, selector: "BBSF-CheckBox", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-checkbox\" [formGroup]=\"group\">\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input *ngIf=\"!options.isReadonly\" class=\"bbsf-checkbox-input {{options.extraClasses}}\" [dir]=\"textDir\"\r\n [checked]=\"options.value==true?true:null\" aria-describedby=\"email-error\" aria-invalid=\"true\"
|
|
1427
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: CheckBoxComponent, selector: "BBSF-CheckBox", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-checkbox\" [formGroup]=\"group\">\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input type=\"checkbox\" *ngIf=\"!options.isReadonly\" class=\"bbsf-checkbox-input {{options.extraClasses}}\" [dir]=\"textDir\"\r\n [checked]=\"options.value==true?true:null\" aria-describedby=\"email-error\" aria-invalid=\"true\" [formControlName]=\"options.name\"\r\n (change)=\"onValueChanged()\" [class.is-invalid]=\"checkBoxFormControl.invalid && checkBoxFormControl.touched\" [id]=\"options.name\"\r\n [value]=\"options.value==true?true:null\" [name]=\"options.name\" [(ngModel)]=\"options.value\">\r\n\r\n <div class=\"label-subtext-container\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</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=\"(checkBoxFormControl.invalid && checkBoxFormControl.touched)\">\r\n {{getErrorValidation(checkBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i7.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
|
|
1428
1428
|
}
|
|
1429
1429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: CheckBoxComponent, decorators: [{
|
|
1430
1430
|
type: Component,
|
|
1431
|
-
args: [{ selector: 'BBSF-CheckBox', template: "<div class=\"form-group bbsf-control bbsf-checkbox\" [formGroup]=\"group\">\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input *ngIf=\"!options.isReadonly\" class=\"bbsf-checkbox-input {{options.extraClasses}}\" [dir]=\"textDir\"\r\n [checked]=\"options.value==true?true:null\" aria-describedby=\"email-error\" aria-invalid=\"true\"
|
|
1431
|
+
args: [{ selector: 'BBSF-CheckBox', template: "<div class=\"form-group bbsf-control bbsf-checkbox\" [formGroup]=\"group\">\r\n <div class=\"bbsf-input-container\">\r\n <!--input-->\r\n <input type=\"checkbox\" *ngIf=\"!options.isReadonly\" class=\"bbsf-checkbox-input {{options.extraClasses}}\" [dir]=\"textDir\"\r\n [checked]=\"options.value==true?true:null\" aria-describedby=\"email-error\" aria-invalid=\"true\" [formControlName]=\"options.name\"\r\n (change)=\"onValueChanged()\" [class.is-invalid]=\"checkBoxFormControl.invalid && checkBoxFormControl.touched\" [id]=\"options.name\"\r\n [value]=\"options.value==true?true:null\" [name]=\"options.name\" [(ngModel)]=\"options.value\">\r\n\r\n <div class=\"label-subtext-container\">\r\n <!--label-->\r\n <label *ngIf=\"!options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n <!--Asterisk-->\r\n <span *ngIf=\"((options.showAsterisk&&options.isRequired)||(options.isRequired))&&!options.isReadonly\" class=\"text-danger\">*</span>\r\n </label>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{options.value}}</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=\"(checkBoxFormControl.invalid && checkBoxFormControl.touched)\">\r\n {{getErrorValidation(checkBoxFormControl.errors|keyvalue)}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"(group.valid&&group.dirty&&group.touched )||(group.untouched&&group.invalid&&group.dirty) \">\r\n {{resetError()}}</div>\r\n</div>" }]
|
|
1432
1432
|
}], ctorParameters: () => [{ type: ControlUtility }, { type: i2.ControlContainer, decorators: [{
|
|
1433
1433
|
type: Optional
|
|
1434
1434
|
}] }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.BBSFTranslateService }, { type: i3.ControlValidationService }], propDecorators: { group: [{
|
|
@@ -5246,11 +5246,11 @@ class TextboxComponent {
|
|
|
5246
5246
|
this.onBlur.emit(this.textBoxFormControl.value);
|
|
5247
5247
|
}
|
|
5248
5248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextboxComponent, deps: [{ token: ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: GlobalSettings }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5249
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextboxComponent, selector: "BBSF-TextBox", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange", onBlur: "onBlur" }, ngImport: i0, 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\"
|
|
5249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: TextboxComponent, selector: "BBSF-TextBox", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange", onBlur: "onBlur" }, ngImport: i0, 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 (blur)=\"onTextBlur()\">\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 (blur)=\"onTextBlur()\">\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)\">\r\n {{resetError()}}</div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$1.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7$4.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { kind: "directive", type: i6.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i7.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i8$3.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }] }); }
|
|
5250
5250
|
}
|
|
5251
5251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: TextboxComponent, decorators: [{
|
|
5252
5252
|
type: Component,
|
|
5253
|
-
args: [{ selector: 'BBSF-TextBox', 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\"
|
|
5253
|
+
args: [{ selector: 'BBSF-TextBox', 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 (blur)=\"onTextBlur()\">\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 (blur)=\"onTextBlur()\">\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)\">\r\n {{resetError()}}</div>\r\n</div>" }]
|
|
5254
5254
|
}], ctorParameters: () => [{ type: ControlUtility }, { type: i2.ControlContainer, decorators: [{
|
|
5255
5255
|
type: Optional
|
|
5256
5256
|
}] }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: GlobalSettings }], propDecorators: { group: [{
|
|
@@ -7434,7 +7434,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7434
7434
|
break;
|
|
7435
7435
|
case DataType.MultiFile:
|
|
7436
7436
|
let multiFile = new FileUploadOptions();
|
|
7437
|
-
file.name = this.repeaterField.controlOptions.
|
|
7437
|
+
file.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7438
7438
|
file.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7439
7439
|
file.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7440
7440
|
file.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7450,7 +7450,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7450
7450
|
//#region ImageUpload
|
|
7451
7451
|
case DataType.Image:
|
|
7452
7452
|
let image = new ImageUploadOptions();
|
|
7453
|
-
image.name = this.repeaterField.controlOptions.
|
|
7453
|
+
image.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7454
7454
|
image.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7455
7455
|
image.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7456
7456
|
image.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7463,7 +7463,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7463
7463
|
break;
|
|
7464
7464
|
case DataType.CoverPhoto:
|
|
7465
7465
|
let coverPhoto = new ImageUploadOptions();
|
|
7466
|
-
coverPhoto.name = this.repeaterField.controlOptions.
|
|
7466
|
+
coverPhoto.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7467
7467
|
coverPhoto.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7468
7468
|
coverPhoto.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7469
7469
|
coverPhoto.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7478,7 +7478,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7478
7478
|
//#region Mobile
|
|
7479
7479
|
case DataType.Mobile:
|
|
7480
7480
|
let mobile = new PhoneOptions();
|
|
7481
|
-
mobile.name = this.repeaterField.controlOptions.
|
|
7481
|
+
mobile.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7482
7482
|
mobile.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7483
7483
|
mobile.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7484
7484
|
mobile.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7495,7 +7495,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7495
7495
|
//#region MultilineText
|
|
7496
7496
|
case DataType.MultilineText:
|
|
7497
7497
|
let multilineText = new TextAreaOptions();
|
|
7498
|
-
multilineText.name = this.repeaterField.controlOptions.
|
|
7498
|
+
multilineText.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7499
7499
|
multilineText.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7500
7500
|
multilineText.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7501
7501
|
multilineText.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7514,7 +7514,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7514
7514
|
//#region HTML
|
|
7515
7515
|
case DataType.HTML:
|
|
7516
7516
|
let HTML = new HtmlEditorOptions();
|
|
7517
|
-
HTML.name = this.repeaterField.controlOptions.
|
|
7517
|
+
HTML.name = this.repeaterField.controlOptions.name + "." + this.itemNumber.toString() + "." + this.controlNumber.toString();
|
|
7518
7518
|
HTML.hideLabel = this.repeaterField.controlOptions.HideLabel;
|
|
7519
7519
|
HTML.labelKey = this.repeaterField.controlOptions.LabelKey;
|
|
7520
7520
|
HTML.isRequired = this.repeaterField.controlOptions.IsRequired;
|
|
@@ -7576,7 +7576,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7576
7576
|
ngOnChanges(changes) {
|
|
7577
7577
|
if (changes.itemNumber)
|
|
7578
7578
|
if (changes.itemNumber.previousValue) {
|
|
7579
|
-
let name = this.repeaterField.controlOptions.
|
|
7579
|
+
let name = this.repeaterField.controlOptions.name + "." + changes.itemNumber.previousValue.toString() + "." + this.controlNumber.toString();
|
|
7580
7580
|
let value = this.group.controls[name].value;
|
|
7581
7581
|
this.item.clear();
|
|
7582
7582
|
this.group.removeControl(name);
|
|
@@ -7919,7 +7919,7 @@ class RepeaterFieldBuilderComponent {
|
|
|
7919
7919
|
//#region CheckBox
|
|
7920
7920
|
case DataType.CheckBox:
|
|
7921
7921
|
let checkBox = new CheckBoxOptions();
|
|
7922
|
-
checkBox.name = this.repeaterField.controlOptions.name + "." +
|
|
7922
|
+
checkBox.name = this.repeaterField.controlOptions.name + "." + changes.itemNumber.currentValue + "." + this.controlNumber.toString();
|
|
7923
7923
|
checkBox.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
7924
7924
|
checkBox.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
7925
7925
|
checkBox.viewType = this.repeaterField.controlOptions.viewType;
|
|
@@ -7979,6 +7979,7 @@ class RepeaterTableComponent {
|
|
|
7979
7979
|
this.items = [];
|
|
7980
7980
|
this.originalItems = [];
|
|
7981
7981
|
}
|
|
7982
|
+
//#region events
|
|
7982
7983
|
ngOnInit() {
|
|
7983
7984
|
this.repeaterGroup = new FormGroup({});
|
|
7984
7985
|
this.group.addControl(this.options.name, this.repeaterGroup);
|
|
@@ -8030,6 +8031,7 @@ class RepeaterTableComponent {
|
|
|
8030
8031
|
this.options.repeaterValue = result;
|
|
8031
8032
|
});
|
|
8032
8033
|
}
|
|
8034
|
+
//#endregion
|
|
8033
8035
|
deleteItem(index) {
|
|
8034
8036
|
if (this.items.length == this.options.minRequiredItems && this.options.isRequired)
|
|
8035
8037
|
return;
|
|
@@ -8064,11 +8066,11 @@ class RepeaterTableComponent {
|
|
|
8064
8066
|
this.items.push(this.items[this.items.length - 1] + 1);
|
|
8065
8067
|
}
|
|
8066
8068
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RepeaterTableComponent, deps: [{ token: i3.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8067
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-repeater\">\r\n <!--table-->\r\n <div class=\"table-responsive\">\r\n <table class=\"bbsf-repeater-table table {{options.repeaterTableExtraClasses}}\">\r\n <thead class=\"table-head\">\r\n <tr class=\"{{options.repeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.repeaterStructure\" [hidden]=\"item.isHiddenInput\">{{item.headerTitle}}</th>\r\n <th *ngIf=\"!options.disableDeleteButton\" class=\"text-center\">\r\n {{utilityService.getResourceValue(options.actionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"
|
|
8069
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: RepeaterTableComponent, selector: "BBSF-repeater-table", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-repeater\">\r\n <!--table-->\r\n <div class=\"table-responsive\">\r\n <table class=\"bbsf-repeater-table table {{options.repeaterTableExtraClasses}}\">\r\n <thead class=\"table-head\">\r\n <tr class=\"{{options.repeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.repeaterStructure\" [hidden]=\"item.isHiddenInput\">{{item.headerTitle}}</th>\r\n <th *ngIf=\"!options.disableDeleteButton\" class=\"text-center\">\r\n {{utilityService.getResourceValue(options.actionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\" [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\" [controlNumber]=\"r\"\r\n [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n </td>\r\n <td *ngIf=\"!options.disableDeleteButton\" class=\"td-delete\">\r\n <button class=\"{{options.deleteButtonExtraClasses}} btn btn-icon btn-sm btn-danger\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.minRequiredItems&&options.isRequired)\">\r\n <span [innerHTML]=\"options.deleteButtonText\"></span>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!--add button-->\r\n <div class=\"repeater-add-btn\" *ngIf=\"!options.disableAddButton\">\r\n <button class=\"{{options.addButtonExtraClasses}} btn btn-sm btn-brand\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.addButtonText\"></span>\r\n </button>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: RepeaterFieldBuilderComponent, selector: "repeater-field-builder", inputs: ["group", "itemNumber", "controlNumber", "repeaterField", "itemsValue"] }] }); }
|
|
8068
8070
|
}
|
|
8069
8071
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: RepeaterTableComponent, decorators: [{
|
|
8070
8072
|
type: Component,
|
|
8071
|
-
args: [{ selector: 'BBSF-repeater-table', template: "<div class=\"form-group bbsf-control bbsf-repeater\">\r\n <!--table-->\r\n <div class=\"table-responsive\">\r\n <table class=\"bbsf-repeater-table table {{options.repeaterTableExtraClasses}}\">\r\n <thead class=\"table-head\">\r\n <tr class=\"{{options.repeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.repeaterStructure\" [hidden]=\"item.isHiddenInput\">{{item.headerTitle}}</th>\r\n <th *ngIf=\"!options.disableDeleteButton\" class=\"text-center\">\r\n {{utilityService.getResourceValue(options.actionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"
|
|
8073
|
+
args: [{ selector: 'BBSF-repeater-table', template: "<div class=\"form-group bbsf-control bbsf-repeater\">\r\n <!--table-->\r\n <div class=\"table-responsive\">\r\n <table class=\"bbsf-repeater-table table {{options.repeaterTableExtraClasses}}\">\r\n <thead class=\"table-head\">\r\n <tr class=\"{{options.repeaterTableRowExtraClasses}}\">\r\n <th *ngFor=\"let item of options.repeaterStructure\" [hidden]=\"item.isHiddenInput\">{{item.headerTitle}}</th>\r\n <th *ngIf=\"!options.disableDeleteButton\" class=\"text-center\">\r\n {{utilityService.getResourceValue(options.actionLabelKey)}}</th>\r\n </tr>\r\n </thead>\r\n <tbody class=\"table-body\">\r\n <tr *ngFor=\"let item of items ; index as i\">\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\" [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\" [controlNumber]=\"r\"\r\n [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n </td>\r\n <td *ngIf=\"!options.disableDeleteButton\" class=\"td-delete\">\r\n <button class=\"{{options.deleteButtonExtraClasses}} btn btn-icon btn-sm btn-danger\" type=\"button\" (click)=\"deleteItem(i)\"\r\n [disabled]=\"(items.length ==options.minRequiredItems&&options.isRequired)\">\r\n <span [innerHTML]=\"options.deleteButtonText\"></span>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <!--add button-->\r\n <div class=\"repeater-add-btn\" *ngIf=\"!options.disableAddButton\">\r\n <button class=\"{{options.addButtonExtraClasses}} btn btn-sm btn-brand\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.addButtonText\"></span>\r\n </button>\r\n </div>\r\n</div>" }]
|
|
8072
8074
|
}], ctorParameters: () => [{ type: i3.UtilityService }], propDecorators: { group: [{
|
|
8073
8075
|
type: Input
|
|
8074
8076
|
}], options: [{
|
|
@@ -8082,6 +8084,7 @@ class RepeaterComponent {
|
|
|
8082
8084
|
this.originalItems = [];
|
|
8083
8085
|
this.repeaterContext = { index: 0, delete: null, elements: null };
|
|
8084
8086
|
}
|
|
8087
|
+
//#region events
|
|
8085
8088
|
ngOnInit() {
|
|
8086
8089
|
this.currentTemplate = this.initialTemplate;
|
|
8087
8090
|
this.repeaterGroup = new FormGroup({});
|
|
@@ -8134,7 +8137,14 @@ class RepeaterComponent {
|
|
|
8134
8137
|
this.options.repeaterValue = result;
|
|
8135
8138
|
});
|
|
8136
8139
|
}
|
|
8137
|
-
|
|
8140
|
+
ngAfterViewInit() {
|
|
8141
|
+
let templateRefs = this._templates["_results"].map((item) => item["template"]);
|
|
8142
|
+
this.templateRefs = templateRefs;
|
|
8143
|
+
this.repeaterContext.elements = this.templateRefs;
|
|
8144
|
+
this.repeaterContext.delete = this.delete;
|
|
8145
|
+
}
|
|
8146
|
+
//#endregion
|
|
8147
|
+
deleteItem(deletedIndex) {
|
|
8138
8148
|
if (this.items.length == this.options.minRequiredItems && this.options.isRequired)
|
|
8139
8149
|
return;
|
|
8140
8150
|
let deletedControls = [];
|
|
@@ -8144,7 +8154,7 @@ class RepeaterComponent {
|
|
|
8144
8154
|
for (let index = 0; index < controlNames.length; index++) {
|
|
8145
8155
|
const element = controlNames[index];
|
|
8146
8156
|
const keySplitArr = key.split('.');
|
|
8147
|
-
if (keySplitArr[0] + keySplitArr[1] == `${element}${
|
|
8157
|
+
if (keySplitArr[0] + keySplitArr[1] == `${element}${deletedIndex}`) {
|
|
8148
8158
|
const element = this.repeaterGroup.controls[key];
|
|
8149
8159
|
deletedControls.push({ [key]: element });
|
|
8150
8160
|
}
|
|
@@ -8159,17 +8169,13 @@ class RepeaterComponent {
|
|
|
8159
8169
|
}
|
|
8160
8170
|
}
|
|
8161
8171
|
}
|
|
8162
|
-
this.items
|
|
8172
|
+
this.items.splice(deletedIndex, 1);
|
|
8173
|
+
// this.items =
|
|
8174
|
+
//this.items.filter((res) => res != this.items[deletedIndex]);
|
|
8163
8175
|
}
|
|
8164
8176
|
addItem() {
|
|
8165
8177
|
this.items.push(this.items.length);
|
|
8166
8178
|
}
|
|
8167
|
-
ngAfterViewInit() {
|
|
8168
|
-
let templateRefs = this._templates["_results"].map((item) => item["template"]);
|
|
8169
|
-
this.templateRefs = templateRefs;
|
|
8170
|
-
this.repeaterContext.elements = this.templateRefs;
|
|
8171
|
-
this.repeaterContext.delete = this.delete;
|
|
8172
|
-
}
|
|
8173
8179
|
setCurrentIndex(i) {
|
|
8174
8180
|
this.repeaterContext.index = i;
|
|
8175
8181
|
}
|