@simpleangularcontrols/sac-common 16.0.0-rc.4 → 16.0.0-rc.6
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/common/basedatetimecontrol.d.ts.map +1 -1
- package/common/basemodelcontrol.d.ts +19 -1
- package/common/basemodelcontrol.d.ts.map +1 -1
- package/common/baseuploadcontrol.d.ts.map +1 -1
- package/components/browser/browser.d.ts +11 -6
- package/components/browser/browser.d.ts.map +1 -1
- package/controls/buttons/button.d.ts +23 -22
- package/controls/buttons/button.d.ts.map +1 -1
- package/controls/checkbox/radiobutton.d.ts +9 -0
- package/controls/checkbox/radiobutton.d.ts.map +1 -1
- package/controls/checkbox/radiobuttons.d.ts +20 -20
- package/controls/checkbox/radiobuttons.d.ts.map +1 -1
- package/controls/confirm/confirm.button.d.ts +14 -8
- package/controls/confirm/confirm.button.d.ts.map +1 -1
- package/controls/confirm/confirm.service.d.ts +24 -19
- package/controls/confirm/confirm.service.d.ts.map +1 -1
- package/controls/contextmenu/contextmenu.d.ts.map +1 -1
- package/controls/datetime/date.d.ts +33 -33
- package/controls/datetime/date.d.ts.map +1 -1
- package/controls/datetime/datetime.d.ts +31 -31
- package/controls/datetime/datetime.d.ts.map +1 -1
- package/controls/datetime/time.d.ts +29 -29
- package/controls/datetime/time.d.ts.map +1 -1
- package/controls/grid/grid.d.ts +57 -54
- package/controls/grid/grid.d.ts.map +1 -1
- package/controls/grid/paging.d.ts +70 -67
- package/controls/grid/paging.d.ts.map +1 -1
- package/controls/input/input.d.ts +11 -11
- package/controls/input/input.d.ts.map +1 -1
- package/controls/input/inputdecimal.d.ts.map +1 -1
- package/controls/input/inputemail.d.ts.map +1 -1
- package/controls/input/inputinteger.d.ts +21 -21
- package/controls/input/inputinteger.d.ts.map +1 -1
- package/controls/input/inputpassword.d.ts +5 -5
- package/controls/input/inputpassword.d.ts.map +1 -1
- package/controls/layout/formlayout.d.ts +14 -9
- package/controls/layout/formlayout.d.ts.map +1 -1
- package/controls/list/dropdown.d.ts.map +1 -1
- package/controls/list/listbox.d.ts +20 -20
- package/controls/list/listbox.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinput.d.ts +31 -31
- package/controls/multilanguage/multilanguageinput.d.ts.map +1 -1
- package/controls/multilanguage/multilanguageinputarea.d.ts +34 -34
- package/controls/multilanguage/multilanguageinputarea.d.ts.map +1 -1
- package/controls/tinymce/tinymce.d.ts.map +1 -1
- package/controls/upload/dropzonemultiple.d.ts +24 -24
- package/controls/upload/dropzonemultiple.d.ts.map +1 -1
- package/controls/upload/uploadmultiple.d.ts +9 -9
- package/controls/upload/uploadmultiple.d.ts.map +1 -1
- package/controls/validation/validationsummary.d.ts +18 -13
- package/controls/validation/validationsummary.d.ts.map +1 -1
- package/enums/ButtonRoleType.d.ts +2 -0
- package/enums/ButtonRoleType.d.ts.map +1 -0
- package/enums/ControlHeight.d.ts +18 -0
- package/enums/ControlHeight.d.ts.map +1 -0
- package/esm2022/common/basedatetimecontrol.mjs +32 -148
- package/esm2022/common/baseinputcontrol.mjs +20 -77
- package/esm2022/common/baselistcontrol.mjs +11 -56
- package/esm2022/common/basemodelcontrol.mjs +81 -408
- package/esm2022/common/baseselectcontrol.mjs +6 -27
- package/esm2022/common/baseuploadcontrol.mjs +64 -389
- package/esm2022/components/browser/browser.mjs +66 -474
- package/esm2022/components/browser/models/browserfile.mjs +3 -2
- package/esm2022/components/browser/models/browserfiledeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfilerenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browserfileresponse.mjs +3 -2
- package/esm2022/components/browser/models/browserfilesaverequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernode.mjs +3 -2
- package/esm2022/components/browser/models/browsernodedeleterequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernodenewrequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderenamerequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderequest.mjs +5 -10
- package/esm2022/components/browser/models/browsernoderesponse.mjs +3 -2
- package/esm2022/controls/buttons/button.mjs +32 -131
- package/esm2022/controls/checkbox/checkbox.mjs +7 -34
- package/esm2022/controls/checkbox/radiobutton.mjs +24 -98
- package/esm2022/controls/checkbox/radiobuttons.mjs +26 -104
- package/esm2022/controls/confirm/confirm.button.mjs +17 -21
- package/esm2022/controls/confirm/confirm.mjs +19 -69
- package/esm2022/controls/confirm/confirm.service.mjs +29 -74
- package/esm2022/controls/contextmenu/contextmenu.mjs +31 -169
- package/esm2022/controls/contextmenu/contextmenuanchor.mjs +7 -20
- package/esm2022/controls/contextmenu/contextmenucontainer.mjs +7 -20
- package/esm2022/controls/contextmenu/contextmenuitem.mjs +4 -13
- package/esm2022/controls/contextmenu/contextmenuitembutton.mjs +15 -91
- package/esm2022/controls/datetime/date.mjs +39 -203
- package/esm2022/controls/datetime/dateselector.mjs +65 -409
- package/esm2022/controls/datetime/datetime.mjs +41 -220
- package/esm2022/controls/datetime/time.mjs +38 -201
- package/esm2022/controls/dialog/dialog.mjs +33 -194
- package/esm2022/controls/form/form.mjs +24 -96
- package/esm2022/controls/grid/grid.mjs +39 -146
- package/esm2022/controls/grid/gridbutton.mjs +9 -52
- package/esm2022/controls/grid/gridcolumn.mjs +9 -41
- package/esm2022/controls/grid/gridcolumnaction.mjs +5 -20
- package/esm2022/controls/grid/gridcolumnbase.mjs +20 -114
- package/esm2022/controls/grid/gridimage.mjs +4 -15
- package/esm2022/controls/grid/model.mjs +16 -59
- package/esm2022/controls/grid/paging.mjs +65 -232
- package/esm2022/controls/input/input.mjs +17 -65
- package/esm2022/controls/input/inputarea.mjs +10 -53
- package/esm2022/controls/input/inputcurrency.mjs +4 -14
- package/esm2022/controls/input/inputdecimal.mjs +25 -140
- package/esm2022/controls/input/inputemail.mjs +10 -37
- package/esm2022/controls/input/inputinteger.mjs +32 -127
- package/esm2022/controls/input/inputpassword.mjs +12 -43
- package/esm2022/controls/input/inputsearch.mjs +8 -37
- package/esm2022/controls/layout/formlayout.mjs +20 -65
- package/esm2022/controls/list/dropdown.mjs +54 -219
- package/esm2022/controls/list/listbox.mjs +40 -159
- package/esm2022/controls/multilanguage/multilanguageinput.mjs +45 -213
- package/esm2022/controls/multilanguage/multilanguageinputarea.mjs +48 -215
- package/esm2022/controls/static/formcontainer.mjs +10 -44
- package/esm2022/controls/static/staticlabel.mjs +7 -28
- package/esm2022/controls/tabs/tab.mjs +14 -68
- package/esm2022/controls/tabs/tabitem.mjs +7 -37
- package/esm2022/controls/tinymce/tinymce.mjs +41 -218
- package/esm2022/controls/tinymce/tinymcedialogsettings.mjs +5 -10
- package/esm2022/controls/tinymce/tinymcedialogsettingsmeta.mjs +4 -4
- package/esm2022/controls/tinymce/tinymceinstance.mjs +3 -2
- package/esm2022/controls/tooltip/tooltip.mjs +46 -327
- package/esm2022/controls/treeview/ngtreeitemaction.mjs +9 -56
- package/esm2022/controls/treeview/treeview.mjs +53 -299
- package/esm2022/controls/treeview/treeviewchild.mjs +5 -19
- package/esm2022/controls/upload/dropzonemultiple.mjs +32 -152
- package/esm2022/controls/upload/dropzonesingle.mjs +12 -91
- package/esm2022/controls/upload/uploadmultiple.mjs +21 -111
- package/esm2022/controls/upload/uploadsingle.mjs +8 -50
- package/esm2022/controls/validation/validationsummary.mjs +23 -120
- package/esm2022/controls/wizard/wizard.mjs +20 -128
- package/esm2022/controls/wizard/wizarditem.mjs +6 -31
- package/esm2022/enums/ButtonRoleType.mjs +3 -0
- package/esm2022/enums/ControlHeight.mjs +11 -0
- package/esm2022/enums/IconType.mjs +4 -8
- package/esm2022/interfaces/ISacConfigurationService.mjs +3 -2
- package/esm2022/interfaces/ISacFileBrowserService.mjs +3 -2
- package/esm2022/interfaces/ISacIconService.mjs +3 -2
- package/esm2022/interfaces/ISacLabelSizes.mjs +3 -2
- package/esm2022/interfaces/ISacLanguageService.mjs +3 -2
- package/esm2022/interfaces/ISacLocalisationService.mjs +3 -2
- package/esm2022/interfaces/ISacValidationKeyService.mjs +3 -0
- package/esm2022/interfaces/iabstractcontrollabel.mjs +3 -2
- package/esm2022/interfaces/iconfirmcomponent.mjs +3 -2
- package/esm2022/interfaces/idatetimecontrol.mjs +3 -2
- package/esm2022/interfaces/iuploadcontrol.mjs +3 -2
- package/esm2022/models/languagemodel.mjs +5 -11
- package/esm2022/public_api.mjs +23 -95
- package/esm2022/services/index.mjs +3 -6
- package/esm2022/services/sac-configuration.service.mjs +13 -59
- package/esm2022/services/sac-filebrowser.service.mjs +15 -167
- package/esm2022/services/sac-icon.service.mjs +49 -155
- package/esm2022/services/sac-language.service.mjs +7 -45
- package/esm2022/services/sac-localisation.service.mjs +33 -428
- package/esm2022/services/sac-validationkey.service.mjs +7 -0
- package/esm2022/simpleangularcontrols-sac-common.mjs +4 -4
- package/esm2022/utilities/convertion.mjs +6 -26
- package/esm2022/utilities/datatypes.mjs +4 -6
- package/esm2022/utilities/enums.mjs +8 -15
- package/esm2022/utilities/guid.mjs +5 -15
- package/esm2022/utilities/interpolation.mjs +7 -42
- package/esm2022/utilities/positioning.mjs +23 -266
- package/esm2022/validation/email.validator.mjs +3 -13
- package/esm2022/validation/index.mjs +3 -3
- package/esm2022/validation/invaliddate.validator.mjs +3 -14
- package/esm2022/validation/isDateValid.mjs +5 -14
- package/esm2022/validation/maxdate.validator.mjs +4 -21
- package/esm2022/validation/maxtime.validator.mjs +4 -21
- package/esm2022/validation/maxvalue.validator.mjs +3 -16
- package/esm2022/validation/mindate.validator.mjs +4 -21
- package/esm2022/validation/minfiles.validator.mjs +4 -19
- package/esm2022/validation/minlength.validator.mjs +3 -21
- package/esm2022/validation/mintime.validator.mjs +4 -21
- package/esm2022/validation/minvalue.validator.mjs +3 -16
- package/esm2022/validation/multilanguagerequired.validator.mjs +3 -22
- package/esm2022/validation/multilanguagerequiredany.validator.mjs +3 -22
- package/esm2022/validation/pattern.validator.mjs +3 -16
- package/esm2022/validation/required.validator.mjs +3 -13
- package/esm2022/validation/validation.mjs +20 -99
- package/esm2022/validation/validationerrorcreator.mjs +3 -11
- package/esm2022/validation/validationerroritem.mjs +7 -19
- package/fesm2022/simpleangularcontrols-sac-common.mjs +1625 -9018
- package/fesm2022/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/interfaces/ISacConfigurationService.d.ts +5 -0
- package/interfaces/ISacConfigurationService.d.ts.map +1 -1
- package/interfaces/ISacValidationKeyService.d.ts +53 -0
- package/interfaces/ISacValidationKeyService.d.ts.map +1 -0
- package/package.json +1 -1
- package/public_api.d.ts +4 -1
- package/public_api.d.ts.map +1 -1
- package/services/index.d.ts +1 -0
- package/services/index.d.ts.map +1 -1
- package/services/sac-configuration.service.d.ts +6 -0
- package/services/sac-configuration.service.d.ts.map +1 -1
- package/services/sac-localisation.service.d.ts +103 -97
- package/services/sac-localisation.service.d.ts.map +1 -1
- package/services/sac-validationkey.service.d.ts +59 -0
- package/services/sac-validationkey.service.d.ts.map +1 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.6.tgz +0 -0
- package/simpleangularcontrols-sac-common-16.0.0-rc.4.tgz +0 -0
|
@@ -1,254 +1,87 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import
|
|
3
|
-
import { PagerRequest } from './model';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
1
|
+
function cov_22wr2lg5mj(){var path="C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\controls\\grid\\paging.mjs";var hash="ada5b2fa9a634e0a9f12361b987477fd85fce2fc";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"C:\\Projekte\\simpleangularcontrols-ng16\\ch.jnetwork.sac-controls\\dist\\sac-common\\esm2022\\controls\\grid\\paging.mjs",statementMap:{"0":{start:{line:22,column:8},end:{line:22,column:31}},"1":{start:{line:26,column:8},end:{line:26,column:38}},"2":{start:{line:32,column:8},end:{line:32,column:37}},"3":{start:{line:38,column:8},end:{line:38,column:31}},"4":{start:{line:45,column:8},end:{line:45,column:29}},"5":{start:{line:49,column:8},end:{line:49,column:41}},"6":{start:{line:53,column:8},end:{line:53,column:33}},"7":{start:{line:57,column:8},end:{line:57,column:32}},"8":{start:{line:61,column:8},end:{line:61,column:31}},"9":{start:{line:65,column:8},end:{line:65,column:27}},"10":{start:{line:69,column:8},end:{line:69,column:29}},"11":{start:{line:70,column:8},end:{line:70,column:113}},"12":{start:{line:72,column:8},end:{line:72,column:68}},"13":{start:{line:73,column:8},end:{line:73,column:65}},"14":{start:{line:74,column:8},end:{line:74,column:134}},"15":{start:{line:82,column:8},end:{line:86,column:9}},"16":{start:{line:83,column:12},end:{line:83,column:49}},"17":{start:{line:84,column:12},end:{line:84,column:54}},"18":{start:{line:85,column:12},end:{line:85,column:39}},"19":{start:{line:87,column:8},end:{line:87,column:27}},"20":{start:{line:93,column:8},end:{line:93,column:68}},"21":{start:{line:99,column:8},end:{line:102,column:11}},"22":{start:{line:108,column:8},end:{line:108,column:67}},"23":{start:{line:108,column:54},end:{line:108,column:65}},"24":{start:{line:117,column:8},end:{line:119,column:9}},"25":{start:{line:118,column:12},end:{line:118,column:37}},"26":{start:{line:126,column:26},end:{line:126,column:73}},"27":{start:{line:127,column:8},end:{line:127,column:36}},"28":{start:{line:133,column:8},end:{line:135,column:9}},"29":{start:{line:134,column:12},end:{line:134,column:26}},"30":{start:{line:141,column:8},end:{line:141,column:40}},"31":{start:{line:147,column:8},end:{line:147,column:38}},"32":{start:{line:153,column:8},end:{line:155,column:9}},"33":{start:{line:154,column:12},end:{line:154,column:43}},"34":{start:{line:161,column:8},end:{line:163,column:9}},"35":{start:{line:162,column:12},end:{line:162,column:49}},"36":{start:{line:169,column:8},end:{line:171,column:9}},"37":{start:{line:170,column:12},end:{line:170,column:49}},"38":{start:{line:179,column:8},end:{line:179,column:29}},"39":{start:{line:180,column:8},end:{line:200,column:9}},"40":{start:{line:181,column:33},end:{line:181,column:78}},"41":{start:{line:183,column:12},end:{line:185,column:13}},"42":{start:{line:184,column:16},end:{line:184,column:35}},"43":{start:{line:187,column:12},end:{line:187,column:52}},"44":{start:{line:188,column:35},end:{line:188,column:73}},"45":{start:{line:189,column:33},end:{line:189,column:69}},"46":{start:{line:191,column:12},end:{line:193,column:13}},"47":{start:{line:192,column:16},end:{line:192,column:58}},"48":{start:{line:194,column:12},end:{line:196,column:13}},"49":{start:{line:194,column:25},end:{line:194,column:39}},"50":{start:{line:195,column:16},end:{line:195,column:40}},"51":{start:{line:199,column:12},end:{line:199,column:36}},"52":{start:{line:207,column:34},end:{line:207,column:58}},"53":{start:{line:208,column:35},end:{line:208,column:82}},"54":{start:{line:209,column:8},end:{line:214,column:9}},"55":{start:{line:210,column:12},end:{line:210,column:53}},"56":{start:{line:212,column:13},end:{line:214,column:9}},"57":{start:{line:213,column:12},end:{line:213,column:53}},"58":{start:{line:215,column:8},end:{line:215,column:35}},"59":{start:{line:222,column:36},end:{line:222,column:37}},"60":{start:{line:223,column:8},end:{line:223,column:57}},"61":{start:{line:224,column:8},end:{line:226,column:9}},"62":{start:{line:225,column:12},end:{line:225,column:55}},"63":{start:{line:227,column:8},end:{line:229,column:9}},"64":{start:{line:228,column:12},end:{line:228,column:38}},"65":{start:{line:230,column:8},end:{line:230,column:37}},"66":{start:{line:236,column:26},end:{line:236,column:71}},"67":{start:{line:237,column:8},end:{line:237,column:36}},"68":{start:{line:239,column:13},end:{line:239,column:200}},"69":{start:{line:240,column:13},end:{line:240,column:331}},"70":{start:{line:243,column:0},end:{line:259,column:20}},"71":{start:{line:245,column:42},end:{line:245,column:73}}},fnMap:{"0":{name:"(anonymous_0)",decl:{start:{line:18,column:4},end:{line:18,column:5}},loc:{start:{line:18,column:26},end:{line:75,column:5}},line:18},"1":{name:"(anonymous_1)",decl:{start:{line:81,column:4},end:{line:81,column:5}},loc:{start:{line:81,column:21},end:{line:88,column:5}},line:81},"2":{name:"(anonymous_2)",decl:{start:{line:92,column:4},end:{line:92,column:5}},loc:{start:{line:92,column:23},end:{line:94,column:5}},line:92},"3":{name:"(anonymous_3)",decl:{start:{line:98,column:4},end:{line:98,column:5}},loc:{start:{line:98,column:21},end:{line:103,column:5}},line:98},"4":{name:"(anonymous_4)",decl:{start:{line:107,column:4},end:{line:107,column:5}},loc:{start:{line:107,column:23},end:{line:109,column:5}},line:107},"5":{name:"(anonymous_5)",decl:{start:{line:108,column:45},end:{line:108,column:46}},loc:{start:{line:108,column:54},end:{line:108,column:65}},line:108},"6":{name:"(anonymous_6)",decl:{start:{line:116,column:4},end:{line:116,column:5}},loc:{start:{line:116,column:29},end:{line:120,column:5}},line:116},"7":{name:"(anonymous_7)",decl:{start:{line:125,column:4},end:{line:125,column:5}},loc:{start:{line:125,column:28},end:{line:128,column:5}},line:125},"8":{name:"(anonymous_8)",decl:{start:{line:132,column:4},end:{line:132,column:5}},loc:{start:{line:132,column:16},end:{line:136,column:5}},line:132},"9":{name:"(anonymous_9)",decl:{start:{line:140,column:4},end:{line:140,column:5}},loc:{start:{line:140,column:27},end:{line:142,column:5}},line:140},"10":{name:"(anonymous_10)",decl:{start:{line:146,column:4},end:{line:146,column:5}},loc:{start:{line:146,column:25},end:{line:148,column:5}},line:146},"11":{name:"(anonymous_11)",decl:{start:{line:152,column:4},end:{line:152,column:5}},loc:{start:{line:152,column:15},end:{line:156,column:5}},line:152},"12":{name:"(anonymous_12)",decl:{start:{line:160,column:4},end:{line:160,column:5}},loc:{start:{line:160,column:15},end:{line:164,column:5}},line:160},"13":{name:"(anonymous_13)",decl:{start:{line:168,column:4},end:{line:168,column:5}},loc:{start:{line:168,column:19},end:{line:172,column:5}},line:168},"14":{name:"(anonymous_14)",decl:{start:{line:178,column:4},end:{line:178,column:5}},loc:{start:{line:178,column:18},end:{line:201,column:5}},line:178},"15":{name:"(anonymous_15)",decl:{start:{line:206,column:4},end:{line:206,column:5}},loc:{start:{line:206,column:36},end:{line:216,column:5}},line:206},"16":{name:"(anonymous_16)",decl:{start:{line:221,column:4},end:{line:221,column:5}},loc:{start:{line:221,column:38},end:{line:231,column:5}},line:221},"17":{name:"(anonymous_17)",decl:{start:{line:235,column:4},end:{line:235,column:5}},loc:{start:{line:235,column:24},end:{line:238,column:5}},line:235},"18":{name:"(anonymous_18)",decl:{start:{line:245,column:28},end:{line:245,column:29}},loc:{start:{line:245,column:40},end:{line:245,column:75}},line:245}},branchMap:{"0":{loc:{start:{line:82,column:8},end:{line:86,column:9}},type:"if",locations:[{start:{line:82,column:8},end:{line:86,column:9}},{start:{line:82,column:8},end:{line:86,column:9}}],line:82},"1":{loc:{start:{line:117,column:8},end:{line:119,column:9}},type:"if",locations:[{start:{line:117,column:8},end:{line:119,column:9}},{start:{line:117,column:8},end:{line:119,column:9}}],line:117},"2":{loc:{start:{line:133,column:8},end:{line:135,column:9}},type:"if",locations:[{start:{line:133,column:8},end:{line:135,column:9}},{start:{line:133,column:8},end:{line:135,column:9}}],line:133},"3":{loc:{start:{line:153,column:8},end:{line:155,column:9}},type:"if",locations:[{start:{line:153,column:8},end:{line:155,column:9}},{start:{line:153,column:8},end:{line:155,column:9}}],line:153},"4":{loc:{start:{line:161,column:8},end:{line:163,column:9}},type:"if",locations:[{start:{line:161,column:8},end:{line:163,column:9}},{start:{line:161,column:8},end:{line:163,column:9}}],line:161},"5":{loc:{start:{line:169,column:8},end:{line:171,column:9}},type:"if",locations:[{start:{line:169,column:8},end:{line:171,column:9}},{start:{line:169,column:8},end:{line:171,column:9}}],line:169},"6":{loc:{start:{line:180,column:8},end:{line:200,column:9}},type:"if",locations:[{start:{line:180,column:8},end:{line:200,column:9}},{start:{line:180,column:8},end:{line:200,column:9}}],line:180},"7":{loc:{start:{line:183,column:12},end:{line:185,column:13}},type:"if",locations:[{start:{line:183,column:12},end:{line:185,column:13}},{start:{line:183,column:12},end:{line:185,column:13}}],line:183},"8":{loc:{start:{line:191,column:12},end:{line:193,column:13}},type:"if",locations:[{start:{line:191,column:12},end:{line:193,column:13}},{start:{line:191,column:12},end:{line:193,column:13}}],line:191},"9":{loc:{start:{line:208,column:35},end:{line:208,column:82}},type:"cond-expr",locations:[{start:{line:208,column:60},end:{line:208,column:78}},{start:{line:208,column:81},end:{line:208,column:82}}],line:208},"10":{loc:{start:{line:209,column:8},end:{line:214,column:9}},type:"if",locations:[{start:{line:209,column:8},end:{line:214,column:9}},{start:{line:209,column:8},end:{line:214,column:9}}],line:209},"11":{loc:{start:{line:212,column:13},end:{line:214,column:9}},type:"if",locations:[{start:{line:212,column:13},end:{line:214,column:9}},{start:{line:212,column:13},end:{line:214,column:9}}],line:212},"12":{loc:{start:{line:224,column:8},end:{line:226,column:9}},type:"if",locations:[{start:{line:224,column:8},end:{line:226,column:9}},{start:{line:224,column:8},end:{line:226,column:9}}],line:224},"13":{loc:{start:{line:227,column:8},end:{line:229,column:9}},type:"if",locations:[{start:{line:227,column:8},end:{line:229,column:9}},{start:{line:227,column:8},end:{line:229,column:9}}],line:227}},s:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0},f:{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0},b:{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0]},inputSourceMap:{version:3,file:"paging.js",sourceRoot:"",sources:["../../../../../projects/sac-common/src/controls/grid/paging.ts"],names:[],mappings:"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",sourcesContent:["import {\r\n Directive,\r\n EventEmitter,\r\n Injector,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ISacLocalisationService } from '../../interfaces/ISacLocalisationService';\r\nimport { ISacValidationKeyService } from '../../interfaces/ISacValidationKeyService';\r\nimport {\r\n SACLOCALISATION_SERVICE,\r\n SacDefaultLocalisationService,\r\n} from '../../services/sac-localisation.service';\r\nimport {\r\n SACVALIDATIONKEY_SERVICE,\r\n SacDefaultValidationKeyService,\r\n} from '../../services/sac-validationkey.service';\r\nimport { PagerData, PagerRequest } from './model';\r\n\r\n/**\r\n * Basiskomponente f\xFCr Paging\r\n */\r\n@Directive()\r\nexport abstract class SacPagingCommon {\r\n // #region Properties\r\n\r\n /**\r\n * Service to receive standard validation message keys and texts\r\n */\r\n private validationKeyService: ISacValidationKeyService;\r\n\r\n /**\r\n * Service f\xFCr Error Localisation\r\n */\r\n protected lngResourceService: ISacLocalisationService;\r\n /**\r\n * Total Anzahl Rows\r\n */\r\n protected totalRowCount: number = 0;\r\n\r\n /**\r\n * Name des Grids. Wird f\xFCr ID und Name Bezeichnungen verwendet\r\n */\r\n @Input()\r\n public name: string;\r\n /**\r\n * Auswahl der Seitengr\xF6sse deaktivieren\r\n */\r\n @Input()\r\n public pagesizedisabled: boolean = false;\r\n /**\r\n * Text in Page f\xFCr Anzahl Seitenelemente pro Seite\r\n * Folgende Interpolation Texte sind vorhanden:\r\n * {{PAGESIZE}}: Anzahl Elemente pro Seite\r\n */\r\n @Input()\r\n public pagesizes: string = '20|50|100';\r\n /**\r\n * Text in Page f\xFCr Anzahl Seitenelemente pro Seite\r\n * Folgende Interpolation Texte sind vorhanden:\r\n * {{PAGESIZE}}: Anzahl Elemente pro Seite\r\n */\r\n @Input()\r\n public pagesizetext: string = '';\r\n /**\r\n * Text in Pager f\xFCr 'Seite x von y'.\r\n * Folgende Interpolation Texte sind vorhanden:\r\n * {{CURRENTPAGE}}: Aktuelle Seite\r\n * {{TOTALPAGES}}: Anzahl Seiten\r\n */\r\n @Input()\r\n public pagingtext: string = '';\r\n /**\r\n * Event wenn im Grid die Seite ge\xE4ndert wird. Als Parameter wird der neue PageIndex mitgegeben.\r\n */\r\n @Output()\r\n public paging: EventEmitter<PagerRequest> = new EventEmitter<PagerRequest>();\r\n\r\n /**\r\n * Aktiver Seitenindex\r\n */\r\n public activePageIndex: number = 0;\r\n /**\r\n * Erster Seitenindex\r\n */\r\n public firstPageIndex: number = 0;\r\n /**\r\n * Letzter Seitenindex\r\n */\r\n public lastPageIndex: number = 0;\r\n /**\r\n * Anzahl Elemente pro Seite\r\n */\r\n public pageSize: number = 20;\r\n /**\r\n * Item f\xFCr jedes Paging Element (Seitenzahl)\r\n */\r\n public paginators: Array<any> = [];\r\n\r\n // #endregion Properties\r\n\r\n // #region Constructors\r\n\r\n /**\r\n * Konstruktor\r\n * Inject des Formulars\r\n * @parent SacFormCommon\r\n * @injector Injector\r\n */\r\n constructor(injector: Injector) {\r\n this.validationKeyService = injector.get(\r\n SACVALIDATIONKEY_SERVICE,\r\n new SacDefaultValidationKeyService()\r\n );\r\n\r\n // Set Default Values from Injector\r\n this.pagesizetext = this.validationKeyService.PagingEntries;\r\n this.pagingtext = this.validationKeyService.PagingPageOf;\r\n\r\n this.lngResourceService = injector.get(\r\n SACLOCALISATION_SERVICE,\r\n new SacDefaultLocalisationService(this.validationKeyService)\r\n );\r\n }\r\n\r\n // #endregion Constructors\r\n\r\n // #region Public Getters And Setters\r\n\r\n /**\r\n * Property f\xFCr Pager Data\r\n */\r\n @Input()\r\n public set pagerdata(p: PagerData) {\r\n if (p != null) {\r\n this.totalRowCount = p.TotalRowCount;\r\n this.activePageIndex = p.CurrentPageIndex;\r\n this.pageSize = p.PageSize;\r\n }\r\n\r\n this.createPager();\r\n }\r\n\r\n /**\r\n * Property mit Text f\xFCr Total Eintr\xE4ge in Seite\r\n */\r\n public get PageSizeText(): Observable<string> {\r\n return this.lngResourceService.GetString(this.pagesizetext);\r\n }\r\n\r\n /**\r\n * Text mit Aktueller Seite und Total Seiten\r\n */\r\n public get PagingText(): Observable<string> {\r\n return this.lngResourceService.GetString(this.pagingtext, {\r\n CURRENTPAGE: this.getCurrentPageNumber(),\r\n TOTALPAGES: this.getTotalPageNumber(),\r\n });\r\n }\r\n\r\n /**\r\n * Gibt die Page Sizes als Number Array zur\xFCck\r\n */\r\n public get getPageSizes(): number[] {\r\n return this.pagesizes.split('|').map((itm) => Number(itm));\r\n }\r\n\r\n // #endregion Public Getters And Setters\r\n\r\n // #region Public Methods\r\n\r\n /**\r\n * Andert die Seite auf den neuen Index\r\n * @param newPageIndex Seiten Index. Dies entspricht der Seitenzahl - 1.\r\n */\r\n public changePage(newPageIndex: number) {\r\n if (this.activePageIndex !== newPageIndex) {\r\n this.paged(newPageIndex);\r\n }\r\n }\r\n\r\n /**\r\n * \xC4ndert die Seitengr\xF6sse im Pager\r\n * @param newSize Neue Anzahl Elemente pro Seite\r\n */\r\n public changePageSize(newSize: number) {\r\n const pagerData: PagerRequest = new PagerRequest(\r\n newSize,\r\n this.activePageIndex\r\n );\r\n this.paging.emit(pagerData);\r\n }\r\n\r\n /**\r\n * Paging auf 1. Seite\r\n */\r\n public firstPage() {\r\n if (this.activePageIndex !== this.firstPageIndex) {\r\n this.paged(0);\r\n }\r\n }\r\n\r\n /**\r\n * Gibt die aktuelle Seitenzahl zur\xFCck\r\n */\r\n public getCurrentPageNumber(): number {\r\n return this.activePageIndex + 1;\r\n }\r\n\r\n /**\r\n * Gibt die totale Anzahl Seiten zur\xFCck\r\n */\r\n public getTotalPageNumber(): number {\r\n return this.lastPageIndex + 1;\r\n }\r\n\r\n /**\r\n * Paging auf letzter Seite\r\n */\r\n public lastPage() {\r\n if (this.activePageIndex !== this.lastPageIndex) {\r\n this.paged(this.lastPageIndex);\r\n }\r\n }\r\n\r\n /**\r\n * Paging auf n\xE4chste Seite\r\n */\r\n public nextPage() {\r\n if (this.activePageIndex !== this.lastPageIndex) {\r\n this.paged(this.activePageIndex + 1);\r\n }\r\n }\r\n\r\n /**\r\n * Paging eine Seite zur\xFCck\r\n */\r\n public previousPage() {\r\n if (this.activePageIndex !== this.firstPageIndex) {\r\n this.paged(this.activePageIndex - 1);\r\n }\r\n }\r\n\r\n // #endregion Public Methods\r\n\r\n // #region Protected Methods\r\n\r\n /**\r\n * Erzeugt die Pager Daten\r\n */\r\n protected createPager() {\r\n this.paginators = [];\r\n\r\n if (this.totalRowCount > 0) {\r\n let totalPageCount = Math.ceil(this.totalRowCount / this.pageSize);\r\n\r\n // PageCount auf 1 stellen, wenn keine Records vorhanden sind.\r\n if (totalPageCount === 0) {\r\n totalPageCount = 1;\r\n }\r\n\r\n // PageIndex berechnen\r\n this.lastPageIndex = totalPageCount - 1;\r\n const startPageIndex = this.getStartPageIndex(totalPageCount);\r\n const endPageIndex = this.getEndPageIndex(totalPageCount);\r\n\r\n // Index Fix wenn Aktive Seite gr\xF6sser als letze Seite\r\n if (this.activePageIndex > this.lastPageIndex) {\r\n this.activePageIndex = this.lastPageIndex;\r\n }\r\n\r\n for (let i = startPageIndex; i <= endPageIndex; i++) {\r\n this.paginators.push(i);\r\n }\r\n } else {\r\n this.paginators.push(0);\r\n }\r\n }\r\n\r\n /**\r\n * Gibt den letzten Seitenindex zur\xFCck.\r\n * @param totalPageCount Total Anzahl Seiten\r\n */\r\n protected getEndPageIndex(totalPageCount: number): number {\r\n let endingPageToDisplay = this.activePageIndex + 2;\r\n const maxEndingPageIndex = 4 > totalPageCount - 1 ? totalPageCount - 1 : 4;\r\n\r\n if (endingPageToDisplay > totalPageCount - 1) {\r\n endingPageToDisplay = totalPageCount - 1;\r\n } else if (this.activePageIndex < 2) {\r\n endingPageToDisplay = maxEndingPageIndex;\r\n }\r\n return endingPageToDisplay;\r\n }\r\n\r\n /**\r\n * Gibt den Start Index zur\xFCck\r\n * @param totalPageCount Total Anzahl Seiten\r\n */\r\n protected getStartPageIndex(totalPageCount: number): number {\r\n let startingPageToDisplay: number = 0;\r\n startingPageToDisplay = this.activePageIndex - 2;\r\n\r\n if (totalPageCount - this.activePageIndex - 1 < 2) {\r\n startingPageToDisplay = totalPageCount - 5;\r\n }\r\n\r\n if (startingPageToDisplay < 0) {\r\n startingPageToDisplay = 0;\r\n }\r\n return startingPageToDisplay;\r\n }\r\n\r\n /**\r\n * Methode l\xF6st den Event aus, dass ein Paging stattgefunden hat\r\n */\r\n protected paged(newPageIndex: number) {\r\n const pagerData: PagerRequest = new PagerRequest(\r\n this.pageSize,\r\n newPageIndex\r\n );\r\n this.paging.emit(pagerData);\r\n }\r\n\r\n // #endregion Protected Methods\r\n}\r\n"]},_coverageSchema:"1a1c01bbd47fc00a2c39e90264f33305004495a9",hash:"ada5b2fa9a634e0a9f12361b987477fd85fce2fc"};var coverage=global[gcv]||(global[gcv]={});if(!coverage[path]||coverage[path].hash!==hash){coverage[path]=coverageData;}var actualCoverage=coverage[path];{// @ts-ignore
|
|
2
|
+
cov_22wr2lg5mj=function(){return actualCoverage;};}return actualCoverage;}cov_22wr2lg5mj();import{Directive,EventEmitter,Input,Output}from'@angular/core';import{SACLOCALISATION_SERVICE,SacDefaultLocalisationService}from'../../services/sac-localisation.service';import{SACVALIDATIONKEY_SERVICE,SacDefaultValidationKeyService}from'../../services/sac-validationkey.service';import{PagerRequest}from'./model';import*as i0 from"@angular/core";/**
|
|
6
3
|
* Basiskomponente für Paging
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
4
|
+
*/class SacPagingCommon{// #endregion Properties
|
|
5
|
+
// #region Constructors
|
|
6
|
+
/**
|
|
11
7
|
* Konstruktor
|
|
12
8
|
* Inject des Formulars
|
|
13
9
|
* @parent SacFormCommon
|
|
14
10
|
* @injector Injector
|
|
15
|
-
*/
|
|
16
|
-
constructor(injector) {
|
|
17
|
-
this.injector = injector;
|
|
18
|
-
/**
|
|
19
|
-
* Item für jedes Paging Element (Seitenzahl)
|
|
20
|
-
*/
|
|
21
|
-
this.paginators = [];
|
|
22
|
-
/**
|
|
23
|
-
* Aktiver Seitenindex
|
|
24
|
-
*/
|
|
25
|
-
this.activePageIndex = 0;
|
|
26
|
-
/**
|
|
27
|
-
* Erster Seitenindex
|
|
28
|
-
*/
|
|
29
|
-
this.firstPageIndex = 0;
|
|
30
|
-
/**
|
|
31
|
-
* Letzter Seitenindex
|
|
32
|
-
*/
|
|
33
|
-
this.lastPageIndex = 0;
|
|
34
|
-
/**
|
|
11
|
+
*/constructor(injector){cov_22wr2lg5mj().f[0]++;cov_22wr2lg5mj().s[0]++;/**
|
|
35
12
|
* Total Anzahl Rows
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
* Anzahl Elemente pro Seite
|
|
40
|
-
*/
|
|
41
|
-
this.pageSize = 20;
|
|
42
|
-
/**
|
|
43
|
-
* Text in Pager für 'Seite x von y'.
|
|
44
|
-
* Folgende Interpolation Texte sind vorhanden:
|
|
45
|
-
* {{CURRENTPAGE}}: Aktuelle Seite
|
|
46
|
-
* {{TOTALPAGES}}: Anzahl Seiten
|
|
47
|
-
*/
|
|
48
|
-
this.pagingtext = 'PAGING_PAGEOFTEXT';
|
|
49
|
-
/**
|
|
13
|
+
*/this.totalRowCount=0;/**
|
|
14
|
+
* Auswahl der Seitengrösse deaktivieren
|
|
15
|
+
*/cov_22wr2lg5mj().s[1]++;this.pagesizedisabled=false;/**
|
|
50
16
|
* Text in Page für Anzahl Seitenelemente pro Seite
|
|
51
17
|
* Folgende Interpolation Texte sind vorhanden:
|
|
52
18
|
* {{PAGESIZE}}: Anzahl Elemente pro Seite
|
|
53
|
-
*/
|
|
54
|
-
this.pagesizetext = 'PAGING_PAGEENTRIESTEXT';
|
|
55
|
-
/**
|
|
19
|
+
*/cov_22wr2lg5mj().s[2]++;this.pagesizes='20|50|100';/**
|
|
56
20
|
* Text in Page für Anzahl Seitenelemente pro Seite
|
|
57
21
|
* Folgende Interpolation Texte sind vorhanden:
|
|
58
22
|
* {{PAGESIZE}}: Anzahl Elemente pro Seite
|
|
59
|
-
*/
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
*
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
/**
|
|
23
|
+
*/cov_22wr2lg5mj().s[3]++;this.pagesizetext='';/**
|
|
24
|
+
* Text in Pager für 'Seite x von y'.
|
|
25
|
+
* Folgende Interpolation Texte sind vorhanden:
|
|
26
|
+
* {{CURRENTPAGE}}: Aktuelle Seite
|
|
27
|
+
* {{TOTALPAGES}}: Anzahl Seiten
|
|
28
|
+
*/cov_22wr2lg5mj().s[4]++;this.pagingtext='';/**
|
|
66
29
|
* Event wenn im Grid die Seite geändert wird. Als Parameter wird der neue PageIndex mitgegeben.
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
30
|
+
*/cov_22wr2lg5mj().s[5]++;this.paging=new EventEmitter();/**
|
|
31
|
+
* Aktiver Seitenindex
|
|
32
|
+
*/cov_22wr2lg5mj().s[6]++;this.activePageIndex=0;/**
|
|
33
|
+
* Erster Seitenindex
|
|
34
|
+
*/cov_22wr2lg5mj().s[7]++;this.firstPageIndex=0;/**
|
|
35
|
+
* Letzter Seitenindex
|
|
36
|
+
*/cov_22wr2lg5mj().s[8]++;this.lastPageIndex=0;/**
|
|
37
|
+
* Anzahl Elemente pro Seite
|
|
38
|
+
*/cov_22wr2lg5mj().s[9]++;this.pageSize=20;/**
|
|
39
|
+
* Item für jedes Paging Element (Seitenzahl)
|
|
40
|
+
*/cov_22wr2lg5mj().s[10]++;this.paginators=[];cov_22wr2lg5mj().s[11]++;this.validationKeyService=injector.get(SACVALIDATIONKEY_SERVICE,new SacDefaultValidationKeyService());// Set Default Values from Injector
|
|
41
|
+
cov_22wr2lg5mj().s[12]++;this.pagesizetext=this.validationKeyService.PagingEntries;cov_22wr2lg5mj().s[13]++;this.pagingtext=this.validationKeyService.PagingPageOf;cov_22wr2lg5mj().s[14]++;this.lngResourceService=injector.get(SACLOCALISATION_SERVICE,new SacDefaultLocalisationService(this.validationKeyService));}// #endregion Constructors
|
|
42
|
+
// #region Public Getters And Setters
|
|
43
|
+
/**
|
|
73
44
|
* Property für Pager Data
|
|
74
|
-
*/
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
this.pageSize = p.PageSize;
|
|
80
|
-
}
|
|
81
|
-
this.createPager();
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
45
|
+
*/set pagerdata(p){cov_22wr2lg5mj().f[1]++;cov_22wr2lg5mj().s[15]++;if(p!=null){cov_22wr2lg5mj().b[0][0]++;cov_22wr2lg5mj().s[16]++;this.totalRowCount=p.TotalRowCount;cov_22wr2lg5mj().s[17]++;this.activePageIndex=p.CurrentPageIndex;cov_22wr2lg5mj().s[18]++;this.pageSize=p.PageSize;}else{cov_22wr2lg5mj().b[0][1]++;}cov_22wr2lg5mj().s[19]++;this.createPager();}/**
|
|
46
|
+
* Property mit Text für Total Einträge in Seite
|
|
47
|
+
*/get PageSizeText(){cov_22wr2lg5mj().f[2]++;cov_22wr2lg5mj().s[20]++;return this.lngResourceService.GetString(this.pagesizetext);}/**
|
|
48
|
+
* Text mit Aktueller Seite und Total Seiten
|
|
49
|
+
*/get PagingText(){cov_22wr2lg5mj().f[3]++;cov_22wr2lg5mj().s[21]++;return this.lngResourceService.GetString(this.pagingtext,{CURRENTPAGE:this.getCurrentPageNumber(),TOTALPAGES:this.getTotalPageNumber()});}/**
|
|
84
50
|
* Gibt die Page Sizes als Number Array zurück
|
|
85
|
-
*/
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
//#endregion
|
|
90
|
-
//#region Protected Methods
|
|
91
|
-
/**
|
|
92
|
-
* Erzeugt die Pager Daten
|
|
93
|
-
*/
|
|
94
|
-
createPager() {
|
|
95
|
-
this.paginators = [];
|
|
96
|
-
if (this.totalRowCount > 0) {
|
|
97
|
-
let totalPageCount = Math.ceil(this.totalRowCount / this.pageSize);
|
|
98
|
-
// PageCount auf 1 stellen, wenn keine Records vorhanden sind.
|
|
99
|
-
if (totalPageCount === 0) {
|
|
100
|
-
totalPageCount = 1;
|
|
101
|
-
}
|
|
102
|
-
// PageIndex berechnen
|
|
103
|
-
this.lastPageIndex = totalPageCount - 1;
|
|
104
|
-
const startPageIndex = this.getStartPageIndex(totalPageCount);
|
|
105
|
-
const endPageIndex = this.getEndPageIndex(totalPageCount);
|
|
106
|
-
// Index Fix wenn Aktive Seite grösser als letze Seite
|
|
107
|
-
if (this.activePageIndex > this.lastPageIndex) {
|
|
108
|
-
this.activePageIndex = this.lastPageIndex;
|
|
109
|
-
}
|
|
110
|
-
for (let i = startPageIndex; i <= endPageIndex; i++) {
|
|
111
|
-
this.paginators.push(i);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
else {
|
|
115
|
-
this.paginators.push(0);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Methode löst den Event aus, dass ein Paging stattgefunden hat
|
|
120
|
-
*/
|
|
121
|
-
paged(newPageIndex) {
|
|
122
|
-
const pagerData = new PagerRequest(this.pageSize, newPageIndex);
|
|
123
|
-
this.paging.emit(pagerData);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Gibt den Start Index zurück
|
|
127
|
-
* @param totalPageCount Total Anzahl Seiten
|
|
128
|
-
*/
|
|
129
|
-
getStartPageIndex(totalPageCount) {
|
|
130
|
-
let startingPageToDisplay = 0;
|
|
131
|
-
startingPageToDisplay = this.activePageIndex - 2;
|
|
132
|
-
if (totalPageCount - this.activePageIndex - 1 < 2) {
|
|
133
|
-
startingPageToDisplay = totalPageCount - 5;
|
|
134
|
-
}
|
|
135
|
-
if (startingPageToDisplay < 0) {
|
|
136
|
-
startingPageToDisplay = 0;
|
|
137
|
-
}
|
|
138
|
-
return startingPageToDisplay;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Gibt den letzten Seitenindex zurück.
|
|
142
|
-
* @param totalPageCount Total Anzahl Seiten
|
|
143
|
-
*/
|
|
144
|
-
getEndPageIndex(totalPageCount) {
|
|
145
|
-
let endingPageToDisplay = this.activePageIndex + 2;
|
|
146
|
-
const maxEndingPageIndex = 4 > totalPageCount - 1 ? totalPageCount - 1 : 4;
|
|
147
|
-
if (endingPageToDisplay > totalPageCount - 1) {
|
|
148
|
-
endingPageToDisplay = totalPageCount - 1;
|
|
149
|
-
}
|
|
150
|
-
else if (this.activePageIndex < 2) {
|
|
151
|
-
endingPageToDisplay = maxEndingPageIndex;
|
|
152
|
-
}
|
|
153
|
-
return endingPageToDisplay;
|
|
154
|
-
}
|
|
155
|
-
//#endregion
|
|
156
|
-
//#region Public Methods
|
|
157
|
-
/**
|
|
51
|
+
*/get getPageSizes(){cov_22wr2lg5mj().f[4]++;cov_22wr2lg5mj().s[22]++;return this.pagesizes.split('|').map(itm=>{cov_22wr2lg5mj().f[5]++;cov_22wr2lg5mj().s[23]++;return Number(itm);});}// #endregion Public Getters And Setters
|
|
52
|
+
// #region Public Methods
|
|
53
|
+
/**
|
|
158
54
|
* Andert die Seite auf den neuen Index
|
|
159
55
|
* @param newPageIndex Seiten Index. Dies entspricht der Seitenzahl - 1.
|
|
160
|
-
*/
|
|
161
|
-
changePage(newPageIndex) {
|
|
162
|
-
if (this.activePageIndex !== newPageIndex) {
|
|
163
|
-
this.paged(newPageIndex);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
56
|
+
*/changePage(newPageIndex){cov_22wr2lg5mj().f[6]++;cov_22wr2lg5mj().s[24]++;if(this.activePageIndex!==newPageIndex){cov_22wr2lg5mj().b[1][0]++;cov_22wr2lg5mj().s[25]++;this.paged(newPageIndex);}else{cov_22wr2lg5mj().b[1][1]++;}}/**
|
|
167
57
|
* Ändert die Seitengrösse im Pager
|
|
168
58
|
* @param newSize Neue Anzahl Elemente pro Seite
|
|
169
|
-
*/
|
|
170
|
-
changePageSize(newSize) {
|
|
171
|
-
const pagerData = new PagerRequest(newSize, this.activePageIndex);
|
|
172
|
-
this.paging.emit(pagerData);
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Paging auf nächste Seite
|
|
176
|
-
*/
|
|
177
|
-
nextPage() {
|
|
178
|
-
if (this.activePageIndex !== this.lastPageIndex) {
|
|
179
|
-
this.paged(this.activePageIndex + 1);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/**
|
|
183
|
-
* Paging eine Seite zurück
|
|
184
|
-
*/
|
|
185
|
-
previousPage() {
|
|
186
|
-
if (this.activePageIndex !== this.firstPageIndex) {
|
|
187
|
-
this.paged(this.activePageIndex - 1);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
/**
|
|
59
|
+
*/changePageSize(newSize){cov_22wr2lg5mj().f[7]++;const pagerData=(cov_22wr2lg5mj().s[26]++,new PagerRequest(newSize,this.activePageIndex));cov_22wr2lg5mj().s[27]++;this.paging.emit(pagerData);}/**
|
|
191
60
|
* Paging auf 1. Seite
|
|
192
|
-
*/
|
|
193
|
-
firstPage() {
|
|
194
|
-
if (this.activePageIndex !== this.firstPageIndex) {
|
|
195
|
-
this.paged(0);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Paging auf letzter Seite
|
|
200
|
-
*/
|
|
201
|
-
lastPage() {
|
|
202
|
-
if (this.activePageIndex !== this.lastPageIndex) {
|
|
203
|
-
this.paged(this.lastPageIndex);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
61
|
+
*/firstPage(){cov_22wr2lg5mj().f[8]++;cov_22wr2lg5mj().s[28]++;if(this.activePageIndex!==this.firstPageIndex){cov_22wr2lg5mj().b[2][0]++;cov_22wr2lg5mj().s[29]++;this.paged(0);}else{cov_22wr2lg5mj().b[2][1]++;}}/**
|
|
207
62
|
* Gibt die aktuelle Seitenzahl zurück
|
|
208
|
-
*/
|
|
209
|
-
getCurrentPageNumber() {
|
|
210
|
-
return this.activePageIndex + 1;
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
63
|
+
*/getCurrentPageNumber(){cov_22wr2lg5mj().f[9]++;cov_22wr2lg5mj().s[30]++;return this.activePageIndex+1;}/**
|
|
213
64
|
* Gibt die totale Anzahl Seiten zurück
|
|
214
|
-
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
*
|
|
220
|
-
*/
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
*
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
export { SacPagingCommon };
|
|
237
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SacPagingCommon, decorators: [{
|
|
238
|
-
type: Directive
|
|
239
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { pagerdata: [{
|
|
240
|
-
type: Input
|
|
241
|
-
}], pagingtext: [{
|
|
242
|
-
type: Input
|
|
243
|
-
}], pagesizetext: [{
|
|
244
|
-
type: Input
|
|
245
|
-
}], pagesizes: [{
|
|
246
|
-
type: Input
|
|
247
|
-
}], pagesizedisabled: [{
|
|
248
|
-
type: Input
|
|
249
|
-
}], name: [{
|
|
250
|
-
type: Input
|
|
251
|
-
}], paging: [{
|
|
252
|
-
type: Output
|
|
253
|
-
}] } });
|
|
254
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29udHJvbHMvZ3JpZC9wYWdpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLHVCQUF1QixHQUN4QixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBYSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWxEOztHQUVHO0FBQ0gsTUFDc0IsZUFBZTtJQU1uQyxzQkFBc0I7SUFFdEI7Ozs7O09BS0c7SUFDSCxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBT3RDOztXQUVHO1FBQ0ksZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUVuQzs7V0FFRztRQUNJLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ0ksbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFbEM7O1dBRUc7UUFDSSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUVqQzs7V0FFRztRQUNPLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRXBDOztXQUVHO1FBQ0gsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQWtCdEI7Ozs7O1dBS0c7UUFFSSxlQUFVLEdBQVcsbUJBQW1CLENBQUM7UUFFaEQ7Ozs7V0FJRztRQUVJLGlCQUFZLEdBQVcsd0JBQXdCLENBQUM7UUFFdkQ7Ozs7V0FJRztRQUVJLGNBQVMsR0FBVyxXQUFXLENBQUM7UUFFdkM7O1dBRUc7UUFFSSxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFlekM7O1dBRUc7UUFFSCxXQUFNLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBcEdwRSxJQUFJLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLEdBQUcs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QkFEZixLQUFLO2dCQU9DLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFjQyxJQUFJO3NCQURWLEtBQUs7Z0JBT04sTUFBTTtzQkFETCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJU2FjTG9jYWxpc2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY0xvY2FsaXNhdGlvblNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNhY0RlZmF1bHRMb2NhbGlzYXRpb25TZXJ2aWNlLFxyXG4gIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG59IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NhYy1sb2NhbGlzYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2VyRGF0YSwgUGFnZXJSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbCc7XHJcblxyXG4vKipcclxuICogQmFzaXNrb21wb25lbnRlIGbDvHIgUGFnaW5nXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1BhZ2luZ0NvbW1vbiB7XHJcbiAgLyoqXHJcbiAgICogU2VydmljZSBmw7xyIEVycm9yIExvY2FsaXNhdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBsbmdSZXNvdXJjZVNlcnZpY2U6IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlO1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yXHJcblxyXG4gIC8qKlxyXG4gICAqIEtvbnN0cnVrdG9yXHJcbiAgICogSW5qZWN0IGRlcyBGb3JtdWxhcnNcclxuICAgKiBAcGFyZW50IFNhY0Zvcm1Db21tb25cclxuICAgKiBAaW5qZWN0b3IgSW5qZWN0b3JcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgdGhpcy5sbmdSZXNvdXJjZVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoXHJcbiAgICAgIFNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFLFxyXG4gICAgICBuZXcgU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW0gZsO8ciBqZWRlcyBQYWdpbmcgRWxlbWVudCAoU2VpdGVuemFobClcclxuICAgKi9cclxuICBwdWJsaWMgcGFnaW5hdG9yczogQXJyYXk8YW55PiA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBBa3RpdmVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGFjdGl2ZVBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogRXJzdGVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGZpcnN0UGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBMZXR6dGVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGxhc3RQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvdGFsIEFuemFobCBSb3dzXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHRvdGFsUm93Q291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKi9cclxuICBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcblxyXG4gIC8vI3JlZ2lvbiBJbnB1dCBhbmQgT3V0cHV0c1xyXG5cclxuICAvKipcclxuICAgKiBQcm9wZXJ0eSBmw7xyIFBhZ2VyIERhdGFcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBwYWdlcmRhdGEocDogUGFnZXJEYXRhKSB7XHJcbiAgICBpZiAocCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMudG90YWxSb3dDb3VudCA9IHAuVG90YWxSb3dDb3VudDtcclxuICAgICAgdGhpcy5hY3RpdmVQYWdlSW5kZXggPSBwLkN1cnJlbnRQYWdlSW5kZXg7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSBwLlBhZ2VTaXplO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3JlYXRlUGFnZXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRleHQgaW4gUGFnZXIgZsO8ciAnU2VpdGUgeCB2b24geScuXHJcbiAgICogRm9sZ2VuZGUgSW50ZXJwb2xhdGlvbiBUZXh0ZSBzaW5kIHZvcmhhbmRlbjpcclxuICAgKiB7e0NVUlJFTlRQQUdFfX06IEFrdHVlbGxlIFNlaXRlXHJcbiAgICoge3tUT1RBTFBBR0VTfX06IEFuemFobCBTZWl0ZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmd0ZXh0OiBzdHJpbmcgPSAnUEFHSU5HX1BBR0VPRlRFWFQnO1xyXG5cclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2UgZsO8ciBBbnphaGwgU2VpdGVuZWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICogRm9sZ2VuZGUgSW50ZXJwb2xhdGlvbiBUZXh0ZSBzaW5kIHZvcmhhbmRlbjpcclxuICAgKiB7e1BBR0VTSVpFfX06IEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlc2l6ZXRleHQ6IHN0cmluZyA9ICdQQUdJTkdfUEFHRUVOVFJJRVNURVhUJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGV4dCBpbiBQYWdlIGbDvHIgQW56YWhsIFNlaXRlbmVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tQQUdFU0laRX19OiBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemVzOiBzdHJpbmcgPSAnMjB8NTB8MTAwJztcclxuXHJcbiAgLyoqXHJcbiAgICogQXVzd2FobCBkZXIgU2VpdGVuZ3LDtnNzZSBkZWFrdGl2aWVyZW5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwYWdlc2l6ZWRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGllIFBhZ2UgU2l6ZXMgYWxzIE51bWJlciBBcnJheSB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldCBnZXRQYWdlU2l6ZXMoKTogbnVtYmVyW10ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZXNpemVzLnNwbGl0KCd8JykubWFwKChpdG0pID0+IE51bWJlcihpdG0pKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE5hbWUgZGVzIEdyaWRzLiBXaXJkIGbDvHIgSUQgdW5kIE5hbWUgQmV6ZWljaG51bmdlbiB2ZXJ3ZW5kZXRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IHdlbm4gaW0gR3JpZCBkaWUgU2VpdGUgZ2XDpG5kZXJ0IHdpcmQuIEFscyBQYXJhbWV0ZXIgd2lyZCBkZXIgbmV1ZSBQYWdlSW5kZXggbWl0Z2VnZWJlbi5cclxuICAgKi9cclxuICBAT3V0cHV0KClcclxuICBwYWdpbmc6IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+KCk7XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogRXJ6ZXVndCBkaWUgUGFnZXIgRGF0ZW5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgY3JlYXRlUGFnZXIoKSB7XHJcbiAgICB0aGlzLnBhZ2luYXRvcnMgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy50b3RhbFJvd0NvdW50ID4gMCkge1xyXG4gICAgICBsZXQgdG90YWxQYWdlQ291bnQgPSBNYXRoLmNlaWwodGhpcy50b3RhbFJvd0NvdW50IC8gdGhpcy5wYWdlU2l6ZSk7XHJcblxyXG4gICAgICAvLyBQYWdlQ291bnQgYXVmIDEgc3RlbGxlbiwgd2VubiBrZWluZSBSZWNvcmRzIHZvcmhhbmRlbiBzaW5kLlxyXG4gICAgICBpZiAodG90YWxQYWdlQ291bnQgPT09IDApIHtcclxuICAgICAgICB0b3RhbFBhZ2VDb3VudCA9IDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFBhZ2VJbmRleCBiZXJlY2huZW5cclxuICAgICAgdGhpcy5sYXN0UGFnZUluZGV4ID0gdG90YWxQYWdlQ291bnQgLSAxO1xyXG4gICAgICBjb25zdCBzdGFydFBhZ2VJbmRleCA9IHRoaXMuZ2V0U3RhcnRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQpO1xyXG4gICAgICBjb25zdCBlbmRQYWdlSW5kZXggPSB0aGlzLmdldEVuZFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudCk7XHJcblxyXG4gICAgICAvLyBJbmRleCBGaXggd2VubiBBa3RpdmUgU2VpdGUgZ3LDtnNzZXIgYWxzIGxldHplIFNlaXRlXHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCA+IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4ID0gdGhpcy5sYXN0UGFnZUluZGV4O1xyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGxldCBpID0gc3RhcnRQYWdlSW5kZXg7IGkgPD0gZW5kUGFnZUluZGV4OyBpKyspIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvcnMucHVzaChpKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdpbmF0b3JzLnB1c2goMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGzDtnN0IGRlbiBFdmVudCBhdXMsIGRhc3MgZWluIFBhZ2luZyBzdGF0dGdlZnVuZGVuIGhhdFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBwYWdlZChuZXdQYWdlSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGFnZXJEYXRhOiBQYWdlclJlcXVlc3QgPSBuZXcgUGFnZXJSZXF1ZXN0KFxyXG4gICAgICB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBuZXdQYWdlSW5kZXhcclxuICAgICk7XHJcbiAgICB0aGlzLnBhZ2luZy5lbWl0KHBhZ2VyRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRlbiBTdGFydCBJbmRleCB6dXLDvGNrXHJcbiAgICogQHBhcmFtIHRvdGFsUGFnZUNvdW50IFRvdGFsIEFuemFobCBTZWl0ZW5cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0U3RhcnRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQ6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgc3RhcnRpbmdQYWdlVG9EaXNwbGF5OiBudW1iZXIgPSAwO1xyXG4gICAgc3RhcnRpbmdQYWdlVG9EaXNwbGF5ID0gdGhpcy5hY3RpdmVQYWdlSW5kZXggLSAyO1xyXG5cclxuICAgIGlmICh0b3RhbFBhZ2VDb3VudCAtIHRoaXMuYWN0aXZlUGFnZUluZGV4IC0gMSA8IDIpIHtcclxuICAgICAgc3RhcnRpbmdQYWdlVG9EaXNwbGF5ID0gdG90YWxQYWdlQ291bnQgLSA1O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPCAwKSB7XHJcbiAgICAgIHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA9IDA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhcnRpbmdQYWdlVG9EaXNwbGF5O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gbGV0enRlbiBTZWl0ZW5pbmRleCB6dXLDvGNrLlxyXG4gICAqIEBwYXJhbSB0b3RhbFBhZ2VDb3VudCBUb3RhbCBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldEVuZFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBlbmRpbmdQYWdlVG9EaXNwbGF5ID0gdGhpcy5hY3RpdmVQYWdlSW5kZXggKyAyO1xyXG4gICAgY29uc3QgbWF4RW5kaW5nUGFnZUluZGV4ID0gNCA+IHRvdGFsUGFnZUNvdW50IC0gMSA/IHRvdGFsUGFnZUNvdW50IC0gMSA6IDQ7XHJcblxyXG4gICAgaWYgKGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPiB0b3RhbFBhZ2VDb3VudCAtIDEpIHtcclxuICAgICAgZW5kaW5nUGFnZVRvRGlzcGxheSA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPCAyKSB7XHJcbiAgICAgIGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPSBtYXhFbmRpbmdQYWdlSW5kZXg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW5kaW5nUGFnZVRvRGlzcGxheTtcclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG5cclxuICAvLyNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogQW5kZXJ0IGRpZSBTZWl0ZSBhdWYgZGVuIG5ldWVuIEluZGV4XHJcbiAgICogQHBhcmFtIG5ld1BhZ2VJbmRleCBTZWl0ZW4gSW5kZXguIERpZXMgZW50c3ByaWNodCBkZXIgU2VpdGVuemFobCAtIDEuXHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZVBhZ2UobmV3UGFnZUluZGV4OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gbmV3UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQobmV3UGFnZUluZGV4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIMOEbmRlcnQgZGllIFNlaXRlbmdyw7Zzc2UgaW0gUGFnZXJcclxuICAgKiBAcGFyYW0gbmV3U2l6ZSBOZXVlIEFuemFobCBFbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgY2hhbmdlUGFnZVNpemUobmV3U2l6ZTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBwYWdlckRhdGE6IFBhZ2VyUmVxdWVzdCA9IG5ldyBQYWdlclJlcXVlc3QoXHJcbiAgICAgIG5ld1NpemUsXHJcbiAgICAgIHRoaXMuYWN0aXZlUGFnZUluZGV4XHJcbiAgICApO1xyXG4gICAgdGhpcy5wYWdpbmcuZW1pdChwYWdlckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nIGF1ZiBuw6RjaHN0ZSBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZXh0UGFnZSgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAhPT0gdGhpcy5sYXN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQodGhpcy5hY3RpdmVQYWdlSW5kZXggKyAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBlaW5lIFNlaXRlIHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgcHJldmlvdXNQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmZpcnN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQodGhpcy5hY3RpdmVQYWdlSW5kZXggLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBhdWYgMS4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZmlyc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmZpcnN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgYXVmIGxldHp0ZXIgU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgbGFzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMubGFzdFBhZ2VJbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSBha3R1ZWxsZSBTZWl0ZW56YWhsIHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSB0b3RhbGUgQW56YWhsIFNlaXRlbiB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRvdGFsUGFnZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubGFzdFBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXh0IG1pdCBBa3R1ZWxsZXIgU2VpdGUgdW5kIFRvdGFsIFNlaXRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgUGFnaW5nVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2luZ3RleHQsIHtcclxuICAgICAgQ1VSUkVOVFBBR0U6IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKSxcclxuICAgICAgVE9UQUxQQUdFUzogdGhpcy5nZXRUb3RhbFBhZ2VOdW1iZXIoKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgbWl0IFRleHQgZsO8ciBUb3RhbCBFaW50csOkZ2UgaW4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IFBhZ2VTaXplVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2VzaXpldGV4dCk7XHJcbiAgfVxyXG5cclxuICAvLyNlbmRyZWdpb25cclxufVxyXG4iXX0=
|
|
65
|
+
*/getTotalPageNumber(){cov_22wr2lg5mj().f[10]++;cov_22wr2lg5mj().s[31]++;return this.lastPageIndex+1;}/**
|
|
66
|
+
* Paging auf letzter Seite
|
|
67
|
+
*/lastPage(){cov_22wr2lg5mj().f[11]++;cov_22wr2lg5mj().s[32]++;if(this.activePageIndex!==this.lastPageIndex){cov_22wr2lg5mj().b[3][0]++;cov_22wr2lg5mj().s[33]++;this.paged(this.lastPageIndex);}else{cov_22wr2lg5mj().b[3][1]++;}}/**
|
|
68
|
+
* Paging auf nächste Seite
|
|
69
|
+
*/nextPage(){cov_22wr2lg5mj().f[12]++;cov_22wr2lg5mj().s[34]++;if(this.activePageIndex!==this.lastPageIndex){cov_22wr2lg5mj().b[4][0]++;cov_22wr2lg5mj().s[35]++;this.paged(this.activePageIndex+1);}else{cov_22wr2lg5mj().b[4][1]++;}}/**
|
|
70
|
+
* Paging eine Seite zurück
|
|
71
|
+
*/previousPage(){cov_22wr2lg5mj().f[13]++;cov_22wr2lg5mj().s[36]++;if(this.activePageIndex!==this.firstPageIndex){cov_22wr2lg5mj().b[5][0]++;cov_22wr2lg5mj().s[37]++;this.paged(this.activePageIndex-1);}else{cov_22wr2lg5mj().b[5][1]++;}}// #endregion Public Methods
|
|
72
|
+
// #region Protected Methods
|
|
73
|
+
/**
|
|
74
|
+
* Erzeugt die Pager Daten
|
|
75
|
+
*/createPager(){cov_22wr2lg5mj().f[14]++;cov_22wr2lg5mj().s[38]++;this.paginators=[];cov_22wr2lg5mj().s[39]++;if(this.totalRowCount>0){cov_22wr2lg5mj().b[6][0]++;let totalPageCount=(cov_22wr2lg5mj().s[40]++,Math.ceil(this.totalRowCount/this.pageSize));// PageCount auf 1 stellen, wenn keine Records vorhanden sind.
|
|
76
|
+
cov_22wr2lg5mj().s[41]++;if(totalPageCount===0){cov_22wr2lg5mj().b[7][0]++;cov_22wr2lg5mj().s[42]++;totalPageCount=1;}else{cov_22wr2lg5mj().b[7][1]++;}// PageIndex berechnen
|
|
77
|
+
cov_22wr2lg5mj().s[43]++;this.lastPageIndex=totalPageCount-1;const startPageIndex=(cov_22wr2lg5mj().s[44]++,this.getStartPageIndex(totalPageCount));const endPageIndex=(cov_22wr2lg5mj().s[45]++,this.getEndPageIndex(totalPageCount));// Index Fix wenn Aktive Seite grösser als letze Seite
|
|
78
|
+
cov_22wr2lg5mj().s[46]++;if(this.activePageIndex>this.lastPageIndex){cov_22wr2lg5mj().b[8][0]++;cov_22wr2lg5mj().s[47]++;this.activePageIndex=this.lastPageIndex;}else{cov_22wr2lg5mj().b[8][1]++;}cov_22wr2lg5mj().s[48]++;for(let i=(cov_22wr2lg5mj().s[49]++,startPageIndex);i<=endPageIndex;i++){cov_22wr2lg5mj().s[50]++;this.paginators.push(i);}}else{cov_22wr2lg5mj().b[6][1]++;cov_22wr2lg5mj().s[51]++;this.paginators.push(0);}}/**
|
|
79
|
+
* Gibt den letzten Seitenindex zurück.
|
|
80
|
+
* @param totalPageCount Total Anzahl Seiten
|
|
81
|
+
*/getEndPageIndex(totalPageCount){cov_22wr2lg5mj().f[15]++;let endingPageToDisplay=(cov_22wr2lg5mj().s[52]++,this.activePageIndex+2);const maxEndingPageIndex=(cov_22wr2lg5mj().s[53]++,4>totalPageCount-1?(cov_22wr2lg5mj().b[9][0]++,totalPageCount-1):(cov_22wr2lg5mj().b[9][1]++,4));cov_22wr2lg5mj().s[54]++;if(endingPageToDisplay>totalPageCount-1){cov_22wr2lg5mj().b[10][0]++;cov_22wr2lg5mj().s[55]++;endingPageToDisplay=totalPageCount-1;}else{cov_22wr2lg5mj().b[10][1]++;cov_22wr2lg5mj().s[56]++;if(this.activePageIndex<2){cov_22wr2lg5mj().b[11][0]++;cov_22wr2lg5mj().s[57]++;endingPageToDisplay=maxEndingPageIndex;}else{cov_22wr2lg5mj().b[11][1]++;}}cov_22wr2lg5mj().s[58]++;return endingPageToDisplay;}/**
|
|
82
|
+
* Gibt den Start Index zurück
|
|
83
|
+
* @param totalPageCount Total Anzahl Seiten
|
|
84
|
+
*/getStartPageIndex(totalPageCount){cov_22wr2lg5mj().f[16]++;let startingPageToDisplay=(cov_22wr2lg5mj().s[59]++,0);cov_22wr2lg5mj().s[60]++;startingPageToDisplay=this.activePageIndex-2;cov_22wr2lg5mj().s[61]++;if(totalPageCount-this.activePageIndex-1<2){cov_22wr2lg5mj().b[12][0]++;cov_22wr2lg5mj().s[62]++;startingPageToDisplay=totalPageCount-5;}else{cov_22wr2lg5mj().b[12][1]++;}cov_22wr2lg5mj().s[63]++;if(startingPageToDisplay<0){cov_22wr2lg5mj().b[13][0]++;cov_22wr2lg5mj().s[64]++;startingPageToDisplay=0;}else{cov_22wr2lg5mj().b[13][1]++;}cov_22wr2lg5mj().s[65]++;return startingPageToDisplay;}/**
|
|
85
|
+
* Methode löst den Event aus, dass ein Paging stattgefunden hat
|
|
86
|
+
*/paged(newPageIndex){cov_22wr2lg5mj().f[17]++;const pagerData=(cov_22wr2lg5mj().s[66]++,new PagerRequest(this.pageSize,newPageIndex));cov_22wr2lg5mj().s[67]++;this.paging.emit(pagerData);}static{cov_22wr2lg5mj().s[68]++;this.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacPagingCommon,deps:[{token:i0.Injector}],target:i0.ɵɵFactoryTarget.Directive});}static{cov_22wr2lg5mj().s[69]++;this.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"14.0.0",version:"16.2.12",type:SacPagingCommon,inputs:{name:"name",pagesizedisabled:"pagesizedisabled",pagesizes:"pagesizes",pagesizetext:"pagesizetext",pagingtext:"pagingtext",pagerdata:"pagerdata"},outputs:{paging:"paging"},ngImport:i0});}}export{SacPagingCommon};cov_22wr2lg5mj().s[70]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"16.2.12",ngImport:i0,type:SacPagingCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_22wr2lg5mj().f[18]++;cov_22wr2lg5mj().s[71]++;return[{type:i0.Injector}];},propDecorators:{name:[{type:Input}],pagesizedisabled:[{type:Input}],pagesizes:[{type:Input}],pagesizetext:[{type:Input}],pagingtext:[{type:Input}],paging:[{type:Output}],pagerdata:[{type:Input}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWNvbW1vbi9zcmMvY29udHJvbHMvZ3JpZC9wYWdpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBRVosS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDZCQUE2QixHQUM5QixNQUFNLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEdBQy9CLE1BQU0sMENBQTBDLENBQUM7QUFDbEQsT0FBTyxFQUFhLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFbEQ7O0dBRUc7QUFDSCxNQUNzQixlQUFlO0lBNEVuQyx3QkFBd0I7SUFFeEIsdUJBQXVCO0lBRXZCOzs7OztPQUtHO0lBQ0gsWUFBWSxRQUFrQjtRQTFFOUI7O1dBRUc7UUFDTyxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQU9wQzs7V0FFRztRQUVJLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUN6Qzs7OztXQUlHO1FBRUksY0FBUyxHQUFXLFdBQVcsQ0FBQztRQUN2Qzs7OztXQUlHO1FBRUksaUJBQVksR0FBVyxFQUFFLENBQUM7UUFDakM7Ozs7O1dBS0c7UUFFSSxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQy9COztXQUVHO1FBRUksV0FBTSxHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUU3RTs7V0FFRztRQUNJLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQ25DOztXQUVHO1FBQ0ksbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFDbEM7O1dBRUc7UUFDSSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUNqQzs7V0FFRztRQUNJLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDN0I7O1dBRUc7UUFDSSxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBYWpDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUN0Qyx3QkFBd0IsRUFDeEIsSUFBSSw4QkFBOEIsRUFBRSxDQUNyQyxDQUFDO1FBRUYsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQztRQUM1RCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUM7UUFFekQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQ3BDLHVCQUF1QixFQUN2QixJQUFJLDZCQUE2QixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVELDBCQUEwQjtJQUUxQixxQ0FBcUM7SUFFckM7O09BRUc7SUFDSCxJQUNXLFNBQVMsQ0FBQyxDQUFZO1FBQy9CLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hELFdBQVcsRUFBRSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDeEMsVUFBVSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCx3Q0FBd0M7SUFFeEMseUJBQXlCO0lBRXpCOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxZQUFvQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssWUFBWSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUFDLE9BQWU7UUFDbkMsTUFBTSxTQUFTLEdBQWlCLElBQUksWUFBWSxDQUM5QyxPQUFPLEVBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FDckIsQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDZCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2Y7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNoRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRUQsNEJBQTRCO0lBRTVCLDRCQUE0QjtJQUU1Qjs7T0FFRztJQUNPLFdBQVc7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsRUFBRTtZQUMxQixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRW5FLDhEQUE4RDtZQUM5RCxJQUFJLGNBQWMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3hCLGNBQWMsR0FBRyxDQUFDLENBQUM7YUFDcEI7WUFFRCxzQkFBc0I7WUFDdEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTFELHNEQUFzRDtZQUN0RCxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzNDO1lBRUQsS0FBSyxJQUFJLENBQUMsR0FBRyxjQUFjLEVBQUUsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sZUFBZSxDQUFDLGNBQXNCO1FBQzlDLElBQUksbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDbkQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQUcsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNFLElBQUksbUJBQW1CLEdBQUcsY0FBYyxHQUFHLENBQUMsRUFBRTtZQUM1QyxtQkFBbUIsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1NBQzFDO2FBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsRUFBRTtZQUNuQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztTQUMxQztRQUNELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGlCQUFpQixDQUFDLGNBQXNCO1FBQ2hELElBQUkscUJBQXFCLEdBQVcsQ0FBQyxDQUFDO1FBQ3RDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRWpELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNqRCxxQkFBcUIsR0FBRyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxxQkFBcUIsR0FBRyxDQUFDLEVBQUU7WUFDN0IscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxLQUFLLENBQUMsWUFBb0I7UUFDbEMsTUFBTSxTQUFTLEdBQWlCLElBQUksWUFBWSxDQUM5QyxJQUFJLENBQUMsUUFBUSxFQUNiLFlBQVksQ0FDYixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsQ0FBQzsrR0EzU21CLGVBQWU7bUdBQWYsZUFBZTs7U0FBZixlQUFlOzRGQUFmLGVBQWU7a0JBRHBDLFNBQVM7K0ZBc0JELElBQUk7c0JBRFYsS0FBSztnQkFNQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBUUMsU0FBUztzQkFEZixLQUFLO2dCQVFDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBU0MsVUFBVTtzQkFEaEIsS0FBSztnQkFNQyxNQUFNO3NCQURaLE1BQU07Z0JBMERJLFNBQVM7c0JBRG5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2VyRGF0YSwgUGFnZXJSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbCc7XHJcblxyXG4vKipcclxuICogQmFzaXNrb21wb25lbnRlIGbDvHIgUGFnaW5nXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1BhZ2luZ0NvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuICAvKipcclxuICAgKiBUb3RhbCBBbnphaGwgUm93c1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB0b3RhbFJvd0NvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlcyBHcmlkcy4gV2lyZCBmw7xyIElEIHVuZCBOYW1lIEJlemVpY2hudW5nZW4gdmVyd2VuZGV0XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEF1c3dhaGwgZGVyIFNlaXRlbmdyw7Zzc2UgZGVha3RpdmllcmVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemVkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFRleHQgaW4gUGFnZSBmw7xyIEFuemFobCBTZWl0ZW5lbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKiBGb2xnZW5kZSBJbnRlcnBvbGF0aW9uIFRleHRlIHNpbmQgdm9yaGFuZGVuOlxyXG4gICAqIHt7UEFHRVNJWkV9fTogQW56YWhsIEVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhZ2VzaXplczogc3RyaW5nID0gJzIwfDUwfDEwMCc7XHJcbiAgLyoqXHJcbiAgICogVGV4dCBpbiBQYWdlIGbDvHIgQW56YWhsIFNlaXRlbmVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tQQUdFU0laRX19OiBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemV0ZXh0OiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2VyIGbDvHIgJ1NlaXRlIHggdm9uIHknLlxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tDVVJSRU5UUEFHRX19OiBBa3R1ZWxsZSBTZWl0ZVxyXG4gICAqIHt7VE9UQUxQQUdFU319OiBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnaW5ndGV4dDogc3RyaW5nID0gJyc7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgd2VubiBpbSBHcmlkIGRpZSBTZWl0ZSBnZcOkbmRlcnQgd2lyZC4gQWxzIFBhcmFtZXRlciB3aXJkIGRlciBuZXVlIFBhZ2VJbmRleCBtaXRnZWdlYmVuLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmc6IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdGl2ZXIgU2VpdGVuaW5kZXhcclxuICAgKi9cclxuICBwdWJsaWMgYWN0aXZlUGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEVyc3RlciBTZWl0ZW5pbmRleFxyXG4gICAqL1xyXG4gIHB1YmxpYyBmaXJzdFBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBMZXR6dGVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGxhc3RQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogQW56YWhsIEVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcbiAgLyoqXHJcbiAgICogSXRlbSBmw7xyIGplZGVzIFBhZ2luZyBFbGVtZW50IChTZWl0ZW56YWhsKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdpbmF0b3JzOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEluamVjdCBkZXMgRm9ybXVsYXJzXHJcbiAgICogQHBhcmVudCBTYWNGb3JtQ29tbW9uXHJcbiAgICogQGluamVjdG9yIEluamVjdG9yXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBTZXQgRGVmYXVsdCBWYWx1ZXMgZnJvbSBJbmplY3RvclxyXG4gICAgdGhpcy5wYWdlc2l6ZXRleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ0VudHJpZXM7XHJcbiAgICB0aGlzLnBhZ2luZ3RleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ1BhZ2VPZjtcclxuXHJcbiAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgZsO8ciBQYWdlciBEYXRhXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHBhZ2VyZGF0YShwOiBQYWdlckRhdGEpIHtcclxuICAgIGlmIChwICE9IG51bGwpIHtcclxuICAgICAgdGhpcy50b3RhbFJvd0NvdW50ID0gcC5Ub3RhbFJvd0NvdW50O1xyXG4gICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleCA9IHAuQ3VycmVudFBhZ2VJbmRleDtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHAuUGFnZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jcmVhdGVQYWdlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgbWl0IFRleHQgZsO8ciBUb3RhbCBFaW50csOkZ2UgaW4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IFBhZ2VTaXplVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2VzaXpldGV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXh0IG1pdCBBa3R1ZWxsZXIgU2VpdGUgdW5kIFRvdGFsIFNlaXRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgUGFnaW5nVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2luZ3RleHQsIHtcclxuICAgICAgQ1VSUkVOVFBBR0U6IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKSxcclxuICAgICAgVE9UQUxQQUdFUzogdGhpcy5nZXRUb3RhbFBhZ2VOdW1iZXIoKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkaWUgUGFnZSBTaXplcyBhbHMgTnVtYmVyIEFycmF5IHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGdldFBhZ2VTaXplcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlc2l6ZXMuc3BsaXQoJ3wnKS5tYXAoKGl0bSkgPT4gTnVtYmVyKGl0bSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZGVydCBkaWUgU2VpdGUgYXVmIGRlbiBuZXVlbiBJbmRleFxyXG4gICAqIEBwYXJhbSBuZXdQYWdlSW5kZXggU2VpdGVuIEluZGV4LiBEaWVzIGVudHNwcmljaHQgZGVyIFNlaXRlbnphaGwgLSAxLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VQYWdlKG5ld1BhZ2VJbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IG5ld1BhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKG5ld1BhZ2VJbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDDhG5kZXJ0IGRpZSBTZWl0ZW5ncsO2c3NlIGltIFBhZ2VyXHJcbiAgICogQHBhcmFtIG5ld1NpemUgTmV1ZSBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZVBhZ2VTaXplKG5ld1NpemU6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGFnZXJEYXRhOiBQYWdlclJlcXVlc3QgPSBuZXcgUGFnZXJSZXF1ZXN0KFxyXG4gICAgICBuZXdTaXplLFxyXG4gICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleFxyXG4gICAgKTtcclxuICAgIHRoaXMucGFnaW5nLmVtaXQocGFnZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBhdWYgMS4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZmlyc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmZpcnN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSBha3R1ZWxsZSBTZWl0ZW56YWhsIHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSB0b3RhbGUgQW56YWhsIFNlaXRlbiB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRvdGFsUGFnZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubGFzdFBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgYXVmIGxldHp0ZXIgU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgbGFzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMubGFzdFBhZ2VJbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgYXVmIG7DpGNoc3RlIFNlaXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCh0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nIGVpbmUgU2VpdGUgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMuZmlyc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEVyemV1Z3QgZGllIFBhZ2VyIERhdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVBhZ2VyKCkge1xyXG4gICAgdGhpcy5wYWdpbmF0b3JzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMudG90YWxSb3dDb3VudCA+IDApIHtcclxuICAgICAgbGV0IHRvdGFsUGFnZUNvdW50ID0gTWF0aC5jZWlsKHRoaXMudG90YWxSb3dDb3VudCAvIHRoaXMucGFnZVNpemUpO1xyXG5cclxuICAgICAgLy8gUGFnZUNvdW50IGF1ZiAxIHN0ZWxsZW4sIHdlbm4ga2VpbmUgUmVjb3JkcyB2b3JoYW5kZW4gc2luZC5cclxuICAgICAgaWYgKHRvdGFsUGFnZUNvdW50ID09PSAwKSB7XHJcbiAgICAgICAgdG90YWxQYWdlQ291bnQgPSAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBQYWdlSW5kZXggYmVyZWNobmVuXHJcbiAgICAgIHRoaXMubGFzdFBhZ2VJbmRleCA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgICAgY29uc3Qgc3RhcnRQYWdlSW5kZXggPSB0aGlzLmdldFN0YXJ0UGFnZUluZGV4KHRvdGFsUGFnZUNvdW50KTtcclxuICAgICAgY29uc3QgZW5kUGFnZUluZGV4ID0gdGhpcy5nZXRFbmRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQpO1xyXG5cclxuICAgICAgLy8gSW5kZXggRml4IHdlbm4gQWt0aXZlIFNlaXRlIGdyw7Zzc2VyIGFscyBsZXR6ZSBTZWl0ZVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPiB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleCA9IHRoaXMubGFzdFBhZ2VJbmRleDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZUluZGV4OyBpIDw9IGVuZFBhZ2VJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3JzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdG9ycy5wdXNoKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gbGV0enRlbiBTZWl0ZW5pbmRleCB6dXLDvGNrLlxyXG4gICAqIEBwYXJhbSB0b3RhbFBhZ2VDb3VudCBUb3RhbCBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldEVuZFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBlbmRpbmdQYWdlVG9EaXNwbGF5ID0gdGhpcy5hY3RpdmVQYWdlSW5kZXggKyAyO1xyXG4gICAgY29uc3QgbWF4RW5kaW5nUGFnZUluZGV4ID0gNCA+IHRvdGFsUGFnZUNvdW50IC0gMSA/IHRvdGFsUGFnZUNvdW50IC0gMSA6IDQ7XHJcblxyXG4gICAgaWYgKGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPiB0b3RhbFBhZ2VDb3VudCAtIDEpIHtcclxuICAgICAgZW5kaW5nUGFnZVRvRGlzcGxheSA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPCAyKSB7XHJcbiAgICAgIGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPSBtYXhFbmRpbmdQYWdlSW5kZXg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW5kaW5nUGFnZVRvRGlzcGxheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGVuIFN0YXJ0IEluZGV4IHp1csO8Y2tcclxuICAgKiBAcGFyYW0gdG90YWxQYWdlQ291bnQgVG90YWwgQW56YWhsIFNlaXRlblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRTdGFydFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBzdGFydGluZ1BhZ2VUb0Rpc3BsYXk6IG51bWJlciA9IDA7XHJcbiAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDI7XHJcblxyXG4gICAgaWYgKHRvdGFsUGFnZUNvdW50IC0gdGhpcy5hY3RpdmVQYWdlSW5kZXggLSAxIDwgMikge1xyXG4gICAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSB0b3RhbFBhZ2VDb3VudCAtIDU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA8IDApIHtcclxuICAgICAgc3RhcnRpbmdQYWdlVG9EaXNwbGF5ID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGFydGluZ1BhZ2VUb0Rpc3BsYXk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGzDtnN0IGRlbiBFdmVudCBhdXMsIGRhc3MgZWluIFBhZ2luZyBzdGF0dGdlZnVuZGVuIGhhdFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBwYWdlZChuZXdQYWdlSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGFnZXJEYXRhOiBQYWdlclJlcXVlc3QgPSBuZXcgUGFnZXJSZXF1ZXN0KFxyXG4gICAgICB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBuZXdQYWdlSW5kZXhcclxuICAgICk7XHJcbiAgICB0aGlzLnBhZ2luZy5lbWl0KHBhZ2VyRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcbn1cclxuIl19
|
|
87
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEaXJlY3RpdmUiLCJFdmVudEVtaXR0ZXIiLCJJbnB1dCIsIk91dHB1dCIsIlNBQ0xPQ0FMSVNBVElPTl9TRVJWSUNFIiwiU2FjRGVmYXVsdExvY2FsaXNhdGlvblNlcnZpY2UiLCJTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UiLCJTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UiLCJQYWdlclJlcXVlc3QiLCJTYWNQYWdpbmdDb21tb24iLCJjb25zdHJ1Y3RvciIsImluamVjdG9yIiwiY292XzIyd3IybGc1bWoiLCJmIiwicyIsInRvdGFsUm93Q291bnQiLCJwYWdlc2l6ZWRpc2FibGVkIiwicGFnZXNpemVzIiwicGFnZXNpemV0ZXh0IiwicGFnaW5ndGV4dCIsInBhZ2luZyIsImFjdGl2ZVBhZ2VJbmRleCIsImZpcnN0UGFnZUluZGV4IiwibGFzdFBhZ2VJbmRleCIsInBhZ2VTaXplIiwicGFnaW5hdG9ycyIsInZhbGlkYXRpb25LZXlTZXJ2aWNlIiwiZ2V0IiwiUGFnaW5nRW50cmllcyIsIlBhZ2luZ1BhZ2VPZiIsImxuZ1Jlc291cmNlU2VydmljZSIsInBhZ2VyZGF0YSIsInAiLCJiIiwiVG90YWxSb3dDb3VudCIsIkN1cnJlbnRQYWdlSW5kZXgiLCJQYWdlU2l6ZSIsImNyZWF0ZVBhZ2VyIiwiUGFnZVNpemVUZXh0IiwiR2V0U3RyaW5nIiwiUGFnaW5nVGV4dCIsIkNVUlJFTlRQQUdFIiwiZ2V0Q3VycmVudFBhZ2VOdW1iZXIiLCJUT1RBTFBBR0VTIiwiZ2V0VG90YWxQYWdlTnVtYmVyIiwiZ2V0UGFnZVNpemVzIiwic3BsaXQiLCJtYXAiLCJpdG0iLCJOdW1iZXIiLCJjaGFuZ2VQYWdlIiwibmV3UGFnZUluZGV4IiwicGFnZWQiLCJjaGFuZ2VQYWdlU2l6ZSIsIm5ld1NpemUiLCJwYWdlckRhdGEiLCJlbWl0IiwiZmlyc3RQYWdlIiwibGFzdFBhZ2UiLCJuZXh0UGFnZSIsInByZXZpb3VzUGFnZSIsInRvdGFsUGFnZUNvdW50IiwiTWF0aCIsImNlaWwiLCJzdGFydFBhZ2VJbmRleCIsImdldFN0YXJ0UGFnZUluZGV4IiwiZW5kUGFnZUluZGV4IiwiZ2V0RW5kUGFnZUluZGV4IiwiaSIsInB1c2giLCJlbmRpbmdQYWdlVG9EaXNwbGF5IiwibWF4RW5kaW5nUGFnZUluZGV4Iiwic3RhcnRpbmdQYWdlVG9EaXNwbGF5IiwiZGVwcyIsInRva2VuIiwiaTAiLCJJbmplY3RvciIsInRhcmdldCIsIsm1ybVGYWN0b3J5VGFyZ2V0IiwiaW5wdXRzIiwibmFtZSIsIm91dHB1dHMiLCJuZ0ltcG9ydCIsImRlY29yYXRvcnMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtY29tbW9uL3NyYy9jb250cm9scy9ncmlkL3BhZ2luZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElTYWNMb2NhbGlzYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JU2FjTG9jYWxpc2F0aW9uU2VydmljZSc7XHJcbmltcG9ydCB7IElTYWNWYWxpZGF0aW9uS2V5U2VydmljZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVNhY1ZhbGlkYXRpb25LZXlTZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBTQUNMT0NBTElTQVRJT05fU0VSVklDRSxcclxuICBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSxcclxufSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zYWMtbG9jYWxpc2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNBQ1ZBTElEQVRJT05LRVlfU0VSVklDRSxcclxuICBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UsXHJcbn0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2FjLXZhbGlkYXRpb25rZXkuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhZ2VyRGF0YSwgUGFnZXJSZXF1ZXN0IH0gZnJvbSAnLi9tb2RlbCc7XHJcblxyXG4vKipcclxuICogQmFzaXNrb21wb25lbnRlIGbDvHIgUGFnaW5nXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1BhZ2luZ0NvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXHJcblxyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgdG8gcmVjZWl2ZSBzdGFuZGFyZCB2YWxpZGF0aW9uIG1lc3NhZ2Uga2V5cyBhbmQgdGV4dHNcclxuICAgKi9cclxuICBwcml2YXRlIHZhbGlkYXRpb25LZXlTZXJ2aWNlOiBJU2FjVmFsaWRhdGlvbktleVNlcnZpY2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlcnZpY2UgZsO8ciBFcnJvciBMb2NhbGlzYXRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbG5nUmVzb3VyY2VTZXJ2aWNlOiBJU2FjTG9jYWxpc2F0aW9uU2VydmljZTtcclxuICAvKipcclxuICAgKiBUb3RhbCBBbnphaGwgUm93c1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB0b3RhbFJvd0NvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAvKipcclxuICAgKiBOYW1lIGRlcyBHcmlkcy4gV2lyZCBmw7xyIElEIHVuZCBOYW1lIEJlemVpY2hudW5nZW4gdmVyd2VuZGV0XHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEF1c3dhaGwgZGVyIFNlaXRlbmdyw7Zzc2UgZGVha3RpdmllcmVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemVkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIFRleHQgaW4gUGFnZSBmw7xyIEFuemFobCBTZWl0ZW5lbGVtZW50ZSBwcm8gU2VpdGVcclxuICAgKiBGb2xnZW5kZSBJbnRlcnBvbGF0aW9uIFRleHRlIHNpbmQgdm9yaGFuZGVuOlxyXG4gICAqIHt7UEFHRVNJWkV9fTogQW56YWhsIEVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHBhZ2VzaXplczogc3RyaW5nID0gJzIwfDUwfDEwMCc7XHJcbiAgLyoqXHJcbiAgICogVGV4dCBpbiBQYWdlIGbDvHIgQW56YWhsIFNlaXRlbmVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tQQUdFU0laRX19OiBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnZXNpemV0ZXh0OiBzdHJpbmcgPSAnJztcclxuICAvKipcclxuICAgKiBUZXh0IGluIFBhZ2VyIGbDvHIgJ1NlaXRlIHggdm9uIHknLlxyXG4gICAqIEZvbGdlbmRlIEludGVycG9sYXRpb24gVGV4dGUgc2luZCB2b3JoYW5kZW46XHJcbiAgICoge3tDVVJSRU5UUEFHRX19OiBBa3R1ZWxsZSBTZWl0ZVxyXG4gICAqIHt7VE9UQUxQQUdFU319OiBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcGFnaW5ndGV4dDogc3RyaW5nID0gJyc7XHJcbiAgLyoqXHJcbiAgICogRXZlbnQgd2VubiBpbSBHcmlkIGRpZSBTZWl0ZSBnZcOkbmRlcnQgd2lyZC4gQWxzIFBhcmFtZXRlciB3aXJkIGRlciBuZXVlIFBhZ2VJbmRleCBtaXRnZWdlYmVuLlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBwYWdpbmc6IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlclJlcXVlc3Q+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFrdGl2ZXIgU2VpdGVuaW5kZXhcclxuICAgKi9cclxuICBwdWJsaWMgYWN0aXZlUGFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEVyc3RlciBTZWl0ZW5pbmRleFxyXG4gICAqL1xyXG4gIHB1YmxpYyBmaXJzdFBhZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBMZXR6dGVyIFNlaXRlbmluZGV4XHJcbiAgICovXHJcbiAgcHVibGljIGxhc3RQYWdlSW5kZXg6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogQW56YWhsIEVsZW1lbnRlIHBybyBTZWl0ZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdlU2l6ZTogbnVtYmVyID0gMjA7XHJcbiAgLyoqXHJcbiAgICogSXRlbSBmw7xyIGplZGVzIFBhZ2luZyBFbGVtZW50IChTZWl0ZW56YWhsKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBwYWdpbmF0b3JzOiBBcnJheTxhbnk+ID0gW107XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xyXG5cclxuICAvLyAjcmVnaW9uIENvbnN0cnVjdG9yc1xyXG5cclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEluamVjdCBkZXMgRm9ybXVsYXJzXHJcbiAgICogQHBhcmVudCBTYWNGb3JtQ29tbW9uXHJcbiAgICogQGluamVjdG9yIEluamVjdG9yXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KFxyXG4gICAgICBTQUNWQUxJREFUSU9OS0VZX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0VmFsaWRhdGlvbktleVNlcnZpY2UoKVxyXG4gICAgKTtcclxuXHJcbiAgICAvLyBTZXQgRGVmYXVsdCBWYWx1ZXMgZnJvbSBJbmplY3RvclxyXG4gICAgdGhpcy5wYWdlc2l6ZXRleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ0VudHJpZXM7XHJcbiAgICB0aGlzLnBhZ2luZ3RleHQgPSB0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlLlBhZ2luZ1BhZ2VPZjtcclxuXHJcbiAgICB0aGlzLmxuZ1Jlc291cmNlU2VydmljZSA9IGluamVjdG9yLmdldChcclxuICAgICAgU0FDTE9DQUxJU0FUSU9OX1NFUlZJQ0UsXHJcbiAgICAgIG5ldyBTYWNEZWZhdWx0TG9jYWxpc2F0aW9uU2VydmljZSh0aGlzLnZhbGlkYXRpb25LZXlTZXJ2aWNlKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgZsO8ciBQYWdlciBEYXRhXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHBhZ2VyZGF0YShwOiBQYWdlckRhdGEpIHtcclxuICAgIGlmIChwICE9IG51bGwpIHtcclxuICAgICAgdGhpcy50b3RhbFJvd0NvdW50ID0gcC5Ub3RhbFJvd0NvdW50O1xyXG4gICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleCA9IHAuQ3VycmVudFBhZ2VJbmRleDtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHAuUGFnZVNpemU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jcmVhdGVQYWdlcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJvcGVydHkgbWl0IFRleHQgZsO8ciBUb3RhbCBFaW50csOkZ2UgaW4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IFBhZ2VTaXplVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2VzaXpldGV4dCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXh0IG1pdCBBa3R1ZWxsZXIgU2VpdGUgdW5kIFRvdGFsIFNlaXRlblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgUGFnaW5nVGV4dCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMubG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZyh0aGlzLnBhZ2luZ3RleHQsIHtcclxuICAgICAgQ1VSUkVOVFBBR0U6IHRoaXMuZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKSxcclxuICAgICAgVE9UQUxQQUdFUzogdGhpcy5nZXRUb3RhbFBhZ2VOdW1iZXIoKSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkaWUgUGFnZSBTaXplcyBhbHMgTnVtYmVyIEFycmF5IHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0IGdldFBhZ2VTaXplcygpOiBudW1iZXJbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlc2l6ZXMuc3BsaXQoJ3wnKS5tYXAoKGl0bSkgPT4gTnVtYmVyKGl0bSkpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgR2V0dGVycyBBbmQgU2V0dGVyc1xyXG5cclxuICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZGVydCBkaWUgU2VpdGUgYXVmIGRlbiBuZXVlbiBJbmRleFxyXG4gICAqIEBwYXJhbSBuZXdQYWdlSW5kZXggU2VpdGVuIEluZGV4LiBEaWVzIGVudHNwcmljaHQgZGVyIFNlaXRlbnphaGwgLSAxLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBjaGFuZ2VQYWdlKG5ld1BhZ2VJbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IG5ld1BhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKG5ld1BhZ2VJbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDDhG5kZXJ0IGRpZSBTZWl0ZW5ncsO2c3NlIGltIFBhZ2VyXHJcbiAgICogQHBhcmFtIG5ld1NpemUgTmV1ZSBBbnphaGwgRWxlbWVudGUgcHJvIFNlaXRlXHJcbiAgICovXHJcbiAgcHVibGljIGNoYW5nZVBhZ2VTaXplKG5ld1NpemU6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGFnZXJEYXRhOiBQYWdlclJlcXVlc3QgPSBuZXcgUGFnZXJSZXF1ZXN0KFxyXG4gICAgICBuZXdTaXplLFxyXG4gICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleFxyXG4gICAgKTtcclxuICAgIHRoaXMucGFnaW5nLmVtaXQocGFnZXJEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhZ2luZyBhdWYgMS4gU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgZmlyc3RQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmZpcnN0UGFnZUluZGV4KSB7XHJcbiAgICAgIHRoaXMucGFnZWQoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSBha3R1ZWxsZSBTZWl0ZW56YWhsIHp1csO8Y2tcclxuICAgKi9cclxuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHaWJ0IGRpZSB0b3RhbGUgQW56YWhsIFNlaXRlbiB6dXLDvGNrXHJcbiAgICovXHJcbiAgcHVibGljIGdldFRvdGFsUGFnZU51bWJlcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMubGFzdFBhZ2VJbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgYXVmIGxldHp0ZXIgU2VpdGVcclxuICAgKi9cclxuICBwdWJsaWMgbGFzdFBhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMubGFzdFBhZ2VJbmRleCkge1xyXG4gICAgICB0aGlzLnBhZ2VkKHRoaXMubGFzdFBhZ2VJbmRleCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQYWdpbmcgYXVmIG7DpGNoc3RlIFNlaXRlXHJcbiAgICovXHJcbiAgcHVibGljIG5leHRQYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlUGFnZUluZGV4ICE9PSB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCh0aGlzLmFjdGl2ZVBhZ2VJbmRleCArIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFnaW5nIGVpbmUgU2VpdGUgenVyw7xja1xyXG4gICAqL1xyXG4gIHB1YmxpYyBwcmV2aW91c1BhZ2UoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggIT09IHRoaXMuZmlyc3RQYWdlSW5kZXgpIHtcclxuICAgICAgdGhpcy5wYWdlZCh0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcblxyXG4gIC8qKlxyXG4gICAqIEVyemV1Z3QgZGllIFBhZ2VyIERhdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZVBhZ2VyKCkge1xyXG4gICAgdGhpcy5wYWdpbmF0b3JzID0gW107XHJcblxyXG4gICAgaWYgKHRoaXMudG90YWxSb3dDb3VudCA+IDApIHtcclxuICAgICAgbGV0IHRvdGFsUGFnZUNvdW50ID0gTWF0aC5jZWlsKHRoaXMudG90YWxSb3dDb3VudCAvIHRoaXMucGFnZVNpemUpO1xyXG5cclxuICAgICAgLy8gUGFnZUNvdW50IGF1ZiAxIHN0ZWxsZW4sIHdlbm4ga2VpbmUgUmVjb3JkcyB2b3JoYW5kZW4gc2luZC5cclxuICAgICAgaWYgKHRvdGFsUGFnZUNvdW50ID09PSAwKSB7XHJcbiAgICAgICAgdG90YWxQYWdlQ291bnQgPSAxO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBQYWdlSW5kZXggYmVyZWNobmVuXHJcbiAgICAgIHRoaXMubGFzdFBhZ2VJbmRleCA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgICAgY29uc3Qgc3RhcnRQYWdlSW5kZXggPSB0aGlzLmdldFN0YXJ0UGFnZUluZGV4KHRvdGFsUGFnZUNvdW50KTtcclxuICAgICAgY29uc3QgZW5kUGFnZUluZGV4ID0gdGhpcy5nZXRFbmRQYWdlSW5kZXgodG90YWxQYWdlQ291bnQpO1xyXG5cclxuICAgICAgLy8gSW5kZXggRml4IHdlbm4gQWt0aXZlIFNlaXRlIGdyw7Zzc2VyIGFscyBsZXR6ZSBTZWl0ZVxyXG4gICAgICBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPiB0aGlzLmxhc3RQYWdlSW5kZXgpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVBhZ2VJbmRleCA9IHRoaXMubGFzdFBhZ2VJbmRleDtcclxuICAgICAgfVxyXG5cclxuICAgICAgZm9yIChsZXQgaSA9IHN0YXJ0UGFnZUluZGV4OyBpIDw9IGVuZFBhZ2VJbmRleDsgaSsrKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3JzLnB1c2goaSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnaW5hdG9ycy5wdXNoKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2lidCBkZW4gbGV0enRlbiBTZWl0ZW5pbmRleCB6dXLDvGNrLlxyXG4gICAqIEBwYXJhbSB0b3RhbFBhZ2VDb3VudCBUb3RhbCBBbnphaGwgU2VpdGVuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGdldEVuZFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBlbmRpbmdQYWdlVG9EaXNwbGF5ID0gdGhpcy5hY3RpdmVQYWdlSW5kZXggKyAyO1xyXG4gICAgY29uc3QgbWF4RW5kaW5nUGFnZUluZGV4ID0gNCA+IHRvdGFsUGFnZUNvdW50IC0gMSA/IHRvdGFsUGFnZUNvdW50IC0gMSA6IDQ7XHJcblxyXG4gICAgaWYgKGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPiB0b3RhbFBhZ2VDb3VudCAtIDEpIHtcclxuICAgICAgZW5kaW5nUGFnZVRvRGlzcGxheSA9IHRvdGFsUGFnZUNvdW50IC0gMTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVQYWdlSW5kZXggPCAyKSB7XHJcbiAgICAgIGVuZGluZ1BhZ2VUb0Rpc3BsYXkgPSBtYXhFbmRpbmdQYWdlSW5kZXg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZW5kaW5nUGFnZVRvRGlzcGxheTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpYnQgZGVuIFN0YXJ0IEluZGV4IHp1csO8Y2tcclxuICAgKiBAcGFyYW0gdG90YWxQYWdlQ291bnQgVG90YWwgQW56YWhsIFNlaXRlblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBnZXRTdGFydFBhZ2VJbmRleCh0b3RhbFBhZ2VDb3VudDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBzdGFydGluZ1BhZ2VUb0Rpc3BsYXk6IG51bWJlciA9IDA7XHJcbiAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSB0aGlzLmFjdGl2ZVBhZ2VJbmRleCAtIDI7XHJcblxyXG4gICAgaWYgKHRvdGFsUGFnZUNvdW50IC0gdGhpcy5hY3RpdmVQYWdlSW5kZXggLSAxIDwgMikge1xyXG4gICAgICBzdGFydGluZ1BhZ2VUb0Rpc3BsYXkgPSB0b3RhbFBhZ2VDb3VudCAtIDU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXJ0aW5nUGFnZVRvRGlzcGxheSA8IDApIHtcclxuICAgICAgc3RhcnRpbmdQYWdlVG9EaXNwbGF5ID0gMDtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGFydGluZ1BhZ2VUb0Rpc3BsYXk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRob2RlIGzDtnN0IGRlbiBFdmVudCBhdXMsIGRhc3MgZWluIFBhZ2luZyBzdGF0dGdlZnVuZGVuIGhhdFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBwYWdlZChuZXdQYWdlSW5kZXg6IG51bWJlcikge1xyXG4gICAgY29uc3QgcGFnZXJEYXRhOiBQYWdlclJlcXVlc3QgPSBuZXcgUGFnZXJSZXF1ZXN0KFxyXG4gICAgICB0aGlzLnBhZ2VTaXplLFxyXG4gICAgICBuZXdQYWdlSW5kZXhcclxuICAgICk7XHJcbiAgICB0aGlzLnBhZ2luZy5lbWl0KHBhZ2VyRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiOzJGQUFBLE9BQ0VBLFNBQVMsQ0FDVEMsWUFBWSxDQUVaQyxLQUFLLENBQ0xDLE1BQU0sS0FDRCxlQUFlLENBSXRCLE9BQ0VDLHVCQUF1QixDQUN2QkMsNkJBQTZCLEtBQ3hCLHlDQUF5QyxDQUNoRCxPQUNFQyx3QkFBd0IsQ0FDeEJDLDhCQUE4QixLQUN6QiwwQ0FBMEMsQ0FDakQsT0FBb0JDLFlBQVksS0FBUSxTQUFTLEMsaUNBRWpEOztHQUdBLEtBQ3NCLENBQUFDLGVBQWUsQ0E0RW5DO0FBRUE7QUFFQTs7Ozs7T0FNQUMsWUFBWUMsUUFBa0IsRUFBQUMsY0FBQSxHQUFBQyxDQUFBLE1BQUFELGNBQUEsR0FBQUUsQ0FBQSxNQTFFOUI7O1dBR1UsS0FBQUMsYUFBYSxDQUFXLENBQUMsQ0FPbkM7O1dBQUFILGNBQUEsR0FBQUUsQ0FBQSxNQUlPLEtBQUFFLGdCQUFnQixDQUFZLEtBQUssQ0FDeEM7Ozs7V0FBQUosY0FBQSxHQUFBRSxDQUFBLE1BTU8sS0FBQUcsU0FBUyxDQUFXLFdBQVcsQ0FDdEM7Ozs7V0FBQUwsY0FBQSxHQUFBRSxDQUFBLE1BTU8sS0FBQUksWUFBWSxDQUFXLEVBQUUsQ0FDaEM7Ozs7O1dBQUFOLGNBQUEsR0FBQUUsQ0FBQSxNQU9PLEtBQUFLLFVBQVUsQ0FBVyxFQUFFLENBQzlCOztXQUFBUCxjQUFBLEdBQUFF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
|