ps-toolkit-ui 1.20.91 → 1.21.32
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/ps-toolkit-ui.mjs +9415 -0
- package/fesm2022/ps-toolkit-ui.mjs.map +1 -0
- package/package.json +16 -12
- package/types/ps-toolkit-ui.d.ts +1671 -0
- package/bundles/ps-toolkit-ui.umd.js +0 -10321
- package/bundles/ps-toolkit-ui.umd.js.map +0 -1
- package/bundles/ps-toolkit-ui.umd.min.js +0 -2
- package/bundles/ps-toolkit-ui.umd.min.js.map +0 -1
- package/esm2015/lib/classes/addModal.class.js +0 -36
- package/esm2015/lib/classes/chart.class.js +0 -165
- package/esm2015/lib/classes/currentDataClass.js +0 -17
- package/esm2015/lib/classes/enum.class.js +0 -253
- package/esm2015/lib/classes/excel.class.js +0 -56
- package/esm2015/lib/classes/form.class.js +0 -667
- package/esm2015/lib/classes/header.class.js +0 -16
- package/esm2015/lib/classes/helper.class.js +0 -650
- package/esm2015/lib/classes/lang.class.js +0 -35
- package/esm2015/lib/classes/login.class.js +0 -29
- package/esm2015/lib/classes/modal.class.js +0 -49
- package/esm2015/lib/classes/permission.class.js +0 -63
- package/esm2015/lib/classes/request.class.js +0 -155
- package/esm2015/lib/classes/safehtml.class.js +0 -17
- package/esm2015/lib/classes/safestyle.class.js +0 -17
- package/esm2015/lib/classes/sidebar.class.js +0 -16
- package/esm2015/lib/classes/steps.class.js +0 -45
- package/esm2015/lib/classes/string.class.js +0 -251
- package/esm2015/lib/classes/table.class.js +0 -593
- package/esm2015/lib/components/accordion/accordion.component.js +0 -45
- package/esm2015/lib/components/alert/alert.component.js +0 -39
- package/esm2015/lib/components/base.component.js +0 -54
- package/esm2015/lib/components/calendar/calendar.component.js +0 -98
- package/esm2015/lib/components/chart/chart.component.js +0 -17
- package/esm2015/lib/components/clock/clock.component.js +0 -33
- package/esm2015/lib/components/confirm/confirm.component.js +0 -50
- package/esm2015/lib/components/error/error.component.js +0 -26
- package/esm2015/lib/components/footer/footer.component.js +0 -23
- package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +0 -200
- package/esm2015/lib/components/form/button/form.button.component.js +0 -68
- package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +0 -67
- package/esm2015/lib/components/form/ckeditor/form.ckeditor.component.js +0 -90
- package/esm2015/lib/components/form/date/form.date.component.js +0 -314
- package/esm2015/lib/components/form/datetime/form.datetime.component.js +0 -106
- package/esm2015/lib/components/form/file/form.file.component.js +0 -124
- package/esm2015/lib/components/form/finger/form.finger.component.js +0 -140
- package/esm2015/lib/components/form/hidden/form.hidden.component.js +0 -31
- package/esm2015/lib/components/form/icon/form.icon.component.js +0 -84
- package/esm2015/lib/components/form/index/form.component.js +0 -51
- package/esm2015/lib/components/form/label/form.label.component.js +0 -32
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +0 -258
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +0 -468
- package/esm2015/lib/components/form/radio/form.radio.component.js +0 -82
- package/esm2015/lib/components/form/select/form.select.component.js +0 -452
- package/esm2015/lib/components/form/select/item/form.select.item.component.js +0 -27
- package/esm2015/lib/components/form/slide/form.slide.component.js +0 -84
- package/esm2015/lib/components/form/star/form.star.component.js +0 -66
- package/esm2015/lib/components/form/table/form.table.component.js +0 -96
- package/esm2015/lib/components/form/tag/form.tag.component.js +0 -100
- package/esm2015/lib/components/form/textarea/form.textarea.component.js +0 -83
- package/esm2015/lib/components/form/textbox/form.textbox.component.js +0 -227
- package/esm2015/lib/components/form/time/form.time.component.js +0 -149
- package/esm2015/lib/components/form/toggle/form.toggle.component.js +0 -72
- package/esm2015/lib/components/form/tree/form.tree.component.js +0 -157
- package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +0 -50
- package/esm2015/lib/components/form/uploader/form.uploader.component.js +0 -159
- package/esm2015/lib/components/form/vehicle/form.vehicle.component.js +0 -104
- package/esm2015/lib/components/form/vehicle/search/form.vehicle.search.component.js +0 -237
- package/esm2015/lib/components/header/header.component.js +0 -28
- package/esm2015/lib/components/header/sub/sub.header.component.js +0 -14
- package/esm2015/lib/components/layout/layout.component.js +0 -18
- package/esm2015/lib/components/loading/loading.component.js +0 -22
- package/esm2015/lib/components/login/login.component.js +0 -159
- package/esm2015/lib/components/modal/modal.component.js +0 -25
- package/esm2015/lib/components/notfound/notfound.component.js +0 -29
- package/esm2015/lib/components/notification/notification.component.js +0 -14
- package/esm2015/lib/components/sidebar/item/sidebar.item.component.js +0 -55
- package/esm2015/lib/components/sidebar/sidebar.component.js +0 -98
- package/esm2015/lib/components/steps/steps.component.js +0 -88
- package/esm2015/lib/components/table/loading/table.loading.component.js +0 -17
- package/esm2015/lib/components/table/pagination/table.pagination.component.js +0 -84
- package/esm2015/lib/components/table/row/table.row.component.js +0 -450
- package/esm2015/lib/components/table/table.component.js +0 -240
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -19
- package/esm2015/lib/ps-toolkit-ui.module.js +0 -105
- package/esm2015/lib/services/config.service.js +0 -14
- package/esm2015/lib/services/sidebar.service.js +0 -21
- package/esm2015/ps-toolkit-ui.js +0 -21
- package/esm2015/public-api.js +0 -64
- package/fesm2015/ps-toolkit-ui.js +0 -8926
- package/fesm2015/ps-toolkit-ui.js.map +0 -1
- package/lib/classes/addModal.class.d.ts +0 -14
- package/lib/classes/chart.class.d.ts +0 -15
- package/lib/classes/currentDataClass.d.ts +0 -10
- package/lib/classes/enum.class.d.ts +0 -221
- package/lib/classes/excel.class.d.ts +0 -8
- package/lib/classes/form.class.d.ts +0 -193
- package/lib/classes/header.class.d.ts +0 -8
- package/lib/classes/helper.class.d.ts +0 -50
- package/lib/classes/lang.class.d.ts +0 -5
- package/lib/classes/login.class.d.ts +0 -21
- package/lib/classes/modal.class.d.ts +0 -19
- package/lib/classes/permission.class.d.ts +0 -35
- package/lib/classes/request.class.d.ts +0 -10
- package/lib/classes/safehtml.class.d.ts +0 -7
- package/lib/classes/safestyle.class.d.ts +0 -7
- package/lib/classes/sidebar.class.d.ts +0 -14
- package/lib/classes/steps.class.d.ts +0 -31
- package/lib/classes/string.class.d.ts +0 -249
- package/lib/classes/table.class.d.ts +0 -88
- package/lib/components/accordion/accordion.component.d.ts +0 -7
- package/lib/components/alert/alert.component.d.ts +0 -10
- package/lib/components/base.component.d.ts +0 -17
- package/lib/components/calendar/calendar.component.d.ts +0 -26
- package/lib/components/chart/chart.component.d.ts +0 -5
- package/lib/components/clock/clock.component.d.ts +0 -11
- package/lib/components/confirm/confirm.component.d.ts +0 -14
- package/lib/components/error/error.component.d.ts +0 -7
- package/lib/components/footer/footer.component.d.ts +0 -6
- package/lib/components/form/bank-card/form.bank-card.component.d.ts +0 -28
- package/lib/components/form/button/form.button.component.d.ts +0 -15
- package/lib/components/form/checkbox/form.checkbox.component.d.ts +0 -14
- package/lib/components/form/ckeditor/form.ckeditor.component.d.ts +0 -14
- package/lib/components/form/date/form.date.component.d.ts +0 -45
- package/lib/components/form/datetime/form.datetime.component.d.ts +0 -13
- package/lib/components/form/file/form.file.component.d.ts +0 -18
- package/lib/components/form/finger/form.finger.component.d.ts +0 -15
- package/lib/components/form/hidden/form.hidden.component.d.ts +0 -7
- package/lib/components/form/icon/form.icon.component.d.ts +0 -16
- package/lib/components/form/index/form.component.d.ts +0 -10
- package/lib/components/form/label/form.label.component.d.ts +0 -8
- package/lib/components/form/plaque/form.plaque.component.d.ts +0 -21
- package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +0 -38
- package/lib/components/form/radio/form.radio.component.d.ts +0 -13
- package/lib/components/form/select/form.select.component.d.ts +0 -45
- package/lib/components/form/select/item/form.select.item.component.d.ts +0 -12
- package/lib/components/form/slide/form.slide.component.d.ts +0 -13
- package/lib/components/form/star/form.star.component.d.ts +0 -13
- package/lib/components/form/table/form.table.component.d.ts +0 -9
- package/lib/components/form/tag/form.tag.component.d.ts +0 -16
- package/lib/components/form/textarea/form.textarea.component.d.ts +0 -13
- package/lib/components/form/textbox/form.textbox.component.d.ts +0 -20
- package/lib/components/form/time/form.time.component.d.ts +0 -25
- package/lib/components/form/toggle/form.toggle.component.d.ts +0 -13
- package/lib/components/form/tree/form.tree.component.d.ts +0 -21
- package/lib/components/form/tree/item/form.tree.item.component.d.ts +0 -19
- package/lib/components/form/uploader/form.uploader.component.d.ts +0 -21
- package/lib/components/form/vehicle/form.vehicle.component.d.ts +0 -18
- package/lib/components/form/vehicle/search/form.vehicle.search.component.d.ts +0 -22
- package/lib/components/header/header.component.d.ts +0 -10
- package/lib/components/header/sub/sub.header.component.d.ts +0 -3
- package/lib/components/layout/layout.component.d.ts +0 -7
- package/lib/components/loading/loading.component.d.ts +0 -5
- package/lib/components/login/login.component.d.ts +0 -15
- package/lib/components/modal/modal.component.d.ts +0 -9
- package/lib/components/notfound/notfound.component.d.ts +0 -8
- package/lib/components/notification/notification.component.d.ts +0 -3
- package/lib/components/sidebar/item/sidebar.item.component.d.ts +0 -14
- package/lib/components/sidebar/sidebar.component.d.ts +0 -22
- package/lib/components/steps/steps.component.d.ts +0 -16
- package/lib/components/table/loading/table.loading.component.d.ts +0 -5
- package/lib/components/table/pagination/table.pagination.component.d.ts +0 -15
- package/lib/components/table/row/table.row.component.d.ts +0 -44
- package/lib/components/table/table.component.d.ts +0 -43
- package/lib/components/tooltip/tooltip.component.d.ts +0 -5
- package/lib/ps-toolkit-ui.module.d.ts +0 -4
- package/lib/services/config.service.d.ts +0 -6
- package/lib/services/sidebar.service.d.ts +0 -9
- package/ps-toolkit-ui.d.ts +0 -20
- package/ps-toolkit-ui.metadata.json +0 -1
- package/public-api.d.ts +0 -60
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as $ from 'jquery';
|
|
3
|
-
export class FormButtonComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.changeIndex = new EventEmitter();
|
|
6
|
-
}
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
this.inp.focus = () => {
|
|
9
|
-
this.onFocusIn();
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
onFocusIn() {
|
|
13
|
-
$(this.inputBase.nativeElement).focus();
|
|
14
|
-
}
|
|
15
|
-
onClick(e) {
|
|
16
|
-
if (e.screenX && e.screenX !== 0 && e.screenY && e.screenY !== 0) {
|
|
17
|
-
this.mouseClick();
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
this.codeClick();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
mouseClick() {
|
|
24
|
-
this.onFocusIn();
|
|
25
|
-
if (this.inp.modal) {
|
|
26
|
-
this.inp.modal.show();
|
|
27
|
-
if (this.inp.modal.form) {
|
|
28
|
-
this.inp.modal.form.onSuccessBase = () => {
|
|
29
|
-
this.inp.modal.hide();
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
if (!this.inp.loading && this.inp.onClick != null) {
|
|
34
|
-
this.inp.onClick(this.inp);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
codeClick() {
|
|
38
|
-
this.onFocusIn();
|
|
39
|
-
}
|
|
40
|
-
onKeyDown(e) {
|
|
41
|
-
const code = e.keyCode || e.which;
|
|
42
|
-
if (code === 9) {
|
|
43
|
-
e.preventDefault();
|
|
44
|
-
this.changeIndex.emit(e.shiftKey ? 'ShiftTab' : 'Tab');
|
|
45
|
-
}
|
|
46
|
-
if (code === 13) {
|
|
47
|
-
e.preventDefault();
|
|
48
|
-
if (!this.inp.loading && this.inp.onClick != null) {
|
|
49
|
-
this.inp.onClick(this.inp);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
FormButtonComponent.decorators = [
|
|
55
|
-
{ type: Component, args: [{
|
|
56
|
-
selector: 'lib-form-button',
|
|
57
|
-
template: "<div #inputDiv [id]=\"inp.id + 'ButtonInput'\" [className]=\"'form-input-con button w-100' + (inp.name == null ? ' only-icon' : (inp.icon == null ? ' without-icon' : '')) + (inp.disabled || inp.loading ? ' disabled' : '') + ' ' + inp.class\" [style]=\"inp.style\">\r\n <div *ngIf=\"inp.url == null || inp.disabled\" class=\"form-input\" (click)=\"!inp.disabled && onClick($event)\">\r\n <input #inputBase type=\"button\" [disabled]=\"inp.disabled || inp.loading\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </div>\r\n <a *ngIf=\"inp.url != null && inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [routerLink]=\"inp.url\" [queryParams]=\"inp.queryParams != null ? inp.queryParams : null\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n <a *ngIf=\"inp.url != null && !inp.url.startsWith('/') && !inp.disabled\" [target]=\"inp.urlNewTab ? '_blank' : ''\" [href]=\"inp.url\" class=\"form-input\" (click)=\"onClick($event)\">\r\n <input #inputBase type=\"button\" class=\"input-base\" (keydown)=\"onKeyDown($event)\" (focusin)=\"onFocusIn()\">\r\n <div class=\"control\">\r\n <div *ngIf=\"inp.name != null\" class=\"text\" [innerHTML]=\"inp.loading ? (inp.loadingName ? inp.l('Loading', inp.loadingName) : inp.l('LoadingEmpty')) : inp.l(inp.name)\"></div>\r\n <i *ngIf=\"inp.icon != null\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </a>\r\n</div>\r\n",
|
|
58
|
-
styles: [".form-input-con.button{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;padding:0 15px;position:relative}.form-input-con.button .form-input{cursor:pointer;float:right;position:relative;width:100%}.form-input-con.button .form-input .input-base{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.button .form-input .control{background-color:var(--base);background-image:none;border:none;border-radius:var(--border-radius-base);color:#fff;display:block;float:left;height:35px;line-height:35px;overflow:hidden;padding:0 35px 0 20px;position:relative;text-align:center;white-space:nowrap;width:100%;z-index:2}.form-input-con.button.disabled .form-input{-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.button .form-input i.icon{color:#fff;cursor:pointer;float:right;font-size:12px;height:35px;line-height:35px;position:absolute;right:0;text-align:center;top:0;width:30px}.form-input-con.button.disabled .form-input .input-base,.form-input-con.button.disabled .form-input i.icon{cursor:default}.form-input-con.button:not(.disabled) .form-input .control:hover,.form-input-con.button:not(.disabled) .form-input .input-base:focus+.control{background-color:var(--base-dark)}.form-input-con.button.red .form-input .control{background-color:var(--red)}.form-input-con.button.red:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.red:not(.disabled) .form-input:hover .control{background-color:var(--red-dark)}.form-input-con.button.grey .form-input .control{background-color:var(--black-44);color:var(--black)}.form-input-con.button.grey .form-input i.icon{color:var(--black)}.form-input-con.button.grey:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.grey:not(.disabled) .form-input:hover .control{background-color:var(--black-light);color:var(--white)}.form-input-con.button.grey .form-input:hover i.icon{color:var(--white)}.form-input-con.button.blue .form-input .control{background-color:var(--blue)}.form-input-con.button.blue:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.blue:not(.disabled) .form-input:hover .control{background-color:var(--blue-dark)}.form-input-con.button.green .form-input .control{background-color:var(--green)}.form-input-con.button.green:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.green:not(.disabled) .form-input:hover .control{background-color:var(--green-dark)}.form-input-con.button.primary .form-input .control{background-color:var(--primary)}.form-input-con.button.primary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.primary:not(.disabled) .form-input:hover .control{background-color:var(--primary-dark)}.form-input-con.button.secondary .form-input .control{background-color:var(--secondary)}.form-input-con.button.secondary:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.secondary:not(.disabled) .form-input:hover .control{background-color:var(--secondary-dark)}.form-input-con.button.yellow .form-input .control{background-color:var(--yellow)}.form-input-con.button.yellow:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.yellow:not(.disabled) .form-input:hover .control{background-color:var(--yellow-dark)}.form-input-con.button.white .form-input .control{background-color:var(--white);border:var(--border-input);color:var(--black)}.form-input-con.button.white:not(.disabled) .form-input .input-base:focus+.control,.form-input-con.button.white:not(.disabled) .form-input:hover .control{background-color:var(--white-light)}.form-input-con.button.white .form-input i.icon{color:var(--black)}.form-input-con.button.transparent .form-input .control{background-color:unset;border:1px solid var(--base);color:var(--base);line-height:33px}.form-input-con.button.transparent .form-input i.icon{color:var(--base);line-height:33px}.form-input-con.button.transparent:not(.disabled) .form-input .control:hover,.form-input-con.button.transparent:not(.disabled) .form-input .input-base:focus+.control{background-color:unset}.form-input-con.button.transparent.white .form-input .control{background-color:unset;border:1px solid var(--white);color:var(--white)}.form-input-con.button.without-border .form-input .control{border:none!important}.form-input-con.button.transparent .form-input i.icon{color:var(--white)}.form-input-con.button.left-icon .form-input .control{float:right;padding:0 20px 0 35px}.form-input-con.button.left-icon .form-input i.icon{left:0;right:unset}.form-input-con.button.h-45{font-size:13px;height:45px}.form-input-con.button.h-45 .form-input .control,.form-input-con.button.h-45 .form-input i.icon{height:45px;line-height:45px}.form-input-con.button.h-45 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-55{font-size:14px;height:55px}.form-input-con.button.h-55 .form-input .control,.form-input-con.button.h-55 .form-input i.icon{height:55px;line-height:55px}.form-input-con.button.h-55 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-50{font-size:14px;height:50px}.form-input-con.button.h-50 .form-input .control,.form-input-con.button.h-50 .form-input i.icon{height:50px;line-height:50px}.form-input-con.button.h-50 .form-input i.icon{font-size:16px;width:35px}.form-input-con.button.h-40{font-size:13px;height:40px}.form-input-con.button.h-40 .form-input .control,.form-input-con.button.h-40 .form-input i.icon{height:40px;line-height:40px}.form-input-con.button.h-40 .form-input i.icon{font-size:17px;width:35px}.form-input-con.button.h-30{font-size:12px;height:30px}.form-input-con.button.h-30 .form-input .control,.form-input-con.button.h-30 .form-input i.icon{height:30px;line-height:30px}.form-input-con.button.h-30 .form-input i.icon{width:30px}.form-input-con.button.h-25{font-size:12px;height:25px}.form-input-con.button.h-25 .form-input .control,.form-input-con.button.h-25 .form-input i.icon{height:25px;line-height:25px}.form-input-con.button.white.h-25 .form-input .control,.form-input-con.button.white.h-25 .form-input i.icon{line-height:23px}.form-input-con.button.h-25 .form-input i.icon{width:25px}.form-input-con.button.h-20{font-size:11px;height:20px}.form-input-con.button.h-20 .form-input .control,.form-input-con.button.h-20 .form-input i.icon{height:20px;line-height:20px}.form-input-con.button.h-20 .form-input i.icon{width:20px}.form-input-con.button.without-icon .form-input .control{min-width:25px;padding:0 8px;width:100%}::ng-deep .form-input-con.button.h-25 .form-input .dot-spinner>div{height:3px;margin-right:2px;width:3px}.form-input-con.button.h-25.only-icon{min-width:55px}.form-input-con.button.h-25.only-icon .form-input .control{min-width:25px;padding:0}.form-input-con.button.h-30.only-icon{min-width:60px}.form-input-con.button.h-30.only-icon .form-input .control{min-width:30px;padding:0}.form-input-con.button.only-icon{min-width:65px}.form-input-con.button.only-icon .form-input .control{min-width:35px;padding:0}.form-input-con.button.only-icon .form-input i.icon{width:100%}.form-input-con.button.only-icon .form-input .text{display:none}.save-form-btn{float:left!important;width:40%!important}@media (max-width:499.98px){.save-form-btn{width:60%!important}}@media (min-width:500px) and (max-width:599.98px){.save-form-btn{width:50%!important}}::ng-deep .modal .sm .save-form-btn{width:70%!important}"]
|
|
59
|
-
},] }
|
|
60
|
-
];
|
|
61
|
-
FormButtonComponent.ctorParameters = () => [];
|
|
62
|
-
FormButtonComponent.propDecorators = {
|
|
63
|
-
inp: [{ type: Input }],
|
|
64
|
-
changeIndex: [{ type: Output }],
|
|
65
|
-
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
66
|
-
inputBase: [{ type: ViewChild, args: ['inputBase',] }]
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkQ6L1BzVG9vbGtpdC9VSS9wcm9qZWN0cy9wcy10b29sa2l0LXVpL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2Zvcm0vYnV0dG9uL2Zvcm0uYnV0dG9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQVE1QixNQUFNLE9BQU8sbUJBQW1CO0lBTzlCO1FBSEEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBSXpDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsU0FBUztRQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztRQUNQLElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjthQUFJO1lBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBQztnQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUU7b0JBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN4QixDQUFDLENBQUM7YUFDSDtTQUNGO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBQztZQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQUM7UUFDVCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ2QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDZixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBQztnQkFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQzVCO1NBQ0Y7SUFDSCxDQUFDOzs7WUEzREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGsyRUFBMkM7O2FBRTVDOzs7O2tCQUVFLEtBQUs7MEJBRUwsTUFBTTt1QkFFTixTQUFTLFNBQUMsVUFBVTt3QkFDcEIsU0FBUyxTQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1idXR0b24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5idXR0b24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgICB9O1xyXG4gIH1cclxuICBvbkZvY3VzSW4oKTogdm9pZHtcclxuICAgICQodGhpcy5pbnB1dEJhc2UubmF0aXZlRWxlbWVudCkuZm9jdXMoKTtcclxuICB9XHJcbiAgb25DbGljayhlKTogdm9pZHtcclxuICAgIGlmIChlLnNjcmVlblggJiYgZS5zY3JlZW5YICE9PSAwICYmIGUuc2NyZWVuWSAmJiBlLnNjcmVlblkgIT09IDApIHtcclxuICAgICAgdGhpcy5tb3VzZUNsaWNrKCk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5jb2RlQ2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcbiAgbW91c2VDbGljaygpOiB2b2lke1xyXG4gICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIGlmICh0aGlzLmlucC5tb2RhbCl7XHJcbiAgICAgIHRoaXMuaW5wLm1vZGFsLnNob3coKTtcclxuICAgICAgaWYgKHRoaXMuaW5wLm1vZGFsLmZvcm0pe1xyXG4gICAgICAgIHRoaXMuaW5wLm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5wLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaW5wLmxvYWRpbmcgJiYgdGhpcy5pbnAub25DbGljayAhPSBudWxsKXtcclxuICAgICAgdGhpcy5pbnAub25DbGljayh0aGlzLmlucCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvZGVDbGljaygpOiB2b2lke1xyXG4gICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICB9XHJcbiAgb25LZXlEb3duKGUpOiB2b2lke1xyXG4gICAgY29uc3QgY29kZSA9IGUua2V5Q29kZSB8fCBlLndoaWNoO1xyXG4gICAgaWYgKGNvZGUgPT09IDkpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLmNoYW5nZUluZGV4LmVtaXQoZS5zaGlmdEtleSA/ICdTaGlmdFRhYicgOiAnVGFiJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29kZSA9PT0gMTMpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoIXRoaXMuaW5wLmxvYWRpbmcgJiYgdGhpcy5pbnAub25DbGljayAhPSBudWxsKXtcclxuICAgICAgICB0aGlzLmlucC5vbkNsaWNrKHRoaXMuaW5wKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { InputError } from '../../../classes/enum.class';
|
|
3
|
-
export class FormCheckboxComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.changeIndex = new EventEmitter();
|
|
6
|
-
}
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
this.inp.clear = () => {
|
|
9
|
-
this.inp.error = null;
|
|
10
|
-
this.inp.value = this.inp.default === true;
|
|
11
|
-
};
|
|
12
|
-
this.inp.isValid = () => {
|
|
13
|
-
this.inp.error = null;
|
|
14
|
-
if (this.inp.required && !this.inp.value) {
|
|
15
|
-
this.inp.error = InputError.Required;
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
return true;
|
|
19
|
-
};
|
|
20
|
-
this.inp.data = () => {
|
|
21
|
-
return this.inp.value;
|
|
22
|
-
};
|
|
23
|
-
this.inp.setValue = (v) => {
|
|
24
|
-
this.inp.value = v;
|
|
25
|
-
};
|
|
26
|
-
this.inp.focus = () => {
|
|
27
|
-
this.onFocusIn();
|
|
28
|
-
};
|
|
29
|
-
this.inp.setValue(this.inp.value === true, false);
|
|
30
|
-
}
|
|
31
|
-
onFocusIn() {
|
|
32
|
-
this.inp.error = null;
|
|
33
|
-
this.inputBase.nativeElement.focus();
|
|
34
|
-
}
|
|
35
|
-
onClick() {
|
|
36
|
-
this.inputBase.nativeElement.click();
|
|
37
|
-
}
|
|
38
|
-
onChange() {
|
|
39
|
-
if (this.inp.onChange) {
|
|
40
|
-
setTimeout(() => {
|
|
41
|
-
this.inp.onChange(this.inp);
|
|
42
|
-
}, 1);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
onKeyDown(e) {
|
|
46
|
-
const code = e.keyCode || e.which;
|
|
47
|
-
if (code === 9 || code === 13) {
|
|
48
|
-
e.preventDefault();
|
|
49
|
-
this.changeIndex.emit(code === 9 ? e.shiftKey ? 'ShiftTab' : 'Tab' : e.shiftKey ? 'ShiftEnter' : 'Enter');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
FormCheckboxComponent.decorators = [
|
|
54
|
-
{ type: Component, args: [{
|
|
55
|
-
selector: 'lib-form-checkbox',
|
|
56
|
-
template: "<div #inputDiv [id]=\"inp.id + 'CheckboxInput'\" [style]=\"inp.style\" [className]=\"'form-input-con checkbox w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '') + (!inp.displayLabel ? ' without-label' : '') + ' ' + inp.class\" data-tooltip-location=\"bottom\" [attr.data-tooltip]=\"inp.tooltip ? inp.l(inp.tooltip) : null\">\r\n <div class=\"form-input\" (click)=\"onFocusIn()\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\"></div>\r\n <input (keydown)=\"onKeyDown($event)\" (change)=\"onChange()\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.value\" #inputBase type=\"checkbox\" [name]=\"inp.name\" class=\"check\">\r\n <div (click)=\"onClick()\" class=\"control\">{{inp.l(inp.name)}}</div>\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</div>\r\n",
|
|
57
|
-
styles: [".form-input-con.checkbox{padding:0 15px;position:relative}.form-input-con.checkbox .form-input{float:right;position:relative;width:100%}.form-input-con.checkbox .form-input .label{cursor:default;direction:rtl;font-size:12px;height:20px;margin-bottom:3px;padding:0 10px;text-align:right}.form-input-con.checkbox .form-input .control,.form-input-con.checkbox .form-input .label{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;float:right;line-height:20px;width:100%}.form-input-con.checkbox .form-input .control{align-items:center;border:var(--border-input);border-radius:var(--border-radius-base);cursor:pointer;display:flex;font-size:11px;justify-content:center;min-height:35px;padding:5px 35px;position:relative;text-align:center;z-index:2}.form-input-con.checkbox.without-border .form-input .control{border:unset}.form-input-con.checkbox .form-input .control:after{content:\"\\f0c8\";font-family:Font Awesome\\ 5 Pro;font-size:17px;font-weight:400;height:35px;line-height:32px;position:absolute;right:0;top:0;width:35px}.form-input-con.checkbox.ltr .form-input .control:after{left:0}.form-input-con.checkbox:not(.without-border) .form-input .check:focus+.control,.form-input-con.checkbox:not(.without-border) .form-input .control:hover{border:var(--border-input-dark);outline:none}.form-input-con.checkbox.error .form-input .control{border:var(--border-input-red)}.form-input-con.checkbox.error .form-input .control,.form-input-con.checkbox.error .form-input span.icon{color:var(--red)}.form-input-con.checkbox .form-input .check{cursor:pointer;height:0;opacity:0;position:absolute;right:50%;top:50%;width:0;z-index:1}.form-input-con.checkbox .form-input .check:checked+.control:after{animation:pop .18s ease-in;color:var(--green);content:\"\\f14a\";font-weight:900}.form-input-con.checkbox .form-input i.icon{color:var(--primary);cursor:pointer;font-size:13px;height:35px;left:0;line-height:35px;position:absolute;text-align:center;top:24px;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.checkbox.ltr .form-input i.icon{right:0}.form-input-con.checkbox.without-label .form-input i.icon{top:0}.form-input-con.checkbox.without-icon .form-input .control{padding:0 35px 0 0}.form-input-con.checkbox.without-icon.ltr .form-input .control{padding:0 0 0 35px}.form-input-con.checkbox.h-50 .form-input .control{font-size:14px;line-height:48px;min-height:50px;padding:0 40px}.form-input-con.checkbox.h-50 .form-input .control:after{font-size:26px;height:50px;line-height:48px;width:50px}.form-input-con.checkbox.h-50 .form-input i.icon{font-size:14px;height:50px;line-height:50px;width:50px}.form-input-con.checkbox.h-50.without-icon .form-input .control{padding:0 50px 0 0}.form-input-con.checkbox.h-50.without-icon.ltr .form-input .control{padding:0 0 0 50px}.form-input-con.checkbox.h-40 .form-input .control{font-size:13px;line-height:19px;min-height:40px;padding:0 40px}.form-input-con.checkbox.h-40 .form-input .control:after{font-size:20px;height:40px;line-height:40px;width:40px}.form-input-con.checkbox.h-40 .form-input i.icon{font-size:13px;height:40px;line-height:40px;width:40px}.form-input-con.checkbox.h-40.without-icon .form-input .control{padding:0 40px 0 0}.form-input-con.checkbox.h-40.without-icon.ltr .form-input .control{padding:0 0 0 40px}.form-input-con.checkbox.h-30 .form-input .control{font-size:10px;line-height:28px;min-height:30px;padding:0 40px}.form-input-con.checkbox.h-30 .form-input .control:after{font-size:14px;height:30px;line-height:28px;width:30px}.form-input-con.checkbox.h-30 .form-input i.icon{font-size:11px;height:30px;line-height:30px;width:30px}.form-input-con.checkbox.h-30.without-icon .form-input .control{padding:0 30px 0 0}.form-input-con.checkbox.h-30.without-icon.ltr .form-input .control{padding:0 0 0 30px}.form-input-con.checkbox.h-25 .form-input .control{font-size:10px;line-height:23px;min-height:25px;padding:0 25px}.form-input-con.checkbox.h-25 .form-input .control:after{font-size:18px;height:25px;line-height:25px;width:25px}.form-input-con.checkbox.h-25 .form-input i.icon{font-size:11px;height:25px;line-height:25px;width:25px}.form-input-con.checkbox.h-25.without-icon .form-input .control{padding:0 25px 0 0;width:0}.form-input-con.checkbox.h-25.without-icon.ltr .form-input .control{padding:0 0 0 25px}"]
|
|
58
|
-
},] }
|
|
59
|
-
];
|
|
60
|
-
FormCheckboxComponent.ctorParameters = () => [];
|
|
61
|
-
FormCheckboxComponent.propDecorators = {
|
|
62
|
-
inp: [{ type: Input }],
|
|
63
|
-
changeIndex: [{ type: Output }],
|
|
64
|
-
inputBase: [{ type: ViewChild, args: ['inputBase',] }],
|
|
65
|
-
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }]
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC9mb3JtLmNoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT3ZELE1BQU0sT0FBTyxxQkFBcUI7SUFPaEM7UUFIQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFJekMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQztRQUM3QyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztnQkFDckMsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxFQUFFO1lBQ25CLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELFNBQVM7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUM7WUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBQ0QsU0FBUyxDQUFDLENBQUM7UUFDVCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNHO0lBQ0gsQ0FBQzs7O1lBM0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3Qix5OEJBQTZDOzthQUU5Qzs7OztrQkFFRSxLQUFLOzBCQUVMLE1BQU07d0JBRU4sU0FBUyxTQUFDLFdBQVc7dUJBQ3JCLFNBQVMsU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtJbnB1dEVycm9yfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudW0uY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY2hlY2tib3guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5jbGVhciA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHRoaXMuaW5wLmRlZmF1bHQgPT09IHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuaXNWYWxpZCA9ICgpID0+IHtcclxuICAgICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbnAudmFsdWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICB0aGlzLmlucC52YWx1ZSA9IHY7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZm9jdXMgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMub25Gb2N1c0luKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAudmFsdWUgPT09IHRydWUsIGZhbHNlKTtcclxuICB9XHJcbiAgb25Gb2N1c0luKCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uQ2xpY2soKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcbiAgb25DaGFuZ2UoKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wKTtcclxuICAgICAgfSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDEzKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGNvZGUgPT09IDkgPyBlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInIDogZS5zaGlmdEtleSA/ICdTaGlmdEVudGVyJyA6ICdFbnRlcicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { InputError } from '../../../classes/enum.class';
|
|
3
|
-
import { HelperClass } from '../../../classes/helper.class';
|
|
4
|
-
export class FormCkeditorComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.changeIndex = new EventEmitter();
|
|
7
|
-
this.config = {
|
|
8
|
-
toolbar: [
|
|
9
|
-
['Bold'],
|
|
10
|
-
['Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo'],
|
|
11
|
-
['NumberedList', 'BulletedList'],
|
|
12
|
-
'/',
|
|
13
|
-
['Outdent', 'Indent'],
|
|
14
|
-
['Link', 'Unlink'],
|
|
15
|
-
['Image', 'Table', 'HorizontalRule', 'SpecialChar', 'PageBreak']
|
|
16
|
-
]
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
ngOnInit() {
|
|
20
|
-
this.inp.setValue = (v) => {
|
|
21
|
-
this.inp.value = v;
|
|
22
|
-
};
|
|
23
|
-
this.inp.isValid = () => {
|
|
24
|
-
const vlu = this.inp.data();
|
|
25
|
-
this.inp.error = null;
|
|
26
|
-
if (this.inp.required && !this.inp.value) {
|
|
27
|
-
this.inp.error = InputError.Required;
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
if (!this.inp.required && !this.inp.value) {
|
|
31
|
-
return true;
|
|
32
|
-
}
|
|
33
|
-
if (this.inp.required && this.inp.minLength !== -1 &&
|
|
34
|
-
this.inp.minLength === this.inp.maxLength &&
|
|
35
|
-
this.inp.value.length !== this.inp.minLength) {
|
|
36
|
-
this.inp.error = InputError.Length;
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
if (this.inp.required &&
|
|
40
|
-
this.inp.minLength !== -1 &&
|
|
41
|
-
this.inp.value.length < this.inp.minLength) {
|
|
42
|
-
this.inp.error = InputError.MinLength;
|
|
43
|
-
return false;
|
|
44
|
-
}
|
|
45
|
-
if (this.inp.required &&
|
|
46
|
-
this.inp.maxLength !== -1 &&
|
|
47
|
-
this.inp.value.length > this.inp.maxLength) {
|
|
48
|
-
this.inp.error = InputError.MaxLength;
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
return true;
|
|
52
|
-
};
|
|
53
|
-
this.inp.clear = () => {
|
|
54
|
-
this.inp.error = null;
|
|
55
|
-
this.inp.value = this.inp.default;
|
|
56
|
-
};
|
|
57
|
-
this.inp.data = () => {
|
|
58
|
-
return HelperClass.fixChars(this.inp.value);
|
|
59
|
-
};
|
|
60
|
-
this.inp.focus = () => {
|
|
61
|
-
this.onFocusIn();
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
onFocusIn() {
|
|
65
|
-
// @ts-ignore
|
|
66
|
-
this.inputBase.instance.focus();
|
|
67
|
-
}
|
|
68
|
-
onKeyDown(e) {
|
|
69
|
-
this.inp.error = null;
|
|
70
|
-
const code = e.keyCode || e.which;
|
|
71
|
-
if (code === 9) {
|
|
72
|
-
e.preventDefault();
|
|
73
|
-
this.changeIndex.emit(e.shiftKey ? 'ShiftTab' : 'Tab');
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
FormCkeditorComponent.decorators = [
|
|
78
|
-
{ type: Component, args: [{
|
|
79
|
-
selector: 'lib-form-ckeditor',
|
|
80
|
-
template: "<div #inputDiv [id]=\"inp.id + 'CkeditorInput'\" [className]=\"'form-input-con ckeditor w-100' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + ' ' + 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=\"w-100 p-r rtl\">\r\n <ckeditor [config]=\"{ extraPlugins: 'divarea', contentsLangDirection: 'rtl' }\" #inputBase [(ngModel)]=\"inp.value\"></ckeditor>\r\n <i *ngIf=\"inp.icon != null || inp.loading\" #inputIcon [className]=\"(inp.loading ? 'fad fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
81
|
-
styles: [".form-input-con.ckeditor{padding:0 15px;position:relative}.form-input-con.ckeditor .form-input{float:right;position:relative;width:100%}.form-input-con.ckeditor .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.ckeditor.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.ckeditor .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.ckeditor .form-input .control{background-image:none;border:none;border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);display:block;font-size:11px;height:80px;margin:0;padding:10px 35px;resize:none;text-align:center;width:100%}.form-input-con.ckeditor .form-input .control:focus,.form-input-con.ckeditor .form-input .control:hover{border:var(--border-input-dark);outline:none}.form-input-con.ckeditor .form-input i.icon{color:var(--primary);cursor:text;left:0;z-index:1}.form-input-con.ckeditor .form-input i.clear-icon,.form-input-con.ckeditor .form-input i.icon{font-size:14px;height:35px;line-height:35px;position:absolute;text-align:center;top:0;transition:all .35s ease-in-out;width:35px}.form-input-con.ckeditor .form-input i.clear-icon{color:var(--red);cursor:pointer;right:0;z-index:3}.form-input-con.ckeditor.error .form-input .control{border:var(--border-input-red)}.form-input-con.ckeditor.error .form-input .control:focus,.form-input-con.ckeditor.error .form-input .control:hover{border:var(--border-input-red-dark)}.form-input-con.ckeditor.error .form-input .control,.form-input-con.ckeditor.error .form-input i.icon{color:var(--red-light)}.form-input-con.ckeditor.h-50 .form-input .control{height:50px}::ng-deep .form-input-con.ckeditor .form-input .cke_editor_editor1{border:var(--border-input);border-radius:var(--border-radius-base);color:var(--black);direction:rtl!important;min-height:100px;outline:none}::ng-deep .form-input-con.ckeditor .form-input .cke_editor_editor1:focus,::ng-deep .form-input-con.ckeditor .form-input .cke_editor_editor1:hover{border:var(--border-input-dark)}"]
|
|
82
|
-
},] }
|
|
83
|
-
];
|
|
84
|
-
FormCkeditorComponent.ctorParameters = () => [];
|
|
85
|
-
FormCkeditorComponent.propDecorators = {
|
|
86
|
-
inp: [{ type: Input }],
|
|
87
|
-
changeIndex: [{ type: Output }],
|
|
88
|
-
inputBase: [{ type: ViewChild, args: ['inputBase',] }]
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5ja2VkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9ja2VkaXRvci9mb3JtLmNrZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBTzFELE1BQU0sT0FBTyxxQkFBcUI7SUFpQmhDO1FBYkEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXpDLFdBQU0sR0FBRztZQUNQLE9BQU8sRUFBRTtnQkFDUCxDQUFFLE1BQU0sQ0FBRTtnQkFDVixDQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUU7Z0JBQzdFLENBQUUsY0FBYyxFQUFFLGNBQWMsQ0FBQztnQkFDakMsR0FBRztnQkFDSCxDQUFFLFNBQVMsRUFBRSxRQUFRLENBQUU7Z0JBQ3ZCLENBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBRTtnQkFDcEIsQ0FBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUU7YUFDbkU7U0FDRixDQUFDO0lBRUYsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7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SSxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDZCxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7OztZQWpGRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsdXdCQUE2Qzs7YUFFOUM7Ozs7a0JBRUUsS0FBSzswQkFFTCxNQUFNO3dCQUVOLFNBQVMsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1ja2VkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY2tlZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0uY2tlZGl0b3IuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ2tlZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgY29uZmlnID0ge1xyXG4gICAgdG9vbGJhcjogW1xyXG4gICAgICBbICdCb2xkJyBdLFxyXG4gICAgICBbICdDdXQnLCAnQ29weScsICdQYXN0ZScsICdQYXN0ZVRleHQnLCAnUGFzdGVGcm9tV29yZCcsICctJywgJ1VuZG8nLCAnUmVkbycgXSxcclxuICAgICAgWyAnTnVtYmVyZWRMaXN0JywgJ0J1bGxldGVkTGlzdCddLFxyXG4gICAgICAnLycsXHJcbiAgICAgIFsgJ091dGRlbnQnLCAnSW5kZW50JyBdLFxyXG4gICAgICBbICdMaW5rJywgJ1VubGluaycgXSxcclxuICAgICAgWyAnSW1hZ2UnLCAnVGFibGUnLCAnSG9yaXpvbnRhbFJ1bGUnLCAnU3BlY2lhbENoYXInLCAnUGFnZUJyZWFrJyBdXHJcbiAgICBdXHJcbiAgfTtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5zZXRWYWx1ZSA9ICh2KSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdjtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICBjb25zdCB2bHUgPSB0aGlzLmlucC5kYXRhKCk7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLmlucC5yZXF1aXJlZCAmJiAhdGhpcy5pbnAudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy5pbnAubWluTGVuZ3RoICE9PSAtMSAmJlxyXG4gICAgICAgIHRoaXMuaW5wLm1pbkxlbmd0aCA9PT0gdGhpcy5pbnAubWF4TGVuZ3RoICYmXHJcbiAgICAgICAgdGhpcy5pbnAudmFsdWUubGVuZ3RoICE9PSB0aGlzLmlucC5taW5MZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuTGVuZ3RoO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiZcclxuICAgICAgICB0aGlzLmlucC5taW5MZW5ndGggIT09IC0xICYmXHJcbiAgICAgICAgdGhpcy5pbnAudmFsdWUubGVuZ3RoIDwgdGhpcy5pbnAubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLk1pbkxlbmd0aDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmXHJcbiAgICAgICAgdGhpcy5pbnAubWF4TGVuZ3RoICE9PSAtMSAmJlxyXG4gICAgICAgIHRoaXMuaW5wLnZhbHVlLmxlbmd0aCA+IHRoaXMuaW5wLm1heExlbmd0aCkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5NYXhMZW5ndGg7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIHRoaXMuaW5wLnZhbHVlID0gdGhpcy5pbnAuZGVmYXVsdDtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5kYXRhID0gKCkgPT4ge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZml4Q2hhcnModGhpcy5pbnAudmFsdWUpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25Gb2N1c0luKCk6IHZvaWR7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmlucHV0QmFzZS5pbnN0YW5jZS5mb2N1cygpO1xyXG4gIH1cclxuICBvbktleURvd24oZSk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCBjb2RlID0gZS5rZXlDb2RlIHx8IGUud2hpY2g7XHJcbiAgICBpZiAoY29kZSA9PT0gOSkge1xyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdChlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|