@c8y/ngx-components 1017.0.377 → 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';
@@ -11336,7 +11336,6 @@ class LoginService {
11336
11336
  if (credentials) {
11337
11337
  credentials.tenant = tenant.name;
11338
11338
  }
11339
- yield this.shouldRedirectDomain(credentials);
11340
11339
  if (yield this.switchLoginMode(credentials)) {
11341
11340
  auth = this.cookieAuth;
11342
11341
  }
@@ -11660,22 +11659,6 @@ class LoginService {
11660
11659
  return this.tenantUiService.getPreferredLoginOption(managementLoginOptions);
11661
11660
  });
11662
11661
  }
11663
- shouldRedirectDomain(credentials) {
11664
- return __awaiter(this, void 0, void 0, function* () {
11665
- const isPasswordGrantLogin = yield this.isPasswordGrantLogin(credentials);
11666
- if (this.isSupportUser(credentials) &&
11667
- isPasswordGrantLogin &&
11668
- this.managementLoginMode.loginRedirectDomain !== window.location.hostname &&
11669
- !this.isLocal()) {
11670
- const title = gettext('Redirect required');
11671
- const body = gettext('Redirect to correct domain is required to log in as support user.');
11672
- // avoids circular dependency NG0200 error when BsModalService is injected into APP_INITIALIZER (via LoginService -> ModalService -> BsModalService)
11673
- const modalService = this.injector.get(ModalService);
11674
- yield modalService.acknowledge(title, body, Status.INFO, gettext('Redirect'));
11675
- this.redirectToDomain(this.managementLoginMode.loginRedirectDomain);
11676
- }
11677
- });
11678
- }
11679
11662
  }
11680
11663
  LoginService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService, deps: [{ token: i0.Injector }, { token: i1$2.FetchClient }, { token: i1$2.BasicAuth }, { token: i1$2.CookieAuth }, { token: AppStateService }, { token: i1$2.UserService }, { token: i1$2.TenantService }, { token: i1$2.Realtime }, { token: AlertService }, { token: i1$1.ApiService }, { token: TenantUiService }, { token: i1$2.TenantLoginOptionsService }, { token: i1$3.TranslateService }, { token: i2.LocationStrategy, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
11681
11664
  LoginService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: LoginService });
@@ -21151,8 +21134,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21151
21134
  type: Output
21152
21135
  }] } });
21153
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
+
21154
21168
  class DateTimePickerComponent {
21155
- constructor() {
21169
+ constructor(cd) {
21170
+ this.cd = cd;
21156
21171
  this.defaultPlaceholder = gettext('Select a date…');
21157
21172
  this.destroy$ = new Subject();
21158
21173
  this.form = new FormGroup({});
@@ -21179,6 +21194,9 @@ class DateTimePickerComponent {
21179
21194
  this.destroy$.next();
21180
21195
  this.destroy$.complete();
21181
21196
  }
21197
+ ngAfterViewInit() {
21198
+ this.cd.detectChanges();
21199
+ }
21182
21200
  /**
21183
21201
  * Control Value Accessor - If form value changes by external factor, update date property and internal form with new value.
21184
21202
  */
@@ -21223,12 +21241,23 @@ class DateTimePickerComponent {
21223
21241
  }
21224
21242
  }
21225
21243
  previousDay() {
21244
+ const isOpen = this.datepicker.isOpen;
21226
21245
  this.date.setDate(this.date.getDate() - 1);
21227
21246
  this.setDatetime({ date: this.date, time: this.form.get('time').value });
21247
+ if (isOpen) {
21248
+ this.datepicker.show();
21249
+ }
21228
21250
  }
21229
21251
  nextDay() {
21252
+ const isOpen = this.datepicker.isOpen;
21230
21253
  this.date.setDate(this.date.getDate() + 1);
21231
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();
21232
21261
  }
21233
21262
  /**
21234
21263
  * If internal form changes its value, then combine date and time into one Date and pass its ISO string value to onChange method
@@ -21257,7 +21286,7 @@ class DateTimePickerComponent {
21257
21286
  this.onChange(this.date.toISOString());
21258
21287
  }
21259
21288
  }
21260
- 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 });
21261
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: [
21262
21291
  {
21263
21292
  provide: NG_VALUE_ACCESSOR,
@@ -21269,7 +21298,7 @@ DateTimePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
21269
21298
  useExisting: forwardRef(() => DateTimePickerComponent),
21270
21299
  multi: true
21271
21300
  }
21272
- ], 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" }] });
21273
21302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerComponent, decorators: [{
21274
21303
  type: Component,
21275
21304
  args: [{ selector: 'c8y-date-time-picker', providers: [
@@ -21283,8 +21312,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21283
21312
  useExisting: forwardRef(() => DateTimePickerComponent),
21284
21313
  multi: true
21285
21314
  }
21286
- ], 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" }]
21287
- }], 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: [{
21288
21317
  type: Input,
21289
21318
  args: ['minDate']
21290
21319
  }], _maxDate: [{
@@ -21292,6 +21321,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21292
21321
  args: ['maxDate']
21293
21322
  }], placeholder: [{
21294
21323
  type: Input
21324
+ }], datepicker: [{
21325
+ type: ViewChild,
21326
+ args: [BsDatepickerDirective]
21295
21327
  }] } });
21296
21328
 
21297
21329
  class FieldDateTime extends FieldType {
@@ -21351,7 +21383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21351
21383
  class DateTimePickerModule {
21352
21384
  }
21353
21385
  DateTimePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DateTimePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21354
- 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,
21355
21387
  CommonModule$1,
21356
21388
  FormsModule$1,
21357
21389
  ReactiveFormsModule, i6.BsDatepickerModule, CommonModule,
@@ -21376,7 +21408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
21376
21408
  TimePickerModule
21377
21409
  ],
21378
21410
  exports: [DateTimePickerComponent],
21379
- declarations: [DateTimePickerComponent]
21411
+ declarations: [DateTimePickerComponent, CloseDatePickerDirective]
21380
21412
  }]
21381
21413
  }] });
21382
21414