ps-toolkit-ui 1.6.52 → 1.6.55

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.
@@ -1,6 +1,6 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import * as $ from 'jquery';
3
- import { InputError } from '../../../classes/enum.class';
3
+ import { InputError, InputType } from '../../../classes/enum.class';
4
4
  export class FormTagComponent {
5
5
  constructor() {
6
6
  this.cValue = '';
@@ -22,7 +22,7 @@ export class FormTagComponent {
22
22
  if (!this.inp.required && this.inp.value.length === 0) {
23
23
  return true;
24
24
  }
25
- if (this.inp.allowed !== null && this.inp.value.map(x => RegExp(this.inp.allowed).test(x)).some(x => x === false)) {
25
+ if (this.inp.allowed !== null && this.inp.value.filter(x => x !== '').map(x => RegExp(this.inp.allowed === InputType.BillNumber ? /^\d+(\/\d+)*$/ : '').test(x)).some(x => x === false)) {
26
26
  this.inp.error = InputError.Invalid;
27
27
  return false;
28
28
  }
@@ -33,7 +33,7 @@ export class FormTagComponent {
33
33
  this.inp.setValue(this.inp.default, false);
34
34
  };
35
35
  this.inp.data = () => {
36
- return this.inp.value;
36
+ return this.inp.value.filter(x => x !== '');
37
37
  };
38
38
  this.inp.setValue(this.inp.default, false);
39
39
  }
@@ -73,8 +73,8 @@ export class FormTagComponent {
73
73
  FormTagComponent.decorators = [
74
74
  { type: Component, args: [{
75
75
  selector: 'lib-form-tag',
76
- template: "<div #inputDiv [id]=\"inp.id + 'TextInput'\" [style]=\"inp.style\" [className]=\"'form-input-con tag w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <div class=\"control\">\r\n <div class=\"tag\" *ngFor=\"let t of inp.value\"><i (click)=\"removeTag(t)\" class=\"fas fa-times\"></i><span>{{t}}</span></div>\r\n <input (keydown)=\"onKeyDown($event)\" [disabled]=\"inp.disabled || inp.loading\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" autocomplete=\"off\">\r\n </div>\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</div>\r\n",
77
- styles: [".form-input-con.tag{padding:0 15px;position:relative}.form-input-con.tag .form-input{float:right;position:relative;width:100%}.form-input-con.tag .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.tag.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.tag .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control{align-items:center;background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);cursor:text;display:flex;flex-flow:wrap;float:right;justify-content:center;min-height:35px;position:relative;width:100%;z-index:2}.form-input-con.tag .form-input .control input{background-image:none;border:unset;color:var(--black);float:right;font-family:Vazir;font-size:11px;height:25px;margin:5px;outline:none;padding:5px;position:relative;text-align:center;width:100px}.form-input-con.tag .form-input .control .tag{background-color:var(--primary);border-radius:var(--border-radius-base);color:var(--white);cursor:default;float:right;margin:5px;overflow:hidden}.form-input-con.tag .form-input .control .tag span{float:right;font-size:12px;height:25px;line-height:25px;padding:0 5px}.form-input-con.tag .form-input .control .tag i{cursor:pointer;float:right;height:25px;line-height:25px;text-align:center;width:20px}.form-input-con.tag .form-input .control .tag i:hover{background-color:var(--blue-dark)}.form-input-con.tag .form-input .control:focus,.form-input-con.tag .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.tag.error .form-input .control{border:var(--border-input-red)}.form-input-con.tag.error .form-input .control,.form-input-con.tag.error .form-input i.icon{color:var(--red)}.form-input-con.tag.error .form-input .control:focus,.form-input-con.tag.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.tag .form-input i.icon{color:var(--primary);cursor:text;left:0}.form-input-con.tag .form-input i.icon,.form-input-con.tag .form-input span.clear-icon{bottom:0;font-size:14px;height:35px;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.tag .form-input span.clear-icon{color:var(--red);cursor:pointer;right:0}.form-input-con.tag.disabled .form-input .control,.form-input-con.tag.disabled .form-input .label,.form-input-con.tag.disabled .form-input i.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.tag .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:-3px;height:10px;line-height:10px;margin-right:0;position:absolute;right:0;transition:width .5s ease-in-out;width:100%}.form-input-con.tag.h-50 .form-input .control{height:50px}.form-input-con.tag.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.tag.h-45 .form-input .control{font-size:17px;height:45px}.form-input-con.tag.h-45 .form-input .control::-moz-placeholder,.form-input-con.tag.h-45 .form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.tag.h-45 .form-input i.icon{font-size:15px;height:45px;line-height:50px}.form-input-con.tag.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.tag.h-30 .form-input i.icon{font-size:11px;height:30px;line-height:33px;width:30px}.form-input-con.tag.h-35{height:35px}.form-input-con.tag.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.tag.h-35 .form-input i.icon{height:35px;line-height:35px}.form-input-con.tag.h-25 .form-input .control{height:25px;padding:0}.form-input-con.tag.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.tag.h-25 .form-input .control::-moz-placeholder,.form-input-con.tag.h-25 .form-input .control::-webkit-input-placeholder{font-family:VazirLight;font-size:10px}"]
76
+ template: "<div #inputDiv [id]=\"inp.id + 'TextInput'\" [style]=\"inp.style\" [className]=\"'form-input-con tag w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <div class=\"control\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <div class=\"tag\" *ngFor=\"let t of inp.value\"><i (click)=\"removeTag(t)\" class=\"fas fa-times\"></i><span>{{t}}</span></div>\r\n <input (keydown)=\"onKeyDown($event)\" [disabled]=\"inp.disabled || inp.loading\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" autocomplete=\"off\">\r\n </div>\r\n </div>\r\n</div>\r\n",
77
+ styles: [".form-input-con.tag{padding:0 15px;position:relative}.form-input-con.tag .form-input{float:right;position:relative;width:100%}.form-input-con.tag .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.tag.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.tag .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control{align-items:center;background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);cursor:text;display:flex;flex-flow:wrap;float:right;justify-content:center;min-height:35px;padding:5px 35px;position:relative;width:100%;z-index:2}.form-input-con.tag .form-input .control input{background-image:none;border:unset;color:var(--black);float:right;font-family:Vazir;font-size:11px;height:20px;margin:1.5px 5px;outline:none;padding:0;position:relative;text-align:center;width:100px}.form-input-con.tag .form-input .control .tag{background-color:var(--primary);border-radius:var(--border-radius-base);color:var(--white);cursor:default;float:right;margin:1.5px 5px;overflow:hidden}.form-input-con.tag .form-input .control .tag span{float:right;font-size:12px;height:20px;line-height:20px;padding:0 5px}.form-input-con.tag .form-input .control .tag i{cursor:pointer;float:right;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control .tag i:hover{background-color:var(--blue-dark)}.form-input-con.tag .form-input .control:focus,.form-input-con.tag .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.tag.error .form-input .control{border:var(--border-input-red)}.form-input-con.tag.error .form-input .control,.form-input-con.tag.error .form-input i.icon{color:var(--red)}.form-input-con.tag.error .form-input .control:focus,.form-input-con.tag.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.tag .form-input i.icon{color:var(--primary);cursor:text;left:0;top:0}.form-input-con.tag .form-input i.icon,.form-input-con.tag .form-input span.clear-icon{font-size:14px;height:35px;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.tag .form-input span.clear-icon{bottom:0;color:var(--red);cursor:pointer;right:0}.form-input-con.tag.disabled .form-input .control,.form-input-con.tag.disabled .form-input .label,.form-input-con.tag.disabled .form-input i.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.tag .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:-3px;height:10px;line-height:10px;margin-right:0;position:absolute;right:0;transition:width .5s ease-in-out;width:100%}.form-input-con.tag.h-50 .form-input .control{height:50px}.form-input-con.tag.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.tag.h-45 .form-input .control{font-size:17px;height:45px}.form-input-con.tag.h-45 .form-input .control::-moz-placeholder,.form-input-con.tag.h-45 .form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.tag.h-45 .form-input i.icon{font-size:15px;height:45px;line-height:50px}.form-input-con.tag.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.tag.h-30 .form-input i.icon{font-size:11px;height:30px;line-height:33px;width:30px}.form-input-con.tag.h-35{height:35px}.form-input-con.tag.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.tag.h-35 .form-input i.icon{height:35px;line-height:35px}"]
78
78
  },] }
79
79
  ];
80
80
  FormTagComponent.propDecorators = {
@@ -84,4 +84,4 @@ FormTagComponent.propDecorators = {
84
84
  inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
85
85
  inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
86
86
  };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vdGFnL2Zvcm0udGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdkQsTUFBTSxPQUFPLGdCQUFnQjtJQUw3QjtRQVFFLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFFWixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFtRTNDLENBQUM7SUE3REMsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9HLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxHQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFD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LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tdGFnJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS50YWcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0udGFnLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVRhZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgY1ZhbHVlID0gJyc7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRMYWJlbCcpIGlucHV0TGFiZWw6IEVsZW1lbnRSZWY7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHYgIT0gbnVsbCA/IHYgaW5zdGFuY2VvZiBBcnJheSA/IHYgOiB2LnRvU3RyaW5nKCkuc3BsaXQoL1ssIF0vKS5maWx0ZXIoeCA9PiB4ICE9PSAnJykgIDogW107XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoY2hhbmdlSW5kZXg9IGZhbHNlKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKGNoYW5nZUluZGV4KTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5pbnAudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLmFsbG93ZWQgIT09IG51bGwgJiYgdGhpcy5pbnAudmFsdWUubWFwKHggPT4gUmVnRXhwKHRoaXMuaW5wLmFsbG93ZWQpLnRlc3QoeCkpLnNvbWUoeCA9PiB4ID09PSBmYWxzZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC52YWx1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzSW4oY2hhbmdlSW5kZXggPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZUluZGV4KXtcclxuICAgICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pbnAub25LZXlEb3duKSB7XHJcbiAgICAgIHRoaXMuaW5wLm9uS2V5RG93bihlKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5KSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGNvZGUgPT09IDkgPyBlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInIDogZS5zaGlmdEtleSA/ICdTaGlmdEVudGVyJyA6ICdFbnRlcicpO1xyXG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAxMyl7XHJcbiAgICAgIGNvbnN0IHYgPSAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICBpZiAodi52YWwoKSAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAudmFsdWUuY29uY2F0KHYudmFsKCkudG9TdHJpbmcoKS5zcGxpdCgvWywgXS8pLmZpbHRlcih4ID0+IHggIT09ICcnICYmICF0aGlzLmlucC52YWx1ZS5pbmNsdWRlcyh4KSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHYudmFsKCcnKTtcclxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gOCl7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlLnBvcCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gIH1cclxuICByZW1vdmVUYWcodCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC52YWx1ZSA9IHRoaXMuaW5wLnZhbHVlLmZpbHRlcih4ID0+IHggIT09IHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vdGFnL2Zvcm0udGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT2xFLE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFRRSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRVosZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBbUUzQyxDQUFDO0lBN0RDLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsR0FBRSxLQUFLLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlC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QkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIseWhDQUF3Qzs7YUFFekM7OztrQkFFRSxLQUFLOzBCQUdMLE1BQU07d0JBR04sU0FBUyxTQUFDLFdBQVc7dUJBQ3JCLFNBQVMsU0FBQyxVQUFVO3lCQUNwQixTQUFTLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvciwgSW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS10YWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLnRhZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS50YWcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVGFnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBjVmFsdWUgPSAnJztcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dExhYmVsJykgaW5wdXRMYWJlbDogRWxlbWVudFJlZjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdiAhPSBudWxsID8gdiBpbnN0YW5jZW9mIEFycmF5ID8gdiA6IHYudG9TdHJpbmcoKS5zcGxpdCgvWywgXS8pLmZpbHRlcih4ID0+IHggIT09ICcnKSAgOiBbXTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9IChjaGFuZ2VJbmRleD0gZmFsc2UpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oY2hhbmdlSW5kZXgpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLmlucC52YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAuYWxsb3dlZCAhPT0gbnVsbCAmJiB0aGlzLmlucC52YWx1ZS5maWx0ZXIoeCA9PiB4ICE9PSAnJykubWFwKHggPT4gUmVnRXhwKHRoaXMuaW5wLmFsbG93ZWQgPT09IElucHV0VHlwZS5CaWxsTnVtYmVyID8gL15cXGQrKFxcL1xcZCspKiQvIDogJycpLnRlc3QoeCkpLnNvbWUoeCA9PiB4ID09PSBmYWxzZSkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuSW52YWxpZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC52YWx1ZS5maWx0ZXIoeCA9PiB4ICE9PSAnJyk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1c0luKGNoYW5nZUluZGV4ID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VJbmRleCl7XHJcbiAgICAgIHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wLm9uS2V5RG93bikge1xyXG4gICAgICB0aGlzLmlucC5vbktleURvd24oZSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChjb2RlID09PSA5ID8gZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyA6IGUuc2hpZnRLZXkgPyAnU2hpZnRFbnRlcicgOiAnRW50ZXInKTtcclxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gMTMpe1xyXG4gICAgICBjb25zdCB2ID0gJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgaWYgKHYudmFsKCkgIT09ICcnKXtcclxuICAgICAgICB0aGlzLmlucC52YWx1ZSA9IHRoaXMuaW5wLnZhbHVlLmNvbmNhdCh2LnZhbCgpLnRvU3RyaW5nKCkuc3BsaXQoL1ssIF0vKS5maWx0ZXIoeCA9PiB4ICE9PSAnJyAmJiAhdGhpcy5pbnAudmFsdWUuaW5jbHVkZXMoeCkpKTtcclxuICAgICAgfVxyXG4gICAgICB2LnZhbCgnJyk7XHJcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDgpe1xyXG4gICAgICB0aGlzLmlucC52YWx1ZS5wb3AoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICB9XHJcbiAgcmVtb3ZlVGFnKHQpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmlucC52YWx1ZS5maWx0ZXIoeCA9PiB4ICE9PSB0KTtcclxuICB9XHJcbn1cclxuIl19
@@ -6510,7 +6510,7 @@ class FormTagComponent {
6510
6510
  if (!this.inp.required && this.inp.value.length === 0) {
6511
6511
  return true;
6512
6512
  }
6513
- if (this.inp.allowed !== null && this.inp.value.map(x => RegExp(this.inp.allowed).test(x)).some(x => x === false)) {
6513
+ if (this.inp.allowed !== null && this.inp.value.filter(x => x !== '').map(x => RegExp(this.inp.allowed === InputType.BillNumber ? /^\d+(\/\d+)*$/ : '').test(x)).some(x => x === false)) {
6514
6514
  this.inp.error = InputError.Invalid;
6515
6515
  return false;
6516
6516
  }
@@ -6521,7 +6521,7 @@ class FormTagComponent {
6521
6521
  this.inp.setValue(this.inp.default, false);
6522
6522
  };
6523
6523
  this.inp.data = () => {
6524
- return this.inp.value;
6524
+ return this.inp.value.filter(x => x !== '');
6525
6525
  };
6526
6526
  this.inp.setValue(this.inp.default, false);
6527
6527
  }
@@ -6561,8 +6561,8 @@ class FormTagComponent {
6561
6561
  FormTagComponent.decorators = [
6562
6562
  { type: Component, args: [{
6563
6563
  selector: 'lib-form-tag',
6564
- template: "<div #inputDiv [id]=\"inp.id + 'TextInput'\" [style]=\"inp.style\" [className]=\"'form-input-con tag w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <div class=\"control\">\r\n <div class=\"tag\" *ngFor=\"let t of inp.value\"><i (click)=\"removeTag(t)\" class=\"fas fa-times\"></i><span>{{t}}</span></div>\r\n <input (keydown)=\"onKeyDown($event)\" [disabled]=\"inp.disabled || inp.loading\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" autocomplete=\"off\">\r\n </div>\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</div>\r\n",
6565
- styles: [".form-input-con.tag{padding:0 15px;position:relative}.form-input-con.tag .form-input{float:right;position:relative;width:100%}.form-input-con.tag .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.tag.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.tag .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control{align-items:center;background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);cursor:text;display:flex;flex-flow:wrap;float:right;justify-content:center;min-height:35px;position:relative;width:100%;z-index:2}.form-input-con.tag .form-input .control input{background-image:none;border:unset;color:var(--black);float:right;font-family:Vazir;font-size:11px;height:25px;margin:5px;outline:none;padding:5px;position:relative;text-align:center;width:100px}.form-input-con.tag .form-input .control .tag{background-color:var(--primary);border-radius:var(--border-radius-base);color:var(--white);cursor:default;float:right;margin:5px;overflow:hidden}.form-input-con.tag .form-input .control .tag span{float:right;font-size:12px;height:25px;line-height:25px;padding:0 5px}.form-input-con.tag .form-input .control .tag i{cursor:pointer;float:right;height:25px;line-height:25px;text-align:center;width:20px}.form-input-con.tag .form-input .control .tag i:hover{background-color:var(--blue-dark)}.form-input-con.tag .form-input .control:focus,.form-input-con.tag .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.tag.error .form-input .control{border:var(--border-input-red)}.form-input-con.tag.error .form-input .control,.form-input-con.tag.error .form-input i.icon{color:var(--red)}.form-input-con.tag.error .form-input .control:focus,.form-input-con.tag.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.tag .form-input i.icon{color:var(--primary);cursor:text;left:0}.form-input-con.tag .form-input i.icon,.form-input-con.tag .form-input span.clear-icon{bottom:0;font-size:14px;height:35px;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.tag .form-input span.clear-icon{color:var(--red);cursor:pointer;right:0}.form-input-con.tag.disabled .form-input .control,.form-input-con.tag.disabled .form-input .label,.form-input-con.tag.disabled .form-input i.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.tag .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:-3px;height:10px;line-height:10px;margin-right:0;position:absolute;right:0;transition:width .5s ease-in-out;width:100%}.form-input-con.tag.h-50 .form-input .control{height:50px}.form-input-con.tag.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.tag.h-45 .form-input .control{font-size:17px;height:45px}.form-input-con.tag.h-45 .form-input .control::-moz-placeholder,.form-input-con.tag.h-45 .form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.tag.h-45 .form-input i.icon{font-size:15px;height:45px;line-height:50px}.form-input-con.tag.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.tag.h-30 .form-input i.icon{font-size:11px;height:30px;line-height:33px;width:30px}.form-input-con.tag.h-35{height:35px}.form-input-con.tag.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.tag.h-35 .form-input i.icon{height:35px;line-height:35px}.form-input-con.tag.h-25 .form-input .control{height:25px;padding:0}.form-input-con.tag.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.tag.h-25 .form-input .control::-moz-placeholder,.form-input-con.tag.h-25 .form-input .control::-webkit-input-placeholder{font-family:VazirLight;font-size:10px}"]
6564
+ template: "<div #inputDiv [id]=\"inp.id + 'TextInput'\" [style]=\"inp.style\" [className]=\"'form-input-con tag w-100' + (inp.error == null ? '' : ' error') + (inp.disabled || inp.loading ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + ' ' + inp.class\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"><i *ngIf=\"inp.required\" class=\"fas fa-star-of-life required-icon\"></i>{{inp.getLabel()}}</div>\r\n <div class=\"control\">\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n <div class=\"tag\" *ngFor=\"let t of inp.value\"><i (click)=\"removeTag(t)\" class=\"fas fa-times\"></i><span>{{t}}</span></div>\r\n <input (keydown)=\"onKeyDown($event)\" [disabled]=\"inp.disabled || inp.loading\" [placeholder]=\"inp.placeholder ? inp.l(inp.placeholder) : ''\" #inputBase type=\"text\" autocomplete=\"off\">\r\n </div>\r\n </div>\r\n</div>\r\n",
6565
+ styles: [".form-input-con.tag{padding:0 15px;position:relative}.form-input-con.tag .form-input{float:right;position:relative;width:100%}.form-input-con.tag .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;cursor:default;direction:rtl;float:right;font-size:12px;height:20px;line-height:20px;margin-bottom:3px;padding:0 10px;text-align:right;width:100%}.form-input-con.tag.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.tag .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control{align-items:center;background-color:#fff;border:var(--border-input);border-radius:var(--border-radius-base);cursor:text;display:flex;flex-flow:wrap;float:right;justify-content:center;min-height:35px;padding:5px 35px;position:relative;width:100%;z-index:2}.form-input-con.tag .form-input .control input{background-image:none;border:unset;color:var(--black);float:right;font-family:Vazir;font-size:11px;height:20px;margin:1.5px 5px;outline:none;padding:0;position:relative;text-align:center;width:100px}.form-input-con.tag .form-input .control .tag{background-color:var(--primary);border-radius:var(--border-radius-base);color:var(--white);cursor:default;float:right;margin:1.5px 5px;overflow:hidden}.form-input-con.tag .form-input .control .tag span{float:right;font-size:12px;height:20px;line-height:20px;padding:0 5px}.form-input-con.tag .form-input .control .tag i{cursor:pointer;float:right;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.tag .form-input .control .tag i:hover{background-color:var(--blue-dark)}.form-input-con.tag .form-input .control:focus,.form-input-con.tag .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.tag.error .form-input .control{border:var(--border-input-red)}.form-input-con.tag.error .form-input .control,.form-input-con.tag.error .form-input i.icon{color:var(--red)}.form-input-con.tag.error .form-input .control:focus,.form-input-con.tag.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.tag .form-input i.icon{color:var(--primary);cursor:text;left:0;top:0}.form-input-con.tag .form-input i.icon,.form-input-con.tag .form-input span.clear-icon{font-size:14px;height:35px;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.tag .form-input span.clear-icon{bottom:0;color:var(--red);cursor:pointer;right:0}.form-input-con.tag.disabled .form-input .control,.form-input-con.tag.disabled .form-input .label,.form-input-con.tag.disabled .form-input i.icon{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;box-shadow:unset;cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.tag .form-input .progress{background-color:var(--primary);border-radius:var(--border-radius-base);bottom:-3px;height:10px;line-height:10px;margin-right:0;position:absolute;right:0;transition:width .5s ease-in-out;width:100%}.form-input-con.tag.h-50 .form-input .control{height:50px}.form-input-con.tag.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.tag.h-45 .form-input .control{font-size:17px;height:45px}.form-input-con.tag.h-45 .form-input .control::-moz-placeholder,.form-input-con.tag.h-45 .form-input .control::-webkit-input-placeholder{font-size:12px}.form-input-con.tag.h-45 .form-input i.icon{font-size:15px;height:45px;line-height:50px}.form-input-con.tag.h-30 .form-input .control{font-size:10px;height:30px;padding:0}.form-input-con.tag.h-30 .form-input i.icon{font-size:11px;height:30px;line-height:33px;width:30px}.form-input-con.tag.h-35{height:35px}.form-input-con.tag.h-35 .form-input .control{height:35px;padding:0 35px}.form-input-con.tag.h-35 .form-input i.icon{height:35px;line-height:35px}"]
6566
6566
  },] }
6567
6567
  ];
6568
6568
  FormTagComponent.propDecorators = {