@c8y/ngx-components 1017.0.378 → 1017.0.383

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.
@@ -27,7 +27,7 @@ import * as i1$2 from '@c8y/client';
27
27
  import { TenantLoginOptionType, UserManagementSource, GrantType, ApplicationType, OperationStatus, InventoryService, UserService, ApplicationService, TenantService, FetchClient, Client, PasswordStrength, QueriesUtil, ApplicationAvailability, Service } from '@c8y/client';
28
28
  import { satisfies, compare, coerce } from 'semver';
29
29
  import * as i6 from 'ngx-bootstrap/datepicker';
30
- import { BsDatepickerModule } from 'ngx-bootstrap/datepicker';
30
+ import { BsDatepickerModule, BsDatepickerDirective } from 'ngx-bootstrap/datepicker';
31
31
  import { defineLocale, enGbLocale, zhCnLocale, ruLocale, ptBrLocale, plLocale, nlLocale, koLocale, jaLocale, frLocale, esLocale, deLocale } from 'ngx-bootstrap/chronos';
32
32
  import { saveAs } from 'file-saver';
33
33
  import { coerceNumberProperty } from '@angular/cdk/coercion';
@@ -20943,8 +20943,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
20943
20943
  type: Output
20944
20944
  }] } });
20945
20945
 
20946
+ class CloseDatePickerDirective {
20947
+ constructor(el) {
20948
+ this.el = el;
20949
+ this.destroy$ = new Subject();
20950
+ }
20951
+ ngOnInit() {
20952
+ const element = this.el.nativeElement.closest('.dropdown-menu');
20953
+ const clickEvent$ = element
20954
+ ? merge(fromEvent(element, 'click'), fromEvent(document, 'click'))
20955
+ : fromEvent(document, 'click');
20956
+ clickEvent$
20957
+ .pipe(map((event) => event.target), filter(target => !this.el.nativeElement.contains(target)), // i.e. anything which is not inside this `c8y-date-time-picker`
20958
+ takeUntil(this.destroy$))
20959
+ .subscribe(() => this.closeDatepicker.hide());
20960
+ }
20961
+ ngOnDestroy() {
20962
+ this.destroy$.next();
20963
+ this.destroy$.complete();
20964
+ }
20965
+ }
20966
+ CloseDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CloseDatePickerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
20967
+ CloseDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: CloseDatePickerDirective, selector: "[closeDatepicker]", inputs: { closeDatepicker: "closeDatepicker" }, ngImport: i0 });
20968
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CloseDatePickerDirective, decorators: [{
20969
+ type: Directive,
20970
+ args: [{
20971
+ selector: '[closeDatepicker]'
20972
+ }]
20973
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { closeDatepicker: [{
20974
+ type: Input
20975
+ }] } });
20976
+
20946
20977
  class DateTimePickerComponent {
20947
- constructor() {
20978
+ constructor(cd) {
20979
+ this.cd = cd;
20948
20980
  this.defaultPlaceholder = gettext('Select a date…');
20949
20981
  this.destroy$ = new Subject();
20950
20982
  this.form = new FormGroup({});
@@ -20971,6 +21003,9 @@ class DateTimePickerComponent {
20971
21003
  this.destroy$.next();
20972
21004
  this.destroy$.complete();
20973
21005
  }
21006
+ ngAfterViewInit() {
21007
+ this.cd.detectChanges();
21008
+ }
20974
21009
  /**
20975
21010
  * Control Value Accessor - If form value changes by external factor, update date property and internal form with new value.
20976
21011
  */
@@ -21014,12 +21049,23 @@ class DateTimePickerComponent {
21014
21049
  }
21015
21050
  }
21016
21051
  previousDay() {
21052
+ const isOpen = this.datepicker.isOpen;
21017
21053
  this.date.setDate(this.date.getDate() - 1);
21018
21054
  this.setDatetime({ date: this.date, time: this.form.get('time').value });
21055
+ if (isOpen) {
21056
+ this.datepicker.show();
21057
+ }
21019
21058
  }
21020
21059
  nextDay() {
21060
+ const isOpen = this.datepicker.isOpen;
21021
21061
  this.date.setDate(this.date.getDate() + 1);
21022
21062
  this.setDatetime({ date: this.date, time: this.form.get('time').value });
21063
+ if (isOpen) {
21064
+ this.datepicker.show();
21065
+ }
21066
+ }
21067
+ hide() {
21068
+ this.datepicker.hide();
21023
21069
  }
21024
21070
  /**
21025
21071
  * If internal form changes its value, then combine date and time into one Date and pass its ISO string value to onChange method
@@ -21047,7 +21093,7 @@ class DateTimePickerComponent {
21047
21093
  this.onChange(this.date.toISOString());
21048
21094
  }
21049
21095
  }
21050
- DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21096
+ DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21051
21097
  DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DateTimePickerComponent, selector: "c8y-date-time-picker", inputs: { _minDate: ["minDate", "_minDate"], _maxDate: ["maxDate", "_maxDate"], placeholder: "placeholder" }, providers: [
21052
21098
  {
21053
21099
  provide: NG_VALUE_ACCESSOR,
@@ -21059,7 +21105,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
21059
21105
  useExisting: forwardRef(() => DateTimePickerComponent),
21060
21106
  multi: true
21061
21107
  }
21062
- ], ngImport: i0, template: "<div class=\"datetime-picker\">\n <div class=\"form-group datepicker\">\n <input\n class=\"form-control\"\n [placeholder]=\"placeholder || defaultPlaceholder | translate\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [formControl]=\"form.get('date')\"\n (blur)=\"onTouched()\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n />\n </div>\n <c8y-time-picker\n [formControl]=\"form.get('time')\"\n (dayBackward)=\"previousDay()\"\n (dayForward)=\"nextDay()\"\n ></c8y-time-picker>\n</div>\n", dependencies: [{ kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.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: i6.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "component", type: TimePickerComponent, selector: "c8y-time-picker", inputs: ["minDate", "maxDate", "placeholder"], outputs: ["dayForward", "dayBackward"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
21108
+ ], viewQueries: [{ propertyName: "datepicker", first: true, predicate: BsDatepickerDirective, descendants: true }], ngImport: i0, template: "<div class=\"datetime-picker\" [closeDatepicker]=\"datepicker\">\n <div class=\"form-group datepicker\">\n <input\n class=\"form-control\"\n [placeholder]=\"placeholder || defaultPlaceholder | translate\"\n bsDatepicker\n [outsideClick]=\"false\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [formControl]=\"form.get('date')\"\n (blur)=\"onTouched()\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n />\n </div>\n <c8y-time-picker\n [formControl]=\"form.get('time')\"\n (dayBackward)=\"previousDay()\"\n (dayForward)=\"nextDay()\"\n ></c8y-time-picker>\n</div>\n", dependencies: [{ kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.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: i6.BsDatepickerInputDirective, selector: "input[bsDatepicker]" }, { kind: "component", type: TimePickerComponent, selector: "c8y-time-picker", inputs: ["minDate", "maxDate", "placeholder"], outputs: ["dayForward", "dayBackward"] }, { kind: "directive", type: CloseDatePickerDirective, selector: "[closeDatepicker]", inputs: ["closeDatepicker"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] });
21063
21109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, decorators: [{
21064
21110
  type: Component,
21065
21111
  args: [{ selector: 'c8y-date-time-picker', providers: [
@@ -21073,8 +21119,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21073
21119
  useExisting: forwardRef(() => DateTimePickerComponent),
21074
21120
  multi: true
21075
21121
  }
21076
- ], template: "<div class=\"datetime-picker\">\n <div class=\"form-group datepicker\">\n <input\n class=\"form-control\"\n [placeholder]=\"placeholder || defaultPlaceholder | translate\"\n bsDatepicker\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [formControl]=\"form.get('date')\"\n (blur)=\"onTouched()\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n />\n </div>\n <c8y-time-picker\n [formControl]=\"form.get('time')\"\n (dayBackward)=\"previousDay()\"\n (dayForward)=\"nextDay()\"\n ></c8y-time-picker>\n</div>\n" }]
21077
- }], ctorParameters: function () { return []; }, propDecorators: { _minDate: [{
21122
+ ], template: "<div class=\"datetime-picker\" [closeDatepicker]=\"datepicker\">\n <div class=\"form-group datepicker\">\n <input\n class=\"form-control\"\n [placeholder]=\"placeholder || defaultPlaceholder | translate\"\n bsDatepicker\n [outsideClick]=\"false\"\n [bsConfig]=\"{ customTodayClass: 'today', dateInputFormat: 'YYYY-MM-DD' }\"\n [formControl]=\"form.get('date')\"\n (blur)=\"onTouched()\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\n />\n </div>\n <c8y-time-picker\n [formControl]=\"form.get('time')\"\n (dayBackward)=\"previousDay()\"\n (dayForward)=\"nextDay()\"\n ></c8y-time-picker>\n</div>\n" }]
21123
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _minDate: [{
21078
21124
  type: Input,
21079
21125
  args: ['minDate']
21080
21126
  }], _maxDate: [{
@@ -21082,6 +21128,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21082
21128
  args: ['maxDate']
21083
21129
  }], placeholder: [{
21084
21130
  type: Input
21131
+ }], datepicker: [{
21132
+ type: ViewChild,
21133
+ args: [BsDatepickerDirective]
21085
21134
  }] } });
21086
21135
 
21087
21136
  class FieldDateTime extends FieldType {
@@ -21141,7 +21190,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21141
21190
  class DateTimePickerModule {
21142
21191
  }
21143
21192
  DateTimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21144
- DateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, declarations: [DateTimePickerComponent], imports: [FormsModule,
21193
+ DateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, declarations: [DateTimePickerComponent, CloseDatePickerDirective], imports: [FormsModule,
21145
21194
  CommonModule$1,
21146
21195
  FormsModule$1,
21147
21196
  ReactiveFormsModule, i6.BsDatepickerModule, CommonModule,
@@ -21166,7 +21215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21166
21215
  TimePickerModule
21167
21216
  ],
21168
21217
  exports: [DateTimePickerComponent],
21169
- declarations: [DateTimePickerComponent]
21218
+ declarations: [DateTimePickerComponent, CloseDatePickerDirective]
21170
21219
  }]
21171
21220
  }] });
21172
21221