@sumaris-net/ngx-components 1.20.14 → 1.20.17

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.
@@ -3477,8 +3477,10 @@
3477
3477
  var errorCode = msg ? 'msg' : 'dateRange';
3478
3478
  var error = msg ? { msg: msg } : { dateRange: true };
3479
3479
  return function (control) {
3480
- var _a;
3481
- var startControl = (_a = control.parent) === null || _a === void 0 ? void 0 : _a.get(startDateFieldName);
3480
+ // Form group not created yet: skip
3481
+ if (!control.parent)
3482
+ return null;
3483
+ var startControl = control.parent.get(startDateFieldName);
3482
3484
  if (!startControl) {
3483
3485
  console.warn("Cannot find brother control '" + startDateFieldName + "' in the parent form");
3484
3486
  return null;
@@ -3498,8 +3500,10 @@
3498
3500
  var errorCode = msg ? 'msg' : 'dateRange';
3499
3501
  var error = msg ? { msg: msg } : { dateRange: true };
3500
3502
  return function (control) {
3501
- var _a;
3502
- var endDateControl = (_a = control.parent) === null || _a === void 0 ? void 0 : _a.get(endDateFieldName);
3503
+ // Form group not created yet: skip
3504
+ if (!control.parent)
3505
+ return null;
3506
+ var endDateControl = control.parent.get(endDateFieldName);
3503
3507
  if (!endDateControl) {
3504
3508
  console.warn("Cannot find control '" + endDateFieldName + "' in the parent form");
3505
3509
  return null;
@@ -3520,7 +3524,13 @@
3520
3524
  // Skip if control already has some errors
3521
3525
  if (control.errors)
3522
3526
  return null;
3523
- var errors = control.parent && control.parent.errors;
3527
+ // Skip if parent form group not created yet
3528
+ if (!control.parent)
3529
+ return null;
3530
+ // Form group not created yet
3531
+ if (!control.parent)
3532
+ return null;
3533
+ var errors = control.parent.errors;
3524
3534
  // No errors, or copy all errors
3525
3535
  if (!errors || isEmptyArray(errorNames))
3526
3536
  return errors;
@@ -3725,13 +3735,13 @@
3725
3735
  */
3726
3736
  SharedFormArrayValidators.uniqueEntity = function (controlName) {
3727
3737
  return function (array) {
3728
- var e_1, _b;
3738
+ var e_1, _a;
3729
3739
  var controls = [];
3730
3740
  if (array.length) {
3731
3741
  try {
3732
3742
  // gather controls in array with valid entity
3733
- for (var _c = __values(array.controls), _d = _c.next(); !_d.done; _d = _c.next()) {
3734
- var control = _d.value;
3743
+ for (var _b = __values(array.controls), _c = _b.next(); !_c.done; _c = _b.next()) {
3744
+ var control = _c.value;
3735
3745
  var fromGroup = control;
3736
3746
  if (fromGroup.controls[controlName]) {
3737
3747
  var value = fromGroup.controls[controlName].value;
@@ -3743,7 +3753,7 @@
3743
3753
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
3744
3754
  finally {
3745
3755
  try {
3746
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
3756
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
3747
3757
  }
3748
3758
  finally { if (e_1) throw e_1.error; }
3749
3759
  }
@@ -3788,12 +3798,12 @@
3788
3798
  */
3789
3799
  SharedFormArrayValidators.validSumMaxValue = function (controlName, max) {
3790
3800
  return function (array) {
3791
- var e_2, _b;
3801
+ var e_2, _a;
3792
3802
  var controls = [];
3793
3803
  if (array.length) {
3794
3804
  try {
3795
- for (var _c = __values(array.controls), _d = _c.next(); !_d.done; _d = _c.next()) {
3796
- var control = _d.value;
3805
+ for (var _b = __values(array.controls), _c = _b.next(); !_c.done; _c = _b.next()) {
3806
+ var control = _c.value;
3797
3807
  var fromGroup = control;
3798
3808
  if (fromGroup.controls[controlName] && isNotNilOrNaN(fromGroup.controls[controlName].value)) {
3799
3809
  controls.push(fromGroup.controls[controlName]);
@@ -3803,7 +3813,7 @@
3803
3813
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
3804
3814
  finally {
3805
3815
  try {
3806
- if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
3816
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
3807
3817
  }
3808
3818
  finally { if (e_2) throw e_2.error; }
3809
3819
  }
@@ -9039,15 +9049,14 @@
9039
9049
  { type: i0.Component, args: [{
9040
9050
  // eslint-disable-next-line @angular-eslint/component-selector
9041
9051
  selector: 'mat-chips-field',
9042
- template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList\n (focus)=\"filterChipsFocusEvent($event)\" >\n <mat-chip\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\"\n [color]=\"chipColor\"\n >\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding column\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: inputControl.value, withAccent: highlightAccent } \"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount as count\"\n class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
9052
+ template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [appearance]=\"appearance\"\n class=\"material-chips\" [class.mat-form-field-disabled]=\"disabled\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <mat-label>{{placeholder}}</mat-label>\n <mat-chip-list #chipList\n (focus)=\"filterChipsFocusEvent($event)\" >\n <mat-chip class=\"ion-no-margin\"\n *ngFor=\"let item of value\"\n [selectable]=\"false\"\n [removable]=\"!disabled\"\n (removed)=\"remove(item)\"\n [color]=\"chipColor\"\n >\n {{displayWith(item)}}\n <mat-icon matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\n </mat-chip>\n\n <input #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"inputControl\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [readonly]=\"disabled\"\n [hidden]=\"disabled\"\n [required]=\"required\"\n (click)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\"\n [matChipInputFor]=\"chipList\"\n >\n </mat-chip-list>\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n (optionSelected)=\"add($event)\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [panelWidth]=\"panelWidth\">\n <ion-row class=\"mat-autocomplete-header ion-no-padding column\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async as items; else loadingTemplate\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: inputControl.value, withAccent: highlightAccent } \"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- footer -->\n <ion-row *ngIf=\"itemCount as count\"\n class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n <div matSuffix class=\"mat-form-field-suffix-bottom\">\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"dropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
9043
9053
  providers: [{
9044
9054
  provide: i1.NG_VALUE_ACCESSOR,
9045
9055
  multi: true,
9046
9056
  useExisting: i0.forwardRef(function () { return MatChipsField; })
9047
9057
  }],
9048
- encapsulation: i0.ViewEncapsulation.None,
9049
9058
  changeDetection: i0.ChangeDetectionStrategy.OnPush,
9050
- styles: [":host{width:100%;display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.mat-form-field-suffix{position:absolute!important;right:0!important;top:calc(100% - 50px)!important}.mat-chip.mat-standard-chip.mat-primary{background-color:var(--ion-color-primary);color:var(--ion-color-primary-contrast)}.mat-chip.mat-standard-chip.mat-secondary{background-color:var(--ion-color-secondary);color:var(--ion-color-secondary-contrast)}.mat-chip.mat-standard-chip.mat-tertiary{background-color:var(--ion-color-tertiary);color:var(--ion-color-tertiary-contrast)}.mat-chip.mat-standard-chip.mat-accent{background-color:var(--ion-color-accent);color:var(--ion-color-accent-contrast)}.mat-chip.mat-standard-chip.mat-warning{background-color:var(--ion-color-warning);color:var(--ion-color-warning-contrast)}"]
9059
+ styles: [":host{width:100%;display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}.mat-standard-chip.mat-chip-with-trailing-icon{padding:0 7px 0 12px}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.mat-chip.mat-standard-chip{margin:1px 0 0 2px!important;min-height:calc(32px - .5em - 1px)}.mat-chip.mat-standard-chip.mat-chip-with-trailing-icon{padding:0 7px 0 12px}.mat-chip.mat-standard-chip.mat-primary{background-color:var(--ion-color-primary);color:var(--ion-color-primary-contrast)}.mat-chip.mat-standard-chip.mat-secondary{background-color:var(--ion-color-secondary);color:var(--ion-color-secondary-contrast)}.mat-chip.mat-standard-chip.mat-tertiary{background-color:var(--ion-color-tertiary);color:var(--ion-color-tertiary-contrast)}.mat-chip.mat-standard-chip.mat-accent{background-color:var(--ion-color-accent);color:var(--ion-color-accent-contrast)}.mat-chip.mat-standard-chip.mat-warning{background-color:var(--ion-color-warning);color:var(--ion-color-warning-contrast)}.mat-form-field-appearance-legacy .mat-standard-chip{min-height:calc(32px - .4375em - 1px)}"]
9051
9060
  },] }
9052
9061
  ];
9053
9062
  MatChipsField.ctorParameters = function () { return [
@@ -20461,6 +20470,104 @@
20461
20470
  autofocus: [{ type: i0.Input }]
20462
20471
  };
20463
20472
 
20473
+ var ResizableDirective = /** @class */ (function () {
20474
+ function ResizableDirective(document, elementRef) {
20475
+ var _this = this;
20476
+ this.document = document;
20477
+ this.elementRef = elementRef;
20478
+ this.resizable = rxjs.fromEvent(this.elementRef.nativeElement, 'mousedown').pipe(operators.tap(function (e) {
20479
+ e.preventDefault();
20480
+ e.stopPropagation();
20481
+ }), operators.switchMap(function () {
20482
+ var _a = _this.elementRef.nativeElement.closest('th').getBoundingClientRect(), width = _a.width, right = _a.right;
20483
+ return rxjs.fromEvent(_this.document, 'mousemove').pipe(operators.map(function (_a) {
20484
+ var clientX = _a.clientX;
20485
+ return width + clientX - right;
20486
+ }), operators.distinctUntilChanged(), operators.takeUntil(rxjs.fromEvent(_this.document, 'mouseup')));
20487
+ }));
20488
+ this.fit = rxjs.fromEvent(this.elementRef.nativeElement, 'click').pipe(operators.bufferWhen(function () { return rxjs.interval(500); }), operators.filter(function (ar) { return ar.length === 2; }));
20489
+ }
20490
+ return ResizableDirective;
20491
+ }());
20492
+ ResizableDirective.decorators = [
20493
+ { type: i0.Directive, args: [{
20494
+ selector: '[resizable]',
20495
+ },] }
20496
+ ];
20497
+ ResizableDirective.ctorParameters = function () { return [
20498
+ { type: undefined, decorators: [{ type: i0.Inject, args: [i1$4.DOCUMENT,] }] },
20499
+ { type: i0.ElementRef, decorators: [{ type: i0.Inject, args: [i0.ElementRef,] }] }
20500
+ ]; };
20501
+ ResizableDirective.propDecorators = {
20502
+ resizable: [{ type: i0.Output }],
20503
+ fit: [{ type: i0.Output }]
20504
+ };
20505
+
20506
+ var ResizableComponent = /** @class */ (function () {
20507
+ function ResizableComponent(columnDef) {
20508
+ this.columnDef = columnDef;
20509
+ this.sizeChanged = new i0.EventEmitter();
20510
+ this.width = null;
20511
+ this.minWidth = null;
20512
+ this.maxWidth = null;
20513
+ this.debug = false;
20514
+ }
20515
+ ResizableComponent.prototype.onResize = function (width, opts) {
20516
+ if (!this.resizable)
20517
+ return;
20518
+ if (this.debug)
20519
+ console.info("resize:" + width);
20520
+ this.minWidth = width + 'px';
20521
+ this.maxWidth = width + 'px';
20522
+ if (!opts || opts.emitEvent) {
20523
+ this.sizeChanged.emit(width);
20524
+ }
20525
+ };
20526
+ ResizableComponent.prototype.onFit = function (opts) {
20527
+ if (!this.resizable)
20528
+ return;
20529
+ if (this.debug)
20530
+ console.info('fit');
20531
+ this.width = 'auto';
20532
+ this.minWidth = null;
20533
+ this.maxWidth = null;
20534
+ if (!opts || opts.emitEvent) {
20535
+ this.sizeChanged.emit(undefined);
20536
+ }
20537
+ };
20538
+ return ResizableComponent;
20539
+ }());
20540
+ ResizableComponent.decorators = [
20541
+ { type: i0.Component, args: [{
20542
+ // eslint-disable-next-line @angular-eslint/component-selector
20543
+ selector: 'th[resizable]',
20544
+ template: "<div class=\"wrapper\">\n <div class=\"content\">\n <ng-content></ng-content>\n </div>\n <div class=\"bar\" [class.cdk-visually-hidden]=\"!resizable\" (resizable)=\"onResize($event)\" (fit)=\"onFit()\"></div>\n</div>\n",
20545
+ styles: [":host:last-child .bar{display:none}.wrapper{display:flex;justify-content:flex-end;align-items:center}.content{flex:1}.bar{height:var(--app-table-header-height,55px);width:10px;justify-self:flex-end;border-left:4px solid transparent;border-right:4px solid transparent;background:var(--ion-color-secondary);background-clip:content-box;cursor:ew-resize;opacity:0;transition:opacity .3s}.bar:active,.bar:hover{opacity:1}:host-context(.mat-table-sticky) .bar{width:12px!important}"]
20546
+ },] }
20547
+ ];
20548
+ ResizableComponent.ctorParameters = function () { return [
20549
+ { type: table.MatColumnDef, decorators: [{ type: i0.Optional }] }
20550
+ ]; };
20551
+ ResizableComponent.propDecorators = {
20552
+ resizable: [{ type: i0.Input }],
20553
+ sizeChanged: [{ type: i0.Output }],
20554
+ width: [{ type: i0.HostBinding, args: ['style.width',] }],
20555
+ minWidth: [{ type: i0.HostBinding, args: ['style.min-width',] }],
20556
+ maxWidth: [{ type: i0.HostBinding, args: ['style.max-width',] }]
20557
+ };
20558
+
20559
+ var ResizableModule = /** @class */ (function () {
20560
+ function ResizableModule() {
20561
+ }
20562
+ return ResizableModule;
20563
+ }());
20564
+ ResizableModule.decorators = [
20565
+ { type: i0.NgModule, args: [{
20566
+ declarations: [ResizableComponent, ResizableDirective],
20567
+ exports: [ResizableComponent, ResizableDirective],
20568
+ },] }
20569
+ ];
20570
+
20464
20571
  function mergeLoadResult(res1, res2) {
20465
20572
  var _c;
20466
20573
  var _a, _b;
@@ -31347,6 +31454,7 @@
31347
31454
  this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
31348
31455
  this._$items = new rxjs.BehaviorSubject(undefined);
31349
31456
  this.autocompleteFields = new MatAutocompleteConfigHolder();
31457
+ this.appearance = 'legacy';
31350
31458
  this.form = formBuilder.group({
31351
31459
  entity: [null, SharedValidators.entity],
31352
31460
  entityInitial: [null, SharedValidators.entity],
@@ -31456,7 +31564,7 @@
31456
31564
  ChipsTestPage.decorators = [
31457
31565
  { type: i0.Component, args: [{
31458
31566
  selector: 'app-chips-test',
31459
- template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Chips field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Suggest() function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <pre><small>suggestFn: (searchText, filter) =&gt; any[]</small></pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [logPrefix]=\"'[mat-chips-empty] '\"\n chipColor=\"accent\"\n [debug]=\"false\"\n ></mat-chips-field>\n {{stringify(form.controls.entity.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function with initial value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <pre><small>suggestFn: (searchText, filter) =&gt; any[]</small></pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"entityInitial\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [logPrefix]=\"'[mat-chips-initialized] '\"\n chipColor=\"primary\"\n [debug]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.entityInitial.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[mat-chips-disabled] '\"\n chipColor=\"warning\"\n [debug]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.disableEntity.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[mat-chips-readonly] '\"\n [readonly]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.entity.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
31567
+ template: "<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Chips field test page</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n\n <ion-grid>\n\n <ion-row>\n\n <ion-col size=\"12\">\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-text color=\"primary\">\n Suggest() function\n </ion-text>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <pre><small>suggestFn: (searchText, filter) =&gt; any[]</small></pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col>\n <mat-chips-field formControlName=\"entity\"\n placeholder=\"A chip field\" [appearance]=\"appearance\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [logPrefix]=\"'[mat-chips-empty] '\"\n chipColor=\"accent\"\n [debug]=\"false\"\n ></mat-chips-field>\n </ion-col>\n\n <ion-col>\n <mat-form-field [appearance]=\"appearance\">\n <mat-label>Another field</mat-label>\n <input matInput type=\"text\">\n </mat-form-field>\n </ion-col>\n </ion-row>\n <ion-row>\n <ion-col>\n {{stringify(form.controls.entity.value)}}\n </ion-col>\n </ion-row>\n </ion-grid>\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Suggest() function with initial value\n </ion-label>\n </ion-card-title>\n <ion-card-subtitle>\n <ion-text color=\"medium\">\n <pre><small>suggestFn: (searchText, filter) =&gt; any[]</small></pre>\n </ion-text>\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"entityInitial\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [logPrefix]=\"'[mat-chips-initialized] '\"\n chipColor=\"primary\"\n [debug]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.entityInitial.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Disabled control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"disableEntity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[mat-chips-disabled] '\"\n chipColor=\"warning\"\n [debug]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.disableEntity.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n\n <ion-col>\n <ion-card>\n <ion-card-header>\n <ion-card-title>\n <ion-label color=\"primary\">\n Readonly control\n </ion-label>\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <mat-chips-field formControlName=\"entity\"\n [config]=\"autocompleteFields.get('entity-suggestFn')\"\n [equals]=\"equals\"\n [logPrefix]=\"'[mat-chips-readonly] '\"\n [readonly]=\"true\"\n ></mat-chips-field>\n {{stringify(form.controls.entity.value)}}\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n </form>\n\n</ion-content>\n"
31460
31568
  },] }
31461
31569
  ];
31462
31570
  ChipsTestPage.ctorParameters = function () { return [
@@ -32590,6 +32698,9 @@
32590
32698
  exports.ReferentialUtils = ReferentialUtils;
32591
32699
  exports.ReferentialValidatorService = ReferentialValidatorService;
32592
32700
  exports.RegisterConfirmPage = RegisterConfirmPage;
32701
+ exports.ResizableComponent = ResizableComponent;
32702
+ exports.ResizableDirective = ResizableDirective;
32703
+ exports.ResizableModule = ResizableModule;
32593
32704
  exports.SETTINGS_DISPLAY_COLUMNS = SETTINGS_DISPLAY_COLUMNS;
32594
32705
  exports.SETTINGS_FILTER = SETTINGS_FILTER;
32595
32706
  exports.SETTINGS_PAGE_SIZE = SETTINGS_PAGE_SIZE;