@ng-dynamic-forms/ui-bootstrap
Version:
Bootstrap UI package for NG Dynamic Forms
46 lines • 13.9 kB
JavaScript
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
import { ReactiveFormsModule } from "@angular/forms";
import { BsDatepickerDirective, BsDatepickerModule } from "ngx-bootstrap/datepicker";
import { DynamicFormControlComponent } from "@ng-dynamic-forms/core";
import { NgClass, NgIf } from "@angular/common";
import * as i0 from "@angular/core";
import * as i1 from "@ng-dynamic-forms/core";
import * as i2 from "@angular/forms";
import * as i3 from "ngx-bootstrap/datepicker";
export class DynamicBootstrapDatePickerComponent extends DynamicFormControlComponent {
constructor(layoutService, validationService) {
super(layoutService, validationService);
this.layoutService = layoutService;
this.validationService = validationService;
this.blur = new EventEmitter();
this.change = new EventEmitter();
this.customEvent = new EventEmitter();
this.focus = new EventEmitter();
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapDatePickerComponent, deps: [{ token: i1.DynamicFormLayoutService }, { token: i1.DynamicFormValidationService }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: DynamicBootstrapDatePickerComponent, isStandalone: true, selector: "dynamic-bootstrap-datepicker", inputs: { formLayout: "formLayout", group: "group", layout: "layout", model: "model" }, outputs: { blur: "blur", change: "change", customEvent: "customEvent", focus: "focus" }, viewQueries: [{ propertyName: "bsDatePicker", first: true, predicate: BsDatepickerDirective, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"group\" class=\"input-group\">\n\n <input bsDatepicker class=\"form-control\" #bsDatepicker=\"bsDatepicker\"\n [autofocus]=\"model.autoFocus\"\n [bsConfig]=\"model.getAdditional('bsConfig', {containerClass: model.getAdditional('containerClass', 'theme-green'), showWeekNumbers: model.getAdditional('showWeekNumbers', true)})\"\n [formControlName]=\"model.id\"\n [id]=\"id\"\n [maxDate]=\"model.max\"\n [minDate]=\"model.min\"\n [name]=\"model.name\"\n [ngClass]=\"getClass('element', 'control')\"\n [outsideClick]=\"model.getAdditional('outsideClick', true)\"\n [placeholder]=\"model.placeholder\"\n [placement]=\"model.getAdditional('placement', 'bottom')\"\n [readonly]=\"model.readOnly\"\n [required]=\"model.required\"\n (bsValueChange)=\"onChange($event)\"\n (onHidden)=\"onCustomEvent($event, 'onHidden')\"\n (onShown)=\"onCustomEvent($event, 'onShown')\">\n\n <div *ngIf=\"model.toggleLabel\" class=\"input-group-btn\">\n\n <button *ngIf=\"model.toggleIcon\" class=\"btn\" (click)=\"bsDatepicker.toggle()\"><img [src]=\"model.toggleIcon\"/></button>\n <button *ngIf=\"model.toggleLabel\" class=\"btn\" (click)=\"bsDatepicker.toggle()\">{{ model.toggleLabel }}</button>\n\n </div>\n\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { 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: BsDatepickerModule }, { kind: "directive", type: i3.BsDatepickerDirective, selector: "[bsDatepicker]", inputs: ["placement", "triggers", "outsideClick", "container", "outsideEsc", "isDisabled", "minDate", "maxDate", "minMode", "daysDisabled", "datesDisabled", "datesEnabled", "dateCustomClasses", "dateTooltipTexts", "isOpen", "bsValue", "bsConfig"], outputs: ["onShown", "onHidden", "bsValueChange"], exportAs: ["bsDatepicker"] }, { kind: "directive", type: i3.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: DynamicBootstrapDatePickerComponent, decorators: [{
type: Component,
args: [{ selector: "dynamic-bootstrap-datepicker", changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, BsDatepickerModule, NgClass, NgIf], template: "<div [formGroup]=\"group\" class=\"input-group\">\n\n <input bsDatepicker class=\"form-control\" #bsDatepicker=\"bsDatepicker\"\n [autofocus]=\"model.autoFocus\"\n [bsConfig]=\"model.getAdditional('bsConfig', {containerClass: model.getAdditional('containerClass', 'theme-green'), showWeekNumbers: model.getAdditional('showWeekNumbers', true)})\"\n [formControlName]=\"model.id\"\n [id]=\"id\"\n [maxDate]=\"model.max\"\n [minDate]=\"model.min\"\n [name]=\"model.name\"\n [ngClass]=\"getClass('element', 'control')\"\n [outsideClick]=\"model.getAdditional('outsideClick', true)\"\n [placeholder]=\"model.placeholder\"\n [placement]=\"model.getAdditional('placement', 'bottom')\"\n [readonly]=\"model.readOnly\"\n [required]=\"model.required\"\n (bsValueChange)=\"onChange($event)\"\n (onHidden)=\"onCustomEvent($event, 'onHidden')\"\n (onShown)=\"onCustomEvent($event, 'onShown')\">\n\n <div *ngIf=\"model.toggleLabel\" class=\"input-group-btn\">\n\n <button *ngIf=\"model.toggleIcon\" class=\"btn\" (click)=\"bsDatepicker.toggle()\"><img [src]=\"model.toggleIcon\"/></button>\n <button *ngIf=\"model.toggleLabel\" class=\"btn\" (click)=\"bsDatepicker.toggle()\">{{ model.toggleLabel }}</button>\n\n </div>\n\n</div>\n" }]
}], ctorParameters: function () { return [{ type: i1.DynamicFormLayoutService }, { type: i1.DynamicFormValidationService }]; }, propDecorators: { formLayout: [{
type: Input
}], group: [{
type: Input
}], layout: [{
type: Input
}], model: [{
type: Input
}], blur: [{
type: Output
}], change: [{
type: Output
}], customEvent: [{
type: Output
}], focus: [{
type: Output
}], bsDatePicker: [{
type: ViewChild,
args: [BsDatepickerDirective, { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1ib290c3RyYXAtZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWZvcm1zL3VpLWJvb3RzdHJhcC9zcmMvbGliL2RhdGVwaWNrZXIvZHluYW1pYy1ib290c3RyYXAtZGF0ZXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWZvcm1zL3VpLWJvb3RzdHJhcC9zcmMvbGliL2RhdGVwaWNrZXIvZHluYW1pYy1ib290c3RyYXAtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQW9CLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckYsT0FBTyxFQUVILDJCQUEyQixFQU05QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBU2hELE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSwyQkFBMkI7SUFhaEYsWUFBc0IsYUFBdUMsRUFBWSxpQkFBK0M7UUFDcEgsS0FBSyxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRHRCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUFZLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFQOUcsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMvQyxnQkFBVyxHQUFnRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlFLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU14RCxDQUFDOzhHQWZRLG1DQUFtQztrR0FBbkMsbUNBQW1DLHVUQVdqQyxxQkFBcUIscUZDaENwQywwM0NBNEJBLDJDRFRjLG1CQUFtQixna0NBQUUsa0JBQWtCLHNoQkFBRSxPQUFPLG9GQUFFLElBQUk7OzJGQUV2RCxtQ0FBbUM7a0JBUC9DLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUV2Qix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUM7MEpBR3hELFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFFMkMsWUFBWTtzQkFBN0QsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJEaXJlY3RpdmUsIEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7XG4gICAgRHluYW1pY0RhdGVQaWNrZXJNb2RlbCxcbiAgICBEeW5hbWljRm9ybUNvbnRyb2xDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sQ3VzdG9tRXZlbnQsXG4gICAgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtTGF5b3V0LFxuICAgIER5bmFtaWNGb3JtTGF5b3V0U2VydmljZSxcbiAgICBEeW5hbWljRm9ybVZhbGlkYXRpb25TZXJ2aWNlXG59IGZyb20gXCJAbmctZHluYW1pYy1mb3Jtcy9jb3JlXCI7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJkeW5hbWljLWJvb3RzdHJhcC1kYXRlcGlja2VyXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9keW5hbWljLWJvb3RzdHJhcC1kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sXCIsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZSwgQnNEYXRlcGlja2VyTW9kdWxlLCBOZ0NsYXNzLCBOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBEeW5hbWljQm9vdHN0cmFwRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbENvbXBvbmVudCB7XG4gICAgQElucHV0KCkgZm9ybUxheW91dD86IER5bmFtaWNGb3JtTGF5b3V0O1xuICAgIEBJbnB1dCgpIGdyb3VwITogVW50eXBlZEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKSBsYXlvdXQ/OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQ7XG4gICAgQElucHV0KCkgbW9kZWwhOiBEeW5hbWljRGF0ZVBpY2tlck1vZGVsO1xuXG4gICAgQE91dHB1dCgpIGJsdXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjdXN0b21FdmVudDogRXZlbnRFbWl0dGVyPER5bmFtaWNGb3JtQ29udHJvbEN1c3RvbUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZChCc0RhdGVwaWNrZXJEaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KSBic0RhdGVQaWNrZXIhOiBCc0RhdGVwaWNrZXJEaXJlY3RpdmU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogRHluYW1pY0Zvcm1MYXlvdXRTZXJ2aWNlLCBwcm90ZWN0ZWQgdmFsaWRhdGlvblNlcnZpY2U6IER5bmFtaWNGb3JtVmFsaWRhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIobGF5b3V0U2VydmljZSwgdmFsaWRhdGlvblNlcnZpY2UpO1xuICAgIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJncm91cFwiIGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cblxuICAgIDxpbnB1dCBic0RhdGVwaWNrZXIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAjYnNEYXRlcGlja2VyPVwiYnNEYXRlcGlja2VyXCJcbiAgICAgICAgICAgW2F1dG9mb2N1c109XCJtb2RlbC5hdXRvRm9jdXNcIlxuICAgICAgICAgICBbYnNDb25maWddPVwibW9kZWwuZ2V0QWRkaXRpb25hbCgnYnNDb25maWcnLCB7Y29udGFpbmVyQ2xhc3M6IG1vZGVsLmdldEFkZGl0aW9uYWwoJ2NvbnRhaW5lckNsYXNzJywgJ3RoZW1lLWdyZWVuJyksIHNob3dXZWVrTnVtYmVyczogbW9kZWwuZ2V0QWRkaXRpb25hbCgnc2hvd1dlZWtOdW1iZXJzJywgdHJ1ZSl9KVwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwibW9kZWwuaWRcIlxuICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICBbbWF4RGF0ZV09XCJtb2RlbC5tYXhcIlxuICAgICAgICAgICBbbWluRGF0ZV09XCJtb2RlbC5taW5cIlxuICAgICAgICAgICBbbmFtZV09XCJtb2RlbC5uYW1lXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2VsZW1lbnQnLCAnY29udHJvbCcpXCJcbiAgICAgICAgICAgW291dHNpZGVDbGlja109XCJtb2RlbC5nZXRBZGRpdGlvbmFsKCdvdXRzaWRlQ2xpY2snLCB0cnVlKVwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJtb2RlbC5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFtwbGFjZW1lbnRdPVwibW9kZWwuZ2V0QWRkaXRpb25hbCgncGxhY2VtZW50JywgJ2JvdHRvbScpXCJcbiAgICAgICAgICAgW3JlYWRvbmx5XT1cIm1vZGVsLnJlYWRPbmx5XCJcbiAgICAgICAgICAgW3JlcXVpcmVkXT1cIm1vZGVsLnJlcXVpcmVkXCJcbiAgICAgICAgICAgKGJzVmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgIChvbkhpZGRlbik9XCJvbkN1c3RvbUV2ZW50KCRldmVudCwgJ29uSGlkZGVuJylcIlxuICAgICAgICAgICAob25TaG93bik9XCJvbkN1c3RvbUV2ZW50KCRldmVudCwgJ29uU2hvd24nKVwiPlxuXG4gICAgPGRpdiAqbmdJZj1cIm1vZGVsLnRvZ2dsZUxhYmVsXCIgY2xhc3M9XCJpbnB1dC1ncm91cC1idG5cIj5cblxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwibW9kZWwudG9nZ2xlSWNvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImJzRGF0ZXBpY2tlci50b2dnbGUoKVwiPjxpbWcgW3NyY109XCJtb2RlbC50b2dnbGVJY29uXCIvPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwibW9kZWwudG9nZ2xlTGFiZWxcIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJic0RhdGVwaWNrZXIudG9nZ2xlKClcIj57eyBtb2RlbC50b2dnbGVMYWJlbCB9fTwvYnV0dG9uPlxuXG4gICAgPC9kaXY+XG5cbjwvZGl2PlxuIl19