ps-toolkit-ui 1.6.53 → 1.6.56
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/bundles/ps-toolkit-ui.umd.js +12 -7
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/components/form/index/form.component.js +2 -2
- package/esm2015/lib/components/form/tag/form.tag.component.js +12 -7
- package/fesm2015/ps-toolkit-ui.js +12 -7
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.metadata.json +1 -1
|
@@ -37,7 +37,7 @@ export class FormComponent {
|
|
|
37
37
|
FormComponent.decorators = [
|
|
38
38
|
{ type: Component, args: [{
|
|
39
39
|
selector: 'lib-form',
|
|
40
|
-
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
40
|
+
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
41
41
|
styles: [".form{border-radius:var(--border-radius-base);float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-light);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
|
|
42
42
|
},] }
|
|
43
43
|
];
|
|
@@ -45,4 +45,4 @@ FormComponent.ctorParameters = () => [];
|
|
|
45
45
|
FormComponent.propDecorators = {
|
|
46
46
|
form: [{ type: Input }]
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9pbmRleC9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFPdEQsTUFBTSxPQUFPLGFBQWE7SUFJeEI7SUFDQSxDQUFDO0lBRkQsSUFBSSxJQUFJLEtBQXVCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQztJQUdsRCxRQUFRO0lBQ1IsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUN2QixNQUFNLENBQUMsR0FBRyxNQUFNLEtBQUssVUFBVSxJQUFJLE1BQU0sS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUNsQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNO1lBQzdELENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0csSUFBSSxLQUFLLEtBQUssT0FBTyxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUU7WUFDM0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUUsSUFBSSxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU87YUFDUjtTQUNGO1FBQ0QsSUFBSSxJQUFJLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU87ZUFDcEgsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBQztZQUN4RyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUNqQjtRQUNELElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFDO1lBQzlDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQUk7WUFDSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsbXZKQUFvQzs7YUFFckM7Ozs7bUJBRUUsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtGb3JtQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRUeXBlfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgZm9ybTogRm9ybUNsYXNzO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZHtcclxuICB9XHJcbiAgY2hhbmdlSW5kZXgoaW5kZXgsIGFjdGlvbik6IHZvaWR7XHJcbiAgICBjb25zdCBuID0gYWN0aW9uID09PSAnU2hpZnRUYWInIHx8IGFjdGlvbiA9PT0gJ1NoaWZ0RW50ZXInID8gLTEgOiAxO1xyXG4gICAgY29uc3QgbGFzdElucCA9IHRoaXMuZm9ybS5pbnB1dHMubWFwKFxyXG4gICAgICB4ID0+IHgudHlwZSAhPT0gSW5wdXRUeXBlLlN1Ym1pdCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5CdXR0b24gJiZcclxuICAgICAgICB4LnR5cGUgIT09IElucHV0VHlwZS5MYWJlbCAmJiB4LnR5cGUgIT09IElucHV0VHlwZS5IaWRkZW4gJiYgIXguZGlzYWJsZWQgJiYgeC52aXNpYmxlKS5sYXN0SW5kZXhPZih0cnVlKTtcclxuICAgIGlmIChpbmRleCA9PT0gbGFzdElucCAmJiBhY3Rpb24gPT09ICdFbnRlcicpIHtcclxuICAgICAgY29uc3Qgc3VibWl0ID0gdGhpcy5mb3JtLmlucHV0cy5maW5kSW5kZXgoeCA9PiB4LnR5cGUgPT09IElucHV0VHlwZS5TdWJtaXQpO1xyXG4gICAgICBpZiAoc3VibWl0ICE9PSAtMSl7XHJcbiAgICAgICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG5leHQgPSBpbmRleCArIG47XHJcbiAgICB3aGlsZSAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCAmJiAodGhpcy5mb3JtLmlucHV0c1tuZXh0XS5kaXNhYmxlZCB8fCAhdGhpcy5mb3JtLmlucHV0c1tuZXh0XS52aXNpYmxlXHJcbiAgICAgIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkxhYmVsIHx8IHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0udHlwZSA9PT0gSW5wdXRUeXBlLkhpZGRlbikpe1xyXG4gICAgICBuZXh0ID0gbmV4dCArIG47XHJcbiAgICB9XHJcbiAgICBpZiAobmV4dCA+PSAwICYmIG5leHQgPCB0aGlzLmZvcm0uaW5wdXRzLmxlbmd0aCl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbbmV4dF0uZm9jdXModHJ1ZSk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybS5pbnB1dHNbaW5kZXhdLmZvY3VzT3V0KCk7XHJcbiAgICAgIH0sIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -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 === InputType.BillNumber ? /^\d+(\/\d+)*$/ : '').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
|
}
|
|
@@ -46,23 +46,28 @@ export class FormTagComponent {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
onKeyDown(e) {
|
|
49
|
+
const v = $(this.inputBase.nativeElement);
|
|
49
50
|
if (this.inp.onKeyDown) {
|
|
50
51
|
this.inp.onKeyDown(e);
|
|
51
52
|
}
|
|
52
53
|
const code = e.keyCode || e.which;
|
|
53
54
|
if (code === 9) {
|
|
54
55
|
e.preventDefault();
|
|
56
|
+
if (v.val() !== '') {
|
|
57
|
+
this.inp.value = this.inp.value.concat(v.val().toString().split(/[, ]/).filter(x => x !== '' && !this.inp.value.includes(x)));
|
|
58
|
+
}
|
|
55
59
|
this.changeIndex.emit(code === 9 ? e.shiftKey ? 'ShiftTab' : 'Tab' : e.shiftKey ? 'ShiftEnter' : 'Enter');
|
|
56
60
|
}
|
|
57
61
|
else if (code === 13) {
|
|
58
|
-
const v = $(this.inputBase.nativeElement);
|
|
59
62
|
if (v.val() !== '') {
|
|
60
63
|
this.inp.value = this.inp.value.concat(v.val().toString().split(/[, ]/).filter(x => x !== '' && !this.inp.value.includes(x)));
|
|
61
64
|
}
|
|
62
65
|
v.val('');
|
|
63
66
|
}
|
|
64
67
|
else if (code === 8) {
|
|
65
|
-
|
|
68
|
+
if (v.val() === '') {
|
|
69
|
+
this.inp.value.pop();
|
|
70
|
+
}
|
|
66
71
|
}
|
|
67
72
|
this.inp.error = null;
|
|
68
73
|
}
|
|
@@ -73,8 +78,8 @@ export class FormTagComponent {
|
|
|
73
78
|
FormTagComponent.decorators = [
|
|
74
79
|
{ type: Component, args: [{
|
|
75
80
|
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
|
|
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:
|
|
81
|
+
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",
|
|
82
|
+
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
83
|
},] }
|
|
79
84
|
];
|
|
80
85
|
FormTagComponent.propDecorators = {
|
|
@@ -84,4 +89,4 @@ FormTagComponent.propDecorators = {
|
|
|
84
89
|
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
85
90
|
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }]
|
|
86
91
|
};
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS50YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1Byb2plY3RzL1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vdGFnL2Zvcm0udGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMsVUFBVSxFQUFFLFNBQVMsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT2xFLE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFRRSxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRVosZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBd0UzQyxDQUFDO0lBbEVDLFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsR0FBRSxLQUFLLEVBQUUsRUFBRTtZQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlC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YUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUM7WUFDcEIsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFDO2dCQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN0QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxTQUFTLENBQUMsQ0FBQztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDOzs7WUFqRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2dCQUN4Qix5aENBQXdDOzthQUV6Qzs7O2tCQUVFLEtBQUs7MEJBR0wsTUFBTTt3QkFHTixTQUFTLFNBQUMsV0FBVzt1QkFDckIsU0FBUyxTQUFDLFVBQVU7eUJBQ3BCLFNBQVMsU0FBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yLCBJbnB1dFR5cGV9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1mb3JtLXRhZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0udGFnLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLnRhZy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1UYWdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIGNWYWx1ZSA9ICcnO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0QmFzZScpIGlucHV0QmFzZTogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dERpdicpIGlucHV0RGl2OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0TGFiZWwnKSBpbnB1dExhYmVsOiBFbGVtZW50UmVmO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB2ICE9IG51bGwgPyB2IGluc3RhbmNlb2YgQXJyYXkgPyB2IDogdi50b1N0cmluZygpLnNwbGl0KC9bLCBdLykuZmlsdGVyKHggPT4geCAhPT0gJycpICA6IFtdO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKGNoYW5nZUluZGV4PSBmYWxzZSkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbihjaGFuZ2VJbmRleCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5pbnAudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuaW5wLnJlcXVpcmVkICYmIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5hbGxvd2VkICE9PSBudWxsICYmIHRoaXMuaW5wLnZhbHVlLmZpbHRlcih4ID0+IHggIT09ICcnKS5tYXAoeCA9PiBSZWdFeHAodGhpcy5pbnAuYWxsb3dlZCA9PT0gSW5wdXRUeXBlLkJpbGxOdW1iZXIgPyAvXlxcZCsoXFwvXFxkKykqJC8gOiAnJykudGVzdCh4KSkuc29tZSh4ID0+IHggPT09IGZhbHNlKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5JbnZhbGlkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5wLnZhbHVlLmZpbHRlcih4ID0+IHggIT09ICcnKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSh0aGlzLmlucC5kZWZhdWx0LCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzSW4oY2hhbmdlSW5kZXggPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZUluZGV4KXtcclxuICAgICAgdGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudC5zZWxlY3QoKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KTtcclxuICAgIGlmICh0aGlzLmlucC5vbktleURvd24pIHtcclxuICAgICAgdGhpcy5pbnAub25LZXlEb3duKGUpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAodi52YWwoKSAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAudmFsdWUuY29uY2F0KHYudmFsKCkudG9TdHJpbmcoKS5zcGxpdCgvWywgXS8pLmZpbHRlcih4ID0+IHggIT09ICcnICYmICF0aGlzLmlucC52YWx1ZS5pbmNsdWRlcyh4KSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChjb2RlID09PSA5ID8gZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyA6IGUuc2hpZnRLZXkgPyAnU2hpZnRFbnRlcicgOiAnRW50ZXInKTtcclxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gMTMpe1xyXG4gICAgICBpZiAodi52YWwoKSAhPT0gJycpe1xyXG4gICAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAudmFsdWUuY29uY2F0KHYudmFsKCkudG9TdHJpbmcoKS5zcGxpdCgvWywgXS8pLmZpbHRlcih4ID0+IHggIT09ICcnICYmICF0aGlzLmlucC52YWx1ZS5pbmNsdWRlcyh4KSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHYudmFsKCcnKTtcclxuICAgIH0gZWxzZSBpZiAoY29kZSA9PT0gOCl7XHJcbiAgICAgIGlmICh2LnZhbCgpID09PSAnJyl7XHJcbiAgICAgICAgdGhpcy5pbnAudmFsdWUucG9wKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICB9XHJcbiAgcmVtb3ZlVGFnKHQpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmlucC52YWx1ZS5maWx0ZXIoeCA9PiB4ICE9PSB0KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -3578,7 +3578,7 @@ class FormComponent {
|
|
|
3578
3578
|
FormComponent.decorators = [
|
|
3579
3579
|
{ type: Component, args: [{
|
|
3580
3580
|
selector: 'lib-form',
|
|
3581
|
-
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
3581
|
+
template: "<form [style]=\"form.style\" *ngIf=\"form\" [id]=\"form.id + 'Form'\" [className]=\"'form' + (form.class ? ' ' + form.class : '')\">\r\n <div *ngIf=\"form.displayLabel\" [className]=\"(form.subName ? '' : 'underline ') + 'title'\">{{this.form.l(this.form.name)}}</div>\r\n <div *ngIf=\"form.displayLabel && form.subName\" class=\"sub-title underline\">{{this.form.l(this.form.subName)}}</div>\r\n <div *ngIf=\"form.loading\" class=\"loading\">\r\n <div class=\"text\" [innerHTML]=\"form.l('LoadingTable', 'Processing')\"></div>\r\n </div>\r\n <div *ngIf=\"!form.permission\" class=\"loading\">\r\n <div class=\"text\"><i class=\"fas fa-shield-alt icon\"></i>{{ form.l(\"PermissionDenied\") }}</div>\r\n </div>\r\n <div class=\"inputs\">\r\n <span *ngFor=\"let inp of form.inputs; let i = index\">\r\n <lib-form-textbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Text || inp.type == type.Password || inp.type == type.Mobile || inp.type == type.Phone || inp.type == type.Email || inp.type == type.NationalCode || inp.type == type.Number || inp.type == type.Url || inp.type == type.PostalCode || inp.type == type.Price || inp.type == type.Sheba || inp.type == type.Color || inp.type == type.BillNumber)\" [inp]=\"inp\"></lib-form-textbox>\r\n <lib-form-textarea (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.TextArea\" [inp]=\"inp\"></lib-form-textarea>\r\n <lib-form-checkbox (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Check\" [inp]=\"inp\"></lib-form-checkbox>\r\n <lib-form-select [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Select || inp.type == type.SelectSearch || inp.type == type.SelectAutoComplete)\" [inp]=\"inp\"></lib-form-select>\r\n <lib-form-date [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Date\" [inp]=\"inp\"></lib-form-date>\r\n <lib-form-time [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Time\" [inp]=\"inp\"></lib-form-time>\r\n <lib-form-datetime [inForm]=\"true\" (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.DateTime\" [inp]=\"inp\"></lib-form-datetime>\r\n <lib-form-label *ngIf=\"inp.visible && inp.type == type.Label\" [inp]=\"inp\"></lib-form-label>\r\n <lib-form-file (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.File\" [inp]=\"inp\"></lib-form-file>\r\n <lib-form-button (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Button || inp.type == type.Submit)\" [inp]=\"inp\"></lib-form-button>\r\n <lib-form-icon (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Icon\" [inp]=\"inp\"></lib-form-icon>\r\n <lib-form-radio (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Radio\" [inp]=\"inp\"></lib-form-radio>\r\n <lib-form-tree (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Tree || inp.type == type.TreeRadio)\" [inp]=\"inp\"></lib-form-tree>\r\n <lib-form-plaque (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.Plaque || inp.type == type.PlaqueM || inp.type == type.PlaqueF)\" [inp]=\"inp\"></lib-form-plaque>\r\n <lib-form-plaque-select (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && (inp.type == type.SelectAutoCompletePlaque || inp.type == type.SelectAutoCompletePlaqueM || inp.type == type.SelectAutoCompletePlaqueF)\" [inp]=\"inp\"></lib-form-plaque-select>\r\n <lib-form-bank-card (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.BankCard\" [inp]=\"inp\"></lib-form-bank-card>\r\n <lib-form-car-search (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.CarSearch\" [inp]=\"inp\"></lib-form-car-search>\r\n <lib-form-car (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Car\" [inp]=\"inp\"></lib-form-car>\r\n <lib-form-finger (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Finger\" [inp]=\"inp\"></lib-form-finger>\r\n <lib-form-star (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Star\" [inp]=\"inp\"></lib-form-star>\r\n <lib-form-table *ngIf=\"inp.visible && inp.type == type.Table\" [inp]=\"inp\"></lib-form-table>\r\n <lib-form-tag (changeIndex)=\"changeIndex(i, $event)\" *ngIf=\"inp.visible && inp.type == type.Tag\" [inp]=\"inp\"></lib-form-tag>\r\n <lib-form-hidden *ngIf=\"inp.type == type.Hidden\" [inp]=\"inp\"></lib-form-hidden>\r\n </span>\r\n </div>\r\n</form>\r\n",
|
|
3582
3582
|
styles: [".form{border-radius:var(--border-radius-base);float:right;padding:20px;position:relative;width:100%}.form>.title{font-family:VazirBold;font-size:16px;height:40px}.form>.sub-title,.form>.title{float:right;line-height:30px;margin-bottom:10px;position:relative;text-align:right;width:100%}.form>.sub-title{color:var(--black-light);font-family:VazirLight;font-size:12px;height:30px}.form .loading{background-color:#fff;border-radius:var(--border-radius-base);height:100%;right:0;top:0;z-index:4}.form .loading,.form .loading .text{position:absolute;text-align:center;width:100%}.form .loading .text{font-family:VazirBold;height:35px;line-height:35px;top:calc(50% - 20px)}::ng-deep .form .loading .icon{font-size:20px!important;line-height:30px;margin-left:5px;position:relative;top:5px}.form-buttons,.form-error{float:right;width:100%}.form-error{color:var(--red-light);font-size:11px;height:15px;line-height:8px;margin-top:10px;padding:0 10px;position:relative;text-align:center}.form-error .message{float:left;width:calc(100% - 40px)}.form-error .icon{float:right;height:20px;line-height:6px;right:0;top:0;width:40px}.form .inputs{margin:0 -15px}"]
|
|
3583
3583
|
},] }
|
|
3584
3584
|
];
|
|
@@ -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 === InputType.BillNumber ? /^\d+(\/\d+)*$/ : '').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
|
}
|
|
@@ -6534,23 +6534,28 @@ class FormTagComponent {
|
|
|
6534
6534
|
}
|
|
6535
6535
|
}
|
|
6536
6536
|
onKeyDown(e) {
|
|
6537
|
+
const v = $$1(this.inputBase.nativeElement);
|
|
6537
6538
|
if (this.inp.onKeyDown) {
|
|
6538
6539
|
this.inp.onKeyDown(e);
|
|
6539
6540
|
}
|
|
6540
6541
|
const code = e.keyCode || e.which;
|
|
6541
6542
|
if (code === 9) {
|
|
6542
6543
|
e.preventDefault();
|
|
6544
|
+
if (v.val() !== '') {
|
|
6545
|
+
this.inp.value = this.inp.value.concat(v.val().toString().split(/[, ]/).filter(x => x !== '' && !this.inp.value.includes(x)));
|
|
6546
|
+
}
|
|
6543
6547
|
this.changeIndex.emit(code === 9 ? e.shiftKey ? 'ShiftTab' : 'Tab' : e.shiftKey ? 'ShiftEnter' : 'Enter');
|
|
6544
6548
|
}
|
|
6545
6549
|
else if (code === 13) {
|
|
6546
|
-
const v = $$1(this.inputBase.nativeElement);
|
|
6547
6550
|
if (v.val() !== '') {
|
|
6548
6551
|
this.inp.value = this.inp.value.concat(v.val().toString().split(/[, ]/).filter(x => x !== '' && !this.inp.value.includes(x)));
|
|
6549
6552
|
}
|
|
6550
6553
|
v.val('');
|
|
6551
6554
|
}
|
|
6552
6555
|
else if (code === 8) {
|
|
6553
|
-
|
|
6556
|
+
if (v.val() === '') {
|
|
6557
|
+
this.inp.value.pop();
|
|
6558
|
+
}
|
|
6554
6559
|
}
|
|
6555
6560
|
this.inp.error = null;
|
|
6556
6561
|
}
|
|
@@ -6561,8 +6566,8 @@ class FormTagComponent {
|
|
|
6561
6566
|
FormTagComponent.decorators = [
|
|
6562
6567
|
{ type: Component, args: [{
|
|
6563
6568
|
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
|
|
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:
|
|
6569
|
+
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",
|
|
6570
|
+
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
6571
|
},] }
|
|
6567
6572
|
];
|
|
6568
6573
|
FormTagComponent.propDecorators = {
|