ps-toolkit-ui 0.0.210 → 0.0.211
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/karma.conf.js +32 -0
- package/ng-package.json +16 -0
- package/package.json +19 -22
- package/src/lib/classes/chart.class.ts +140 -0
- package/src/lib/classes/enum.class.ts +193 -0
- package/src/lib/classes/excel.class.ts +46 -0
- package/src/lib/classes/form.class.ts +528 -0
- package/src/lib/classes/helper.class.ts +283 -0
- package/src/lib/classes/lang.class.ts +32 -0
- package/src/lib/classes/login.class.ts +27 -0
- package/src/lib/classes/modal.class.ts +59 -0
- package/src/lib/classes/permission.class.ts +55 -0
- package/src/lib/classes/request.class.ts +255 -0
- package/src/lib/classes/safestyle.class.ts +4 -0
- package/src/lib/classes/sidebar.class.ts +20 -0
- package/src/lib/classes/steps.class.ts +19 -0
- package/src/lib/classes/string.class.ts +219 -0
- package/src/lib/classes/table.class.ts +228 -0
- package/src/lib/components/accordion/accordion.component.css +116 -0
- package/src/lib/components/accordion/accordion.component.html +19 -0
- package/src/lib/components/accordion/accordion.component.ts +41 -0
- package/src/lib/components/alert/alert.component.css +112 -0
- package/src/lib/components/alert/alert.component.html +1 -0
- package/src/lib/components/alert/alert.component.ts +35 -0
- package/src/lib/components/base.component.ts +38 -0
- package/src/lib/components/calendar/calendar.component.css +206 -0
- package/src/lib/components/calendar/calendar.component.html +36 -0
- package/src/lib/components/calendar/calendar.component.ts +99 -0
- package/src/lib/components/chart/chart.component.css +24 -0
- package/src/lib/components/chart/chart.component.html +6 -0
- package/src/lib/components/chart/chart.component.ts +14 -0
- package/src/lib/components/clock/clock.component.css +141 -0
- package/src/lib/components/clock/clock.component.html +10 -0
- package/src/lib/components/clock/clock.component.ts +37 -0
- package/src/lib/components/confirm/confirm.component.css +112 -0
- package/src/lib/components/confirm/confirm.component.html +1 -0
- package/src/lib/components/confirm/confirm.component.ts +47 -0
- package/src/lib/components/footer/footer.component.css +46 -0
- package/src/lib/components/footer/footer.component.html +9 -0
- package/src/lib/components/footer/footer.component.ts +18 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.css +115 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.html +13 -0
- package/src/lib/components/form/bank-card/form.bank-card.component.ts +144 -0
- package/src/lib/components/form/button/form.button.component.css +222 -0
- package/src/lib/components/form/button/form.button.component.html +16 -0
- package/src/lib/components/form/button/form.button.component.ts +65 -0
- package/src/lib/components/form/car/form.car.component.css +287 -0
- package/src/lib/components/form/car/form.car.component.html +11 -0
- package/src/lib/components/form/car/form.car.component.ts +82 -0
- package/src/lib/components/form/car/search/form.car.search.component.css +287 -0
- package/src/lib/components/form/car/search/form.car.search.component.html +15 -0
- package/src/lib/components/form/car/search/form.car.search.component.ts +170 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.css +128 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.html +8 -0
- package/src/lib/components/form/checkbox/form.checkbox.component.ts +64 -0
- package/src/lib/components/form/date/form.date.component.css +310 -0
- package/src/lib/components/form/date/form.date.component.html +46 -0
- package/src/lib/components/form/date/form.date.component.ts +247 -0
- package/src/lib/components/form/datetime/form.datetime.component.css +157 -0
- package/src/lib/components/form/datetime/form.datetime.component.html +11 -0
- package/src/lib/components/form/datetime/form.datetime.component.ts +98 -0
- package/src/lib/components/form/file/form.file.component.css +151 -0
- package/src/lib/components/form/file/form.file.component.html +12 -0
- package/src/lib/components/form/file/form.file.component.ts +130 -0
- package/src/lib/components/form/finger/form.finger.component.css +215 -0
- package/src/lib/components/form/finger/form.finger.component.html +59 -0
- package/src/lib/components/form/finger/form.finger.component.ts +131 -0
- package/src/lib/components/form/hidden/form.hidden.component.css +0 -0
- package/src/lib/components/form/hidden/form.hidden.component.html +0 -0
- package/src/lib/components/form/hidden/form.hidden.component.ts +29 -0
- package/src/lib/components/form/icon/form.icon.component.css +108 -0
- package/src/lib/components/form/icon/form.icon.component.html +14 -0
- package/src/lib/components/form/icon/form.icon.component.ts +73 -0
- package/src/lib/components/form/index/form.component.css +89 -0
- package/src/lib/components/form/index/form.component.html +35 -0
- package/src/lib/components/form/index/form.component.ts +45 -0
- package/src/lib/components/form/label/form.label.component.css +45 -0
- package/src/lib/components/form/label/form.label.component.html +2 -0
- package/src/lib/components/form/label/form.label.component.ts +30 -0
- package/src/lib/components/form/plaque/form.plaque.component.css +76 -0
- package/src/lib/components/form/plaque/form.plaque.component.html +10 -0
- package/src/lib/components/form/plaque/form.plaque.component.ts +178 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.css +167 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.html +19 -0
- package/src/lib/components/form/plaque/select/form.plaque.select.component.ts +385 -0
- package/src/lib/components/form/radio/form.radio.component.css +158 -0
- package/src/lib/components/form/radio/form.radio.component.html +16 -0
- package/src/lib/components/form/radio/form.radio.component.ts +78 -0
- package/src/lib/components/form/select/form.select.component.css +326 -0
- package/src/lib/components/form/select/form.select.component.html +16 -0
- package/src/lib/components/form/select/form.select.component.ts +358 -0
- package/src/lib/components/form/select/item/form.select.item.component.css +59 -0
- package/src/lib/components/form/select/item/form.select.item.component.html +10 -0
- package/src/lib/components/form/select/item/form.select.item.component.ts +40 -0
- package/src/lib/components/form/table/form.table.component.css +50 -0
- package/src/lib/components/form/table/form.table.component.html +8 -0
- package/src/lib/components/form/table/form.table.component.ts +94 -0
- package/src/lib/components/form/textarea/form.textarea.component.css +109 -0
- package/src/lib/components/form/textarea/form.textarea.component.html +10 -0
- package/src/lib/components/form/textarea/form.textarea.component.ts +76 -0
- package/src/lib/components/form/textbox/form.textbox.component.css +296 -0
- package/src/lib/components/form/textbox/form.textbox.component.html +13 -0
- package/src/lib/components/form/textbox/form.textbox.component.ts +185 -0
- package/src/lib/components/form/time/form.time.component.css +205 -0
- package/src/lib/components/form/time/form.time.component.html +22 -0
- package/src/lib/components/form/time/form.time.component.ts +139 -0
- package/src/lib/components/form/tree/form.tree.component.css +109 -0
- package/src/lib/components/form/tree/form.tree.component.html +11 -0
- package/src/lib/components/form/tree/form.tree.component.ts +98 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.css +142 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.html +9 -0
- package/src/lib/components/form/tree/item/form.tree.item.component.ts +49 -0
- package/src/lib/components/header/header.component.css +57 -0
- package/src/lib/components/header/header.component.html +5 -0
- package/src/lib/components/header/header.component.ts +28 -0
- package/src/lib/components/header/sub/sub.header.component.css +62 -0
- package/src/lib/components/header/sub/sub.header.component.html +8 -0
- package/src/lib/components/header/sub/sub.header.component.ts +11 -0
- package/src/lib/components/layout/layout.component.css +300 -0
- package/src/lib/components/layout/layout.component.html +20 -0
- package/src/lib/components/layout/layout.component.ts +21 -0
- package/src/lib/components/loading/loading.component.css +39 -0
- package/src/lib/components/loading/loading.component.html +8 -0
- package/src/lib/components/loading/loading.component.ts +18 -0
- package/src/lib/components/login/login.component.css +389 -0
- package/src/lib/components/login/login.component.html +27 -0
- package/src/lib/components/login/login.component.ts +145 -0
- package/src/lib/components/modal/modal.component.css +60 -0
- package/src/lib/components/modal/modal.component.html +12 -0
- package/src/lib/components/modal/modal.component.ts +23 -0
- package/src/lib/components/notfound/notfound.component.css +134 -0
- package/src/lib/components/notfound/notfound.component.html +10 -0
- package/src/lib/components/notfound/notfound.component.ts +25 -0
- package/src/lib/components/notification/notification.component.css +45 -0
- package/src/lib/components/notification/notification.component.html +2 -0
- package/src/lib/components/notification/notification.component.ts +11 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.css +236 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.html +16 -0
- package/src/lib/components/sidebar/item/sidebar.item.component.ts +54 -0
- package/src/lib/components/sidebar/sidebar.component.css +42 -0
- package/src/lib/components/sidebar/sidebar.component.html +10 -0
- package/src/lib/components/sidebar/sidebar.component.ts +60 -0
- package/src/lib/components/steps/steps.component.css +320 -0
- package/src/lib/components/steps/steps.component.html +18 -0
- package/src/lib/components/steps/steps.component.ts +44 -0
- package/src/lib/components/table/loading/table.loading.component.css +29 -0
- package/src/lib/components/table/loading/table.loading.component.html +9 -0
- package/src/lib/components/table/loading/table.loading.component.ts +14 -0
- package/src/lib/components/table/pagination/table.pagination.component.css +138 -0
- package/src/lib/components/table/pagination/table.pagination.component.html +9 -0
- package/src/lib/components/table/pagination/table.pagination.component.ts +89 -0
- package/src/lib/components/table/report/table.report.component.css +125 -0
- package/src/lib/components/table/report/table.report.component.html +19 -0
- package/src/lib/components/table/report/table.report.component.ts +238 -0
- package/src/lib/components/table/row/table.row.component.css +170 -0
- package/src/lib/components/table/row/table.row.component.html +21 -0
- package/src/lib/components/table/row/table.row.component.ts +373 -0
- package/src/lib/components/table/table.component.css +116 -0
- package/src/lib/components/table/table.component.html +62 -0
- package/src/lib/components/table/table.component.ts +180 -0
- package/src/lib/components/tooltip/tooltip.component.css +159 -0
- package/src/lib/components/tooltip/tooltip.component.html +1 -0
- package/src/lib/components/tooltip/tooltip.component.ts +15 -0
- package/src/lib/ps-toolkit-ui.module.ts +94 -0
- package/src/lib/services/config.service.ts +8 -0
- package/{public-api.d.ts → src/public-api.ts} +53 -48
- package/src/test.ts +26 -0
- package/tsconfig.lib.json +25 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +17 -0
- package/tslint.json +17 -0
- package/bundles/ps-toolkit-ui.umd.js +0 -7646
- 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/chart.class.js +0 -140
- package/esm2015/lib/classes/enum.class.js +0 -187
- package/esm2015/lib/classes/form.class.js +0 -481
- package/esm2015/lib/classes/helper.class.js +0 -284
- package/esm2015/lib/classes/lang.class.js +0 -32
- package/esm2015/lib/classes/login.class.js +0 -22
- package/esm2015/lib/classes/modal.class.js +0 -52
- package/esm2015/lib/classes/permission.class.js +0 -61
- package/esm2015/lib/classes/request.class.js +0 -256
- package/esm2015/lib/classes/safestyle.class.js +0 -15
- package/esm2015/lib/classes/sidebar.class.js +0 -14
- package/esm2015/lib/classes/steps.class.js +0 -20
- package/esm2015/lib/classes/string.class.js +0 -220
- package/esm2015/lib/classes/table.class.js +0 -215
- 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 -45
- package/esm2015/lib/components/calendar/calendar.component.js +0 -97
- 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/footer/footer.component.js +0 -23
- package/esm2015/lib/components/form/bank-card/form.bank-card.component.js +0 -148
- package/esm2015/lib/components/form/button/form.button.component.js +0 -68
- package/esm2015/lib/components/form/car/form.car.component.js +0 -84
- package/esm2015/lib/components/form/car/search/form.car.search.component.js +0 -172
- package/esm2015/lib/components/form/checkbox/form.checkbox.component.js +0 -66
- package/esm2015/lib/components/form/date/form.date.component.js +0 -254
- package/esm2015/lib/components/form/datetime/form.datetime.component.js +0 -104
- package/esm2015/lib/components/form/file/form.file.component.js +0 -133
- package/esm2015/lib/components/form/finger/form.finger.component.js +0 -138
- package/esm2015/lib/components/form/hidden/form.hidden.component.js +0 -31
- package/esm2015/lib/components/form/icon/form.icon.component.js +0 -76
- package/esm2015/lib/components/form/index/form.component.js +0 -48
- package/esm2015/lib/components/form/label/form.label.component.js +0 -32
- package/esm2015/lib/components/form/plaque/form.plaque.component.js +0 -176
- package/esm2015/lib/components/form/plaque/select/form.plaque.select.component.js +0 -390
- package/esm2015/lib/components/form/radio/form.radio.component.js +0 -79
- package/esm2015/lib/components/form/select/form.select.component.js +0 -374
- package/esm2015/lib/components/form/select/item/form.select.item.component.js +0 -43
- package/esm2015/lib/components/form/table/form.table.component.js +0 -98
- package/esm2015/lib/components/form/textarea/form.textarea.component.js +0 -78
- package/esm2015/lib/components/form/textbox/form.textbox.component.js +0 -186
- package/esm2015/lib/components/form/time/form.time.component.js +0 -145
- package/esm2015/lib/components/form/tree/form.tree.component.js +0 -99
- package/esm2015/lib/components/form/tree/item/form.tree.item.component.js +0 -48
- package/esm2015/lib/components/header/header.component.js +0 -33
- package/esm2015/lib/components/header/sub/sub.header.component.js +0 -14
- package/esm2015/lib/components/layout/layout.component.js +0 -25
- package/esm2015/lib/components/loading/loading.component.js +0 -22
- package/esm2015/lib/components/login/login.component.js +0 -148
- 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 -53
- package/esm2015/lib/components/sidebar/sidebar.component.js +0 -67
- package/esm2015/lib/components/steps/steps.component.js +0 -51
- 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/report/table.report.component.js +0 -246
- package/esm2015/lib/components/table/row/table.row.component.js +0 -379
- package/esm2015/lib/components/table/table.component.js +0 -179
- package/esm2015/lib/components/tooltip/tooltip.component.js +0 -19
- package/esm2015/lib/ps-toolkit-ui.module.js +0 -95
- package/esm2015/lib/services/config.service.js +0 -14
- package/esm2015/ps-toolkit-ui.js +0 -20
- package/esm2015/public-api.js +0 -52
- package/fesm2015/ps-toolkit-ui.js +0 -6566
- package/fesm2015/ps-toolkit-ui.js.map +0 -1
- package/lib/classes/chart.class.d.ts +0 -11
- package/lib/classes/enum.class.d.ts +0 -158
- package/lib/classes/form.class.d.ts +0 -173
- package/lib/classes/helper.class.d.ts +0 -28
- package/lib/classes/lang.class.d.ts +0 -5
- package/lib/classes/login.class.d.ts +0 -17
- package/lib/classes/modal.class.d.ts +0 -19
- package/lib/classes/permission.class.d.ts +0 -31
- package/lib/classes/request.class.d.ts +0 -12
- package/lib/classes/safestyle.class.d.ts +0 -7
- package/lib/classes/sidebar.class.d.ts +0 -11
- package/lib/classes/steps.class.d.ts +0 -17
- package/lib/classes/string.class.d.ts +0 -218
- package/lib/classes/table.class.d.ts +0 -69
- 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 -14
- 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/footer/footer.component.d.ts +0 -6
- package/lib/components/form/bank-card/form.bank-card.component.d.ts +0 -22
- package/lib/components/form/button/form.button.component.d.ts +0 -15
- package/lib/components/form/car/form.car.component.d.ts +0 -16
- package/lib/components/form/car/search/form.car.search.component.d.ts +0 -17
- package/lib/components/form/checkbox/form.checkbox.component.d.ts +0 -14
- package/lib/components/form/date/form.date.component.d.ts +0 -42
- package/lib/components/form/datetime/form.datetime.component.d.ts +0 -13
- package/lib/components/form/file/form.file.component.d.ts +0 -17
- 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 -15
- 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 -22
- package/lib/components/form/plaque/select/form.plaque.select.component.d.ts +0 -36
- package/lib/components/form/radio/form.radio.component.d.ts +0 -13
- package/lib/components/form/select/form.select.component.d.ts +0 -39
- package/lib/components/form/select/item/form.select.item.component.d.ts +0 -12
- package/lib/components/form/table/form.table.component.d.ts +0 -9
- 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/tree/form.tree.component.d.ts +0 -16
- package/lib/components/form/tree/item/form.tree.item.component.d.ts +0 -17
- package/lib/components/header/header.component.d.ts +0 -9
- package/lib/components/header/sub/sub.header.component.d.ts +0 -3
- package/lib/components/layout/layout.component.d.ts +0 -8
- package/lib/components/loading/loading.component.d.ts +0 -5
- package/lib/components/login/login.component.d.ts +0 -13
- 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 -19
- package/lib/components/steps/steps.component.d.ts +0 -10
- 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/report/table.report.component.d.ts +0 -34
- package/lib/components/table/row/table.row.component.d.ts +0 -34
- package/lib/components/table/table.component.d.ts +0 -40
- 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/ps-toolkit-ui.d.ts +0 -19
- package/ps-toolkit-ui.metadata.json +0 -1
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { InputClass } from '../../../../classes/form.class';
|
|
3
|
-
import { InputError, InputType } from '../../../../classes/enum.class';
|
|
4
|
-
import { HelperClass } from '../../../../classes/helper.class';
|
|
5
|
-
export class FormCarSearchComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.changeIndex = new EventEmitter();
|
|
8
|
-
this.type = 'Car';
|
|
9
|
-
this.wsAuth = null;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() {
|
|
12
|
-
this.car = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-user', InputType.SelectAutoCompletePlaque);
|
|
13
|
-
this.motor = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', 'fa-motorcycle', InputType.SelectAutoCompletePlaqueM);
|
|
14
|
-
this.driver = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', null, InputType.SelectAutoComplete);
|
|
15
|
-
this.driver.placeholder = this.inp.l('DriverName');
|
|
16
|
-
this.fingerprint = new InputClass(this.inp.environment, this.inp.l, this.inp.name + 'Item', null, InputType.Select);
|
|
17
|
-
this.car.displayLabel = this.motor.displayLabel = this.driver.displayLabel = this.fingerprint.displayLabel = false;
|
|
18
|
-
this.car.url = this.motor.url = this.driver.url = this.inp.url.replace('_{}', '_' + this.type);
|
|
19
|
-
this.car.onChange = () => {
|
|
20
|
-
this.changeIndex.emit('Tab');
|
|
21
|
-
if (this.inp.onChange) {
|
|
22
|
-
this.inp.onChange(this.car.data());
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
this.motor.onChange = () => {
|
|
26
|
-
this.changeIndex.emit('Tab');
|
|
27
|
-
if (this.inp.onChange) {
|
|
28
|
-
this.inp.onChange(this.motor.data());
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
this.driver.onChange = () => {
|
|
32
|
-
this.changeIndex.emit('Tab');
|
|
33
|
-
if (this.inp.onChange) {
|
|
34
|
-
this.inp.onChange(this.driver.data());
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
this.fingerprint.onChange = () => {
|
|
38
|
-
this.changeIndex.emit('Tab');
|
|
39
|
-
if (this.inp.onChange) {
|
|
40
|
-
this.inp.onChange(this.fingerprint.data());
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
this.fingerprint.disabled = true;
|
|
44
|
-
this.fingerprint.placeholder = this.inp.l('LoadingText', 'Waiting');
|
|
45
|
-
this.inp.setValue = (v) => {
|
|
46
|
-
if (v != null) {
|
|
47
|
-
if (v.Search && v.Search.split('_').length === 2) {
|
|
48
|
-
this.type = 'Motor';
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
this.motor.setValue(v.Value, false);
|
|
51
|
-
this.motor.setSearch(v.Search);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
else if (v.Search && v.Search.split('_').length === 4) {
|
|
55
|
-
this.type = 'Car';
|
|
56
|
-
setTimeout(() => {
|
|
57
|
-
this.car.setValue(v.Value, false);
|
|
58
|
-
this.car.setSearch(v.Search);
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
this.inp.focus = () => {
|
|
64
|
-
this.onFocusIn();
|
|
65
|
-
};
|
|
66
|
-
this.inp.isValid = () => {
|
|
67
|
-
this.inp.error = null;
|
|
68
|
-
if (this.inp.required && this.type === 'Car' && !this.car.isValid()) {
|
|
69
|
-
this.inp.error = InputError.Required;
|
|
70
|
-
return false;
|
|
71
|
-
}
|
|
72
|
-
if (this.inp.required && this.type === 'Motor' && !this.motor.isValid()) {
|
|
73
|
-
this.inp.error = InputError.Required;
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
if (this.inp.required && this.type === 'Driver' && !this.driver.isValid()) {
|
|
77
|
-
this.inp.error = InputError.Required;
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
if (this.inp.required && this.type === 'Fingerprint' && !this.fingerprint.isValid()) {
|
|
81
|
-
this.inp.error = InputError.Required;
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
return true;
|
|
85
|
-
};
|
|
86
|
-
this.inp.clear = () => {
|
|
87
|
-
this.inp.error = null;
|
|
88
|
-
this.inp.setValue(null, false);
|
|
89
|
-
this.type = 'Car';
|
|
90
|
-
this.car.clear();
|
|
91
|
-
this.motor.clear();
|
|
92
|
-
this.driver.clear();
|
|
93
|
-
this.fingerprint.clear();
|
|
94
|
-
};
|
|
95
|
-
this.inp.data = () => {
|
|
96
|
-
return this.type === 'Car' ? this.car.data() :
|
|
97
|
-
this.type === 'Motor' ? this.motor.data() :
|
|
98
|
-
this.type === 'Driver' ? this.driver.data() :
|
|
99
|
-
this.type === 'Fingerprint' ? this.fingerprint.data() : null;
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
changeType(t) {
|
|
103
|
-
this.type = t;
|
|
104
|
-
if (t === 'Fingerprint') {
|
|
105
|
-
this.fingerprint.loading = true;
|
|
106
|
-
this.fingerprint.placeholder = this.inp.l('LoadingText', 'Waiting');
|
|
107
|
-
this.fingerprint.value = null;
|
|
108
|
-
this.fingerprint.search = null;
|
|
109
|
-
this.wsAuth = new WebSocket('ws://localhost:7890/Auth');
|
|
110
|
-
this.wsAuth.onopen = () => {
|
|
111
|
-
};
|
|
112
|
-
this.wsAuth.onmessage = (evt) => {
|
|
113
|
-
if (this.wsAuth != null) {
|
|
114
|
-
this.wsAuth.close();
|
|
115
|
-
}
|
|
116
|
-
if (evt.data === 'Notfound') {
|
|
117
|
-
HelperClass.addNotification(this.inp.l('NotfoundTitle'));
|
|
118
|
-
this.fingerprint.placeholder = this.inp.l('NotfoundTitle');
|
|
119
|
-
this.fingerprint.value = null;
|
|
120
|
-
this.fingerprint.search = null;
|
|
121
|
-
this.fingerprint.loading = false;
|
|
122
|
-
}
|
|
123
|
-
else if (evt.data.startsWith('Error')) {
|
|
124
|
-
HelperClass.addNotification(evt.data);
|
|
125
|
-
this.fingerprint.placeholder = this.inp.l('NotfoundTitle');
|
|
126
|
-
this.fingerprint.value = null;
|
|
127
|
-
this.fingerprint.search = null;
|
|
128
|
-
this.fingerprint.loading = false;
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
const user = JSON.parse(evt.data);
|
|
132
|
-
this.fingerprint.value = user.Id;
|
|
133
|
-
this.fingerprint.search = user.Name;
|
|
134
|
-
this.fingerprint.loading = false;
|
|
135
|
-
}
|
|
136
|
-
this.wsAuth.close();
|
|
137
|
-
this.wsAuth = null;
|
|
138
|
-
};
|
|
139
|
-
this.wsAuth.onclose = () => {
|
|
140
|
-
};
|
|
141
|
-
}
|
|
142
|
-
this.car.url = this.motor.url = this.driver.url = this.inp.url.replace('_{}', '_' + this.type);
|
|
143
|
-
}
|
|
144
|
-
onFocusIn() {
|
|
145
|
-
if (this.type === 'Car') {
|
|
146
|
-
this.car.focus();
|
|
147
|
-
}
|
|
148
|
-
else if (this.type === 'Motor') {
|
|
149
|
-
this.motor.focus();
|
|
150
|
-
}
|
|
151
|
-
else if (this.type === 'Driver') {
|
|
152
|
-
this.driver.focus();
|
|
153
|
-
}
|
|
154
|
-
else if (this.type === 'Fingerprint') {
|
|
155
|
-
this.fingerprint.focus();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
FormCarSearchComponent.decorators = [
|
|
160
|
-
{ type: Component, args: [{
|
|
161
|
-
selector: 'lib-form-car-search',
|
|
162
|
-
template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [style]=\"inp.style\" [className]=\"inp.class + (inp.error == null ? '' : ' error') + (inp.icon != null ? '' : ' without-icon') + ' form-input car'\">\r\n <div *ngIf=\"inp.displayLabel\" class=\"label\">\r\n <i *ngIf=\"inp.required\" class=\"f-r fas fa-star-of-life required-icon\"></i>\r\n <i *ngIf=\"inp.rows.includes('Car')\" [className]=\"(type == 'Car' ? 'active ' : '') + 'change-type-btn fas fa-car'\" (click)=\"changeType('Car')\"></i>\r\n <i *ngIf=\"inp.rows.includes('Motor')\" [className]=\"(type == 'Motor' ? 'active ' : '') + 'change-type-btn fas fa-motorcycle'\" (click)=\"changeType('Motor')\"></i>\r\n <i *ngIf=\"inp.rows.includes('Driver')\" [className]=\"(type == 'Driver' ? 'active ' : '') + 'change-type-btn fas fa-user'\" (click)=\"changeType('Driver')\"></i>\r\n <i *ngIf=\"inp.rows.includes('Fingerprint')\" [className]=\"(type == 'Fingerprint' ? 'active ' : '') + 'change-type-btn fas fa-fingerprint'\" (click)=\"changeType('Fingerprint')\"></i>\r\n </div>\r\n <div class=\"w-100 p-r\">\r\n <lib-form-plaque-select [inp]=\"car\" *ngIf=\"type === 'Car'\"></lib-form-plaque-select>\r\n <lib-form-plaque-select [inp]=\"motor\" *ngIf=\"type === 'Motor'\"></lib-form-plaque-select>\r\n <lib-form-select [inp]=\"driver\" *ngIf=\"type === 'Driver'\"></lib-form-select>\r\n <lib-form-select [inp]=\"fingerprint\" *ngIf=\"type === 'Fingerprint'\"></lib-form-select>\r\n </div>\r\n</div>\r\n",
|
|
163
|
-
styles: [".form-input.car{border-radius:5px;float:right;font-size:15px;position:relative;width:185px}.form-input.car .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.car.error .label{color:var(--red);font-size:10px}.form-input.car .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input.car .label .change-type-btn{cursor:pointer;float:right;font-size:16px;height:20px;line-height:20px;text-align:center;width:30px}.form-input.car .label .change-type-btn.fa-user{font-size:14px;line-height:18px}.form-input.car .label .change-type-btn.active,.form-input.car .label .change-type-btn:hover{color:var(--comp)}.form-input.car .control{background-color:#fff;background-image:none;border:none;border-radius:5px;box-shadow:0 1px 3px 0 rgba(0,0,0,.4);color:var(--black);display:block;font-family:Vazir;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input.car .control:focus,.form-input.car:hover .control{box-shadow:0 1px 5px 0 rgba(0,0,0,.7)}.form-input.car span.icon{bottom:0;color:var(--comp);cursor:text;font-size:14px;height:35px;left:0;line-height:38px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input.car span.icon.button{background-color:var(--base);border-radius:5px 0 0 5px;color:#fff;cursor:pointer}.form-input.car span.icon.button:hover{background-color:var(--base-dark)}.form-input.car span.icon.button.blue{background-color:var(--blue)}.form-input.car span.icon.button.blue:hover{background-color:var(--blue-dark)}.form-input.car span.icon.button.green{background-color:var(--green)}.form-input.car span.icon.button.green:hover{background-color:var(--green-dark)}.form-input.car span.icon.button.red{background-color:var(--red)}.form-input.car span.icon.button.red:hover{background-color:var(--red-dark)}.form-input.car span.icon.button.yellow{background-color:var(--yellow)}.form-input.car span.icon.button.yellow:hover{background-color:var(--yellow-dark)}.form-input.car.disabled .control,.form-input.car.disabled .label,.form-input.car.disabled span.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.car.error .control{box-shadow:0 1px 3px 0 var(--red)}.form-input.car.error .control,.form-input.car.error span.icon{color:var(--red-cc)}.form-input.car .progress{background-color:var(--comp);border-radius:5px;bottom:0;height:3px;line-height:3px;position:absolute;right:0;transition:width .5s ease-in-out;width:100%;z-index:2}.form-input.car.without-icon .control{padding:5px 10px}.form-input.car.h-50 .control{height:50px}.form-input.car.h-50 span.icon{height:50px;line-height:50px}.form-input.car.h-45 .control{height:45px}.form-input.car.h-45 span.icon{height:45px;line-height:45px}.form-input.car.h-30 .control{font-size:10px;height:30px;padding:0}.form-input.car.h-30 span.icon{height:30px;line-height:30px}.form-input.car.h-35{height:35px}.form-input.car.h-35 .control{height:35px;padding:0 35px}.form-input.car.h-35 span.icon{height:35px;line-height:35px}.form-input.car.h-25 .control{height:25px;padding:0}.form-input.car.h-25 span.icon{height:25px;line-height:25px}.form-input.car.table-search{float:right;margin-right:10%;margin-top:4px;width:80%}.form-input.car.h-22 .control{height:22px;padding:0}.form-input.car.h-22 span.icon{height:22px;line-height:22px}.form-input.car.plaque-part-1{float:left;padding:0!important;width:35px!important}.form-input.car.plaque-part-1.plaque-part-m{width:49px!important}.form-input.car.plaque-part-3{float:left;padding:0!important;width:49px!important}.form-input.car.plaque-part-3.plaque-part-m{width:69px!important}.form-input.car.plaque-part-4{float:left;margin-top:10px;padding:0!important;width:34px!important}.form-input.car.plaque-part-4 .control{height:25px!important}.form-input.car.plaque-part-4.plaque-part-m{display:none!important}.form-input.car.bank-card-part-item{float:left;padding:0!important;width:25%}.form-input.car.bank-card-part-item:not(.bank-card-part-4):after{content:\"\\f068\";font-family:Font Awesome\\ 5 Free;font-size:6px;font-weight:900;height:20px;line-height:20px;position:absolute;right:-10px;text-align:center;top:calc(50% - 10px);width:20px}.form-input.car.bank-card-part-item .control{background-color:initial!important;box-shadow:unset!important;font-size:13px!important;padding:0!important}"]
|
|
164
|
-
},] }
|
|
165
|
-
];
|
|
166
|
-
FormCarSearchComponent.ctorParameters = () => [];
|
|
167
|
-
FormCarSearchComponent.propDecorators = {
|
|
168
|
-
inp: [{ type: Input }],
|
|
169
|
-
changeIndex: [{ type: Output }],
|
|
170
|
-
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }]
|
|
171
|
-
};
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jYXIuc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL2Nhci9zZWFyY2gvZm9ybS5jYXIuc2VhcmNoLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELE9BQU8sRUFBQyxVQUFVLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBTzdELE1BQU0sT0FBTyxzQkFBc0I7SUFZakM7UUFSQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUtiLFdBQU0sR0FBRyxJQUFJLENBQUM7SUFHZCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxFQUNoRixTQUFTLEVBQUUsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxNQUFNLEVBQ2xGLGVBQWUsRUFB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SSxLQUFLLEtBQUssRUFBQztZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBQztZQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBQztZQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLGFBQWEsRUFBQztZQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQzs7O1lBbktGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixtOUNBQStDOzthQUVoRDs7OztrQkFFRSxLQUFLOzBCQUVMLE1BQU07dUJBUU4sU0FBUyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtJbnB1dENsYXNzfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2Zvcm0uY2xhc3MnO1xyXG5pbXBvcnQge0lucHV0RXJyb3IsIElucHV0VHlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuaW1wb3J0IHtIZWxwZXJDbGFzc30gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9oZWxwZXIuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZm9ybS1jYXItc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jYXIuc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNhci5zZWFyY2guY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ2FyU2VhcmNoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKVxyXG4gIGlucDogSW5wdXRDbGFzcztcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VJbmRleCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIHR5cGUgPSAnQ2FyJztcclxuICBjYXI6IElucHV0Q2xhc3M7XHJcbiAgbW90b3I6IElucHV0Q2xhc3M7XHJcbiAgZHJpdmVyOiBJbnB1dENsYXNzO1xyXG4gIGZpbmdlcnByaW50OiBJbnB1dENsYXNzO1xyXG4gIHdzQXV0aCA9IG51bGw7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FyID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS11c2VyJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZSk7XHJcbiAgICB0aGlzLm1vdG9yID0gbmV3IElucHV0Q2xhc3ModGhpcy5pbnAuZW52aXJvbm1lbnQsIHRoaXMuaW5wLmwsIHRoaXMuaW5wLm5hbWUgKyAnSXRlbScsXHJcbiAgICAgICdmYS1tb3RvcmN5Y2xlJywgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZVBsYXF1ZU0pO1xyXG4gICAgdGhpcy5kcml2ZXIgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJyxcclxuICAgICAgbnVsbCwgSW5wdXRUeXBlLlNlbGVjdEF1dG9Db21wbGV0ZSk7XHJcbiAgICB0aGlzLmRyaXZlci5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ0RyaXZlck5hbWUnKTtcclxuICAgIHRoaXMuZmluZ2VycHJpbnQgPSBuZXcgSW5wdXRDbGFzcyh0aGlzLmlucC5lbnZpcm9ubWVudCwgdGhpcy5pbnAubCwgdGhpcy5pbnAubmFtZSArICdJdGVtJywgbnVsbCwgSW5wdXRUeXBlLlNlbGVjdCk7XHJcbiAgICB0aGlzLmNhci5kaXNwbGF5TGFiZWwgPSB0aGlzLm1vdG9yLmRpc3BsYXlMYWJlbCA9IHRoaXMuZHJpdmVyLmRpc3BsYXlMYWJlbCA9IHRoaXMuZmluZ2VycHJpbnQuZGlzcGxheUxhYmVsID0gZmFsc2U7XHJcbiAgICB0aGlzLmNhci51cmwgPSB0aGlzLm1vdG9yLnVybCA9IHRoaXMuZHJpdmVyLnVybCA9IHRoaXMuaW5wLnVybC5yZXBsYWNlKCdfe30nLCAnXycgKyB0aGlzLnR5cGUpO1xyXG4gICAgdGhpcy5jYXIub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5jYXIuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMubW90b3Iub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5tb3Rvci5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5kcml2ZXIub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5kcml2ZXIuZGF0YSgpKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuZmluZ2VycHJpbnQub25DaGFuZ2UgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlSW5kZXguZW1pdCgnVGFiJyk7XHJcbiAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5maW5nZXJwcmludC5kYXRhKCkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy5maW5nZXJwcmludC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB0aGlzLmZpbmdlcnByaW50LnBsYWNlaG9sZGVyID0gdGhpcy5pbnAubCgnTG9hZGluZ1RleHQnLCAnV2FpdGluZycpO1xyXG4gICAgdGhpcy5pbnAuc2V0VmFsdWUgPSAodikgPT4ge1xyXG4gICAgICBpZiAodiAhPSBudWxsKXtcclxuICAgICAgICBpZiAodi5TZWFyY2ggJiYgdi5TZWFyY2guc3BsaXQoJ18nKS5sZW5ndGggPT09IDIpe1xyXG4gICAgICAgICAgdGhpcy50eXBlID0gJ01vdG9yJztcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1vdG9yLnNldFZhbHVlKHYuVmFsdWUsIGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5tb3Rvci5zZXRTZWFyY2godi5TZWFyY2gpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh2LlNlYXJjaCAmJiB2LlNlYXJjaC5zcGxpdCgnXycpLmxlbmd0aCA9PT0gNCl7XHJcbiAgICAgICAgICB0aGlzLnR5cGUgPSAnQ2FyJztcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNhci5zZXRWYWx1ZSh2LlZhbHVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyLnNldFNlYXJjaCh2LlNlYXJjaCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5mb2N1cyA9ICgpID0+IHtcclxuICAgICAgdGhpcy5vbkZvY3VzSW4oKTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09ICdDYXInICYmICF0aGlzLmNhci5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiB0aGlzLnR5cGUgPT09ICdNb3RvcicgJiYgIXRoaXMubW90b3IuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSAnRHJpdmVyJyAmJiAhdGhpcy5kcml2ZXIuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLlJlcXVpcmVkO1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5pbnAucmVxdWlyZWQgJiYgdGhpcy50eXBlID09PSAnRmluZ2VycHJpbnQnICYmICF0aGlzLmZpbmdlcnByaW50LmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAuc2V0VmFsdWUobnVsbCwgZmFsc2UpO1xyXG4gICAgICB0aGlzLnR5cGUgPSAnQ2FyJztcclxuICAgICAgdGhpcy5jYXIuY2xlYXIoKTtcclxuICAgICAgdGhpcy5tb3Rvci5jbGVhcigpO1xyXG4gICAgICB0aGlzLmRyaXZlci5jbGVhcigpO1xyXG4gICAgICB0aGlzLmZpbmdlcnByaW50LmNsZWFyKCk7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ0NhcicgPyB0aGlzLmNhci5kYXRhKCkgOlxyXG4gICAgICAgIHRoaXMudHlwZSA9PT0gJ01vdG9yJyA/IHRoaXMubW90b3IuZGF0YSgpIDpcclxuICAgICAgICB0aGlzLnR5cGUgPT09ICdEcml2ZXInID8gdGhpcy5kcml2ZXIuZGF0YSgpIDpcclxuICAgICAgICB0aGlzLnR5cGUgPT09ICdGaW5nZXJwcmludCcgPyB0aGlzLmZpbmdlcnByaW50LmRhdGEoKSA6IG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuICBjaGFuZ2VUeXBlKHQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlID0gdDtcclxuICAgIGlmICh0ID09PSAnRmluZ2VycHJpbnQnKXtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ0xvYWRpbmdUZXh0JywgJ1dhaXRpbmcnKTtcclxuICAgICAgdGhpcy5maW5nZXJwcmludC52YWx1ZSA9IG51bGw7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQuc2VhcmNoID0gbnVsbDtcclxuICAgICAgdGhpcy53c0F1dGggPSBuZXcgV2ViU29ja2V0KCd3czovL2xvY2FsaG9zdDo3ODkwL0F1dGgnKTtcclxuICAgICAgdGhpcy53c0F1dGgub25vcGVuID0gKCkgPT4ge1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy53c0F1dGgub25tZXNzYWdlID0gKGV2dCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLndzQXV0aCAhPSBudWxsKXtcclxuICAgICAgICAgIHRoaXMud3NBdXRoLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuZGF0YSA9PT0gJ05vdGZvdW5kJyl7XHJcbiAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24odGhpcy5pbnAubCgnTm90Zm91bmRUaXRsZScpKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQucGxhY2Vob2xkZXIgPSB0aGlzLmlucC5sKCdOb3Rmb3VuZFRpdGxlJyk7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LnZhbHVlID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQuc2VhcmNoID0gbnVsbDtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZ0LmRhdGEuc3RhcnRzV2l0aCgnRXJyb3InKSl7XHJcbiAgICAgICAgICBIZWxwZXJDbGFzcy5hZGROb3RpZmljYXRpb24oZXZ0LmRhdGEpO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5wbGFjZWhvbGRlciA9IHRoaXMuaW5wLmwoJ05vdGZvdW5kVGl0bGUnKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQudmFsdWUgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHVzZXIgPSBKU09OLnBhcnNlKGV2dC5kYXRhKTtcclxuICAgICAgICAgIHRoaXMuZmluZ2VycHJpbnQudmFsdWUgPSB1c2VyLklkO1xyXG4gICAgICAgICAgdGhpcy5maW5nZXJwcmludC5zZWFyY2ggPSB1c2VyLk5hbWU7XHJcbiAgICAgICAgICB0aGlzLmZpbmdlcnByaW50LmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53c0F1dGguY2xvc2UoKTtcclxuICAgICAgICB0aGlzLndzQXV0aCA9IG51bGw7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMud3NBdXRoLm9uY2xvc2UgPSAoKSA9PiB7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhci51cmwgPSB0aGlzLm1vdG9yLnVybCA9IHRoaXMuZHJpdmVyLnVybCA9IHRoaXMuaW5wLnVybC5yZXBsYWNlKCdfe30nLCAnXycgKyB0aGlzLnR5cGUpO1xyXG4gIH1cclxuICBvbkZvY3VzSW4oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnQ2FyJyl7XHJcbiAgICAgIHRoaXMuY2FyLmZvY3VzKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ01vdG9yJyl7XHJcbiAgICAgIHRoaXMubW90b3IuZm9jdXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnRHJpdmVyJyl7XHJcbiAgICAgIHRoaXMuZHJpdmVyLmZvY3VzKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ0ZpbmdlcnByaW50Jyl7XHJcbiAgICAgIHRoaXMuZmluZ2VycHJpbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,66 +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;
|
|
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
|
-
}
|
|
30
|
-
onFocusIn() {
|
|
31
|
-
this.inp.error = null;
|
|
32
|
-
this.inputBase.nativeElement.focus();
|
|
33
|
-
}
|
|
34
|
-
onClick() {
|
|
35
|
-
this.inputBase.nativeElement.click();
|
|
36
|
-
}
|
|
37
|
-
onChange() {
|
|
38
|
-
if (this.inp.onChange) {
|
|
39
|
-
setTimeout(() => {
|
|
40
|
-
this.inp.onChange(this.inp);
|
|
41
|
-
}, 1);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
onKeyDown(e) {
|
|
45
|
-
const code = e.keyCode || e.which;
|
|
46
|
-
if (code === 9 || code === 13) {
|
|
47
|
-
e.preventDefault();
|
|
48
|
-
this.changeIndex.emit(code === 9 ? e.shiftKey ? 'ShiftTab' : 'Tab' : e.shiftKey ? 'ShiftEnter' : 'Enter');
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
FormCheckboxComponent.decorators = [
|
|
53
|
-
{ type: Component, args: [{
|
|
54
|
-
selector: 'lib-form-checkbox',
|
|
55
|
-
template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [style]=\"inp.style\" [className]=\"inp.class + ' form-input-con checkbox' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '') + (inp.icon == null ? ' without-icon' : '')\">\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 ? 'fa-duotone fa-spin fa-spinner' : inp.icon) + ' icon'\"></i>\r\n </div>\r\n</div>\r\n",
|
|
56
|
-
styles: [".form-input-con.checkbox{padding:0 15px}.form-input-con.checkbox,.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;line-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;width:100%}.form-input-con.checkbox .form-input .control{background-color:#fff;border:var(--border-input);border-radius:5px;cursor:pointer;font-size:11px;height:35px;line-height:35px;padding:0 35px;position:relative;text-align:center;z-index:2}.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 .form-input .check:focus+.control,.form-input-con.checkbox .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{bottom:0;color:var(--comp);cursor:pointer;font-size:13px;height:35px;left:0;line-height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:2}.form-input-con.checkbox.without-icon .form-input .control{padding:0 0 0 35px}.form-input-con.checkbox.h-30 .form-input .control{font-size:10px;height:30px;line-height:28px;padding:0 30px}.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 0 0 30px}"]
|
|
57
|
-
},] }
|
|
58
|
-
];
|
|
59
|
-
FormCheckboxComponent.ctorParameters = () => [];
|
|
60
|
-
FormCheckboxComponent.propDecorators = {
|
|
61
|
-
inp: [{ type: Input }],
|
|
62
|
-
changeIndex: [{ type: Output }],
|
|
63
|
-
inputBase: [{ type: ViewChild, args: ['inputBase',] }],
|
|
64
|
-
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }]
|
|
65
|
-
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jaGVja2JveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZm9ybS9jaGVja2JveC9mb3JtLmNoZWNrYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBZ0IsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT3ZELE1BQU0sT0FBTyxxQkFBcUI7SUFPaEM7UUFIQSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFJekMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO2dCQUNyQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUN4QixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQztJQUNKLENBQUM7SUFDRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFDO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0gsQ0FBQztJQUNELFNBQVMsQ0FBQyxDQUFDO1FBQ1QsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xDLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1lBQzdCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzRztJQUNILENBQUM7OztZQTFERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsK3lCQUE2Qzs7YUFFOUM7Ozs7a0JBRUUsS0FBSzswQkFFTCxNQUFNO3dCQUVOLFNBQVMsU0FBQyxXQUFXO3VCQUNyQixTQUFTLFNBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0lucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLmNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLmNoZWNrYm94LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gIEBJbnB1dCgpXHJcbiAgaW5wOiBJbnB1dENsYXNzO1xyXG4gIEBPdXRwdXQoKVxyXG4gIGNoYW5nZUluZGV4ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRCYXNlJykgaW5wdXRCYXNlOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RGl2JykgaW5wdXREaXY6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IoKXtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnAuY2xlYXIgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmlucC5kZWZhdWx0O1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmlzVmFsaWQgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5wLmVycm9yID0gbnVsbDtcclxuICAgICAgaWYgKHRoaXMuaW5wLnJlcXVpcmVkICYmICF0aGlzLmlucC52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuaW5wLmVycm9yID0gSW5wdXRFcnJvci5SZXF1aXJlZDtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy5pbnAuZGF0YSA9ICgpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW5wLnZhbHVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5pbnAudmFsdWUgPSB2O1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uRm9jdXNJbigpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgb25Gb2N1c0luKCk6IHZvaWR7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICB0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uQ2xpY2soKTogdm9pZHtcclxuICAgIHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcbiAgb25DaGFuZ2UoKTogdm9pZHtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wKTtcclxuICAgICAgfSwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDEzKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGNvZGUgPT09IDkgPyBlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInIDogZS5zaGlmdEtleSA/ICdTaGlmdEVudGVyJyA6ICdFbnRlcicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as moment from 'jalali-moment';
|
|
3
|
-
import * as $ from 'jquery';
|
|
4
|
-
import { DayClass } from '../../../classes/form.class';
|
|
5
|
-
import { InputError } from '../../../classes/enum.class';
|
|
6
|
-
export class FormDateComponent {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.changeIndex = new EventEmitter();
|
|
9
|
-
this.previousDays = [];
|
|
10
|
-
this.nextDays = [];
|
|
11
|
-
this.days = [];
|
|
12
|
-
this.cSearch = '';
|
|
13
|
-
this.state = 'day';
|
|
14
|
-
this.months = ['فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند'];
|
|
15
|
-
this.active = moment();
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
// moment.locale('fa');
|
|
19
|
-
const today = moment().locale('fa');
|
|
20
|
-
this.todayDay = parseInt(today.format('jDD'), 10);
|
|
21
|
-
this.todayMonth = parseInt(today.format('jMM'), 10);
|
|
22
|
-
this.todayYear = parseInt(today.format('jYYYY'), 10);
|
|
23
|
-
this.setInpValue(this.inp.value);
|
|
24
|
-
this.inp.setValue = (v) => {
|
|
25
|
-
this.setInpValue(v);
|
|
26
|
-
};
|
|
27
|
-
this.inp.isValid = () => {
|
|
28
|
-
this.inp.error = null;
|
|
29
|
-
if (this.inp.required && !this.inp.value) {
|
|
30
|
-
this.inp.error = InputError.Required;
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
if (!this.inp.required && !this.inp.value) {
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
if (!moment(this.inp.value, 'jYYYY/jMM/jDD').isValid()) {
|
|
37
|
-
this.inp.error = InputError.Invalid;
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
};
|
|
42
|
-
this.inp.clear = () => {
|
|
43
|
-
if (this.inp.default) {
|
|
44
|
-
this.inp.setValue(this.inp.default, false);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.inp.value = null;
|
|
48
|
-
this.inp.search = null;
|
|
49
|
-
}
|
|
50
|
-
};
|
|
51
|
-
this.inp.data = () => {
|
|
52
|
-
return this.inp.value ? moment(this.inp.value, 'jYYYY/jMM/jDD').locale('en').format('YYYY/MM/DD') : null;
|
|
53
|
-
};
|
|
54
|
-
this.inp.focus = () => {
|
|
55
|
-
this.openCalendar();
|
|
56
|
-
};
|
|
57
|
-
this.inp.focusOut = () => {
|
|
58
|
-
$(this.inputBase.nativeElement).blur();
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
setInpValue(v) {
|
|
62
|
-
if (v === null) {
|
|
63
|
-
this.inp.clear();
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
else if (typeof v === 'string') {
|
|
67
|
-
const d = parseInt(v.substring(6, v.length - 2), 10);
|
|
68
|
-
this.active = moment(d);
|
|
69
|
-
}
|
|
70
|
-
else if (typeof v === 'number') {
|
|
71
|
-
this.active = moment(v);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this.active = v;
|
|
75
|
-
}
|
|
76
|
-
this.inp.value = this.active.format('jYYYY/jMM/jDD');
|
|
77
|
-
this.inp.search = this.active.format('jYYYY/jMM/jDD');
|
|
78
|
-
this.setDate();
|
|
79
|
-
}
|
|
80
|
-
setDate() {
|
|
81
|
-
const n = this.active.clone();
|
|
82
|
-
const countDayInMonth = n.daysInMonth();
|
|
83
|
-
const startWeek = parseInt(n.startOf('month').format('d'), 10);
|
|
84
|
-
const previousMonth = n.subtract(1, 'month');
|
|
85
|
-
const countDayInPreviousMonth = previousMonth.daysInMonth();
|
|
86
|
-
const nextMonth = n.add(2, 'month');
|
|
87
|
-
const previousDays = [];
|
|
88
|
-
const nextDays = [];
|
|
89
|
-
const days = [];
|
|
90
|
-
if (startWeek !== 6) {
|
|
91
|
-
for (let i = countDayInPreviousMonth - startWeek; i <= countDayInPreviousMonth; i++) {
|
|
92
|
-
previousDays.push(new DayClass(i, this.isToday(previousMonth, i), false));
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
for (let i = 1; i <= countDayInMonth; i++) {
|
|
96
|
-
days.push(new DayClass(i, this.isToday(this.active, i), this.isSelected(this.active, i)));
|
|
97
|
-
}
|
|
98
|
-
const end = (days.length + previousDays.length) % 7;
|
|
99
|
-
if (end !== 0) {
|
|
100
|
-
for (let i = 1; i <= 7 - end; i++) {
|
|
101
|
-
nextDays.push(new DayClass(i, this.isToday(nextMonth, i), false));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
this.previousDays = previousDays;
|
|
105
|
-
this.nextDays = nextDays;
|
|
106
|
-
this.days = days;
|
|
107
|
-
}
|
|
108
|
-
isToday(m, d) {
|
|
109
|
-
const month = parseInt(m.format('jMM'), 10);
|
|
110
|
-
const year = parseInt(m.format('jYYYY'), 10);
|
|
111
|
-
return year === this.todayYear && month === this.todayMonth && d === this.todayDay;
|
|
112
|
-
}
|
|
113
|
-
isSelected(m, d) {
|
|
114
|
-
if (this.inp.value == null) {
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
const month = parseInt(m.format('jMM'), 10);
|
|
118
|
-
const year = parseInt(m.format('jYYYY'), 10);
|
|
119
|
-
const vDay = parseInt(this.inp.value.split('/')[2], 10);
|
|
120
|
-
const vMonth = parseInt(this.inp.value.split('/')[1], 10);
|
|
121
|
-
const vYear = parseInt(this.inp.value.split('/')[0], 10);
|
|
122
|
-
return year === vYear && month === vMonth && d === vDay;
|
|
123
|
-
}
|
|
124
|
-
add(c) {
|
|
125
|
-
this.active.add(c, this.state === 'day' ? 'month' : 'year');
|
|
126
|
-
this.setDate();
|
|
127
|
-
}
|
|
128
|
-
changeMonth(c) {
|
|
129
|
-
this.active = moment(this.active.format('jYYYY') + '/' + ('0' + c).slice(-2) + '/' + this.active.format('jDD'), 'jYYYY/jMM/jDD');
|
|
130
|
-
this.setDate();
|
|
131
|
-
this.changeState('day');
|
|
132
|
-
}
|
|
133
|
-
changeYear(c) {
|
|
134
|
-
this.active = moment(('000' + c).slice(-4) + '/' + this.active.format('jMM') + '/' + this.active.format('jDD'), 'jYYYY/jMM/jDD');
|
|
135
|
-
this.setDate();
|
|
136
|
-
this.changeState('month');
|
|
137
|
-
}
|
|
138
|
-
toggleCalendar() {
|
|
139
|
-
this.openCalendar();
|
|
140
|
-
}
|
|
141
|
-
openCalendar() {
|
|
142
|
-
this.setPosition();
|
|
143
|
-
$(this.inputBase.nativeElement).focus();
|
|
144
|
-
}
|
|
145
|
-
onKeyDown(e) {
|
|
146
|
-
const code = e.keyCode || e.which;
|
|
147
|
-
if (code === 9 || code === 13) {
|
|
148
|
-
e.preventDefault();
|
|
149
|
-
$(this.inputDiv.nativeElement).removeClass('top');
|
|
150
|
-
this.changeIndex.emit(code === 9 ? e.shiftKey ? 'ShiftTab' : 'Tab' : e.shiftKey ? 'ShiftEnter' : 'Enter');
|
|
151
|
-
if (!this.inForm) {
|
|
152
|
-
$(this.inputBase.nativeElement).blur();
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
onKeyUp(e) {
|
|
157
|
-
this.inp.error = null;
|
|
158
|
-
this.inp.value = null;
|
|
159
|
-
if (this.cSearch !== e.target.value) {
|
|
160
|
-
this.cSearch = e.target.value;
|
|
161
|
-
if (this.inp.search !== '' && this.inp.search !== null) {
|
|
162
|
-
const v = moment(this.inp.search, 'jYYYY/jMM/jDD');
|
|
163
|
-
if (v.isValid() && this.inp.search.length <= 10) {
|
|
164
|
-
this.active = v;
|
|
165
|
-
this.inp.value = this.active.format('jYYYY/jMM/jDD');
|
|
166
|
-
this.setDate();
|
|
167
|
-
if (this.inp.onChange) {
|
|
168
|
-
this.inp.onChange(this.inp);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
this.setDate();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
this.setDate();
|
|
177
|
-
if (this.inp.onChange) {
|
|
178
|
-
this.inp.onChange(this.inp);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
onFocusOut() {
|
|
184
|
-
$(this.inputDiv.nativeElement).removeClass('top');
|
|
185
|
-
this.inp.search = this.inp.value;
|
|
186
|
-
this.state = 'day';
|
|
187
|
-
}
|
|
188
|
-
setPosition() {
|
|
189
|
-
const rect = this.inputDiv.nativeElement.getBoundingClientRect();
|
|
190
|
-
const offsetOfBottom = window.innerHeight - rect.bottom;
|
|
191
|
-
const height = this.inputCalendarDiv.nativeElement.offsetHeight;
|
|
192
|
-
if (offsetOfBottom < height) {
|
|
193
|
-
$(this.inputDiv.nativeElement).addClass('top');
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
$(this.inputDiv.nativeElement).removeClass('top');
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
selectDate(d) {
|
|
200
|
-
this.inp.error = null;
|
|
201
|
-
const s = this.days.find(x => x.selected);
|
|
202
|
-
if (s) {
|
|
203
|
-
s.selected = false;
|
|
204
|
-
}
|
|
205
|
-
const m = parseInt(this.active.format('jMM'), 10);
|
|
206
|
-
const y = parseInt(this.active.format('jYYYY'), 10);
|
|
207
|
-
this.setValue(y, m, d.day);
|
|
208
|
-
d.selected = true;
|
|
209
|
-
this.cSearch = this.inp.search;
|
|
210
|
-
setTimeout(() => {
|
|
211
|
-
$(this.inputDiv.nativeElement).removeClass('top');
|
|
212
|
-
this.changeIndex.emit('Tab');
|
|
213
|
-
if (!this.inForm) {
|
|
214
|
-
$(this.inputBase.nativeElement).blur();
|
|
215
|
-
}
|
|
216
|
-
}, 10);
|
|
217
|
-
if (this.inp.onChange) {
|
|
218
|
-
this.inp.onChange(this.inp);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
setValue(y, m, d) {
|
|
222
|
-
this.inp.value = y + '/' + (m > 9 ? m : '0' + m) + '/' + (d > 9 ? d : '0' + d);
|
|
223
|
-
this.inp.search = y + '/' + (m > 9 ? m : '0' + m) + '/' + (d > 9 ? d : '0' + d);
|
|
224
|
-
}
|
|
225
|
-
changeState(s) {
|
|
226
|
-
this.state = s;
|
|
227
|
-
}
|
|
228
|
-
getYears() {
|
|
229
|
-
const y = parseInt(this.active.format('jYYYY'), 10);
|
|
230
|
-
const sy = y - (y % 20);
|
|
231
|
-
return Array.from({ length: 20 }, (x, i) => sy + i);
|
|
232
|
-
}
|
|
233
|
-
getActiveMonth() {
|
|
234
|
-
return this.months[parseInt(this.active.format('jM'), 10) - 1];
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
FormDateComponent.decorators = [
|
|
238
|
-
{ type: Component, args: [{
|
|
239
|
-
selector: 'lib-form-date',
|
|
240
|
-
template: "<div #inputDiv [id]=\"inp.name + 'Input'\" [style]=\"inp.style\" [className]=\"inp.class + ' form-input-con date' + (inp.error == null ? '' : ' error') + (inp.disabled ? ' disabled' : '')\">\r\n <div class=\"form-input\" (click)=\"toggleCalendar()\">\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\">\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 <i *ngIf=\"inp.withClear && inp.value\" (click)=\"inp.clear()\" class=\"fa-duotone fa-eraser clear-icon\"></i>\r\n <input (keydown)=\"onKeyDown($event)\" (keyup)=\"onKeyUp($event)\" (focusout)=\"onFocusOut()\" [disabled]=\"inp.disabled\" [(ngModel)]=\"inp.search\" #inputBase [name]=\"inp.name\" [placeholder]=\"inp.l(inp.name)\" class=\"control\" autocomplete=\"off\" maxlength=\"\">\r\n <div #inputCalendarDiv class=\"calendar\">\r\n <div class=\"header\">\r\n <i (click)=\"add(state === 'day' || state === 'month' ? -1 : -20)\" class=\"fas fa-angle-right previous-month\"></i>\r\n <div class=\"title\">\r\n <div (click)=\"(state === 'day' || state === 'month') && changeState('year')\" class=\"year header-item\">\r\n {{active.format('jYYYY')}}\r\n </div>\r\n <div (click)=\"state === 'day' && changeState('month')\" class=\"month header-item\">\r\n {{getActiveMonth()}}\r\n </div>\r\n </div>\r\n <i (click)=\"add(state === 'day' || state === 'month' ? 1 : 20)\" class=\"fas fa-angle-left next-month\"></i>\r\n </div>\r\n <div [style]=\"state === 'day' ? {} : {display: 'none'}\" class=\"days-con\">\r\n <div class=\"day-names underline\">\r\n <div class=\"item\">\u0634</div>\r\n <div class=\"item\">\u06CC</div>\r\n <div class=\"item\">\u062F</div>\r\n <div class=\"item\">\u0633</div>\r\n <div class=\"item\">\u0686</div>\r\n <div class=\"item\">\u067E</div>\r\n <div class=\"item\">\u062C</div>\r\n </div>\r\n <div class=\"days\">\r\n <div [className]=\"'item not-in-month' + (d.today ? ' today' : '')\" *ngFor=\"let d of previousDays\">{{d.day}}</div>\r\n <div (click)=\"selectDate(d)\" [className]=\"'item' + (d.today ? ' today' : '') + (d.selected ? ' selected' : '')\" *ngFor=\"let d of days\">{{d.day}}</div>\r\n <div [className]=\"'item not-in-month' + (d.today ? ' today' : '')\" *ngFor=\"let d of nextDays\">{{d.day}}</div>\r\n </div>\r\n </div>\r\n <div [style]=\"state === 'month' ? {} : {display: 'none'}\" class=\"months-con\">\r\n <div [className]=\"(i + 1 == active.format('jM') ? 'selected ' : '') + 'month'\" (click)=\"changeMonth(i + 1)\" *ngFor=\"let m of months; let i = index\">{{m}}</div>\r\n </div>\r\n <div [style]=\"state === 'year' ? {} : {display: 'none'}\" class=\"years-con\">\r\n <div [className]=\"(y == active.format('jYYYY') ? 'selected ' : '') + 'year'\" (click)=\"changeYear(y)\" *ngFor=\"let y of getYears()\">{{y}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n",
|
|
241
|
-
styles: [".form-input-con.date{padding:0 15px}.form-input-con.date,.form-input-con.date .form-input{float:right;position:relative;width:100%}.form-input-con.date .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.date.error .form-input .label{color:var(--red);font-size:10px}.form-input-con.date .form-input .label .required-icon{color:var(--red);font-size:9px;height:20px;line-height:20px;text-align:center;width:20px}.form-input-con.date .form-input .control{background-color:#fff;background-image:none;border:none;border:var(--border-input);border-radius:5px;color:var(--black);display:block;font-family:Vazir;font-size:11px;height:35px;padding:5px 35px;position:relative;text-align:center;width:100%;z-index:2}.form-input-con.date .form-input .control:focus{border-radius:5px 5px 5px 0}.form-input-con.date.top .form-input .control:focus{border-radius:0 5px 5px 5px}.form-input-con.date .form-input .control:focus,.form-input-con.date .form-input:hover .control{border:var(--border-input-dark);outline:none}.form-input-con.date .form-input i.icon{color:var(--comp);cursor:text;font-size:13px;left:0;line-height:35px}.form-input-con.date .form-input i.clear-icon,.form-input-con.date .form-input i.icon{bottom:0;height:35px;position:absolute;text-align:center;transition:all .35s ease-in-out;width:35px;z-index:3}.form-input-con.date .form-input i.clear-icon{color:var(--red);cursor:pointer;font-size:14px;line-height:38px;right:0}.form-input-con.date.disabled .form-input .control,.form-input-con.date.disabled .form-input .label,.form-input-con.date.disabled .form-input i.icon{cursor:default;filter:blur(.5px);opacity:.7}.form-input-con.date.error .form-input .control,.form-input-con.date.error .form-input i.icon{color:var(--red-cc)}.form-input-con.date.error .form-input .control{border:var(--border-input-red)}.form-input-con.date.error .form-input .control:focus,.form-input-con.date.error .form-input:hover .control{border:var(--border-input-red-dark)}.form-input-con.date .form-input .calendar{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;background-color:#fff;border:var(--border-input);border-radius:0 0 5px 5px;color:var(--black);height:235px;left:0;overflow:hidden;position:absolute;top:-200000px;width:200px;z-index:102}.form-input-con.date .form-input .control:focus+.calendar{top:35px!important}.form-input-con.date.top .form-input .control:focus+.calendar{border-radius:5px 5px 0 0;bottom:35px;top:unset!important}.form-input-con.date .form-input .days-con{float:right;width:100%}.form-input-con.date .form-input .calendar .header{background:var(--black-33);float:right;width:100%}.form-input-con.date .form-input .calendar .header .next-month,.form-input-con.date .form-input .calendar .header .previous-month{cursor:pointer;float:right;font-size:15px;height:30px;line-height:30px;text-align:center;width:30px}.form-input-con.date .form-input .calendar .header .next-month:hover,.form-input-con.date .form-input .calendar .header .previous-month:hover{background:var(--black-33)}.form-input-con.date .form-input .calendar .header .title{float:right;font-family:VazirBold;font-size:12px;height:30px;line-height:30px;text-align:center;width:calc(100% - 60px)}.form-input-con.date .form-input .calendar .header .header-item{background-color:#fff;border:var(--border-input);border-radius:5px;cursor:pointer;float:right;height:20px;line-height:20px;margin-right:5px;margin-top:5px;text-align:center}.form-input-con.date .form-input .calendar .header .header-item:hover{background-color:var(--base-11)}.form-input-con.date .form-input .calendar .header .header-item.year{width:calc(40% - 10px)}.form-input-con.date .form-input .calendar .header .header-item.month{width:calc(60% - 10px)}.form-input-con.date .form-input .calendar .days-con .day-names{float:right;font-family:VazirLight;font-size:12px;position:relative;text-align:center;width:100%}.form-input-con.date .form-input .calendar .days-con .day-names .item{float:right;font-size:12px;height:25px;line-height:25px;text-align:center;width:14.28571%}.form-input-con.date .form-input .calendar .days-con .days{float:right;font-size:12px;text-align:center;width:100%}.form-input-con.date .form-input .calendar .days-con .days .item{cursor:pointer;float:right;font-size:11px;height:30px;line-height:30px;text-align:center;width:14.28571%}.form-input-con.date .form-input .calendar .days-con .days .item.not-in-month{cursor:default;opacity:.5}.form-input-con.date .form-input .calendar .days-con .days .item:hover{background-color:var(--black-33)}.form-input-con.date .form-input .calendar .days-con .days .item.not-in-month:hover{background-color:unset}.form-input-con.date .form-input .calendar .days-con .days .item.today{background-color:var(--black-33)}.form-input-con.date .form-input .calendar .days-con .days .item.selected{background-color:var(--comp);color:#fff}.form-input-con.date .form-input .calendar .days-con .days .item.today.not-in-month:hover{background-color:var(--black-33)}.form-input-con.date .form-input .calendar .months-con{float:right;width:100%}.form-input-con.date .form-input .calendar .months-con .month{cursor:pointer;float:right;font-size:11px;height:51.25px;line-height:51.25px;text-align:center;width:33.33333%}.form-input-con.date .form-input .calendar .months-con .month.selected,.form-input-con.date .form-input .calendar .months-con .month:hover{background-color:var(--black-33)}.form-input-con.date .form-input .calendar .years-con{float:right;width:100%}.form-input-con.date .form-input .calendar .years-con .year{cursor:pointer;float:right;font-size:11px;height:41px;line-height:41px;text-align:center;width:25%}.form-input-con.date .form-input .calendar .years-con .year.selected,.form-input-con.date .form-input .calendar .years-con .year:hover{background-color:var(--black-33)}.form-input-con.date.table-search{float:right;padding:0;width:100%}.form-input-con.date.h-25 .form-input .control{height:25px;padding:5px}.form-input-con.date.h-25 .form-input i.icon{display:none}.form-input-con.date.h-25 .form-input .control:focus+.calendar{top:25px!important}.form-input-con.date.top.h-25 .form-input .control:focus+.calendar{bottom:25px}"]
|
|
242
|
-
},] }
|
|
243
|
-
];
|
|
244
|
-
FormDateComponent.ctorParameters = () => [];
|
|
245
|
-
FormDateComponent.propDecorators = {
|
|
246
|
-
inp: [{ type: Input }],
|
|
247
|
-
inForm: [{ type: Input }],
|
|
248
|
-
changeIndex: [{ type: Output }],
|
|
249
|
-
inputBase: [{ type: ViewChild, args: ['inputBase',] }],
|
|
250
|
-
inputDiv: [{ type: ViewChild, args: ['inputDiv',] }],
|
|
251
|
-
inputLabel: [{ type: ViewChild, args: ['inputLabel',] }],
|
|
252
|
-
inputCalendarDiv: [{ type: ViewChild, args: ['inputCalendarDiv',] }]
|
|
253
|
-
};
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJEOi9Qcm9qZWN0cy9Qc1Rvb2xraXQvVUkvcHJvamVjdHMvcHMtdG9vbGtpdC11aS9zcmMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9mb3JtL2RhdGUvZm9ybS5kYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsUUFBUSxFQUFhLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBT3ZELE1BQU0sT0FBTyxpQkFBaUI7SUFxQjVCO1FBZkEsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLGlCQUFZLEdBQWUsRUFBRSxDQUFDO1FBQzlCLGFBQVEsR0FBZSxFQUFFLENBQUM7UUFDMUIsU0FBSSxHQUFlLEVBQUUsQ0FBQztRQUl0QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFdBQU0sR0FBRyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakgsV0FBTSxHQUFrQixNQUFNLEVBQUUsQ0FBQztJQU1qQyxDQUFDO0lBQ0QsUUFBUTtRQUNOLHVCQUF1QjtRQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENB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QyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0QsV0FBVyxDQUFDLENBQVM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUNELFFBQVE7UUFDTixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEQsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQ0QsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7O1lBL09GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZUFBZTtnQkFDekIscXpHQUF5Qzs7YUFFMUM7Ozs7a0JBRUUsS0FBSztxQkFFTCxLQUFLOzBCQUVMLE1BQU07d0JBWU4sU0FBUyxTQUFDLFdBQVc7dUJBQ3JCLFNBQVMsU0FBQyxVQUFVO3lCQUNwQixTQUFTLFNBQUMsWUFBWTsrQkFDdEIsU0FBUyxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ2phbGFsaS1tb21lbnQnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7RGF5Q2xhc3MsIElucHV0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZm9ybS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRFcnJvcn0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnVtLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWZvcm0tZGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uZGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS5kYXRlLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybURhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQElucHV0KClcclxuICBpbnA6IElucHV0Q2xhc3M7XHJcbiAgQElucHV0KClcclxuICBpbkZvcm06IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpXHJcbiAgY2hhbmdlSW5kZXggPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBwcmV2aW91c0RheXM6IERheUNsYXNzW10gPSBbXTtcclxuICBuZXh0RGF5czogRGF5Q2xhc3NbXSA9IFtdO1xyXG4gIGRheXM6IERheUNsYXNzW10gPSBbXTtcclxuICB0b2RheURheTogbnVtYmVyO1xyXG4gIHRvZGF5TW9udGg6IG51bWJlcjtcclxuICB0b2RheVllYXI6IG51bWJlcjtcclxuICBjU2VhcmNoID0gJyc7XHJcbiAgc3RhdGUgPSAnZGF5JztcclxuICBtb250aHMgPSBbJ9mB2LHZiNix2K/bjNmGJywgJ9in2LHYr9uM2KjZh9i02KonLCAn2K7Ysdiv2KfYrycsICfYqtuM2LEnLCAn2YXYsdiv2KfYrycsICfYtNmH2LHbjNmI2LEnLCAn2YXZh9ixJywgJ9ii2KjYp9mGJywgJ9ii2LDYsScsICfYr9uMJywgJ9io2YfZhdmGJywgJ9in2LPZgdmG2K8nXTtcclxuICBhY3RpdmU6IG1vbWVudC5Nb21lbnQgPSBtb21lbnQoKTtcclxuICBAVmlld0NoaWxkKCdpbnB1dEJhc2UnKSBpbnB1dEJhc2U6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaW5wdXREaXYnKSBpbnB1dERpdjogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dExhYmVsJykgaW5wdXRMYWJlbDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdpbnB1dENhbGVuZGFyRGl2JykgaW5wdXRDYWxlbmRhckRpdjogRWxlbWVudFJlZjtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lke1xyXG4gICAgLy8gbW9tZW50LmxvY2FsZSgnZmEnKTtcclxuICAgIGNvbnN0IHRvZGF5ID0gbW9tZW50KCkubG9jYWxlKCdmYScpO1xyXG4gICAgdGhpcy50b2RheURheSA9IHBhcnNlSW50KHRvZGF5LmZvcm1hdCgnakREJyksIDEwKTtcclxuICAgIHRoaXMudG9kYXlNb250aCA9IHBhcnNlSW50KHRvZGF5LmZvcm1hdCgnak1NJyksIDEwKTtcclxuICAgIHRoaXMudG9kYXlZZWFyID0gcGFyc2VJbnQodG9kYXkuZm9ybWF0KCdqWVlZWScpLCAxMCk7XHJcbiAgICB0aGlzLnNldElucFZhbHVlKHRoaXMuaW5wLnZhbHVlKTtcclxuICAgIHRoaXMuaW5wLnNldFZhbHVlID0gKHYpID0+IHtcclxuICAgICAgdGhpcy5zZXRJbnBWYWx1ZSh2KTtcclxuICAgIH07XHJcbiAgICB0aGlzLmlucC5pc1ZhbGlkID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICAgIGlmICh0aGlzLmlucC5yZXF1aXJlZCAmJiAhdGhpcy5pbnAudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmlucC5lcnJvciA9IElucHV0RXJyb3IuUmVxdWlyZWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5pbnAucmVxdWlyZWQgJiYgIXRoaXMuaW5wLnZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFtb21lbnQodGhpcy5pbnAudmFsdWUsICdqWVlZWS9qTU0vakREJykuaXNWYWxpZCgpKSB7XHJcbiAgICAgICAgdGhpcy5pbnAuZXJyb3IgPSBJbnB1dEVycm9yLkludmFsaWQ7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmNsZWFyID0gKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pbnAuZGVmYXVsdCl7XHJcbiAgICAgICAgdGhpcy5pbnAuc2V0VmFsdWUodGhpcy5pbnAuZGVmYXVsdCwgZmFsc2UpO1xyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLmlucC52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5pbnAuc2VhcmNoID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmRhdGEgPSAoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmlucC52YWx1ZSA/IG1vbWVudCh0aGlzLmlucC52YWx1ZSwgJ2pZWVlZL2pNTS9qREQnKS5sb2NhbGUoJ2VuJykuZm9ybWF0KCdZWVlZL01NL0REJykgOiBudWxsO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzID0gKCkgPT4ge1xyXG4gICAgICB0aGlzLm9wZW5DYWxlbmRhcigpO1xyXG4gICAgfTtcclxuICAgIHRoaXMuaW5wLmZvY3VzT3V0ID0gKCkgPT4ge1xyXG4gICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgIH07XHJcbiAgfVxyXG4gIHNldElucFZhbHVlKHYpOiB2b2lke1xyXG4gICAgaWYgKHYgPT09IG51bGwpe1xyXG4gICAgICB0aGlzLmlucC5jbGVhcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2ID09PSAnc3RyaW5nJykge1xyXG4gICAgICBjb25zdCBkID0gcGFyc2VJbnQodi5zdWJzdHJpbmcoNiwgdi5sZW5ndGggLSAyKSwgMTApO1xyXG4gICAgICB0aGlzLmFjdGl2ZSA9IG1vbWVudChkKTtcclxuICAgIH1lbHNlIGlmICh0eXBlb2YgdiA9PT0gJ251bWJlcicpe1xyXG4gICAgICB0aGlzLmFjdGl2ZSA9IG1vbWVudCh2KTtcclxuICAgIH1lbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmUgPSB2O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmFjdGl2ZS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQnKTtcclxuICAgIHRoaXMuaW5wLnNlYXJjaCA9IHRoaXMuYWN0aXZlLmZvcm1hdCgnallZWVkvak1NL2pERCcpO1xyXG4gICAgdGhpcy5zZXREYXRlKCk7XHJcbiAgfVxyXG4gIHNldERhdGUoKTogdm9pZHtcclxuICAgIGNvbnN0IG4gPSB0aGlzLmFjdGl2ZS5jbG9uZSgpO1xyXG4gICAgY29uc3QgY291bnREYXlJbk1vbnRoID0gbi5kYXlzSW5Nb250aCgpO1xyXG4gICAgY29uc3Qgc3RhcnRXZWVrID0gcGFyc2VJbnQobi5zdGFydE9mKCdtb250aCcpLmZvcm1hdCgnZCcpLCAxMCk7XHJcbiAgICBjb25zdCBwcmV2aW91c01vbnRoID0gbi5zdWJ0cmFjdCgxLCAnbW9udGgnKTtcclxuICAgIGNvbnN0IGNvdW50RGF5SW5QcmV2aW91c01vbnRoID0gcHJldmlvdXNNb250aC5kYXlzSW5Nb250aCgpO1xyXG4gICAgY29uc3QgbmV4dE1vbnRoID0gbi5hZGQoMiwgJ21vbnRoJyk7XHJcbiAgICBjb25zdCBwcmV2aW91c0RheXM6IERheUNsYXNzW10gPSBbXTtcclxuICAgIGNvbnN0IG5leHREYXlzID0gW107XHJcbiAgICBjb25zdCBkYXlzID0gW107XHJcbiAgICBpZiAoc3RhcnRXZWVrICE9PSA2KXtcclxuICAgICAgZm9yIChsZXQgaSA9IGNvdW50RGF5SW5QcmV2aW91c01vbnRoIC0gc3RhcnRXZWVrOyBpIDw9IGNvdW50RGF5SW5QcmV2aW91c01vbnRoOyBpKyspe1xyXG4gICAgICAgIHByZXZpb3VzRGF5cy5wdXNoKG5ldyBEYXlDbGFzcyhpLCB0aGlzLmlzVG9kYXkocHJldmlvdXNNb250aCwgaSksIGZhbHNlKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDw9IGNvdW50RGF5SW5Nb250aDsgaSsrKXtcclxuICAgICAgZGF5cy5wdXNoKG5ldyBEYXlDbGFzcyhpLCB0aGlzLmlzVG9kYXkodGhpcy5hY3RpdmUsIGkpLCB0aGlzLmlzU2VsZWN0ZWQodGhpcy5hY3RpdmUsIGkpKSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBlbmQgPSAoZGF5cy5sZW5ndGggKyBwcmV2aW91c0RheXMubGVuZ3RoKSAlIDc7XHJcbiAgICBpZiAoZW5kICE9PSAwKXtcclxuICAgICAgZm9yIChsZXQgaSA9IDE7IGkgPD0gNyAtIGVuZDsgaSsrKXtcclxuICAgICAgICBuZXh0RGF5cy5wdXNoKG5ldyBEYXlDbGFzcyhpLCB0aGlzLmlzVG9kYXkobmV4dE1vbnRoLCBpKSwgZmFsc2UpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5wcmV2aW91c0RheXMgPSBwcmV2aW91c0RheXM7XHJcbiAgICB0aGlzLm5leHREYXlzID0gbmV4dERheXM7XHJcbiAgICB0aGlzLmRheXMgPSBkYXlzO1xyXG4gIH1cclxuICBpc1RvZGF5KG06IG1vbWVudC5Nb21lbnQsIGQ6IG51bWJlcik6IGJvb2xlYW57XHJcbiAgICBjb25zdCBtb250aCA9IHBhcnNlSW50KG0uZm9ybWF0KCdqTU0nKSwgMTApO1xyXG4gICAgY29uc3QgeWVhciA9IHBhcnNlSW50KG0uZm9ybWF0KCdqWVlZWScpLCAxMCk7XHJcbiAgICByZXR1cm4geWVhciA9PT0gdGhpcy50b2RheVllYXIgJiYgbW9udGggPT09IHRoaXMudG9kYXlNb250aCAmJiBkID09PSB0aGlzLnRvZGF5RGF5O1xyXG4gIH1cclxuICBpc1NlbGVjdGVkKG06IG1vbWVudC5Nb21lbnQsIGQ6IG51bWJlcik6IGJvb2xlYW57XHJcbiAgICBpZiAodGhpcy5pbnAudmFsdWUgPT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IG1vbnRoID0gcGFyc2VJbnQobS5mb3JtYXQoJ2pNTScpLCAxMCk7XHJcbiAgICBjb25zdCB5ZWFyID0gcGFyc2VJbnQobS5mb3JtYXQoJ2pZWVlZJyksIDEwKTtcclxuICAgIGNvbnN0IHZEYXkgPSBwYXJzZUludCh0aGlzLmlucC52YWx1ZS5zcGxpdCgnLycpWzJdLCAxMCk7XHJcbiAgICBjb25zdCB2TW9udGggPSBwYXJzZUludCh0aGlzLmlucC52YWx1ZS5zcGxpdCgnLycpWzFdLCAxMCk7XHJcbiAgICBjb25zdCB2WWVhciA9IHBhcnNlSW50KHRoaXMuaW5wLnZhbHVlLnNwbGl0KCcvJylbMF0sIDEwKTtcclxuICAgIHJldHVybiB5ZWFyID09PSB2WWVhciAmJiBtb250aCA9PT0gdk1vbnRoICYmIGQgPT09IHZEYXk7XHJcbiAgfVxyXG4gIGFkZChjOiBudW1iZXIpOiB2b2lke1xyXG4gICAgdGhpcy5hY3RpdmUuYWRkKGMsIHRoaXMuc3RhdGUgPT09ICdkYXknID8gJ21vbnRoJyA6ICd5ZWFyJyk7XHJcbiAgICB0aGlzLnNldERhdGUoKTtcclxuICB9XHJcbiAgY2hhbmdlTW9udGgoYzogbnVtYmVyKTogdm9pZHtcclxuICAgIHRoaXMuYWN0aXZlID0gbW9tZW50KHRoaXMuYWN0aXZlLmZvcm1hdCgnallZWVknKSArICcvJyArICgnMCcgKyBjKS5zbGljZSgtMikgKyAnLycgKyB0aGlzLmFjdGl2ZS5mb3JtYXQoJ2pERCcpLCAnallZWVkvak1NL2pERCcpO1xyXG4gICAgdGhpcy5zZXREYXRlKCk7XHJcbiAgICB0aGlzLmNoYW5nZVN0YXRlKCdkYXknKTtcclxuICB9XHJcbiAgY2hhbmdlWWVhcihjOiBudW1iZXIpOiB2b2lke1xyXG4gICAgdGhpcy5hY3RpdmUgPSBtb21lbnQoKCcwMDAnICsgYykuc2xpY2UoLTQpICsgJy8nICsgdGhpcy5hY3RpdmUuZm9ybWF0KCdqTU0nKSArICcvJyArIHRoaXMuYWN0aXZlLmZvcm1hdCgnakREJyksICdqWVlZWS9qTU0vakREJyk7XHJcbiAgICB0aGlzLnNldERhdGUoKTtcclxuICAgIHRoaXMuY2hhbmdlU3RhdGUoJ21vbnRoJyk7XHJcbiAgfVxyXG4gIHRvZ2dsZUNhbGVuZGFyKCk6IHZvaWR7XHJcbiAgICB0aGlzLm9wZW5DYWxlbmRhcigpO1xyXG4gIH1cclxuICBvcGVuQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKCk7XHJcbiAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XHJcbiAgfVxyXG4gIG9uS2V5RG93bihlKTogdm9pZHtcclxuICAgIGNvbnN0IGNvZGUgPSBlLmtleUNvZGUgfHwgZS53aGljaDtcclxuICAgIGlmIChjb2RlID09PSA5IHx8IGNvZGUgPT09IDEzKSB7XHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KGNvZGUgPT09IDkgPyBlLnNoaWZ0S2V5ID8gJ1NoaWZ0VGFiJyA6ICdUYWInIDogZS5zaGlmdEtleSA/ICdTaGlmdEVudGVyJyA6ICdFbnRlcicpO1xyXG4gICAgICBpZiAoIXRoaXMuaW5Gb3JtKXtcclxuICAgICAgICAkKHRoaXMuaW5wdXRCYXNlLm5hdGl2ZUVsZW1lbnQpLmJsdXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvbktleVVwKGUpOiB2b2lke1xyXG4gICAgdGhpcy5pbnAuZXJyb3IgPSBudWxsO1xyXG4gICAgdGhpcy5pbnAudmFsdWUgPSBudWxsO1xyXG4gICAgaWYgKHRoaXMuY1NlYXJjaCAhPT0gZS50YXJnZXQudmFsdWUpIHtcclxuICAgICAgdGhpcy5jU2VhcmNoID0gZS50YXJnZXQudmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlucC5zZWFyY2ggIT09ICcnICYmIHRoaXMuaW5wLnNlYXJjaCAhPT0gbnVsbCl7XHJcbiAgICAgICAgY29uc3QgdiA9IG1vbWVudCh0aGlzLmlucC5zZWFyY2gsICdqWVlZWS9qTU0vakREJyk7XHJcbiAgICAgICAgaWYgKHYuaXNWYWxpZCgpICYmIHRoaXMuaW5wLnNlYXJjaC5sZW5ndGggPD0gMTApe1xyXG4gICAgICAgICAgdGhpcy5hY3RpdmUgPSB2O1xyXG4gICAgICAgICAgdGhpcy5pbnAudmFsdWUgPSB0aGlzLmFjdGl2ZS5mb3JtYXQoJ2pZWVlZL2pNTS9qREQnKTtcclxuICAgICAgICAgIHRoaXMuc2V0RGF0ZSgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaW5wLm9uQ2hhbmdlKXtcclxuICAgICAgICAgICAgdGhpcy5pbnAub25DaGFuZ2UodGhpcy5pbnApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5zZXREYXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0RGF0ZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgICAgICB0aGlzLmlucC5vbkNoYW5nZSh0aGlzLmlucCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9uRm9jdXNPdXQoKTogdm9pZHtcclxuICAgICQodGhpcy5pbnB1dERpdi5uYXRpdmVFbGVtZW50KS5yZW1vdmVDbGFzcygndG9wJyk7XHJcbiAgICB0aGlzLmlucC5zZWFyY2ggPSB0aGlzLmlucC52YWx1ZTtcclxuICAgIHRoaXMuc3RhdGUgPSAnZGF5JztcclxuICB9XHJcbiAgc2V0UG9zaXRpb24oKTogdm9pZHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBvZmZzZXRPZkJvdHRvbSA9IHdpbmRvdy5pbm5lckhlaWdodCAtIHJlY3QuYm90dG9tO1xyXG4gICAgY29uc3QgaGVpZ2h0ID0gdGhpcy5pbnB1dENhbGVuZGFyRGl2Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0O1xyXG4gICAgaWYgKG9mZnNldE9mQm90dG9tIDwgaGVpZ2h0KXtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLmFkZENsYXNzKCd0b3AnKTtcclxuICAgIH1lbHNle1xyXG4gICAgICAkKHRoaXMuaW5wdXREaXYubmF0aXZlRWxlbWVudCkucmVtb3ZlQ2xhc3MoJ3RvcCcpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWxlY3REYXRlKGQ6IERheUNsYXNzKTogdm9pZCB7XHJcbiAgICB0aGlzLmlucC5lcnJvciA9IG51bGw7XHJcbiAgICBjb25zdCBzID0gdGhpcy5kYXlzLmZpbmQoeCA9PiB4LnNlbGVjdGVkKTtcclxuICAgIGlmIChzKXtcclxuICAgICAgcy5zZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbSA9IHBhcnNlSW50KHRoaXMuYWN0aXZlLmZvcm1hdCgnak1NJyksIDEwKTtcclxuICAgIGNvbnN0IHkgPSBwYXJzZUludCh0aGlzLmFjdGl2ZS5mb3JtYXQoJ2pZWVlZJyksIDEwKTtcclxuICAgIHRoaXMuc2V0VmFsdWUoeSwgbSwgZC5kYXkpO1xyXG4gICAgZC5zZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLmNTZWFyY2ggPSB0aGlzLmlucC5zZWFyY2g7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgJCh0aGlzLmlucHV0RGl2Lm5hdGl2ZUVsZW1lbnQpLnJlbW92ZUNsYXNzKCd0b3AnKTtcclxuICAgICAgdGhpcy5jaGFuZ2VJbmRleC5lbWl0KCdUYWInKTtcclxuICAgICAgaWYgKCF0aGlzLmluRm9ybSl7XHJcbiAgICAgICAgJCh0aGlzLmlucHV0QmFzZS5uYXRpdmVFbGVtZW50KS5ibHVyKCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDEwKTtcclxuICAgIGlmICh0aGlzLmlucC5vbkNoYW5nZSl7XHJcbiAgICAgIHRoaXMuaW5wLm9uQ2hhbmdlKHRoaXMuaW5wKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0VmFsdWUoeTogbnVtYmVyLCBtOiBudW1iZXIsIGQ6IG51bWJlcik6IHZvaWR7XHJcbiAgICB0aGlzLmlucC52YWx1ZSA9IHkgKyAnLycgKyAobSA+IDkgPyBtIDogJzAnICsgbSkgKyAnLycgKyAoZCA+IDkgPyBkIDogJzAnICsgZCk7XHJcbiAgICB0aGlzLmlucC5zZWFyY2ggPSB5ICsgJy8nICsgKG0gPiA5ID8gbSA6ICcwJyArIG0pICsgJy8nICsgKGQgPiA5ID8gZCA6ICcwJyArIGQpO1xyXG4gIH1cclxuICBjaGFuZ2VTdGF0ZShzOiBzdHJpbmcpOiB2b2lke1xyXG4gICAgdGhpcy5zdGF0ZSA9IHM7XHJcbiAgfVxyXG4gIGdldFllYXJzKCk6IG51bWJlcltde1xyXG4gICAgY29uc3QgeSA9IHBhcnNlSW50KHRoaXMuYWN0aXZlLmZvcm1hdCgnallZWVknKSwgMTApO1xyXG4gICAgY29uc3Qgc3kgPSB5IC0gKHkgJSAyMCk7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOiAyMH0sICh4LCBpKSA9PiBzeSArIGkpO1xyXG4gIH1cclxuICBnZXRBY3RpdmVNb250aCgpOiBzdHJpbmd7XHJcbiAgICByZXR1cm4gdGhpcy5tb250aHNbcGFyc2VJbnQodGhpcy5hY3RpdmUuZm9ybWF0KCdqTScpLCAxMCkgLSAxXTtcclxuICB9XHJcbn1cclxuIl19
|