zek 17.3.48 → 17.3.49

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.
package/fesm2022/zek.mjs CHANGED
@@ -9,7 +9,7 @@ import * as i1$1 from '@angular/common/http';
9
9
  import { HttpParams, HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';
10
10
  import * as i1$2 from '@angular/common';
11
11
  import { CommonModule, DatePipe } from '@angular/common';
12
- import * as i1$4 from '@angular/forms';
12
+ import * as i2$1 from '@angular/forms';
13
13
  import { NG_VALUE_ACCESSOR, FormsModule, NG_VALIDATORS } from '@angular/forms';
14
14
  import * as i1$3 from '@angular/platform-browser';
15
15
  import { finalize, map, takeWhile } from 'rxjs/operators';
@@ -2028,7 +2028,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
2028
2028
  type: Output
2029
2029
  }] } });
2030
2030
 
2031
- let uniqueId$5 = 0;
2031
+ let uniqueId$6 = 0;
2032
2032
  class CoreUiComponent extends CoreComponent {
2033
2033
  constructor(_renderer, _elementRef
2034
2034
  //private _changeDetector: ChangeDetectorRef
@@ -2045,7 +2045,7 @@ class CoreUiComponent extends CoreComponent {
2045
2045
  this._onTouched = () => { };
2046
2046
  this.change = new EventEmitter();
2047
2047
  this.changing = new EventEmitter();
2048
- this._name = `zek-${++uniqueId$5}`;
2048
+ this._name = `zek-${++uniqueId$6}`;
2049
2049
  this._isInitialized = false;
2050
2050
  this._value = null;
2051
2051
  this._readonly = false;
@@ -3083,7 +3083,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
3083
3083
  }]
3084
3084
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Router }] });
3085
3085
 
3086
- let uniqueId$4 = 0;
3086
+ let uniqueId$5 = 0;
3087
3087
  /**
3088
3088
  * Provider Expression that allows bb to register as a ControlValueAccessor. This
3089
3089
  * allows it to support [(ngModel)] and ngControl.
@@ -3097,7 +3097,7 @@ const ZEK_BB_CONTROL_VALUE_ACCESSOR = {
3097
3097
  class ZekButtonBrowse extends CoreUiComponent {
3098
3098
  constructor() {
3099
3099
  super(...arguments);
3100
- this._uniqueId = `zek-bb-${++uniqueId$4}`;
3100
+ this._uniqueId = `zek-bb-${++uniqueId$5}`;
3101
3101
  /** The unique ID for the bb. */
3102
3102
  this.id = this._uniqueId;
3103
3103
  this.filter = {};
@@ -3972,18 +3972,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
3972
3972
  }]
3973
3973
  }] });
3974
3974
 
3975
- let uniqueId$3 = 0;
3975
+ let uniqueId$4 = 0;
3976
3976
  class ZekModal extends CoreComponent {
3977
3977
  constructor() {
3978
- super();
3978
+ super(...arguments);
3979
3979
  this.translate = inject(TranslateService);
3980
- this._uniqueId = `zek-modal-${++uniqueId$3}`;
3980
+ this._uniqueId = `zek-modal-${++uniqueId$4}`;
3981
3981
  /** The unique ID for the radio button. */
3982
3982
  this.id = this._uniqueId;
3983
3983
  this.modalId = `${this.id}-modal`;
3984
3984
  this.lableId = `${this.id}-lable`;
3985
3985
  this.cancelButtonId = `${this.id}-cancel-button`;
3986
3986
  this.okButtonId = `${this.id}-ok-button`;
3987
+ this.elementId = RandomHelper.randomHex();
3987
3988
  this._showOk = true;
3988
3989
  this._disabledOk = false;
3989
3990
  this._showCancel = true;
@@ -3998,7 +3999,6 @@ class ZekModal extends CoreComponent {
3998
3999
  this._showHeader = true;
3999
4000
  this._showFooter = true;
4000
4001
  this.onValidating = new EventEmitter(false);
4001
- this.elementId = RandomHelper.randomHex();
4002
4002
  }
4003
4003
  async destroy() {
4004
4004
  await super.destroy();
@@ -4167,13 +4167,13 @@ class ZekModal extends CoreComponent {
4167
4167
  e.preventDefault();
4168
4168
  this.ok();
4169
4169
  }
4170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
4171
4171
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekModal, selector: "zek-modal", inputs: { id: "id", model: "model", showOk: "showOk", disabledOk: "disabledOk", showCancel: "showCancel", autoHide: "autoHide", title: "title", text: "text", icon: "icon", okButtonText: "okButtonText", componentType: "componentType", size: "size", large: "large", xl: "xl", scrollable: "scrollable", fullscreen: "fullscreen", showHeader: "showHeader", showFooter: "showFooter" }, outputs: { onShown: "onShown", onHidden: "onHidden", onOk: "onOk", onValidating: "onValidating" }, usesInheritance: true, ngImport: i0, template: "<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"{{modalId}}\" tabindex=\"-1\" attr.aria-labelledby=\"{{lableId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [ngClass]=\"{\r\n 'modal-sm': size === 'sm',\r\n 'modal-lg': size === 'lg', \r\n 'modal-xl': size === 'xl'\r\n }\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"{{lableId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"{{okButtonId}}\" (click)=\"ok()\">\r\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}\r\n </button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"{{cancelButtonId}}\" data-bs-dismiss=\"modal\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
4172
4172
  }
4173
4173
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekModal, decorators: [{
4174
4174
  type: Component,
4175
4175
  args: [{ selector: 'zek-modal', template: "<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"{{modalId}}\" tabindex=\"-1\" attr.aria-labelledby=\"{{lableId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [ngClass]=\"{\r\n 'modal-sm': size === 'sm',\r\n 'modal-lg': size === 'lg', \r\n 'modal-xl': size === 'xl'\r\n }\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"{{lableId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"{{okButtonId}}\" (click)=\"ok()\">\r\n <i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}\r\n </button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"{{cancelButtonId}}\" data-bs-dismiss=\"modal\">\r\n <i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>" }]
4176
- }], ctorParameters: () => [], propDecorators: { id: [{
4176
+ }], propDecorators: { id: [{
4177
4177
  type: Input
4178
4178
  }], model: [{
4179
4179
  type: Input
@@ -4493,12 +4493,12 @@ function loadScript$1(onLoaded, url, nonce) {
4493
4493
  }
4494
4494
  const loader$1 = { loadScript: loadScript$1 };
4495
4495
 
4496
- let uniqueId$2 = 0;
4496
+ let uniqueId$3 = 0;
4497
4497
  class ZekGoogleLoginButton extends CoreComponent {
4498
4498
  constructor(client_id) {
4499
4499
  super();
4500
4500
  this.client_id = client_id;
4501
- this._uniqueId = `zek-google-button-container-${++uniqueId$2}`;
4501
+ this._uniqueId = `zek-google-button-container-${++uniqueId$3}`;
4502
4502
  this.id = this._uniqueId;
4503
4503
  this._prompt = true;
4504
4504
  this._autoSelect = false;
@@ -5213,7 +5213,7 @@ class ZekPassword {
5213
5213
  this._type = this._type === 'password' ? 'text' : 'password';
5214
5214
  }
5215
5215
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekPassword, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekPassword, isStandalone: true, selector: "zek-password", inputs: { name: "name", required: "required", minlength: "minlength", maxlength: "maxlength", model: "model" }, outputs: { onChange: "modelChange" }, ngImport: i0, template: "<div class=\"input-group has-validation\">\r\n <input type=\"{{type}}\" class=\"form-control\" name=\"{{name}}\" id=\"{{name}}\" [attr.aria-describedby]=\"name+'-show'\"\r\n [required]=\"required\" [minlength]=\"minlength\" [maxlength]=\"maxlength\"\r\n [ngModel]=\"model\" (ngModelChange)=\"onChange.emit($event)\"\r\n #password=\"ngModel\"\r\n >\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" id=\"{{name}}-show\" (click)=\"showHide()\"><i class=\"fa-solid fa-eye\"></i></button>\r\n <div zek-field-validator [field]=\"password\"></div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.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: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1$4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: ["field"] }] }); }
5216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekPassword, isStandalone: true, selector: "zek-password", inputs: { name: "name", required: "required", minlength: "minlength", maxlength: "maxlength", model: "model" }, outputs: { onChange: "modelChange" }, ngImport: i0, template: "<div class=\"input-group has-validation\">\r\n <input type=\"{{type}}\" class=\"form-control\" name=\"{{name}}\" id=\"{{name}}\" [attr.aria-describedby]=\"name+'-show'\"\r\n [required]=\"required\" [minlength]=\"minlength\" [maxlength]=\"maxlength\"\r\n [ngModel]=\"model\" (ngModelChange)=\"onChange.emit($event)\"\r\n #password=\"ngModel\"\r\n >\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" id=\"{{name}}-show\" (click)=\"showHide()\"><i class=\"fa-solid fa-eye\"></i></button>\r\n <div zek-field-validator [field]=\"password\"></div>\r\n</div>", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: ["field"] }] }); }
5217
5217
  }
5218
5218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekPassword, decorators: [{
5219
5219
  type: Component,
@@ -5328,7 +5328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
5328
5328
  type: Input
5329
5329
  }] } });
5330
5330
 
5331
- let uniqueId$1 = 0;
5331
+ let uniqueId$2 = 0;
5332
5332
  /**
5333
5333
  * Provider Expression that allows zek-radio to register as a ControlValueAccessor. This
5334
5334
  * allows it to support [(ngModel)] and ngControl.
@@ -5343,7 +5343,7 @@ class ZekRadio extends CoreUiComponent {
5343
5343
  constructor(_changeDetector, _renderer, _elementRef) {
5344
5344
  super(_renderer, _elementRef);
5345
5345
  this._changeDetector = _changeDetector;
5346
- this._uniqueId = `zek-radio-${++uniqueId$1}`;
5346
+ this._uniqueId = `zek-radio-${++uniqueId$2}`;
5347
5347
  /** The unique ID for the radio button. */
5348
5348
  this.id = this._uniqueId;
5349
5349
  this._inline = false;
@@ -5634,7 +5634,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
5634
5634
  }]
5635
5635
  }] });
5636
5636
 
5637
- let uniqueId = 0;
5637
+ let uniqueId$1 = 0;
5638
5638
  const ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR = {
5639
5639
  provide: NG_VALUE_ACCESSOR,
5640
5640
  useExisting: forwardRef(() => ZekSelectMultiple),
@@ -5643,7 +5643,7 @@ const ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR = {
5643
5643
  class ZekSelectMultiple extends CoreUiComponent {
5644
5644
  constructor(renderer, elementRef) {
5645
5645
  super(renderer, elementRef);
5646
- this._uniqueId = `zek-select-${++uniqueId}`;
5646
+ this._uniqueId = `zek-select-${++uniqueId$1}`;
5647
5647
  /** The unique ID for the radio button. */
5648
5648
  this.id = this._uniqueId;
5649
5649
  this.css = 'primary';
@@ -5973,7 +5973,7 @@ class ZekSelect2 {
5973
5973
  }
5974
5974
  }
5975
5975
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekSelect2, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5976
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekSelect2, isStandalone: true, selector: "zek-select2,[zek-select2]", inputs: { data: "data", textField: "textField", valueField: "valueField", placeholder: "placeholder", value: "value" }, outputs: { selectedItemChange: "selectedItemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{entry[textField]}}</a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{textField}}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n<!-- <kendo-autocomplete\r\n [data]=\"data\"\r\n [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"\r\n (filterChange)=\"filterChange($event)\"\r\n (open)=\"open()\"\r\n (close)=\"close()\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n</kendo-autocomplete> -->", styles: [".scrollable-menu{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.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: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
5976
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekSelect2, isStandalone: true, selector: "zek-select2,[zek-select2]", inputs: { data: "data", textField: "textField", valueField: "valueField", placeholder: "placeholder", value: "value" }, outputs: { selectedItemChange: "selectedItemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{entry[textField]}}</a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{textField}}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n<!-- <kendo-autocomplete\r\n [data]=\"data\"\r\n [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"\r\n (filterChange)=\"filterChange($event)\"\r\n (open)=\"open()\"\r\n (close)=\"close()\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n</kendo-autocomplete> -->", styles: [".scrollable-menu{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
5977
5977
  }
5978
5978
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekSelect2, decorators: [{
5979
5979
  type: Component,
@@ -6101,7 +6101,7 @@ class ZekSelect2Multiple {
6101
6101
  this.valueChange.emit(v);
6102
6102
  }
6103
6103
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekSelect2Multiple, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6104
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekSelect2Multiple, isStandalone: true, selector: "zek-select2-multiple,[zek-select2-multiple]", inputs: { data: "data", textField: "textField", selectedField: "selectedField", valueField: "valueField", placeholder: "placeholder", value: "value" }, outputs: { selectedItemChange: "selectedItemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" data-bs-auto-close=\"outside\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item[textField]}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$4.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: i1$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6104
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekSelect2Multiple, isStandalone: true, selector: "zek-select2-multiple,[zek-select2-multiple]", inputs: { data: "data", textField: "textField", selectedField: "selectedField", valueField: "valueField", placeholder: "placeholder", value: "value" }, outputs: { selectedItemChange: "selectedItemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" data-bs-auto-close=\"outside\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item[textField]}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6105
6105
  }
6106
6106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekSelect2Multiple, decorators: [{
6107
6107
  type: Component,
@@ -6316,6 +6316,110 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
6316
6316
  type: Input
6317
6317
  }] } });
6318
6318
 
6319
+ let uniqueId = 0;
6320
+ class ZekTag extends CoreUiComponent {
6321
+ constructor() {
6322
+ super(...arguments);
6323
+ this.modelChange = new EventEmitter();
6324
+ this._max = 1000000000;
6325
+ this._maxlength = null;
6326
+ this._duplicate = false;
6327
+ this.text = null;
6328
+ this._uniqueId = `zek-tag-${++uniqueId}`;
6329
+ /** The unique ID for the tag. */
6330
+ this.id = this._uniqueId;
6331
+ }
6332
+ get max() {
6333
+ return this._max;
6334
+ }
6335
+ set max(v) {
6336
+ const tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 0, 1000000000);
6337
+ if (this._max !== tmp) {
6338
+ this._max = tmp;
6339
+ }
6340
+ }
6341
+ get maxlength() {
6342
+ return this._maxlength;
6343
+ }
6344
+ set maxlength(v) {
6345
+ const tmp = Convert.parseNumber(v);
6346
+ if (tmp !== null) {
6347
+ const num = MathHelper.clamp(tmp, 0, 1000000000);
6348
+ if (this._maxlength !== num) {
6349
+ this._maxlength = num;
6350
+ }
6351
+ }
6352
+ this._maxlength = tmp;
6353
+ }
6354
+ get duplicate() {
6355
+ return this._duplicate;
6356
+ }
6357
+ set duplicate(v) {
6358
+ this._duplicate = Convert.toBooleanProperty(v);
6359
+ }
6360
+ onKeyEnter(e) {
6361
+ e.preventDefault();
6362
+ e.stopPropagation();
6363
+ if (this.add(this.text)) {
6364
+ this.text = null;
6365
+ }
6366
+ }
6367
+ get inputId() {
6368
+ return `${this.id || this._uniqueId}-input`;
6369
+ }
6370
+ add(text) {
6371
+ if (!text)
6372
+ return false;
6373
+ let emitModel = false;
6374
+ if (!this.model) {
6375
+ this.model = [];
6376
+ emitModel = true;
6377
+ }
6378
+ const maxlength = (this.maxlength || 0);
6379
+ if (maxlength > 0 && text.length > maxlength) {
6380
+ return false;
6381
+ }
6382
+ if (!this.duplicate && this.model.includes(text)) {
6383
+ return false;
6384
+ }
6385
+ if (this.model.length >= this.max) {
6386
+ return false;
6387
+ }
6388
+ this.model.push(text);
6389
+ if (emitModel)
6390
+ this.modelChange.emit(this.model);
6391
+ return true;
6392
+ }
6393
+ remove(item) {
6394
+ if (!this.model)
6395
+ return;
6396
+ const index = this.model.indexOf(item);
6397
+ if (index !== -1) {
6398
+ this.model.splice(index, 1);
6399
+ }
6400
+ }
6401
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekTag, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ZekTag, isStandalone: true, selector: "zek-tag", inputs: { model: "model", max: "max", maxlength: "maxlength", duplicate: "duplicate", id: "id" }, outputs: { modelChange: "modelChange" }, host: { properties: { "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-wrap align-items-center gap-1 form-control\">\r\n <ng-container *ngIf=\"model\">\r\n <button *ngFor=\"let item of model\" type=\"button\" (click)=\"remove(item)\" class=\"align-items-center gap-1 d-inline-flex py-0 border-0 btn btn-primary\">{{item}}<span class=\"d-inline-flex\" role=\"button\" tabindex=\"-1\"><i class=\"fa-solid fa-xmark\"></i></span></button>\r\n </ng-container>\r\n <div class=\"input-wrapper\"><span>i</span><input type=\"text\"\r\n [id]=\"inputId\"\r\n [name]=\"inputId\"\r\n [(ngModel)]=\"text\"\r\n [maxlength]=\"maxlength\"\r\n (keydown.enter)=\"onKeyEnter($event)\"></div>\r\n</div>", styles: [".input-wrapper{position:relative;min-width:4px;flex-grow:1;white-space:nowrap}.input-wrapper>span{visibility:hidden}.input-wrapper input[type=text]{position:absolute;top:0;left:0;padding:0;outline:0;border:0;width:100%;background-color:transparent}.input-wrapper input[type=text]::placeholder{color:#212529bf;opacity:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
6403
+ }
6404
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ZekTag, decorators: [{
6405
+ type: Component,
6406
+ args: [{ standalone: true, imports: [CommonModule, FormsModule], selector: 'zek-tag', host: {
6407
+ '[attr.id]': 'id',
6408
+ }, template: "<div class=\"d-flex flex-wrap align-items-center gap-1 form-control\">\r\n <ng-container *ngIf=\"model\">\r\n <button *ngFor=\"let item of model\" type=\"button\" (click)=\"remove(item)\" class=\"align-items-center gap-1 d-inline-flex py-0 border-0 btn btn-primary\">{{item}}<span class=\"d-inline-flex\" role=\"button\" tabindex=\"-1\"><i class=\"fa-solid fa-xmark\"></i></span></button>\r\n </ng-container>\r\n <div class=\"input-wrapper\"><span>i</span><input type=\"text\"\r\n [id]=\"inputId\"\r\n [name]=\"inputId\"\r\n [(ngModel)]=\"text\"\r\n [maxlength]=\"maxlength\"\r\n (keydown.enter)=\"onKeyEnter($event)\"></div>\r\n</div>", styles: [".input-wrapper{position:relative;min-width:4px;flex-grow:1;white-space:nowrap}.input-wrapper>span{visibility:hidden}.input-wrapper input[type=text]{position:absolute;top:0;left:0;padding:0;outline:0;border:0;width:100%;background-color:transparent}.input-wrapper input[type=text]::placeholder{color:#212529bf;opacity:1}\n"] }]
6409
+ }], propDecorators: { model: [{
6410
+ type: Input
6411
+ }], modelChange: [{
6412
+ type: Output
6413
+ }], max: [{
6414
+ type: Input
6415
+ }], maxlength: [{
6416
+ type: Input
6417
+ }], duplicate: [{
6418
+ type: Input
6419
+ }], id: [{
6420
+ type: Input
6421
+ }] } });
6422
+
6319
6423
  //import { toDate } from '../../extensions';
6320
6424
  class TimePipe {
6321
6425
  constructor(_datePipe) {
@@ -6902,5 +7006,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
6902
7006
  * Generated bundle index. Do not edit.
6903
7007
  */
6904
7008
 
6905
- export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper, AuthService, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, ErrorHelper, ExcelHelper, FileBase, FileBytes, FileHelper, FileString, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PagedList, Pager, PagerHelper, PeriodRelation, PrintType, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RandomHelper, RangeValidator, ReCaptchaService, RecaptchaModule, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, TmpHelper, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, Validators, ValidatorsModule, WebApiClient, WebApiModule, ZekAlert, ZekApproveModal, ZekAutoComplete, ZekButtonBrowse, ZekButtonBrowseModalBase, ZekButtonBrowseModalToolbar, ZekButtonBrowseModule, ZekCallbackPipe, ZekCard, ZekCountdown, ZekDateAgoPipe, ZekDeleteModal, ZekDisapproveModal, ZekEditToolbar, ZekFieldValidator, ZekFileSizePipe, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekGoogleLoginModule, ZekGridToolbar, ZekGridToolbarBar, ZekListToolbar, ZekLoading, ZekLoadingModule, ZekLocalToUtcModule, ZekLocalToUtcPipe, ZekModal, ZekModalModule, ZekNumericDirective, ZekPageTitle, ZekPager, ZekPassword, ZekProgress, ZekRadio, ZekReadOnlyDirective, ZekRestoreModal, ZekSafePipe, ZekSelect2, ZekSelect2Multiple, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSubmitModal, ZekSumModal, ZekToast, ZekTooltip, ZekUtcToLocalModule, ZekUtcToLocalPipe, ZekValidation, ZekWizard, ZekWizard2, firstBy, handler, matchValidator, nullValidator, rangeValidator, zekAuthGuard };
7009
+ export { API_BASE_URL, AgePipe, Alert, AlertService, ArrayHelper, AuthService, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, ErrorHelper, ExcelHelper, FileBase, FileBytes, FileHelper, FileString, FilterBase, FilterHelper, GOOGLE_CLIENT_ID, Gender, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PagedList, Pager, PagerHelper, PeriodRelation, PrintType, RANGE_VALIDATOR, RECAPTCHA_SITE_KEY, RandomHelper, RangeValidator, ReCaptchaService, RecaptchaModule, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, TmpHelper, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, Validators, ValidatorsModule, WebApiClient, WebApiModule, ZekAlert, ZekApproveModal, ZekAutoComplete, ZekButtonBrowse, ZekButtonBrowseModalBase, ZekButtonBrowseModalToolbar, ZekButtonBrowseModule, ZekCallbackPipe, ZekCard, ZekCountdown, ZekDateAgoPipe, ZekDeleteModal, ZekDisapproveModal, ZekEditToolbar, ZekFieldValidator, ZekFileSizePipe, ZekFileViewer, ZekFilterModal, ZekGoogleLoginButton, ZekGoogleLoginModule, ZekGridToolbar, ZekGridToolbarBar, ZekListToolbar, ZekLoading, ZekLoadingModule, ZekLocalToUtcModule, ZekLocalToUtcPipe, ZekModal, ZekModalModule, ZekNumericDirective, ZekPageTitle, ZekPager, ZekPassword, ZekProgress, ZekRadio, ZekReadOnlyDirective, ZekRestoreModal, ZekSafePipe, ZekSelect2, ZekSelect2Multiple, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSubmitModal, ZekSumModal, ZekTag, ZekToast, ZekTooltip, ZekUtcToLocalModule, ZekUtcToLocalPipe, ZekValidation, ZekWizard, ZekWizard2, firstBy, handler, matchValidator, nullValidator, rangeValidator, zekAuthGuard };
6906
7010
  //# sourceMappingURL=zek.mjs.map