@datarailsshared/datarailsshared 1.4.137 → 1.4.138

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.
@@ -5040,6 +5040,7 @@
5040
5040
  var DrSelectAddItemComponent = /** @class */ (function () {
5041
5041
  function DrSelectAddItemComponent(drSelect) {
5042
5042
  this.drSelect = drSelect;
5043
+ this.currentValues = [];
5043
5044
  this.dynamicAddLabel = 'Add new';
5044
5045
  this.values = [];
5045
5046
  this.dynamicValueAdded = new i0.EventEmitter();
@@ -5066,15 +5067,22 @@
5066
5067
  this.isDynamicAdding = false;
5067
5068
  this.dynamicValue = '';
5068
5069
  };
5070
+ DrSelectAddItemComponent.prototype.isDynamicValueValid = function () {
5071
+ var _a;
5072
+ var trimmedValue = (_a = this.dynamicValue) === null || _a === void 0 ? void 0 : _a.trim();
5073
+ if (!trimmedValue)
5074
+ return false;
5075
+ return !this.currentValues.includes(trimmedValue);
5076
+ };
5069
5077
  DrSelectAddItemComponent.prototype.onDynamicAdd = function (value, keydownEvent) {
5070
- var trimmedValue = value === null || value === void 0 ? void 0 : value.trim();
5071
- if (this.currentValues.includes(trimmedValue))
5078
+ this.isDirty = true;
5079
+ if (!this.isDynamicValueValid())
5072
5080
  return;
5073
5081
  if (keydownEvent && keydownEvent.key !== 'Enter')
5074
5082
  return;
5075
5083
  this.onDynamicAddingClose();
5076
5084
  this.drSelect.close();
5077
- this.dynamicValueAdded.emit(trimmedValue);
5085
+ this.dynamicValueAdded.emit(value === null || value === void 0 ? void 0 : value.trim());
5078
5086
  };
5079
5087
  DrSelectAddItemComponent.prototype.calculateCurrentValues = function () {
5080
5088
  var _this = this;
@@ -5090,7 +5098,8 @@
5090
5098
  DrSelectAddItemComponent.decorators = [
5091
5099
  { type: i0.Component, args: [{
5092
5100
  selector: 'dr-select-add-item',
5093
- template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <dr-input #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"currentValues.includes(dynamicValue)\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button *ngIf=\"dynamicValue && !currentValues.includes(dynamicValue)\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\"\n icon=\"dr-icon-exit\"\n iconSize=\"18px\"\n (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n",
5101
+ template: "<div class=\"dr-select__dynamic-add dynamic-add\">\n <div class=\"dynamic-add__add-item\" (click)=\"onDynamicAdding()\">\n <i class=\"dr-icon-add\"></i>\n <p class=\"dynamic-add__add-item__text\">{{ dynamicAddLabel }}</p>\n </div>\n <div *ngIf=\"isDynamicAdding\" class=\"dynamic-add__field\">\n <dr-input #dynamicInputRef\n class=\"dynamic-add__field__input\"\n [class.dynamic-add__field__input--error]=\"!isDynamicValueValid() && isDirty\"\n [(ngModel)]=\"dynamicValue\"\n (keydown)=\"onDynamicAdd(dynamicValue, $event)\"\n placeholder=\"Type...\"></dr-input>\n <div class=\"dynamic-add__field__buttons\">\n <dr-button *ngIf=\"dynamicValue && isDynamicValueValid()\"\n theme=\"icon\"\n icon=\"dr-icon-approve\"\n iconSize=\"18px\"\n (click)=\"onDynamicAdd(dynamicValue)\"></dr-button>\n <dr-button theme=\"icon\"\n icon=\"dr-icon-exit\"\n iconSize=\"18px\"\n (click)=\"onDynamicAddingClose()\"></dr-button>\n </div>\n </div>\n</div>\n",
5102
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
5094
5103
  styles: [".dynamic-add__add-item{cursor:pointer;display:flex;align-items:center;border-bottom:1px solid #dfe0e3;padding:6px}.dynamic-add__add-item:hover{background:#f9f7ff}.dynamic-add__add-item__text{font-size:14px;line-height:22px;margin:0}.dynamic-add__field{position:relative}.dynamic-add__field__buttons{position:absolute;top:0;right:0;bottom:0;display:flex;align-items:center}::ng-deep .ng-dropdown-panel .ng-dropdown-header:has(.dynamic-add){padding:0;border:none}::ng-deep .dynamic-add__field__input{padding-left:12px!important;height:36px!important;border:none!important;background:#f9f7ff!important;border-radius:0!important}::ng-deep .dynamic-add__field__input>input{background:#f9f7ff}::ng-deep .dynamic-add__field__input>input::placeholder{line-height:22px;font-size:14px;font-weight:400;color:#9ea1aa}::ng-deep .dynamic-add__field__input--error{background:#ffdfe4!important}::ng-deep .dynamic-add__field__input--error>input{background:#ffdfe4}\n"]
5095
5104
  },] }
5096
5105
  ];