@c8y/ngx-components 1017.0.378 → 1017.0.382

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 { satisfies, compare, coerce } from 'semver';
27
27
  import * as i1$2 from '@c8y/client';
28
28
  import { TenantLoginOptionType, UserManagementSource, GrantType, ApplicationType, OperationStatus, InventoryService, UserService, ApplicationService, TenantService, FetchClient, Client, PasswordStrength, QueriesUtil, ApplicationAvailability, Service } from '@c8y/client';
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';
@@ -21134,8 +21134,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21134
21134
  type: Output
21135
21135
  }] } });
21136
21136
 
21137
+ class CloseDatePickerDirective {
21138
+ constructor(el) {
21139
+ this.el = el;
21140
+ this.destroy$ = new Subject();
21141
+ }
21142
+ ngOnInit() {
21143
+ const element = this.el.nativeElement.closest('.dropdown-menu');
21144
+ const clickEvent$ = element
21145
+ ? merge(fromEvent(element, 'click'), fromEvent(document, 'click'))
21146
+ : fromEvent(document, 'click');
21147
+ clickEvent$
21148
+ .pipe(map((event) => event.target), filter(target => !this.el.nativeElement.contains(target)), // i.e. anything which is not inside this `c8y-date-time-picker`
21149
+ takeUntil(this.destroy$))
21150
+ .subscribe(() => this.closeDatepicker.hide());
21151
+ }
21152
+ ngOnDestroy() {
21153
+ this.destroy$.next();
21154
+ this.destroy$.complete();
21155
+ }
21156
+ }
21157
+ CloseDatePickerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CloseDatePickerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
21158
+ CloseDatePickerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: CloseDatePickerDirective, selector: "[closeDatepicker]", inputs: { closeDatepicker: "closeDatepicker" }, ngImport: i0 });
21159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: CloseDatePickerDirective, decorators: [{
21160
+ type: Directive,
21161
+ args: [{
21162
+ selector: '[closeDatepicker]'
21163
+ }]
21164
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { closeDatepicker: [{
21165
+ type: Input
21166
+ }] } });
21167
+
21137
21168
  class DateTimePickerComponent {
21138
- constructor() {
21169
+ constructor(cd) {
21170
+ this.cd = cd;
21139
21171
  this.defaultPlaceholder = gettext('Select a date…');
21140
21172
  this.destroy$ = new Subject();
21141
21173
  this.form = new FormGroup({});
@@ -21162,6 +21194,9 @@ class DateTimePickerComponent {
21162
21194
  this.destroy$.next();
21163
21195
  this.destroy$.complete();
21164
21196
  }
21197
+ ngAfterViewInit() {
21198
+ this.cd.detectChanges();
21199
+ }
21165
21200
  /**
21166
21201
  * Control Value Accessor - If form value changes by external factor, update date property and internal form with new value.
21167
21202
  */
@@ -21206,12 +21241,23 @@ class DateTimePickerComponent {
21206
21241
  }
21207
21242
  }
21208
21243
  previousDay() {
21244
+ const isOpen = this.datepicker.isOpen;
21209
21245
  this.date.setDate(this.date.getDate() - 1);
21210
21246
  this.setDatetime({ date: this.date, time: this.form.get('time').value });
21247
+ if (isOpen) {
21248
+ this.datepicker.show();
21249
+ }
21211
21250
  }
21212
21251
  nextDay() {
21252
+ const isOpen = this.datepicker.isOpen;
21213
21253
  this.date.setDate(this.date.getDate() + 1);
21214
21254
  this.setDatetime({ date: this.date, time: this.form.get('time').value });
21255
+ if (isOpen) {
21256
+ this.datepicker.show();
21257
+ }
21258
+ }
21259
+ hide() {
21260
+ this.datepicker.hide();
21215
21261
  }
21216
21262
  /**
21217
21263
  * If internal form changes its value, then combine date and time into one Date and pass its ISO string value to onChange method
@@ -21240,7 +21286,7 @@ class DateTimePickerComponent {
21240
21286
  this.onChange(this.date.toISOString());
21241
21287
  }
21242
21288
  }
21243
- DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21289
+ DateTimePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
21244
21290
  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: [
21245
21291
  {
21246
21292
  provide: NG_VALUE_ACCESSOR,
@@ -21252,7 +21298,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
21252
21298
  useExisting: forwardRef(() => DateTimePickerComponent),
21253
21299
  multi: true
21254
21300
  }
21255
- ], 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" }] });
21301
+ ], 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" }] });
21256
21302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, decorators: [{
21257
21303
  type: Component,
21258
21304
  args: [{ selector: 'c8y-date-time-picker', providers: [
@@ -21266,8 +21312,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21266
21312
  useExisting: forwardRef(() => DateTimePickerComponent),
21267
21313
  multi: true
21268
21314
  }
21269
- ], 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" }]
21270
- }], ctorParameters: function () { return []; }, propDecorators: { _minDate: [{
21315
+ ], 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" }]
21316
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _minDate: [{
21271
21317
  type: Input,
21272
21318
  args: ['minDate']
21273
21319
  }], _maxDate: [{
@@ -21275,6 +21321,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21275
21321
  args: ['maxDate']
21276
21322
  }], placeholder: [{
21277
21323
  type: Input
21324
+ }], datepicker: [{
21325
+ type: ViewChild,
21326
+ args: [BsDatepickerDirective]
21278
21327
  }] } });
21279
21328
 
21280
21329
  class FieldDateTime extends FieldType {
@@ -21334,7 +21383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21334
21383
  class DateTimePickerModule {
21335
21384
  }
21336
21385
  DateTimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21337
- DateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, declarations: [DateTimePickerComponent], imports: [FormsModule,
21386
+ DateTimePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, declarations: [DateTimePickerComponent, CloseDatePickerDirective], imports: [FormsModule,
21338
21387
  CommonModule$1,
21339
21388
  FormsModule$1,
21340
21389
  ReactiveFormsModule, i6.BsDatepickerModule, CommonModule,
@@ -21359,7 +21408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21359
21408
  TimePickerModule
21360
21409
  ],
21361
21410
  exports: [DateTimePickerComponent],
21362
- declarations: [DateTimePickerComponent]
21411
+ declarations: [DateTimePickerComponent, CloseDatePickerDirective]
21363
21412
  }]
21364
21413
  }] });
21365
21414