@bnsights/bbsf-controls 1.0.194-beta.19-11 → 1.0.194-beta.19-13
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/fesm2022/bnsights-bbsf-controls.mjs +87 -113
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/Shared/Models/DropdownOptions.d.ts +3 -0
- package/lib/Shared/Models/RepeaterOptions.d.ts +2 -0
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +7 -0
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +7 -0
- package/package.json +2 -2
|
@@ -1828,9 +1828,7 @@ class DropdownListComponent {
|
|
|
1828
1828
|
if (this.options.selectedItems && this.options.dataSource) {
|
|
1829
1829
|
if (!this.options.singleSelection) {
|
|
1830
1830
|
// For multi-select, ensure selectedItems contains the full objects
|
|
1831
|
-
const selectedKeys = Array.isArray(this.options.selectedItems)
|
|
1832
|
-
? this.options.selectedItems
|
|
1833
|
-
: [this.options.selectedItems];
|
|
1831
|
+
const selectedKeys = Array.isArray(this.options.selectedItems) ? this.options.selectedItems : [this.options.selectedItems];
|
|
1834
1832
|
this.selectedItems = this.options.dataSource.filter(item => selectedKeys.includes(item[this.options.itemTempletkey]));
|
|
1835
1833
|
}
|
|
1836
1834
|
}
|
|
@@ -2027,7 +2025,7 @@ class DropdownListComponent {
|
|
|
2027
2025
|
return this.options.selectedItems && this.options.selectedItems.length > 0;
|
|
2028
2026
|
}
|
|
2029
2027
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownListComponent, deps: [{ token: OnPagingFiltersChangeService }, { token: ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: GlobalSettings }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2030
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownListComponent, isStandalone: true, selector: "BBSF-DropdownList", inputs: { group: "group", options: "options", DropdownTemplateVariable: "DropdownTemplateVariable" }, outputs: { onChange: "onChange", onClear: "onClear" }, ngImport: i0, 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\"\r\n class=\"text-danger\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n\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\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" [bindValue]=\"options.itemTempletkey\" groupBy=\"group\"\r\n [bindLabel]=\"options.itemTempletvalue\" [items]=\"options.dataSource\" [notFoundText]=\"options.notFoundText\"\r\n [maxSelectedItems]=\"options.limitSelection\" [searchable]=\"options.allowSearchFilter\"\r\n [multiple]=\"!options.singleSelection\" [readonly]=\"options.isDisabled\" [clearable]=\"true\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.name}}\" [(ngModel)]=\"options.selectedItems\"\r\n (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"dropdownListFormControl.invalid && dropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.singleSelection ? true : false\">\r\n\r\n <!--Header template for Select All / Deselect All when enableCheckAll is true and not single selection-->\r\n <ng-template ng-header-tmp *ngIf=\"options.enableCheckAll && !options.singleSelection\">\r\n <div class=\"bbsf-select-all-header\">\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-select-all-btn\" (click)=\"selectAllItems()\"\r\n [disabled]=\"options.isDisabled || isAllSelected()\">\r\n {{utilityService.getResourceValue('selectAll') || 'Select All'}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-deselect-all-btn\" (click)=\"deselectAllItems()\"\r\n [disabled]=\"options.isDisabled || !hasSelectedItems()\">\r\n {{utilityService.getResourceValue('deselectAll') || 'Deselect All'}}\r\n </button>\r\n </div>\r\n </ng-template>\r\n <!--No checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.showCheckbox\" ng-option-tmp let-item=\"item\"
|
|
2028
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownListComponent, isStandalone: true, selector: "BBSF-DropdownList", inputs: { group: "group", options: "options", DropdownTemplateVariable: "DropdownTemplateVariable" }, outputs: { onChange: "onChange", onClear: "onClear" }, ngImport: i0, 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\"\r\n class=\"text-danger\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n\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\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" [bindValue]=\"options.itemTempletkey\" groupBy=\"group\"\r\n [bindLabel]=\"options.itemTempletvalue\" [items]=\"options.dataSource\" [notFoundText]=\"options.notFoundText\"\r\n [maxSelectedItems]=\"options.limitSelection\" [searchable]=\"options.allowSearchFilter\"\r\n [multiple]=\"!options.singleSelection\" [readonly]=\"options.isDisabled\" [clearable]=\"true\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.name}}\" [(ngModel)]=\"options.selectedItems\"\r\n (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"dropdownListFormControl.invalid && dropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.singleSelection ? true : false\">\r\n\r\n <!--Header template for Select All / Deselect All when enableCheckAll is true and not single selection-->\r\n <ng-template ng-header-tmp *ngIf=\"options.enableCheckAll && !options.singleSelection\">\r\n <div class=\"bbsf-select-all-header\">\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-select-all-btn\" (click)=\"selectAllItems()\"\r\n [disabled]=\"options.isDisabled || isAllSelected()\">\r\n {{utilityService.getResourceValue('selectAll') || 'Select All'}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-deselect-all-btn\" (click)=\"deselectAllItems()\"\r\n [disabled]=\"options.isDisabled || !hasSelectedItems()\">\r\n {{utilityService.getResourceValue('deselectAll') || 'Deselect All'}}\r\n </button>\r\n </div>\r\n </ng-template>\r\n <!--Custom item template-->\r\n <ng-template *ngIf=\"options.customTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <ng-container\r\n *ngTemplateOutlet=\"options.customTemplate; context: { $implicit: item, item: item, item$: item$, index: index }\"></ng-container>\r\n </ng-template>\r\n <!--No checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.customTemplate && !options.showCheckbox\" ng-option-tmp let-item=\"item\"\r\n let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.disabledItemsTooltipValue : ''}}\"\r\n id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.customTemplate && options.showCheckbox\" ng-option-tmp let-item=\"item\"\r\n 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\"\r\n [ngModelOptions]=\"{standalone: true}\" [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 <!--Has group, Customize group template-->\r\n <ng-template *ngIf=\"options.hasGroup\" ngOptgroupTmp let-item=\"item\" let-item$=\"item$\">\r\n <label class=\"bbsf-label bbsf-group-label\">{{item.group}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.disableBootstrapSelect&&!options.isReadonly\" class=\"form-control\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" (change)=\"onItemSelect()\"\r\n [(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>\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) \">\r\n {{resetError()}}\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: NgSelectModule }, { kind: "component", type: i7$2.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i7$2.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i7$2.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }] }); }
|
|
2031
2029
|
}
|
|
2032
2030
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownListComponent, decorators: [{
|
|
2033
2031
|
type: Component,
|
|
@@ -2036,7 +2034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
2036
2034
|
FormsModule,
|
|
2037
2035
|
ReactiveFormsModule,
|
|
2038
2036
|
NgSelectModule
|
|
2039
|
-
], 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\"\r\n class=\"text-danger\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n\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\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" [bindValue]=\"options.itemTempletkey\" groupBy=\"group\"\r\n [bindLabel]=\"options.itemTempletvalue\" [items]=\"options.dataSource\" [notFoundText]=\"options.notFoundText\"\r\n [maxSelectedItems]=\"options.limitSelection\" [searchable]=\"options.allowSearchFilter\"\r\n [multiple]=\"!options.singleSelection\" [readonly]=\"options.isDisabled\" [clearable]=\"true\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.name}}\" [(ngModel)]=\"options.selectedItems\"\r\n (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"dropdownListFormControl.invalid && dropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.singleSelection ? true : false\">\r\n\r\n <!--Header template for Select All / Deselect All when enableCheckAll is true and not single selection-->\r\n <ng-template ng-header-tmp *ngIf=\"options.enableCheckAll && !options.singleSelection\">\r\n <div class=\"bbsf-select-all-header\">\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-select-all-btn\" (click)=\"selectAllItems()\"\r\n [disabled]=\"options.isDisabled || isAllSelected()\">\r\n {{utilityService.getResourceValue('selectAll') || 'Select All'}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-deselect-all-btn\" (click)=\"deselectAllItems()\"\r\n [disabled]=\"options.isDisabled || !hasSelectedItems()\">\r\n {{utilityService.getResourceValue('deselectAll') || 'Deselect All'}}\r\n </button>\r\n </div>\r\n </ng-template>\r\n <!--No checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.showCheckbox\" ng-option-tmp let-item=\"item\"
|
|
2037
|
+
], 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\"\r\n class=\"text-danger\" aria-required=\"true\">*</span>\r\n </label>\r\n\r\n\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\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" [bindValue]=\"options.itemTempletkey\" groupBy=\"group\"\r\n [bindLabel]=\"options.itemTempletvalue\" [items]=\"options.dataSource\" [notFoundText]=\"options.notFoundText\"\r\n [maxSelectedItems]=\"options.limitSelection\" [searchable]=\"options.allowSearchFilter\"\r\n [multiple]=\"!options.singleSelection\" [readonly]=\"options.isDisabled\" [clearable]=\"true\"\r\n placeholder=\"{{options.placeholder}}\" id=\"{{options.name}}\" [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\" formControlName=\"{{options.name}}\" [(ngModel)]=\"options.selectedItems\"\r\n (change)=\"onItemSelect()\" (clear)=\"Clear()\"\r\n [class.is-invalid]=\"dropdownListFormControl.invalid && dropdownListFormControl.touched\"\r\n [closeOnSelect]=\"options.singleSelection ? true : false\">\r\n\r\n <!--Header template for Select All / Deselect All when enableCheckAll is true and not single selection-->\r\n <ng-template ng-header-tmp *ngIf=\"options.enableCheckAll && !options.singleSelection\">\r\n <div class=\"bbsf-select-all-header\">\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-select-all-btn\" (click)=\"selectAllItems()\"\r\n [disabled]=\"options.isDisabled || isAllSelected()\">\r\n {{utilityService.getResourceValue('selectAll') || 'Select All'}}\r\n </button>\r\n <button type=\"button\" class=\"btn btn-link btn-sm bbsf-deselect-all-btn\" (click)=\"deselectAllItems()\"\r\n [disabled]=\"options.isDisabled || !hasSelectedItems()\">\r\n {{utilityService.getResourceValue('deselectAll') || 'Deselect All'}}\r\n </button>\r\n </div>\r\n </ng-template>\r\n <!--Custom item template-->\r\n <ng-template *ngIf=\"options.customTemplate\" ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <ng-container\r\n *ngTemplateOutlet=\"options.customTemplate; context: { $implicit: item, item: item, item$: item$, index: index }\"></ng-container>\r\n </ng-template>\r\n <!--No checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.customTemplate && !options.showCheckbox\" ng-option-tmp let-item=\"item\"\r\n let-item$=\"item$\" let-index=\"index\">\r\n <label class=\"bbsf-label\" title=\"{{item.disabled ? options.disabledItemsTooltipValue : ''}}\"\r\n id={{item.key}}>{{item.value}}</label>\r\n </ng-template>\r\n <!--checkbox, Customize item template-->\r\n <ng-template *ngIf=\"!options.customTemplate && options.showCheckbox\" ng-option-tmp let-item=\"item\"\r\n 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\"\r\n [ngModelOptions]=\"{standalone: true}\" [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 <!--Has group, Customize group template-->\r\n <ng-template *ngIf=\"options.hasGroup\" ngOptgroupTmp let-item=\"item\" let-item$=\"item$\">\r\n <label class=\"bbsf-label bbsf-group-label\">{{item.group}}</label>\r\n </ng-template>\r\n\r\n </ng-select>\r\n\r\n <!--input disabled bootstrap select-->\r\n <select *ngIf=\"options.disableBootstrapSelect&&!options.isReadonly\" class=\"form-control\"\r\n [attr.dir]=\"options.forceDirection==2?'rtl':'auto'\" (change)=\"onItemSelect()\"\r\n [(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>\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) \">\r\n {{resetError()}}\r\n </div>\r\n </div>\r\n</div>" }]
|
|
2040
2038
|
}], ctorParameters: () => [{ type: OnPagingFiltersChangeService }, { type: ControlUtility }, { type: i2.ControlContainer, decorators: [{
|
|
2041
2039
|
type: Optional
|
|
2042
2040
|
}] }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: GlobalSettings }], propDecorators: { group: [{
|
|
@@ -9518,7 +9516,7 @@ class AutocompleteTextBoxComponent {
|
|
|
9518
9516
|
}
|
|
9519
9517
|
}
|
|
9520
9518
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AutocompleteTextBoxComponent, deps: [{ token: i1.HttpClient }, { token: ErrorMassageValidation }, { token: i3$1.RequestHandlerService }, { token: ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: GlobalSettings }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9521
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: AutocompleteTextBoxComponent, isStandalone: true, selector: "BBSF-AutocompleteTextBox", inputs: { group: "group", name: "name", options: "options", DropdownTemplateVariable: "DropdownTemplateVariable" }, outputs: { OnChange: "OnChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-autocomplete-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\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.isReadonly\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"!options.allowNewSelection\"\r\n [data]=\"dataList\" [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'
|
|
9519
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: AutocompleteTextBoxComponent, isStandalone: true, selector: "BBSF-AutocompleteTextBox", inputs: { group: "group", name: "name", options: "options", DropdownTemplateVariable: "DropdownTemplateVariable" }, outputs: { OnChange: "OnChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-autocomplete-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\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.isReadonly\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"!options.allowNewSelection\"\r\n [data]=\"dataList\" [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'\r\n [itemTemplate]=\"options.customTemplate?options.customTemplate:itemTemplate\" [dir]=\"textDir\"\r\n formControlName=\"{{name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched\"\r\n (inputCleared)=\"onInputCleared()\" (closed)=\"checkIsAutocomplateInFilter()\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"options.allowNewSelection\" [data]=\"dataList\"\r\n [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'\r\n [itemTemplate]=\"options.customTemplate?options.customTemplate:itemTemplate\" [dir]=\"textDir\"\r\n (inputCleared)=\"onInputCleared()\" formControlName=\"{{name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n (closed)=\"checkIsAutocomplateInFilter()\"\r\n [class.is-invalid]=\"autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.itemWithImage\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{autoCompleteTextBoxControl.value.value}}</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=\"(autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(autoCompleteTextBoxControl.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: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.KeyValuePipe, name: "keyvalue" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: TypeaheadModule }, { kind: "ngmodule", type: AutocompleteLibModule }, { kind: "component", type: i9.AutocompleteComponent, selector: "ng-autocomplete", inputs: ["data", "searchKeyword", "placeholder", "heading", "initialValue", "historyIdentifier", "historyHeading", "historyListMaxNumber", "notFoundText", "isLoading", "debounceTime", "disabled", "minQueryLength", "focusFirst", "customFilter", "selectedValueRender", "itemTemplate", "notFoundTemplate"], outputs: ["selected", "inputChanged", "inputFocused", "inputCleared", "opened", "closed", "scrolledToEnd"] }] }); }
|
|
9522
9520
|
}
|
|
9523
9521
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: AutocompleteTextBoxComponent, decorators: [{
|
|
9524
9522
|
type: Component,
|
|
@@ -9528,7 +9526,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
9528
9526
|
ReactiveFormsModule,
|
|
9529
9527
|
TypeaheadModule,
|
|
9530
9528
|
AutocompleteLibModule
|
|
9531
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<div class=\"form-group bbsf-control bbsf-autocomplete-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\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.isReadonly\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"!options.allowNewSelection\"\r\n [data]=\"dataList\" [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'
|
|
9529
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<div class=\"form-group bbsf-control bbsf-autocomplete-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\"\r\n class=\"text-danger\">*</span>\r\n </label>\r\n <!--Input container-->\r\n <div class=\"bbsf-input-container\" *ngIf=\"!options.isReadonly\">\r\n <!--input-->\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"!options.allowNewSelection\"\r\n [data]=\"dataList\" [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'\r\n [itemTemplate]=\"options.customTemplate?options.customTemplate:itemTemplate\" [dir]=\"textDir\"\r\n formControlName=\"{{name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n [class.is-invalid]=\"autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched\"\r\n (inputCleared)=\"onInputCleared()\" (closed)=\"checkIsAutocomplateInFilter()\">\r\n </ng-autocomplete>\r\n\r\n <ng-autocomplete class=\"form-control {{options.extraClasses}}\" *ngIf=\"options.allowNewSelection\" [data]=\"dataList\"\r\n [initialValue]=\"SelectedValue\" [searchKeyword]=\"keyword\" placeholder=\"{{options.placeholder}}\"\r\n (selected)='selectEvent($event)' (inputChanged)='onChangeSearch($event)'\r\n [itemTemplate]=\"options.customTemplate?options.customTemplate:itemTemplate\" [dir]=\"textDir\"\r\n (inputCleared)=\"onInputCleared()\" formControlName=\"{{name}}\" aria-describedby=\"email-error\" aria-invalid=\"true\"\r\n (closed)=\"checkIsAutocomplateInFilter()\"\r\n [class.is-invalid]=\"autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched\">\r\n </ng-autocomplete>\r\n\r\n <ng-template #itemTemplate let-item>\r\n <img *ngIf=\"options.itemWithImage\" src=\"{{(item.image?item.image:avatarImage)}}\" />\r\n <a [innerHTML]=\"item.value\"></a>\r\n </ng-template>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\"><span class=\"readonly-view\">{{autoCompleteTextBoxControl.value.value}}</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=\"(autoCompleteTextBoxControl.invalid && autoCompleteTextBoxControl.touched)\">\r\n {{getErrorValidation(autoCompleteTextBoxControl.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>" }]
|
|
9532
9530
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: ErrorMassageValidation }, { type: i3$1.RequestHandlerService }, { type: ControlUtility }, { type: i2.ControlContainer, decorators: [{
|
|
9533
9531
|
type: Optional
|
|
9534
9532
|
}] }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: GlobalSettings }], propDecorators: { group: [{
|
|
@@ -10329,19 +10327,14 @@ class RepeaterFieldBuilderComponent {
|
|
|
10329
10327
|
//#region DateTime
|
|
10330
10328
|
case DataType.Date:
|
|
10331
10329
|
let date = new DatePickerOptions();
|
|
10332
|
-
date.name =
|
|
10333
|
-
this.repeaterField.controlOptions.name +
|
|
10334
|
-
'.' +
|
|
10335
|
-
this.itemNumber.toString() +
|
|
10336
|
-
'.' +
|
|
10337
|
-
this.controlNumber.toString();
|
|
10330
|
+
date.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10338
10331
|
date.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10339
10332
|
date.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10340
10333
|
date.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10341
10334
|
date.viewType = this.repeaterField.controlOptions.viewType;
|
|
10342
|
-
date.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10343
|
-
|
|
10344
|
-
|
|
10335
|
+
date.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10336
|
+
date.startDate = this.repeaterField.controlOptions.startDate;
|
|
10337
|
+
date.endDate = this.repeaterField.controlOptions.endDate;
|
|
10345
10338
|
date.pickerType = PickerType.Calendar;
|
|
10346
10339
|
date.selectMode = SelectMode.Single;
|
|
10347
10340
|
date.startView = StartView.Month;
|
|
@@ -10353,19 +10346,14 @@ class RepeaterFieldBuilderComponent {
|
|
|
10353
10346
|
break;
|
|
10354
10347
|
case DataType.DateTime:
|
|
10355
10348
|
let dateTime = new DatePickerOptions();
|
|
10356
|
-
dateTime.name =
|
|
10357
|
-
this.repeaterField.controlOptions.name +
|
|
10358
|
-
'.' +
|
|
10359
|
-
this.itemNumber.toString() +
|
|
10360
|
-
'.' +
|
|
10361
|
-
this.controlNumber.toString();
|
|
10349
|
+
dateTime.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10362
10350
|
dateTime.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10363
10351
|
dateTime.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10364
10352
|
dateTime.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10365
10353
|
dateTime.viewType = this.repeaterField.controlOptions.viewType;
|
|
10366
|
-
dateTime.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10367
|
-
|
|
10368
|
-
|
|
10354
|
+
dateTime.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10355
|
+
dateTime.startDate = this.repeaterField.controlOptions.startDate;
|
|
10356
|
+
dateTime.endDate = this.repeaterField.controlOptions.endDate;
|
|
10369
10357
|
dateTime.pickerType = PickerType.Both;
|
|
10370
10358
|
dateTime.selectMode = SelectMode.Single;
|
|
10371
10359
|
dateTime.startView = StartView.Month;
|
|
@@ -10377,19 +10365,12 @@ class RepeaterFieldBuilderComponent {
|
|
|
10377
10365
|
break;
|
|
10378
10366
|
case DataType.Time:
|
|
10379
10367
|
let time = new DatePickerOptions();
|
|
10380
|
-
time.name =
|
|
10381
|
-
this.repeaterField.controlOptions.name +
|
|
10382
|
-
'.' +
|
|
10383
|
-
this.itemNumber.toString() +
|
|
10384
|
-
'.' +
|
|
10385
|
-
this.controlNumber.toString();
|
|
10368
|
+
time.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10386
10369
|
time.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10387
10370
|
time.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10388
10371
|
time.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10389
10372
|
time.viewType = this.repeaterField.controlOptions.viewType;
|
|
10390
|
-
time.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10391
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
10392
|
-
: '';
|
|
10373
|
+
time.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10393
10374
|
time.pickerType = PickerType.Timer;
|
|
10394
10375
|
time.selectMode = SelectMode.Single;
|
|
10395
10376
|
time.startView = StartView.Month;
|
|
@@ -10403,19 +10384,12 @@ class RepeaterFieldBuilderComponent {
|
|
|
10403
10384
|
//#region Dropdown
|
|
10404
10385
|
case DataType.SingleSelect:
|
|
10405
10386
|
let singleSelect = new DropdownOptions();
|
|
10406
|
-
singleSelect.name =
|
|
10407
|
-
this.repeaterField.controlOptions.name +
|
|
10408
|
-
'.' +
|
|
10409
|
-
this.itemNumber.toString() +
|
|
10410
|
-
'.' +
|
|
10411
|
-
this.controlNumber.toString();
|
|
10387
|
+
singleSelect.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10412
10388
|
singleSelect.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10413
10389
|
singleSelect.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10414
10390
|
singleSelect.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10415
10391
|
singleSelect.viewType = this.repeaterField.controlOptions.viewType;
|
|
10416
|
-
singleSelect.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10417
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
10418
|
-
: '';
|
|
10392
|
+
singleSelect.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10419
10393
|
singleSelect.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10420
10394
|
singleSelect.singleSelection = true;
|
|
10421
10395
|
singleSelect.showCheckbox = false;
|
|
@@ -10427,45 +10401,31 @@ class RepeaterFieldBuilderComponent {
|
|
|
10427
10401
|
this.renderComponentService.renderDynamicComponent(this.item, DropdownListComponent, this.group, singleSelect);
|
|
10428
10402
|
break;
|
|
10429
10403
|
case DataType.MulipleSelect:
|
|
10430
|
-
let
|
|
10431
|
-
|
|
10432
|
-
|
|
10433
|
-
|
|
10434
|
-
|
|
10435
|
-
|
|
10436
|
-
|
|
10437
|
-
|
|
10438
|
-
|
|
10439
|
-
|
|
10440
|
-
|
|
10441
|
-
|
|
10442
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
10443
|
-
: '';
|
|
10444
|
-
mulipleSelect.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10445
|
-
mulipleSelect.singleSelection = false;
|
|
10446
|
-
mulipleSelect.showCheckbox = false;
|
|
10447
|
-
mulipleSelect.allowSearchFilter = this.repeaterField.controlOptions.hasSearch;
|
|
10448
|
-
mulipleSelect.selectedItems = this.value;
|
|
10404
|
+
let multipleSelect = new DropdownOptions();
|
|
10405
|
+
multipleSelect.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10406
|
+
multipleSelect.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10407
|
+
multipleSelect.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10408
|
+
multipleSelect.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10409
|
+
multipleSelect.viewType = this.repeaterField.controlOptions.viewType;
|
|
10410
|
+
multipleSelect.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10411
|
+
multipleSelect.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10412
|
+
multipleSelect.singleSelection = false;
|
|
10413
|
+
multipleSelect.showCheckbox = false;
|
|
10414
|
+
multipleSelect.allowSearchFilter = this.repeaterField.controlOptions.hasSearch;
|
|
10415
|
+
multipleSelect.selectedItems = this.value;
|
|
10449
10416
|
if (this.repeaterField.controlOptions.customValidation.length > 0) {
|
|
10450
|
-
|
|
10417
|
+
multipleSelect.customValidation = this.repeaterField.controlOptions.customValidation;
|
|
10451
10418
|
}
|
|
10452
|
-
this.renderComponentService.renderDynamicComponent(this.item, DropdownListComponent, this.group,
|
|
10419
|
+
this.renderComponentService.renderDynamicComponent(this.item, DropdownListComponent, this.group, multipleSelect);
|
|
10453
10420
|
break;
|
|
10454
10421
|
case DataType.Goal:
|
|
10455
10422
|
let goal = new DropdownOptions();
|
|
10456
|
-
goal.name =
|
|
10457
|
-
this.repeaterField.controlOptions.name +
|
|
10458
|
-
'.' +
|
|
10459
|
-
this.itemNumber.toString() +
|
|
10460
|
-
'.' +
|
|
10461
|
-
this.controlNumber.toString();
|
|
10423
|
+
goal.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10462
10424
|
goal.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10463
10425
|
goal.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10464
10426
|
goal.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10465
10427
|
goal.viewType = this.repeaterField.controlOptions.viewType;
|
|
10466
|
-
goal.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10467
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
10468
|
-
: '';
|
|
10428
|
+
goal.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10469
10429
|
goal.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10470
10430
|
goal.singleSelection = !this.repeaterField.controlOptions.isMultiple;
|
|
10471
10431
|
goal.showCheckbox = false;
|
|
@@ -10478,19 +10438,12 @@ class RepeaterFieldBuilderComponent {
|
|
|
10478
10438
|
break;
|
|
10479
10439
|
case DataType.Challenge:
|
|
10480
10440
|
let challenge = new DropdownOptions();
|
|
10481
|
-
challenge.name =
|
|
10482
|
-
this.repeaterField.controlOptions.name +
|
|
10483
|
-
'.' +
|
|
10484
|
-
this.itemNumber.toString() +
|
|
10485
|
-
'.' +
|
|
10486
|
-
this.controlNumber.toString();
|
|
10441
|
+
challenge.name = `${this.repeaterField.controlOptions.name}.${this.itemNumber}.${this.controlNumber}`;
|
|
10487
10442
|
challenge.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10488
10443
|
challenge.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10489
10444
|
challenge.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10490
10445
|
challenge.viewType = this.repeaterField.controlOptions.viewType;
|
|
10491
|
-
challenge.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10492
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
10493
|
-
: '';
|
|
10446
|
+
challenge.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10494
10447
|
challenge.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10495
10448
|
challenge.dataSource = this.repeaterField.controlOptions.dataSource;
|
|
10496
10449
|
challenge.singleSelection = !this.repeaterField.controlOptions.isMultiple;
|
|
@@ -10939,19 +10892,14 @@ class RepeaterFieldBuilderComponent {
|
|
|
10939
10892
|
//#region DateTime
|
|
10940
10893
|
case DataType.Date:
|
|
10941
10894
|
let date = new DatePickerOptions();
|
|
10942
|
-
date.name =
|
|
10943
|
-
this.repeaterField.controlOptions.name +
|
|
10944
|
-
'.' +
|
|
10945
|
-
changes.itemNumber.currentValue +
|
|
10946
|
-
'.' +
|
|
10947
|
-
this.controlNumber.toString();
|
|
10895
|
+
date.name = `${this.repeaterField.controlOptions.name}.${changes.itemNumber.currentValue}.${this.controlNumber}`;
|
|
10948
10896
|
date.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10949
10897
|
date.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10950
10898
|
date.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10951
10899
|
date.viewType = this.repeaterField.controlOptions.viewType;
|
|
10952
|
-
date.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10953
|
-
|
|
10954
|
-
|
|
10900
|
+
date.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10901
|
+
date.startDate = this.repeaterField.controlOptions.startDate;
|
|
10902
|
+
date.endDate = this.repeaterField.controlOptions.endDate;
|
|
10955
10903
|
date.pickerType = PickerType.Calendar;
|
|
10956
10904
|
date.selectMode = SelectMode.Single;
|
|
10957
10905
|
date.startView = StartView.Month;
|
|
@@ -10963,19 +10911,14 @@ class RepeaterFieldBuilderComponent {
|
|
|
10963
10911
|
break;
|
|
10964
10912
|
case DataType.DateTime:
|
|
10965
10913
|
let dateTime = new DatePickerOptions();
|
|
10966
|
-
dateTime.name =
|
|
10967
|
-
this.repeaterField.controlOptions.name +
|
|
10968
|
-
'.' +
|
|
10969
|
-
changes.itemNumber.currentValue +
|
|
10970
|
-
'.' +
|
|
10971
|
-
this.controlNumber.toString();
|
|
10914
|
+
dateTime.name = `${this.repeaterField.controlOptions.name}.${changes.itemNumber.currentValue}.${this.controlNumber}`;
|
|
10972
10915
|
dateTime.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10973
10916
|
dateTime.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10974
10917
|
dateTime.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10975
10918
|
dateTime.viewType = this.repeaterField.controlOptions.viewType;
|
|
10976
|
-
dateTime.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
10977
|
-
|
|
10978
|
-
|
|
10919
|
+
dateTime.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
10920
|
+
dateTime.startDate = this.repeaterField.controlOptions.startDate;
|
|
10921
|
+
dateTime.endDate = this.repeaterField.controlOptions.endDate;
|
|
10979
10922
|
dateTime.pickerType = PickerType.Both;
|
|
10980
10923
|
dateTime.selectMode = SelectMode.Single;
|
|
10981
10924
|
dateTime.startView = StartView.Month;
|
|
@@ -10987,19 +10930,12 @@ class RepeaterFieldBuilderComponent {
|
|
|
10987
10930
|
break;
|
|
10988
10931
|
case DataType.Time:
|
|
10989
10932
|
let time = new DatePickerOptions();
|
|
10990
|
-
time.name =
|
|
10991
|
-
this.repeaterField.controlOptions.name +
|
|
10992
|
-
'.' +
|
|
10993
|
-
changes.itemNumber.currentValue +
|
|
10994
|
-
'.' +
|
|
10995
|
-
this.controlNumber.toString();
|
|
10933
|
+
time.name = `${this.repeaterField.controlOptions.name}.${changes.itemNumber.currentValue}.${this.controlNumber}`;
|
|
10996
10934
|
time.hideLabel = this.repeaterField.controlOptions.hideLabel;
|
|
10997
10935
|
time.labelKey = this.repeaterField.controlOptions.labelKey;
|
|
10998
10936
|
time.isRequired = this.repeaterField.controlOptions.isRequired;
|
|
10999
10937
|
time.viewType = this.repeaterField.controlOptions.viewType;
|
|
11000
|
-
time.labelDescription = this.repeaterField.controlOptions.labelDescription
|
|
11001
|
-
? this.repeaterField.controlOptions.labelDescription
|
|
11002
|
-
: '';
|
|
10938
|
+
time.labelDescription = this.repeaterField.controlOptions.labelDescription ? this.repeaterField.controlOptions.labelDescription : '';
|
|
11003
10939
|
time.pickerType = PickerType.Timer;
|
|
11004
10940
|
time.selectMode = SelectMode.Single;
|
|
11005
10941
|
time.startView = StartView.Month;
|
|
@@ -11540,8 +11476,27 @@ class RepeaterComponent {
|
|
|
11540
11476
|
setCurrentIndex(i) {
|
|
11541
11477
|
this.repeaterContext.index = i;
|
|
11542
11478
|
}
|
|
11479
|
+
/**
|
|
11480
|
+
* Determines if the delete button should be disabled for a specific entry.
|
|
11481
|
+
* Combines global logic (minRequiredItems + isRequired) with per-entry function if provided.
|
|
11482
|
+
* @param index The index of the entry
|
|
11483
|
+
* @returns true if delete button should be disabled, false otherwise
|
|
11484
|
+
*/
|
|
11485
|
+
isDeleteButtonDisabled(index) {
|
|
11486
|
+
// Check global condition: disable if at minimum required items and repeater is required
|
|
11487
|
+
const globalDisabled = this.items.length == this.options.minRequiredItems && this.options.isRequired;
|
|
11488
|
+
if (globalDisabled) {
|
|
11489
|
+
return true;
|
|
11490
|
+
}
|
|
11491
|
+
// Check per-entry function if provided
|
|
11492
|
+
if (this.options.isDeleteDisabled) {
|
|
11493
|
+
const item = this.originalItems[index] || this.options.repeaterValue[index] || {};
|
|
11494
|
+
return this.options.isDeleteDisabled(item, index);
|
|
11495
|
+
}
|
|
11496
|
+
return false;
|
|
11497
|
+
}
|
|
11543
11498
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RepeaterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11544
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RepeaterComponent, isStandalone: true, selector: "BBSF-repeater", inputs: { group: "group", options: "options", initialTemplate: "initialTemplate" }, viewQueries: [{ propertyName: "delete", first: true, predicate: ["delete"], descendants: true }, { propertyName: "_templates", predicate: NgTemplateNameDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let repeaterField of options.repeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"
|
|
11499
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RepeaterComponent, isStandalone: true, selector: "BBSF-repeater", inputs: { group: "group", options: "options", initialTemplate: "initialTemplate" }, viewQueries: [{ propertyName: "delete", first: true, predicate: ["delete"], descendants: true }, { propertyName: "_templates", predicate: NgTemplateNameDirective, descendants: true }], ngImport: i0, template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let repeaterField of options.repeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"\r\n let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"repeaterField\" [repeaterField]=\"repeaterField\" [itemNumber]=\"Index\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"control\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button *ngIf=\"!options.isReadonly\" class=\"{{options.deleteButtonExtraClasses}}\" type=\"button\"\r\n (click)=\"deleteItem(item)\" [disabled]=\"isDeleteButtonDisabled(item)\">\r\n <span [innerHTML]=\"options.deleteButtonText\"></span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button *ngIf=\"!options.isReadonly\" class=\"{{options.addButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.addButtonText\"></span>\r\n </button>\r\n</ng-template>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: NgTemplateNameDirective, selector: "ng-template[name]", inputs: ["name"] }, { kind: "component", type: RepeaterFieldBuilderComponent, selector: "repeater-field-builder", inputs: ["group", "itemNumber", "controlNumber", "repeaterField", "itemsValue"] }] }); }
|
|
11545
11500
|
}
|
|
11546
11501
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RepeaterComponent, decorators: [{
|
|
11547
11502
|
type: Component,
|
|
@@ -11551,7 +11506,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
11551
11506
|
ReactiveFormsModule,
|
|
11552
11507
|
NgTemplateNameDirective,
|
|
11553
11508
|
RepeaterFieldBuilderComponent
|
|
11554
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let repeaterField of options.repeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"
|
|
11509
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], template: "<ng-container *ngFor='let item of items ; index as i'>\r\n {{setCurrentIndex(i)}}\r\n <ng-container *ngTemplateOutlet=\"currentTemplate; context: repeaterContext\">\r\n </ng-container>\r\n\r\n</ng-container>\r\n\r\n<ng-container *ngTemplateOutlet=\"add\">\r\n</ng-container>\r\n\r\n<ng-template *ngFor=\"let repeaterField of options.repeaterStructure ; index as i\" name=\"R{{i}}\" let-Index=\"itemIndex\"\r\n let-control=\"controlIndex\">\r\n <repeater-field-builder *ngIf=\"repeaterField\" [repeaterField]=\"repeaterField\" [itemNumber]=\"Index\"\r\n [itemsValue]=\"originalItems\" [controlNumber]=\"control\" [group]=\"repeaterGroup\">\r\n </repeater-field-builder>\r\n</ng-template>\r\n\r\n<ng-template #delete let-item=\"itemIndex\">\r\n <button *ngIf=\"!options.isReadonly\" class=\"{{options.deleteButtonExtraClasses}}\" type=\"button\"\r\n (click)=\"deleteItem(item)\" [disabled]=\"isDeleteButtonDisabled(item)\">\r\n <span [innerHTML]=\"options.deleteButtonText\"></span>\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #add>\r\n <button *ngIf=\"!options.isReadonly\" class=\"{{options.addButtonExtraClasses}}\" type=\"button\" (click)=\"addItem()\">\r\n <span [innerHTML]=\"options.addButtonText\"></span>\r\n </button>\r\n</ng-template>" }]
|
|
11555
11510
|
}], ctorParameters: () => [], propDecorators: { group: [{
|
|
11556
11511
|
type: Input
|
|
11557
11512
|
}], options: [{
|
|
@@ -11660,8 +11615,27 @@ class RepeaterTableComponent {
|
|
|
11660
11615
|
else
|
|
11661
11616
|
this.items.push(this.items[this.items.length - 1] + 1);
|
|
11662
11617
|
}
|
|
11618
|
+
/**
|
|
11619
|
+
* Determines if the delete button should be disabled for a specific entry.
|
|
11620
|
+
* Combines global logic (minRequiredItems + isRequired) with per-entry function if provided.
|
|
11621
|
+
* @param index The index of the entry
|
|
11622
|
+
* @returns true if delete button should be disabled, false otherwise
|
|
11623
|
+
*/
|
|
11624
|
+
isDeleteButtonDisabled(index) {
|
|
11625
|
+
// Check global condition: disable if at minimum required items and repeater is required
|
|
11626
|
+
const globalDisabled = this.items.length == this.options.minRequiredItems && this.options.isRequired;
|
|
11627
|
+
if (globalDisabled) {
|
|
11628
|
+
return true;
|
|
11629
|
+
}
|
|
11630
|
+
// Check per-entry function if provided
|
|
11631
|
+
if (this.options.isDeleteDisabled) {
|
|
11632
|
+
const item = this.originalItems[index] || this.options.repeaterValue[index] || {};
|
|
11633
|
+
return this.options.isDeleteDisabled(item, index);
|
|
11634
|
+
}
|
|
11635
|
+
return false;
|
|
11636
|
+
}
|
|
11663
11637
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RepeaterTableComponent, deps: [{ token: i3.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11664
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RepeaterTableComponent, isStandalone: true, 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 <td *ngIf=\"options.enableTableNumbering\">\r\n <span>#</span>\r\n </td>\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 *ngIf=\"options.enableTableNumbering\">{{i+1}}</td>\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"\r\n [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [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\"\r\n (click)=\"deleteItem(i)\" [disabled]=\"(
|
|
11638
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: RepeaterTableComponent, isStandalone: true, 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 <td *ngIf=\"options.enableTableNumbering\">\r\n <span>#</span>\r\n </td>\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 *ngIf=\"options.enableTableNumbering\">{{i+1}}</td>\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"\r\n [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [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\"\r\n (click)=\"deleteItem(i)\" [disabled]=\"isDeleteButtonDisabled(i)\">\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: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: RepeaterFieldBuilderComponent, selector: "repeater-field-builder", inputs: ["group", "itemNumber", "controlNumber", "repeaterField", "itemsValue"] }] }); }
|
|
11665
11639
|
}
|
|
11666
11640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: RepeaterTableComponent, decorators: [{
|
|
11667
11641
|
type: Component,
|
|
@@ -11670,7 +11644,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
|
|
|
11670
11644
|
FormsModule,
|
|
11671
11645
|
ReactiveFormsModule,
|
|
11672
11646
|
RepeaterFieldBuilderComponent
|
|
11673
|
-
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], 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 <td *ngIf=\"options.enableTableNumbering\">\r\n <span>#</span>\r\n </td>\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 *ngIf=\"options.enableTableNumbering\">{{i+1}}</td>\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"\r\n [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [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\"\r\n (click)=\"deleteItem(i)\" [disabled]=\"(
|
|
11647
|
+
], schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], 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 <td *ngIf=\"options.enableTableNumbering\">\r\n <span>#</span>\r\n </td>\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 *ngIf=\"options.enableTableNumbering\">{{i+1}}</td>\r\n <td *ngFor=\"let repeaterField of options.repeaterStructure ; index as r\"\r\n [hidden]=\"repeaterField.isHiddenInput\">\r\n <repeater-field-builder [repeaterField]=\"repeaterField\" [itemNumber]=\"i\" [itemsValue]=\"originalItems\"\r\n [controlNumber]=\"r\" [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\"\r\n (click)=\"deleteItem(i)\" [disabled]=\"isDeleteButtonDisabled(i)\">\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>" }]
|
|
11674
11648
|
}], ctorParameters: () => [{ type: i3.UtilityService }], propDecorators: { group: [{
|
|
11675
11649
|
type: Input
|
|
11676
11650
|
}], options: [{
|