@ng-nest/ui 17.0.12 → 18.0.1
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/README.md +1 -1
- package/affix/affix.component.d.ts +0 -2
- package/affix/affix.property.d.ts +12 -7
- package/alert/alert.component.d.ts +12 -11
- package/alert/alert.property.d.ts +36 -35
- package/anchor/anchor.component.d.ts +15 -18
- package/anchor/anchor.property.d.ts +17 -8
- package/api/api.component.d.ts +2 -7
- package/auto-complete/auto-complete-portal.component.d.ts +20 -25
- package/auto-complete/auto-complete.component.d.ts +17 -34
- package/auto-complete/auto-complete.property.d.ts +282 -20
- package/avatar/avatar.component.d.ts +29 -19
- package/avatar/avatar.property.d.ts +78 -12
- package/back-top/back-top.component.d.ts +12 -17
- package/back-top/back-top.property.d.ts +12 -8
- package/badge/badge.component.d.ts +9 -16
- package/badge/badge.property.d.ts +95 -13
- package/base-form/base-form.component.d.ts +53 -26
- package/base-form/base-form.module.d.ts +1 -2
- package/base-form/base-form.property.d.ts +173 -45
- package/button/button.component.d.ts +16 -14
- package/button/button.property.d.ts +242 -100
- package/button/buttons.component.d.ts +8 -10
- package/calendar/calendar.component.d.ts +41 -27
- package/calendar/calendar.property.d.ts +69 -10
- package/card/card.component.d.ts +4 -6
- package/card/card.property.d.ts +50 -9
- package/carousel/carousel-panel.component.d.ts +15 -14
- package/carousel/carousel.component.d.ts +18 -19
- package/carousel/carousel.property.d.ts +168 -28
- package/cascade/cascade-portal.component.d.ts +28 -28
- package/cascade/cascade.component.d.ts +24 -30
- package/cascade/cascade.property.d.ts +292 -20
- package/checkbox/checkbox.component.d.ts +17 -17
- package/checkbox/checkbox.property.d.ts +274 -35
- package/collapse/collapse-panel.component.d.ts +5 -2
- package/collapse/collapse.component.d.ts +3 -7
- package/collapse/collapse.property.d.ts +113 -20
- package/color/color.component.d.ts +4 -9
- package/color/color.property.d.ts +36 -8
- package/color-picker/color-picker-portal.component.d.ts +40 -52
- package/color-picker/color-picker.component.d.ts +19 -28
- package/color-picker/color-picker.property.d.ts +260 -10
- package/comment/comment-reply.component.d.ts +1 -8
- package/comment/comment.component.d.ts +4 -14
- package/comment/comment.property.d.ts +21 -15
- package/container/aside.component.d.ts +3 -8
- package/container/container.component.d.ts +5 -9
- package/container/container.property.d.ts +33 -19
- package/container/footer.component.d.ts +2 -5
- package/container/header.component.d.ts +2 -5
- package/container/main.component.d.ts +2 -7
- package/core/animation/badge.d.ts +8 -0
- package/core/animation/connect.d.ts +8 -1
- package/core/animation/consts.d.ts +4 -0
- package/core/animation/drop.d.ts +4 -0
- package/core/animation/fade.d.ts +4 -0
- package/core/animation/move.d.ts +4 -0
- package/core/animation/opacity.d.ts +4 -0
- package/core/animation/slide.d.ts +4 -1
- package/core/config/config.d.ts +174 -108
- package/core/config/config.service.d.ts +5 -5
- package/core/config/index.d.ts +1 -0
- package/core/functions/chunk.d.ts +12 -1
- package/core/functions/clone-deep.d.ts +16 -0
- package/core/functions/convert.d.ts +77 -4
- package/core/functions/csspx.d.ts +5 -0
- package/core/functions/date.d.ts +59 -3
- package/core/functions/drop.d.ts +13 -1
- package/core/functions/flex.d.ts +4 -0
- package/core/functions/group-by.d.ts +5 -1
- package/core/functions/guid.d.ts +2 -1
- package/core/functions/has-in.d.ts +4 -0
- package/core/functions/order-by.d.ts +5 -1
- package/core/functions/parent-path.d.ts +8 -0
- package/core/functions/property.d.ts +12 -6
- package/core/functions/public-api.d.ts +1 -0
- package/core/functions/remove.d.ts +5 -1
- package/core/functions/resize.d.ts +13 -1
- package/core/interfaces/data.type.d.ts +172 -3
- package/core/interfaces/identify.type.d.ts +60 -0
- package/core/interfaces/layout.type.d.ts +88 -37
- package/core/interfaces/result-list.type.d.ts +91 -3
- package/core/services/http.service.d.ts +0 -22
- package/core/services/repository.service.d.ts +1 -1
- package/core/services/reuse-strategy.service.d.ts +0 -22
- package/core/services/storage.service.d.ts +0 -21
- package/core/theme/theme.d.ts +45 -1
- package/core/theme/theme.service.d.ts +46 -11
- package/core/util/animation.d.ts +1 -1
- package/core/util/camel-to-kebab.d.ts +13 -0
- package/core/util/check.d.ts +10 -2
- package/core/util/computed-style.d.ts +8 -0
- package/core/util/host.d.ts +3 -2
- package/core/util/html.d.ts +3 -2
- package/core/util/kebab-to-camel.d.ts +13 -0
- package/core/util/log.d.ts +10 -2
- package/core/util/option.d.ts +3 -4
- package/core/util/public-api.d.ts +2 -0
- package/crumb/crumb.component.d.ts +1 -10
- package/crumb/crumb.property.d.ts +12 -8
- package/date-picker/date-picker-portal.component.d.ts +80 -33
- package/date-picker/date-picker.component.d.ts +74 -32
- package/date-picker/date-picker.property.d.ts +662 -214
- package/date-picker/date-range-portal.component.d.ts +102 -49
- package/date-picker/date-range.component.d.ts +87 -43
- package/date-picker/picker-date.component.d.ts +63 -17
- package/date-picker/picker-month.component.d.ts +59 -13
- package/date-picker/picker-quarter.component.d.ts +61 -15
- package/date-picker/picker-year.component.d.ts +8 -11
- package/description/description-item.component.d.ts +1 -1
- package/description/description.component.d.ts +6 -10
- package/description/description.property.d.ts +135 -16
- package/dialog/dialog-portal.component.d.ts +5 -6
- package/dialog/dialog-portal.directives.d.ts +1 -1
- package/dialog/dialog.component.d.ts +30 -23
- package/dialog/dialog.property.d.ts +77 -134
- package/doc/doc.component.d.ts +2 -5
- package/drag/drag.directive.d.ts +1 -1
- package/drag/drag.property.d.ts +4 -5
- package/drawer/drawer-container.component.d.ts +1 -1
- package/drawer/drawer-portal.component.d.ts +1 -1
- package/drawer/drawer.component.d.ts +15 -14
- package/drawer/drawer.property.d.ts +26 -18
- package/dropdown/dropdown-portal.component.d.ts +36 -45
- package/dropdown/dropdown.component.d.ts +17 -21
- package/dropdown/dropdown.property.d.ts +24 -21
- package/empty/empty.component.d.ts +0 -7
- package/empty/empty.property.d.ts +27 -4
- package/esm2022/affix/affix.component.mjs +6 -11
- package/esm2022/affix/affix.module.mjs +5 -5
- package/esm2022/affix/affix.property.mjs +22 -20
- package/esm2022/alert/alert.component.mjs +39 -44
- package/esm2022/alert/alert.module.mjs +5 -5
- package/esm2022/alert/alert.property.mjs +102 -107
- package/esm2022/anchor/anchor-inner.component.mjs +4 -4
- package/esm2022/anchor/anchor.component.mjs +73 -95
- package/esm2022/anchor/anchor.module.mjs +5 -5
- package/esm2022/anchor/anchor.property.mjs +45 -35
- package/esm2022/api/api.component.mjs +11 -14
- package/esm2022/api/api.module.mjs +5 -5
- package/esm2022/auto-complete/auto-complete-portal.component.mjs +36 -47
- package/esm2022/auto-complete/auto-complete.component.mjs +122 -162
- package/esm2022/auto-complete/auto-complete.module.mjs +5 -5
- package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
- package/esm2022/avatar/avatar-group.component.mjs +4 -4
- package/esm2022/avatar/avatar.component.mjs +75 -81
- package/esm2022/avatar/avatar.module.mjs +5 -5
- package/esm2022/avatar/avatar.property.mjs +116 -45
- package/esm2022/back-top/back-top.component.mjs +57 -73
- package/esm2022/back-top/back-top.module.mjs +5 -5
- package/esm2022/back-top/back-top.property.mjs +37 -29
- package/esm2022/badge/badge.component.mjs +51 -59
- package/esm2022/badge/badge.module.mjs +5 -5
- package/esm2022/badge/badge.property.mjs +111 -38
- package/esm2022/base-form/base-form.component.mjs +89 -81
- package/esm2022/base-form/base-form.module.mjs +7 -8
- package/esm2022/base-form/base-form.property.mjs +200 -89
- package/esm2022/button/button.component.mjs +50 -59
- package/esm2022/button/button.module.mjs +5 -5
- package/esm2022/button/button.property.mjs +293 -98
- package/esm2022/button/buttons.component.mjs +35 -21
- package/esm2022/calendar/calendar.component.mjs +56 -84
- package/esm2022/calendar/calendar.module.mjs +5 -5
- package/esm2022/calendar/calendar.property.mjs +78 -24
- package/esm2022/card/card.component.mjs +10 -14
- package/esm2022/card/card.module.mjs +5 -5
- package/esm2022/card/card.property.mjs +57 -22
- package/esm2022/carousel/carousel-panel.component.mjs +98 -76
- package/esm2022/carousel/carousel.component.mjs +55 -65
- package/esm2022/carousel/carousel.module.mjs +5 -5
- package/esm2022/carousel/carousel.property.mjs +215 -85
- package/esm2022/cascade/cascade-portal.component.mjs +77 -69
- package/esm2022/cascade/cascade.component.mjs +107 -135
- package/esm2022/cascade/cascade.module.mjs +5 -5
- package/esm2022/cascade/cascade.property.mjs +137 -48
- package/esm2022/checkbox/checkbox.component.mjs +68 -83
- package/esm2022/checkbox/checkbox.module.mjs +5 -5
- package/esm2022/checkbox/checkbox.property.mjs +136 -73
- package/esm2022/collapse/collapse-panel.component.mjs +31 -21
- package/esm2022/collapse/collapse.component.mjs +16 -21
- package/esm2022/collapse/collapse.module.mjs +5 -5
- package/esm2022/collapse/collapse.property.mjs +156 -66
- package/esm2022/color/color.component.mjs +25 -26
- package/esm2022/color/color.module.mjs +5 -5
- package/esm2022/color/color.property.mjs +47 -27
- package/esm2022/color-picker/color-picker-portal.component.mjs +120 -130
- package/esm2022/color-picker/color-picker.component.mjs +76 -117
- package/esm2022/color-picker/color-picker.module.mjs +5 -5
- package/esm2022/color-picker/color-picker.property.mjs +123 -27
- package/esm2022/comment/comment-reply.component.mjs +9 -24
- package/esm2022/comment/comment.component.mjs +11 -40
- package/esm2022/comment/comment.module.mjs +5 -5
- package/esm2022/comment/comment.property.mjs +27 -50
- package/esm2022/container/aside.component.mjs +12 -15
- package/esm2022/container/container.component.mjs +21 -24
- package/esm2022/container/container.module.mjs +5 -5
- package/esm2022/container/container.property.mjs +55 -51
- package/esm2022/container/footer.component.mjs +14 -16
- package/esm2022/container/header.component.mjs +14 -16
- package/esm2022/container/main.component.mjs +10 -13
- package/esm2022/core/animation/badge.mjs +17 -3
- package/esm2022/core/animation/connect.mjs +17 -99
- package/esm2022/core/animation/consts.mjs +5 -1
- package/esm2022/core/animation/drop.mjs +5 -1
- package/esm2022/core/animation/fade.mjs +13 -3
- package/esm2022/core/animation/move.mjs +5 -1
- package/esm2022/core/animation/opacity.mjs +5 -1
- package/esm2022/core/animation/slide.mjs +5 -23
- package/esm2022/core/config/config.mjs +1 -1
- package/esm2022/core/config/config.service.mjs +11 -59
- package/esm2022/core/config/index.mjs +2 -0
- package/esm2022/core/functions/chunk.mjs +12 -1
- package/esm2022/core/functions/clone-deep.mjs +17 -1
- package/esm2022/core/functions/convert.mjs +110 -13
- package/esm2022/core/functions/csspx.mjs +17 -0
- package/esm2022/core/functions/date.mjs +80 -4
- package/esm2022/core/functions/drop.mjs +13 -1
- package/esm2022/core/functions/flex.mjs +5 -1
- package/esm2022/core/functions/group-by.mjs +5 -1
- package/esm2022/core/functions/guid.mjs +3 -2
- package/esm2022/core/functions/has-in.mjs +5 -1
- package/esm2022/core/functions/order-by.mjs +5 -1
- package/esm2022/core/functions/parent-path.mjs +9 -1
- package/esm2022/core/functions/property.mjs +16 -8
- package/esm2022/core/functions/public-api.mjs +2 -1
- package/esm2022/core/functions/remove.mjs +5 -1
- package/esm2022/core/functions/resize.mjs +7 -5
- package/esm2022/core/interfaces/data.type.mjs +97 -8
- package/esm2022/core/interfaces/identify.type.mjs +5 -2
- package/esm2022/core/interfaces/layout.type.mjs +1 -1
- package/esm2022/core/interfaces/result-list.type.mjs +1 -1
- package/esm2022/core/services/http.service.mjs +4 -33
- package/esm2022/core/services/preloading-strategy.service.mjs +4 -6
- package/esm2022/core/services/repository.service.mjs +1 -1
- package/esm2022/core/services/reuse-strategy.service.mjs +1 -26
- package/esm2022/core/services/storage.service.mjs +4 -26
- package/esm2022/core/theme/theme.mjs +55 -11
- package/esm2022/core/theme/theme.service.mjs +92 -20
- package/esm2022/core/util/animation.mjs +2 -23
- package/esm2022/core/util/camel-to-kebab.mjs +16 -0
- package/esm2022/core/util/check.mjs +11 -3
- package/esm2022/core/util/computed-style.mjs +9 -1
- package/esm2022/core/util/host.mjs +4 -3
- package/esm2022/core/util/html.mjs +5 -4
- package/esm2022/core/util/kebab-to-camel.mjs +16 -0
- package/esm2022/core/util/log.mjs +11 -3
- package/esm2022/core/util/option.mjs +4 -5
- package/esm2022/core/util/public-api.mjs +3 -1
- package/esm2022/crumb/crumb.component.mjs +6 -29
- package/esm2022/crumb/crumb.module.mjs +5 -5
- package/esm2022/crumb/crumb.property.mjs +21 -26
- package/esm2022/date-picker/date-picker-portal.component.mjs +86 -102
- package/esm2022/date-picker/date-picker.component.mjs +157 -191
- package/esm2022/date-picker/date-picker.module.mjs +5 -5
- package/esm2022/date-picker/date-picker.property.mjs +440 -462
- package/esm2022/date-picker/date-quarter.pipe.mjs +4 -4
- package/esm2022/date-picker/date-range-portal.component.mjs +172 -186
- package/esm2022/date-picker/date-range.component.mjs +224 -266
- package/esm2022/date-picker/picker-date.component.mjs +150 -150
- package/esm2022/date-picker/picker-month.component.mjs +115 -118
- package/esm2022/date-picker/picker-quarter.component.mjs +120 -119
- package/esm2022/date-picker/picker-year.component.mjs +121 -108
- package/esm2022/description/description-item.component.mjs +12 -11
- package/esm2022/description/description.component.mjs +33 -48
- package/esm2022/description/description.module.mjs +5 -5
- package/esm2022/description/description.property.mjs +175 -52
- package/esm2022/dialog/dialog-container.component.mjs +4 -4
- package/esm2022/dialog/dialog-portal.component.mjs +29 -35
- package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
- package/esm2022/dialog/dialog-ref.mjs +3 -3
- package/esm2022/dialog/dialog.component.mjs +119 -133
- package/esm2022/dialog/dialog.module.mjs +5 -5
- package/esm2022/dialog/dialog.property.mjs +149 -139
- package/esm2022/dialog/dialog.service.mjs +8 -8
- package/esm2022/doc/doc.component.mjs +11 -12
- package/esm2022/doc/doc.module.mjs +5 -5
- package/esm2022/drag/drag.directive.mjs +8 -21
- package/esm2022/drag/drag.module.mjs +5 -5
- package/esm2022/drag/drag.property.mjs +10 -16
- package/esm2022/drawer/drawer-container.component.mjs +9 -9
- package/esm2022/drawer/drawer-portal.component.mjs +11 -13
- package/esm2022/drawer/drawer-portal.directives.mjs +10 -10
- package/esm2022/drawer/drawer.component.mjs +40 -59
- package/esm2022/drawer/drawer.module.mjs +5 -5
- package/esm2022/drawer/drawer.property.mjs +47 -54
- package/esm2022/drawer/drawer.service.mjs +6 -6
- package/esm2022/dropdown/dropdown-portal.component.mjs +90 -91
- package/esm2022/dropdown/dropdown.component.mjs +75 -91
- package/esm2022/dropdown/dropdown.module.mjs +5 -5
- package/esm2022/dropdown/dropdown.property.mjs +62 -59
- package/esm2022/empty/empty.component.mjs +6 -26
- package/esm2022/empty/empty.module.mjs +5 -5
- package/esm2022/empty/empty.property.mjs +41 -20
- package/esm2022/examples/examples.component.mjs +11 -12
- package/esm2022/examples/examples.module.mjs +5 -5
- package/esm2022/find/find.component.mjs +188 -232
- package/esm2022/find/find.module.mjs +5 -5
- package/esm2022/find/find.property.mjs +234 -193
- package/esm2022/form/control.component.mjs +136 -114
- package/esm2022/form/form.component.mjs +28 -36
- package/esm2022/form/form.module.mjs +5 -5
- package/esm2022/form/form.property.mjs +57 -55
- package/esm2022/highlight/highlight.component.mjs +54 -59
- package/esm2022/highlight/highlight.module.mjs +5 -5
- package/esm2022/highlight/highlight.property.mjs +25 -21
- package/esm2022/highlight/highlight.service.mjs +17 -0
- package/esm2022/highlight/public-api.mjs +2 -1
- package/esm2022/i18n/i18n.directive.mjs +17 -31
- package/esm2022/i18n/i18n.module.mjs +5 -5
- package/esm2022/i18n/i18n.pipe.mjs +4 -4
- package/esm2022/i18n/i18n.property.mjs +2 -2
- package/esm2022/i18n/i18n.service.mjs +4 -4
- package/esm2022/i18n/languages/ar_EG.mjs +122 -77
- package/esm2022/i18n/languages/bg_BG.mjs +135 -87
- package/esm2022/i18n/languages/ca_ES.mjs +130 -82
- package/esm2022/i18n/languages/cs_CZ.mjs +127 -79
- package/esm2022/i18n/languages/da_DK.mjs +129 -81
- package/esm2022/i18n/languages/de_DE.mjs +125 -77
- package/esm2022/i18n/languages/el_GR.mjs +132 -84
- package/esm2022/i18n/languages/en_GB.mjs +5 -2
- package/esm2022/i18n/languages/en_US.mjs +5 -2
- package/esm2022/i18n/languages/es_ES.mjs +131 -83
- package/esm2022/i18n/languages/et_EE.mjs +130 -82
- package/esm2022/i18n/languages/fa_IR.mjs +109 -61
- package/esm2022/i18n/languages/fi_FI.mjs +134 -86
- package/esm2022/i18n/languages/fr_BE.mjs +128 -80
- package/esm2022/i18n/languages/fr_FR.mjs +127 -79
- package/esm2022/i18n/languages/he_IL.mjs +119 -74
- package/esm2022/i18n/languages/hi_IN.mjs +104 -56
- package/esm2022/i18n/languages/hr_HR.mjs +133 -85
- package/esm2022/i18n/languages/hu_HU.mjs +132 -84
- package/esm2022/i18n/languages/hy_AM.mjs +133 -85
- package/esm2022/i18n/languages/id_ID.mjs +119 -71
- package/esm2022/i18n/languages/is_IS.mjs +125 -77
- package/esm2022/i18n/languages/it_IT.mjs +127 -79
- package/esm2022/i18n/languages/ja_JP.mjs +95 -47
- package/esm2022/i18n/languages/ka_GE.mjs +106 -58
- package/esm2022/i18n/languages/kn_IN.mjs +110 -62
- package/esm2022/i18n/languages/ko_KR.mjs +126 -70
- package/esm2022/i18n/languages/ku_IQ.mjs +117 -85
- package/esm2022/i18n/languages/lv_LV.mjs +128 -72
- package/esm2022/i18n/languages/mn_MN.mjs +138 -82
- package/esm2022/i18n/languages/ms_MY.mjs +124 -68
- package/esm2022/i18n/languages/nb_NO.mjs +133 -77
- package/esm2022/i18n/languages/ne_NP.mjs +117 -61
- package/esm2022/i18n/languages/nl_BE.mjs +134 -78
- package/esm2022/i18n/languages/nl_NL.mjs +134 -78
- package/esm2022/i18n/languages/pl_PL.mjs +132 -76
- package/esm2022/i18n/languages/pt_BR.mjs +133 -77
- package/esm2022/i18n/languages/pt_PT.mjs +133 -77
- package/esm2022/i18n/languages/ro_RO.mjs +130 -74
- package/esm2022/i18n/languages/ru_RU.mjs +131 -75
- package/esm2022/i18n/languages/sk_SK.mjs +130 -83
- package/esm2022/i18n/languages/sl_SI.mjs +121 -73
- package/esm2022/i18n/languages/sr_RS.mjs +138 -90
- package/esm2022/i18n/languages/sv_SE.mjs +132 -84
- package/esm2022/i18n/languages/ta_IN.mjs +117 -61
- package/esm2022/i18n/languages/th_TH.mjs +99 -43
- package/esm2022/i18n/languages/tr_TR.mjs +126 -70
- package/esm2022/i18n/languages/uk_UA.mjs +124 -68
- package/esm2022/i18n/languages/vi_VN.mjs +133 -77
- package/esm2022/i18n/languages/zh_CN.mjs +5 -2
- package/esm2022/i18n/languages/zh_TW.mjs +5 -2
- package/esm2022/icon/icon.component.mjs +48 -77
- package/esm2022/icon/icon.module.mjs +5 -5
- package/esm2022/icon/icon.property.mjs +52 -30
- package/esm2022/icon/icon.service.mjs +15 -14
- package/esm2022/image/image-group.component.mjs +15 -15
- package/esm2022/image/image-preview.component.mjs +47 -46
- package/esm2022/image/image.component.mjs +34 -53
- package/esm2022/image/image.module.mjs +5 -5
- package/esm2022/image/image.property.mjs +152 -38
- package/esm2022/index.mjs +1 -3
- package/esm2022/inner/inner.component.mjs +15 -20
- package/esm2022/inner/inner.module.mjs +5 -5
- package/esm2022/inner/inner.property.mjs +17 -15
- package/esm2022/input/input-group.component.mjs +5 -7
- package/esm2022/input/input.component.mjs +130 -143
- package/esm2022/input/input.module.mjs +5 -5
- package/esm2022/input/input.property.mjs +205 -143
- package/esm2022/input-number/input-number.component.mjs +68 -86
- package/esm2022/input-number/input-number.module.mjs +5 -5
- package/esm2022/input-number/input-number.property.mjs +130 -60
- package/esm2022/keyword/keyword.directive.mjs +46 -54
- package/esm2022/keyword/keyword.module.mjs +5 -5
- package/esm2022/keyword/keyword.property.mjs +32 -28
- package/esm2022/layout/col.component.mjs +48 -51
- package/esm2022/layout/layout.module.mjs +5 -5
- package/esm2022/layout/layout.property.mjs +125 -63
- package/esm2022/layout/row.component.mjs +36 -27
- package/esm2022/link/link.component.mjs +18 -45
- package/esm2022/link/link.module.mjs +5 -5
- package/esm2022/link/link.property.mjs +101 -41
- package/esm2022/list/list-drop-group.directive.mjs +9 -18
- package/esm2022/list/list-option.component.mjs +16 -33
- package/esm2022/list/list.component.mjs +160 -164
- package/esm2022/list/list.module.mjs +5 -5
- package/esm2022/list/list.property.mjs +195 -188
- package/esm2022/loading/loading.component.mjs +44 -45
- package/esm2022/loading/loading.module.mjs +5 -5
- package/esm2022/loading/loading.property.mjs +50 -52
- package/esm2022/menu/menu-node.component.mjs +21 -21
- package/esm2022/menu/menu.component.mjs +57 -76
- package/esm2022/menu/menu.module.mjs +5 -5
- package/esm2022/menu/menu.property.mjs +56 -73
- package/esm2022/message/message.component.mjs +8 -8
- package/esm2022/message/message.module.mjs +5 -5
- package/esm2022/message/message.property.mjs +1 -1
- package/esm2022/message/message.service.mjs +7 -7
- package/esm2022/message-box/message-box.component.mjs +5 -5
- package/esm2022/message-box/message-box.module.mjs +5 -5
- package/esm2022/message-box/message-box.service.mjs +6 -6
- package/esm2022/notification/notification.component.mjs +8 -8
- package/esm2022/notification/notification.module.mjs +5 -5
- package/esm2022/notification/notification.property.mjs +1 -1
- package/esm2022/notification/notification.service.mjs +8 -8
- package/esm2022/outlet/outlet.directive.mjs +12 -14
- package/esm2022/outlet/outlet.module.mjs +5 -5
- package/esm2022/outlet/outlet.property.mjs +2 -2
- package/esm2022/page-header/page-header.component.mjs +12 -28
- package/esm2022/page-header/page-header.module.mjs +5 -5
- package/esm2022/page-header/page-header.property.mjs +31 -27
- package/esm2022/pagination/pagination.component.mjs +74 -100
- package/esm2022/pagination/pagination.module.mjs +5 -5
- package/esm2022/pagination/pagination.property.mjs +99 -136
- package/esm2022/pattern/pattern.component.mjs +12 -13
- package/esm2022/pattern/pattern.module.mjs +5 -5
- package/esm2022/pattern/pattern.property.mjs +2 -2
- package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
- package/esm2022/popconfirm/popconfirm.module.mjs +5 -5
- package/esm2022/popconfirm/popconfirm.property.mjs +76 -62
- package/esm2022/popover/popover-portal.component.mjs +24 -75
- package/esm2022/popover/popover.directive.mjs +70 -86
- package/esm2022/popover/popover.module.mjs +5 -5
- package/esm2022/popover/popover.property.mjs +71 -58
- package/esm2022/portal/portal.module.mjs +5 -5
- package/esm2022/portal/portal.property.mjs +3 -3
- package/esm2022/portal/portal.service.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +173 -167
- package/esm2022/progress/progress.module.mjs +5 -5
- package/esm2022/progress/progress.property.mjs +67 -71
- package/esm2022/radio/radio.component.mjs +45 -61
- package/esm2022/radio/radio.module.mjs +5 -5
- package/esm2022/radio/radio.property.mjs +139 -66
- package/esm2022/rate/rate.component.mjs +61 -79
- package/esm2022/rate/rate.module.mjs +5 -5
- package/esm2022/rate/rate.property.mjs +121 -29
- package/esm2022/resizable/resizable.directive.mjs +30 -45
- package/esm2022/resizable/resizable.module.mjs +5 -5
- package/esm2022/resizable/resizable.property.mjs +16 -46
- package/esm2022/result/result.component.mjs +13 -17
- package/esm2022/result/result.module.mjs +5 -5
- package/esm2022/result/result.property.mjs +25 -17
- package/esm2022/ripple/ripple.directive.mjs +40 -27
- package/esm2022/ripple/ripple.module.mjs +5 -5
- package/esm2022/ripple/ripple.property.mjs +27 -20
- package/esm2022/select/select-portal.component.mjs +52 -67
- package/esm2022/select/select.component.mjs +301 -289
- package/esm2022/select/select.module.mjs +5 -5
- package/esm2022/select/select.property.mjs +195 -102
- package/esm2022/skeleton/skeleton.component.mjs +12 -23
- package/esm2022/skeleton/skeleton.module.mjs +5 -5
- package/esm2022/skeleton/skeleton.property.mjs +31 -28
- package/esm2022/slider/slider.component.mjs +103 -149
- package/esm2022/slider/slider.module.mjs +5 -5
- package/esm2022/slider/slider.property.mjs +60 -79
- package/esm2022/slider-select/slider-select.component.mjs +201 -220
- package/esm2022/slider-select/slider-select.module.mjs +5 -5
- package/esm2022/slider-select/slider-select.property.mjs +143 -70
- package/esm2022/statistic/countdown.component.mjs +13 -16
- package/esm2022/statistic/statistic.component.mjs +23 -21
- package/esm2022/statistic/statistic.module.mjs +5 -5
- package/esm2022/statistic/statistic.property.mjs +68 -34
- package/esm2022/steps/steps.component.mjs +33 -63
- package/esm2022/steps/steps.module.mjs +5 -5
- package/esm2022/steps/steps.property.mjs +28 -39
- package/esm2022/switch/switch.component.mjs +22 -37
- package/esm2022/switch/switch.module.mjs +5 -5
- package/esm2022/switch/switch.property.mjs +122 -32
- package/esm2022/table/table-body.component.mjs +134 -139
- package/esm2022/table/table-foot.component.mjs +15 -18
- package/esm2022/table/table-head.component.mjs +60 -91
- package/esm2022/table/table.component.mjs +192 -222
- package/esm2022/table/table.module.mjs +5 -5
- package/esm2022/table/table.property.mjs +396 -341
- package/esm2022/tabs/tab-content.component.mjs +13 -16
- package/esm2022/tabs/tab-link.directive.mjs +7 -7
- package/esm2022/tabs/tab.component.mjs +9 -17
- package/esm2022/tabs/tabs.component.mjs +83 -135
- package/esm2022/tabs/tabs.module.mjs +5 -5
- package/esm2022/tabs/tabs.property.mjs +80 -91
- package/esm2022/tag/tag.component.mjs +19 -33
- package/esm2022/tag/tag.module.mjs +5 -5
- package/esm2022/tag/tag.property.mjs +44 -68
- package/esm2022/text-retract/text-retract.component.mjs +29 -46
- package/esm2022/text-retract/text-retract.module.mjs +5 -5
- package/esm2022/text-retract/text-retract.property.mjs +22 -18
- package/esm2022/textarea/textarea.component.mjs +49 -79
- package/esm2022/textarea/textarea.module.mjs +5 -5
- package/esm2022/textarea/textarea.property.mjs +124 -47
- package/esm2022/theme/theme.component.mjs +86 -81
- package/esm2022/theme/theme.module.mjs +5 -5
- package/esm2022/theme/theme.property.mjs +35 -46
- package/esm2022/time-ago/time-ago.module.mjs +5 -5
- package/esm2022/time-ago/time-ago.pipe.mjs +12 -11
- package/esm2022/time-ago/time-ago.property.mjs +2 -2
- package/esm2022/time-picker/time-picker-frame.component.mjs +173 -188
- package/esm2022/time-picker/time-picker-portal.component.mjs +35 -42
- package/esm2022/time-picker/time-picker.component.mjs +139 -170
- package/esm2022/time-picker/time-picker.module.mjs +5 -5
- package/esm2022/time-picker/time-picker.property.mjs +158 -70
- package/esm2022/time-range/time-range.module.mjs +5 -5
- package/esm2022/time-range/time-range.pipe.mjs +10 -10
- package/esm2022/time-range/time-range.property.mjs +2 -2
- package/esm2022/timeline/timeline.component.mjs +14 -38
- package/esm2022/timeline/timeline.module.mjs +5 -5
- package/esm2022/timeline/timeline.property.mjs +30 -30
- package/esm2022/tooltip/tooltip-portal.component.mjs +51 -65
- package/esm2022/tooltip/tooltip.directive.mjs +65 -62
- package/esm2022/tooltip/tooltip.module.mjs +5 -5
- package/esm2022/tooltip/tooltip.property.mjs +53 -47
- package/esm2022/transfer/transfer.component.mjs +225 -184
- package/esm2022/transfer/transfer.module.mjs +5 -5
- package/esm2022/transfer/transfer.property.mjs +84 -76
- package/esm2022/tree/tree-node.component.mjs +142 -132
- package/esm2022/tree/tree.component.mjs +236 -232
- package/esm2022/tree/tree.module.mjs +5 -5
- package/esm2022/tree/tree.property.mjs +228 -226
- package/esm2022/tree/tree.service.mjs +4 -4
- package/esm2022/tree-file/tree-file.component.mjs +34 -43
- package/esm2022/tree-file/tree-file.module.mjs +5 -5
- package/esm2022/tree-file/tree-file.property.mjs +45 -56
- package/esm2022/tree-select/tree-select-portal.component.mjs +45 -78
- package/esm2022/tree-select/tree-select.component.mjs +283 -296
- package/esm2022/tree-select/tree-select.module.mjs +5 -5
- package/esm2022/tree-select/tree-select.property.mjs +203 -125
- package/esm2022/typography/typography.component.mjs +13 -10
- package/esm2022/typography/typography.module.mjs +5 -5
- package/esm2022/typography/typography.property.mjs +12 -11
- package/esm2022/upload/upload-portal.component.mjs +54 -57
- package/esm2022/upload/upload.component.mjs +79 -98
- package/esm2022/upload/upload.module.mjs +5 -5
- package/esm2022/upload/upload.property.mjs +73 -68
- package/examples/examples.component.d.ts +2 -5
- package/fesm2022/ng-nest-ui-affix.mjs +30 -32
- package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-alert.mjs +142 -152
- package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-anchor.mjs +121 -133
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-api.mjs +14 -17
- package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +296 -260
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-avatar.mjs +195 -130
- package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +95 -103
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-badge.mjs +161 -96
- package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-base-form.mjs +286 -166
- package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-button.mjs +376 -175
- package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-calendar.mjs +134 -108
- package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-card.mjs +67 -36
- package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +365 -223
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-cascade.mjs +318 -249
- package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-checkbox.mjs +203 -155
- package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-collapse.mjs +202 -106
- package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color-picker.mjs +316 -270
- package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-color.mjs +73 -54
- package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-comment.mjs +44 -108
- package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-container.mjs +119 -123
- package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-core.mjs +985 -664
- package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-crumb.mjs +28 -55
- package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-date-picker.mjs +1552 -1671
- package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-description.mjs +218 -109
- package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dialog.mjs +325 -334
- package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-doc.mjs +14 -15
- package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drag.mjs +20 -39
- package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-drawer.mjs +116 -145
- package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-dropdown.mjs +223 -238
- package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-empty.mjs +49 -46
- package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-examples.mjs +14 -15
- package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-find.mjs +422 -425
- package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-form.mjs +216 -201
- package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-highlight.mjs +93 -81
- package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-i18n.mjs +5892 -3516
- package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-icon.mjs +114 -120
- package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-image.mjs +244 -147
- package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-inner.mjs +33 -35
- package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input-number.mjs +198 -146
- package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-input.mjs +340 -292
- package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-keyword.mjs +78 -82
- package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-layout.mjs +205 -140
- package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-link.mjs +119 -86
- package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-list.mjs +376 -400
- package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-loading.mjs +94 -97
- package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-menu.mjs +131 -167
- package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message-box.mjs +13 -13
- package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-message.mjs +17 -17
- package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-notification.mjs +18 -18
- package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-outlet.mjs +16 -18
- package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-page-header.mjs +44 -55
- package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pagination.mjs +173 -236
- package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-pattern.mjs +16 -17
- package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popconfirm.mjs +110 -107
- package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-popover.mjs +163 -215
- package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-portal.mjs +10 -10
- package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-progress.mjs +240 -238
- package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-radio.mjs +184 -127
- package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-rate.mjs +182 -108
- package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-resizable.mjs +46 -91
- package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-result.mjs +38 -34
- package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-ripple.mjs +68 -48
- package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-select.mjs +547 -459
- package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-skeleton.mjs +44 -52
- package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider-select.mjs +344 -290
- package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-slider.mjs +163 -228
- package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-statistic.mjs +102 -68
- package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-steps.mjs +61 -102
- package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-switch.mjs +145 -69
- package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-table.mjs +784 -800
- package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tabs.mjs +185 -259
- package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tag.mjs +63 -101
- package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-text-retract.mjs +52 -64
- package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-textarea.mjs +173 -126
- package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-theme.mjs +123 -129
- package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-ago.mjs +16 -15
- package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +498 -463
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-range.mjs +14 -14
- package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-timeline.mjs +44 -68
- package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tooltip.mjs +168 -170
- package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-transfer.mjs +311 -262
- package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-file.mjs +80 -99
- package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree-select.mjs +527 -495
- package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-tree.mjs +601 -587
- package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-typography.mjs +26 -22
- package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-upload.mjs +204 -220
- package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2022/ng-nest-ui.mjs +0 -2
- package/fesm2022/ng-nest-ui.mjs.map +1 -1
- package/find/find.component.d.ts +30 -34
- package/find/find.property.d.ts +321 -108
- package/form/control.component.d.ts +37 -18
- package/form/form.component.d.ts +8 -10
- package/form/form.property.d.ts +111 -27
- package/highlight/highlight.component.d.ts +10 -17
- package/highlight/highlight.property.d.ts +40 -11
- package/highlight/highlight.service.d.ts +8 -0
- package/highlight/public-api.d.ts +1 -0
- package/i18n/i18n.directive.d.ts +6 -9
- package/i18n/i18n.property.d.ts +6 -2
- package/i18n/i18n.service.d.ts +2 -2
- package/i18n/languages/ar_EG.d.ts +56 -0
- package/i18n/languages/bg_BG.d.ts +56 -0
- package/i18n/languages/ca_ES.d.ts +56 -0
- package/i18n/languages/cs_CZ.d.ts +56 -0
- package/i18n/languages/da_DK.d.ts +56 -0
- package/i18n/languages/de_DE.d.ts +56 -0
- package/i18n/languages/el_GR.d.ts +56 -0
- package/i18n/languages/en_GB.d.ts +3 -0
- package/i18n/languages/en_US.d.ts +3 -0
- package/i18n/languages/es_ES.d.ts +56 -0
- package/i18n/languages/et_EE.d.ts +56 -0
- package/i18n/languages/fa_IR.d.ts +56 -0
- package/i18n/languages/fi_FI.d.ts +56 -0
- package/i18n/languages/fr_BE.d.ts +60 -4
- package/i18n/languages/fr_FR.d.ts +56 -0
- package/i18n/languages/he_IL.d.ts +56 -0
- package/i18n/languages/hi_IN.d.ts +56 -0
- package/i18n/languages/hr_HR.d.ts +56 -0
- package/i18n/languages/hu_HU.d.ts +56 -0
- package/i18n/languages/hy_AM.d.ts +56 -0
- package/i18n/languages/id_ID.d.ts +56 -0
- package/i18n/languages/is_IS.d.ts +56 -0
- package/i18n/languages/it_IT.d.ts +56 -0
- package/i18n/languages/ja_JP.d.ts +56 -0
- package/i18n/languages/ka_GE.d.ts +56 -0
- package/i18n/languages/kn_IN.d.ts +56 -0
- package/i18n/languages/ko_KR.d.ts +56 -0
- package/i18n/languages/ku_IQ.d.ts +32 -0
- package/i18n/languages/lv_LV.d.ts +56 -0
- package/i18n/languages/mn_MN.d.ts +56 -0
- package/i18n/languages/ms_MY.d.ts +56 -0
- package/i18n/languages/nb_NO.d.ts +56 -0
- package/i18n/languages/ne_NP.d.ts +56 -0
- package/i18n/languages/nl_BE.d.ts +56 -0
- package/i18n/languages/nl_NL.d.ts +56 -0
- package/i18n/languages/pl_PL.d.ts +56 -0
- package/i18n/languages/pt_BR.d.ts +56 -0
- package/i18n/languages/pt_PT.d.ts +56 -0
- package/i18n/languages/ro_RO.d.ts +56 -0
- package/i18n/languages/ru_RU.d.ts +56 -0
- package/i18n/languages/sk_SK.d.ts +56 -1
- package/i18n/languages/sl_SI.d.ts +56 -0
- package/i18n/languages/sr_RS.d.ts +56 -0
- package/i18n/languages/sv_SE.d.ts +56 -0
- package/i18n/languages/ta_IN.d.ts +56 -0
- package/i18n/languages/th_TH.d.ts +56 -0
- package/i18n/languages/tr_TR.d.ts +56 -0
- package/i18n/languages/uk_UA.d.ts +56 -0
- package/i18n/languages/vi_VN.d.ts +56 -0
- package/i18n/languages/zh_CN.d.ts +3 -0
- package/i18n/languages/zh_TW.d.ts +3 -0
- package/icon/icon.component.d.ts +8 -14
- package/icon/icon.property.d.ts +31 -13
- package/icon/icon.service.d.ts +1 -1
- package/image/image-group.component.d.ts +1 -3
- package/image/image-preview.component.d.ts +11 -13
- package/image/image.component.d.ts +10 -11
- package/image/image.property.d.ts +117 -16
- package/index.d.ts +0 -2
- package/inner/inner.component.d.ts +3 -10
- package/inner/inner.property.d.ts +8 -4
- package/input/input-group.component.d.ts +0 -2
- package/input/input.component.d.ts +32 -30
- package/input/input.property.d.ts +347 -65
- package/input-number/input-number.component.d.ts +14 -19
- package/input-number/input-number.property.d.ts +292 -26
- package/keyword/keyword.directive.d.ts +4 -12
- package/keyword/keyword.property.d.ts +11 -7
- package/layout/col.component.d.ts +8 -11
- package/layout/layout.property.d.ts +79 -18
- package/layout/row.component.d.ts +7 -8
- package/link/link.component.d.ts +7 -13
- package/link/link.property.d.ts +64 -11
- package/list/list-drop-group.directive.d.ts +3 -5
- package/list/list-option.component.d.ts +7 -9
- package/list/list.component.d.ts +35 -30
- package/list/list.property.d.ts +126 -61
- package/loading/loading.component.d.ts +12 -12
- package/loading/loading.property.d.ts +20 -11
- package/menu/menu-node.component.d.ts +11 -8
- package/menu/menu.component.d.ts +18 -19
- package/menu/menu.property.d.ts +23 -28
- package/message/message.property.d.ts +1 -1
- package/notification/notification.property.d.ts +1 -1
- package/outlet/outlet.directive.d.ts +4 -4
- package/outlet/outlet.property.d.ts +1 -1
- package/package.json +117 -123
- package/page-header/page-header.component.d.ts +4 -8
- package/page-header/page-header.property.d.ts +11 -8
- package/pagination/pagination.component.d.ts +15 -22
- package/pagination/pagination.property.d.ts +34 -66
- package/pattern/pattern.component.d.ts +2 -5
- package/pattern/pattern.property.d.ts +1 -1
- package/popconfirm/popconfirm.component.d.ts +12 -14
- package/popconfirm/popconfirm.property.d.ts +32 -19
- package/popover/popover-portal.component.d.ts +16 -33
- package/popover/popover.directive.d.ts +6 -12
- package/popover/popover.property.d.ts +31 -22
- package/portal/portal.property.d.ts +4 -4
- package/portal/portal.service.d.ts +2 -2
- package/progress/progress.component.d.ts +25 -30
- package/progress/progress.property.d.ts +29 -20
- package/radio/radio.component.d.ts +14 -15
- package/radio/radio.property.d.ts +271 -31
- package/rate/rate.component.d.ts +14 -17
- package/rate/rate.property.d.ts +259 -12
- package/resizable/resizable.directive.d.ts +5 -5
- package/resizable/resizable.property.d.ts +14 -14
- package/result/result.component.d.ts +5 -7
- package/result/result.property.d.ts +11 -7
- package/ripple/ripple.directive.d.ts +5 -4
- package/ripple/ripple.property.d.ts +14 -5
- package/select/select-portal.component.d.ts +39 -43
- package/select/select.component.d.ts +53 -56
- package/select/select.property.d.ts +317 -37
- package/skeleton/skeleton.component.d.ts +4 -8
- package/skeleton/skeleton.property.d.ts +17 -8
- package/slider/slider.component.d.ts +34 -31
- package/slider/slider.property.d.ts +26 -22
- package/slider-select/slider-select.component.d.ts +38 -38
- package/slider-select/slider-select.property.d.ts +302 -28
- package/statistic/countdown.component.d.ts +2 -5
- package/statistic/statistic.component.d.ts +3 -8
- package/statistic/statistic.property.d.ts +44 -13
- package/steps/steps.component.d.ts +6 -16
- package/steps/steps.property.d.ts +15 -10
- package/style/core/index.css +0 -38
- package/style/core/index.css.map +1 -1
- package/style/core/var.scss +0 -4
- package/style/mixins/compatibility.scss +0 -1
- package/style/mixins/form.scss +8 -2
- package/style/params/index.scss +0 -1
- package/style/params/primary.scss +7 -28
- package/switch/switch.component.d.ts +9 -10
- package/switch/switch.property.d.ts +265 -16
- package/table/table-body.component.d.ts +21 -20
- package/table/table-foot.component.d.ts +7 -5
- package/table/table-head.component.d.ts +17 -19
- package/table/table.component.d.ts +62 -50
- package/table/table.property.d.ts +180 -178
- package/tabs/tab-content.component.d.ts +6 -8
- package/tabs/tab.component.d.ts +3 -5
- package/tabs/tabs.component.d.ts +17 -24
- package/tabs/tabs.property.d.ts +28 -24
- package/tag/tag.component.d.ts +7 -8
- package/tag/tag.property.d.ts +19 -21
- package/text-retract/text-retract.component.d.ts +4 -14
- package/text-retract/text-retract.property.d.ts +9 -5
- package/textarea/textarea.component.d.ts +17 -20
- package/textarea/textarea.property.d.ts +266 -30
- package/theme/theme.component.d.ts +24 -13
- package/theme/theme.property.d.ts +67 -16
- package/time-ago/time-ago.pipe.d.ts +7 -3
- package/time-ago/time-ago.property.d.ts +1 -1
- package/time-picker/time-picker-frame.component.d.ts +52 -39
- package/time-picker/time-picker-portal.component.d.ts +29 -29
- package/time-picker/time-picker.component.d.ts +29 -30
- package/time-picker/time-picker.property.d.ts +314 -23
- package/time-range/time-range.property.d.ts +1 -1
- package/timeline/timeline.component.d.ts +5 -13
- package/timeline/timeline.property.d.ts +12 -8
- package/tooltip/tooltip-portal.component.d.ts +23 -29
- package/tooltip/tooltip.directive.d.ts +10 -9
- package/tooltip/tooltip.property.d.ts +18 -14
- package/transfer/transfer.component.d.ts +23 -20
- package/transfer/transfer.property.d.ts +81 -25
- package/tree/tree-node.component.d.ts +21 -21
- package/tree/tree.component.d.ts +29 -28
- package/tree/tree.property.d.ts +129 -79
- package/tree-file/tree-file.component.d.ts +7 -9
- package/tree-file/tree-file.property.d.ts +40 -16
- package/tree-select/tree-select-portal.component.d.ts +38 -49
- package/tree-select/tree-select.component.d.ts +50 -53
- package/tree-select/tree-select.property.d.ts +328 -39
- package/typography/typography.component.d.ts +1 -1
- package/typography/typography.property.d.ts +3 -3
- package/upload/upload-portal.component.d.ts +14 -14
- package/upload/upload.component.d.ts +18 -17
- package/upload/upload.property.d.ts +73 -24
- package/border/border.component.d.ts +0 -11
- package/border/border.module.d.ts +0 -7
- package/border/border.property.d.ts +0 -6
- package/border/index.d.ts +0 -5
- package/border/public-api.d.ts +0 -3
- package/esm2022/border/border.component.mjs +0 -21
- package/esm2022/border/border.module.mjs +0 -16
- package/esm2022/border/border.property.mjs +0 -7
- package/esm2022/border/ng-nest-ui-border.mjs +0 -5
- package/esm2022/border/public-api.mjs +0 -4
- package/fesm2022/ng-nest-ui-border.mjs +0 -47
- package/fesm2022/ng-nest-ui-border.mjs.map +0 -1
- package/style/params/colors.scss +0 -38
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { XTooltipDirective } from '@ng-nest/ui/tooltip';
|
|
2
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ElementRef,
|
|
2
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, Renderer2, ElementRef, HostBinding, inject, signal, viewChild, viewChildren, computed } from '@angular/core';
|
|
3
3
|
import { XSliderSelectProperty, XSliderSelectPrefix } from './slider-select.property';
|
|
4
|
-
import { XIsEmpty, XIsUndefined, XResize,
|
|
5
|
-
import {
|
|
4
|
+
import { XIsEmpty, XIsUndefined, XResize, XIsNumber, XIsArray, XIsNull } from '@ng-nest/ui/core';
|
|
5
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
7
7
|
import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
8
8
|
import { XValueAccessor } from '@ng-nest/ui/base-form';
|
|
@@ -15,238 +15,243 @@ import * as i1 from "@angular/cdk/drag-drop";
|
|
|
15
15
|
export class XSliderSelectComponent extends XSliderSelectProperty {
|
|
16
16
|
constructor() {
|
|
17
17
|
super(...arguments);
|
|
18
|
-
this.
|
|
19
|
-
this.
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
this.
|
|
31
|
-
|
|
32
|
-
|
|
18
|
+
this.sliderSelect = viewChild.required('sliderSelect');
|
|
19
|
+
this.dragStartRef = viewChild.required('dragStartRef');
|
|
20
|
+
this.dragEndRef = viewChild.required('dragEndRef');
|
|
21
|
+
this.railRef = viewChild.required('railRef');
|
|
22
|
+
this.processRef = viewChild.required('processRef');
|
|
23
|
+
this.tooltips = viewChildren(XTooltipDirective);
|
|
24
|
+
this.tooltipStart = computed(() => {
|
|
25
|
+
if (this.tooltips().length > 0) {
|
|
26
|
+
return this.tooltips()[0];
|
|
27
|
+
}
|
|
28
|
+
return null;
|
|
29
|
+
});
|
|
30
|
+
this.tooltipEnd = computed(() => {
|
|
31
|
+
if (this.tooltips().length > 1) {
|
|
32
|
+
return this.tooltips()[1];
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
});
|
|
36
|
+
this.value = signal(0);
|
|
37
|
+
this.startOffset = signal(0);
|
|
38
|
+
this.startVisible = signal(false);
|
|
39
|
+
this.startManual = signal(false);
|
|
40
|
+
this.start = signal(null);
|
|
41
|
+
this.startDisplayValue = signal('0');
|
|
42
|
+
this.showStartTooltip = signal(true);
|
|
43
|
+
this.endOffset = signal(0);
|
|
44
|
+
this.endVisible = signal(false);
|
|
45
|
+
this.endManual = signal(false);
|
|
46
|
+
this.end = signal(null);
|
|
47
|
+
this.endDisplayValue = signal('0');
|
|
48
|
+
this.showEndTooltip = signal(true);
|
|
49
|
+
this.markList = computed(() => {
|
|
50
|
+
if (!this.marks())
|
|
51
|
+
return [];
|
|
52
|
+
const marks = [];
|
|
53
|
+
for (let mark of this.marks()) {
|
|
54
|
+
const mk = {
|
|
55
|
+
value: mark.value,
|
|
56
|
+
label: mark.label,
|
|
57
|
+
style: { ...mark.style }
|
|
58
|
+
};
|
|
59
|
+
mk.offset = this.getOffset(mark.value);
|
|
60
|
+
if (this.reverse()) {
|
|
61
|
+
if (this.vertical()) {
|
|
62
|
+
mk.style['top'] = `${mk.offset}%`;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
mk.style['right'] = `${mk.offset}%`;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
if (this.vertical()) {
|
|
70
|
+
mk.style['bottom'] = `${mk.offset}%`;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
mk.style['left'] = `${mk.offset}%`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
marks.push(mk);
|
|
77
|
+
}
|
|
78
|
+
return marks;
|
|
79
|
+
});
|
|
80
|
+
this.unSubject = new Subject();
|
|
81
|
+
this.isNumber = computed(() => XIsNumber(this.value()) && !XIsArray(this.value()));
|
|
82
|
+
this.isArray = computed(() => XIsArray(this.value()));
|
|
83
|
+
this.classMap = computed(() => ({
|
|
84
|
+
[`x-justify-${this.justify()}`]: !!this.justify(),
|
|
85
|
+
[`x-align-${this.align()}`]: !!this.align(),
|
|
86
|
+
[`x-direction-${this.direction()}`]: !!this.direction()
|
|
87
|
+
}));
|
|
88
|
+
this.labelMapSignal = computed(() => ({
|
|
89
|
+
[`x-text-align-${this.labelAlign()}`]: !!this.labelAlign()
|
|
90
|
+
}));
|
|
91
|
+
this.precisionSignal = computed(() => {
|
|
92
|
+
const precision = this.precision();
|
|
93
|
+
if (XIsUndefined(precision) || !XIsEmpty(this.step())) {
|
|
94
|
+
let stepStr = String(this.step());
|
|
95
|
+
let indexpoint = stepStr.indexOf('.');
|
|
96
|
+
if (indexpoint === -1) {
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
return stepStr.length - (indexpoint + 1);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return precision;
|
|
104
|
+
});
|
|
105
|
+
this.requiredIsEmpty = computed(() => this.validatorComputed() && this.requiredComputed() && (XIsEmpty(this.value()) || this.value() === 0));
|
|
33
106
|
this.renderer = inject(Renderer2);
|
|
34
107
|
this.cdr = inject(ChangeDetectorRef);
|
|
35
108
|
this.elementRef = inject(ElementRef);
|
|
36
|
-
this.configService = inject(XConfigService);
|
|
37
109
|
}
|
|
38
110
|
get getVertical() {
|
|
39
|
-
return this.vertical;
|
|
40
|
-
}
|
|
41
|
-
get requiredIsEmpty() {
|
|
42
|
-
return this.validator && this.required && (XIsEmpty(this.value) || this.value === 0);
|
|
111
|
+
return this.vertical();
|
|
43
112
|
}
|
|
44
113
|
writeValue(value) {
|
|
45
114
|
if (XIsNull(value) || XIsUndefined(value)) {
|
|
46
|
-
if (this.range) {
|
|
47
|
-
value = [
|
|
115
|
+
if (this.range()) {
|
|
116
|
+
value = [this.min(), this.min()];
|
|
48
117
|
}
|
|
49
118
|
else {
|
|
50
|
-
value =
|
|
119
|
+
value = this.min();
|
|
51
120
|
}
|
|
52
121
|
}
|
|
53
|
-
this.value
|
|
54
|
-
this.isNumber = XIsNumber(this.value) && !XIsArray(this.value);
|
|
55
|
-
this.isArray = XIsArray(this.value);
|
|
122
|
+
this.value.set(value);
|
|
56
123
|
this.setLeft();
|
|
57
124
|
this.setDisplayValue();
|
|
58
125
|
}
|
|
59
|
-
ngOnInit() {
|
|
60
|
-
this.setFlex(this.sliderSelect.nativeElement, this.renderer, this.justify, this.align, this.direction);
|
|
61
|
-
this.setPrecision();
|
|
62
|
-
this.setMarks();
|
|
63
|
-
this.setClassMap();
|
|
64
|
-
}
|
|
65
126
|
ngAfterViewInit() {
|
|
66
|
-
XResize(this.sliderSelect.nativeElement)
|
|
67
|
-
.pipe(debounceTime(30), takeUntil(this.
|
|
127
|
+
XResize(this.sliderSelect().nativeElement)
|
|
128
|
+
.pipe(debounceTime(30), takeUntil(this.unSubject))
|
|
68
129
|
.subscribe((x) => {
|
|
69
|
-
this.
|
|
130
|
+
this.resizeObserver = x.resizeObserver;
|
|
70
131
|
this.setLeft();
|
|
71
132
|
this.setDisplayValue();
|
|
72
|
-
this.cdr.detectChanges();
|
|
73
133
|
});
|
|
74
|
-
if (this.tooltips.length > 0) {
|
|
75
|
-
this.tooltipStart = this.tooltips.first;
|
|
76
|
-
}
|
|
77
|
-
if (this.tooltips.length > 1) {
|
|
78
|
-
this.tooltipEnd = this.tooltips.last;
|
|
79
|
-
}
|
|
80
134
|
}
|
|
81
135
|
ngOnDestroy() {
|
|
82
|
-
this.
|
|
83
|
-
this.
|
|
84
|
-
this.
|
|
136
|
+
this.unSubject.next();
|
|
137
|
+
this.unSubject.complete();
|
|
138
|
+
this.resizeObserver?.disconnect();
|
|
85
139
|
}
|
|
86
140
|
change() {
|
|
87
141
|
const getVal = (offset) => {
|
|
88
|
-
return parseFloat(Number(((
|
|
142
|
+
return parseFloat(Number(((this.max() - this.min()) * offset) / 100 + this.min()).toFixed(this.precisionSignal()));
|
|
89
143
|
};
|
|
90
|
-
const startVal = getVal(this.startOffset);
|
|
91
|
-
if (this.isNumber) {
|
|
92
|
-
this.value
|
|
144
|
+
const startVal = getVal(this.startOffset());
|
|
145
|
+
if (this.isNumber()) {
|
|
146
|
+
this.value.set(startVal);
|
|
93
147
|
}
|
|
94
148
|
else {
|
|
95
|
-
const endVal = getVal(this.endOffset);
|
|
149
|
+
const endVal = getVal(this.endOffset());
|
|
96
150
|
if (endVal < startVal) {
|
|
97
|
-
this.value
|
|
151
|
+
this.value.set([endVal, startVal]);
|
|
98
152
|
}
|
|
99
153
|
else {
|
|
100
|
-
this.value
|
|
154
|
+
this.value.set([startVal, endVal]);
|
|
101
155
|
}
|
|
102
156
|
}
|
|
103
157
|
this.setDisplayValue();
|
|
104
158
|
if (this.onChange)
|
|
105
|
-
this.onChange(this.value);
|
|
106
|
-
}
|
|
107
|
-
setClassMap() {
|
|
108
|
-
XClearClass(this.labelMap);
|
|
109
|
-
this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
|
|
159
|
+
this.onChange(this.value());
|
|
110
160
|
}
|
|
111
161
|
getOffset(val) {
|
|
112
|
-
return Math.abs(Math.round(((val + (this.reverse ? -
|
|
162
|
+
return Math.abs(Math.round(((val + (this.reverse() ? -this.min() : this.min())) * 100) / (this.max() - this.min())));
|
|
113
163
|
}
|
|
114
164
|
setLeft() {
|
|
115
165
|
let startVal = 0, endVal = 0;
|
|
116
|
-
|
|
117
|
-
|
|
166
|
+
const value = this.value();
|
|
167
|
+
if (this.isNumber()) {
|
|
168
|
+
startVal = value;
|
|
118
169
|
}
|
|
119
|
-
else if (XIsArray(
|
|
120
|
-
startVal =
|
|
121
|
-
endVal =
|
|
122
|
-
this.endOffset
|
|
123
|
-
|
|
124
|
-
this.end = end;
|
|
170
|
+
else if (XIsArray(value) && value.length > 1) {
|
|
171
|
+
startVal = value[0];
|
|
172
|
+
endVal = value[1];
|
|
173
|
+
this.endOffset.set(this.getOffset(endVal));
|
|
174
|
+
this.end.set(this.endOffset());
|
|
125
175
|
}
|
|
126
|
-
this.startOffset
|
|
127
|
-
|
|
128
|
-
this.start = start;
|
|
176
|
+
this.startOffset.set(this.getOffset(startVal));
|
|
177
|
+
this.start.set(this.startOffset());
|
|
129
178
|
this.setDrag();
|
|
130
|
-
this.cdr.detectChanges();
|
|
131
179
|
}
|
|
132
180
|
setDisplayValue() {
|
|
133
181
|
const displayVal = (val) => {
|
|
134
|
-
return Number(val).toFixed(
|
|
182
|
+
return Number(val).toFixed(this.precisionSignal());
|
|
135
183
|
};
|
|
136
|
-
|
|
137
|
-
|
|
184
|
+
const value = this.value();
|
|
185
|
+
if (this.isNumber()) {
|
|
186
|
+
this.startDisplayValue.set(displayVal(value));
|
|
138
187
|
}
|
|
139
188
|
else {
|
|
140
|
-
if (XIsArray(
|
|
141
|
-
if (this.startOffset > this.endOffset) {
|
|
142
|
-
this.startDisplayValue
|
|
143
|
-
this.endDisplayValue
|
|
189
|
+
if (XIsArray(value) && value.length > 1) {
|
|
190
|
+
if (this.startOffset() > this.endOffset()) {
|
|
191
|
+
this.startDisplayValue.set(displayVal(value[1]));
|
|
192
|
+
this.endDisplayValue.set(displayVal(value[0]));
|
|
144
193
|
}
|
|
145
194
|
else {
|
|
146
|
-
this.startDisplayValue
|
|
147
|
-
this.endDisplayValue
|
|
195
|
+
this.startDisplayValue.set(displayVal(value[0]));
|
|
196
|
+
this.endDisplayValue.set(displayVal(value[1]));
|
|
148
197
|
}
|
|
149
198
|
}
|
|
150
199
|
}
|
|
151
|
-
this.cdr.detectChanges();
|
|
152
|
-
}
|
|
153
|
-
setPrecision() {
|
|
154
|
-
if (XIsUndefined(this.precision) || !XIsEmpty(this.step)) {
|
|
155
|
-
let stepStr = String(this.step);
|
|
156
|
-
let indexpoint = stepStr.indexOf('.');
|
|
157
|
-
if (indexpoint === -1) {
|
|
158
|
-
this.precision = 0;
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
this.precision = stepStr.length - (indexpoint + 1);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
setMarks() {
|
|
166
|
-
if (!this.marks)
|
|
167
|
-
return;
|
|
168
|
-
for (let mark of this.marks) {
|
|
169
|
-
const mk = {
|
|
170
|
-
value: mark.value,
|
|
171
|
-
label: mark.label,
|
|
172
|
-
style: { ...mark.style }
|
|
173
|
-
};
|
|
174
|
-
mk.offset = this.getOffset(mark.value);
|
|
175
|
-
if (this.reverse) {
|
|
176
|
-
if (this.vertical) {
|
|
177
|
-
mk.style['top'] = `${mk.offset}%`;
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
180
|
-
mk.style['right'] = `${mk.offset}%`;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
if (this.vertical) {
|
|
185
|
-
mk.style['bottom'] = `${mk.offset}%`;
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
mk.style['left'] = `${mk.offset}%`;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
this.markList.push(mk);
|
|
192
|
-
}
|
|
193
200
|
}
|
|
194
201
|
started(drag, type = 'start') {
|
|
195
202
|
if (['start', 'both'].includes(type)) {
|
|
196
|
-
const start = this.startOffset;
|
|
197
|
-
this.start
|
|
198
|
-
if (this.showStartTooltip) {
|
|
199
|
-
this.startManual
|
|
200
|
-
this.startVisible
|
|
203
|
+
const start = this.startOffset();
|
|
204
|
+
this.start.set(start);
|
|
205
|
+
if (this.showStartTooltip()) {
|
|
206
|
+
this.startManual.set(true);
|
|
207
|
+
this.startVisible.set(true);
|
|
201
208
|
}
|
|
202
209
|
}
|
|
203
210
|
if (['end', 'both'].includes(type)) {
|
|
204
|
-
const end = this.endOffset;
|
|
205
|
-
this.end
|
|
206
|
-
if (this.showEndTooltip) {
|
|
207
|
-
this.endManual
|
|
208
|
-
this.endVisible
|
|
211
|
+
const end = this.endOffset();
|
|
212
|
+
this.end.set(end);
|
|
213
|
+
if (this.showEndTooltip()) {
|
|
214
|
+
this.endManual.set(true);
|
|
215
|
+
this.endVisible.set(true);
|
|
209
216
|
}
|
|
210
217
|
}
|
|
211
|
-
this.cdr.detectChanges();
|
|
212
218
|
this.formControlValidator();
|
|
213
219
|
this.dragStartEmit.emit(drag);
|
|
214
220
|
}
|
|
215
221
|
moved(drag, type = 'start') {
|
|
216
222
|
let transform = drag.source.getFreeDragPosition();
|
|
217
|
-
this.setDrag(this.vertical ? transform.y : transform.x, type);
|
|
223
|
+
this.setDrag(this.vertical() ? transform.y : transform.x, type);
|
|
218
224
|
drag.source.reset();
|
|
219
|
-
if (['start', 'both'].includes(type) && this.showStartTooltip) {
|
|
220
|
-
this.tooltipStart
|
|
225
|
+
if (['start', 'both'].includes(type) && this.showStartTooltip()) {
|
|
226
|
+
this.tooltipStart()?.updatePortal();
|
|
221
227
|
}
|
|
222
|
-
if (['end', 'both'].includes(type) && this.showEndTooltip) {
|
|
223
|
-
this.tooltipEnd
|
|
228
|
+
if (['end', 'both'].includes(type) && this.showEndTooltip()) {
|
|
229
|
+
this.tooltipEnd()?.updatePortal();
|
|
224
230
|
}
|
|
225
231
|
this.change();
|
|
226
232
|
this.dragMoveEmit.emit(drag);
|
|
227
233
|
}
|
|
228
234
|
ended(drag, type = 'start') {
|
|
229
235
|
if (['start', 'both'].includes(type)) {
|
|
230
|
-
if (this.showStartTooltip) {
|
|
231
|
-
this.startManual
|
|
232
|
-
this.startVisible
|
|
236
|
+
if (this.showStartTooltip()) {
|
|
237
|
+
this.startManual.set(false);
|
|
238
|
+
this.startVisible.set(false);
|
|
233
239
|
}
|
|
234
240
|
}
|
|
235
241
|
if (['end', 'both'].includes(type)) {
|
|
236
|
-
if (this.showEndTooltip) {
|
|
237
|
-
this.endManual
|
|
238
|
-
this.endVisible
|
|
242
|
+
if (this.showEndTooltip()) {
|
|
243
|
+
this.endManual.set(false);
|
|
244
|
+
this.endVisible.set(false);
|
|
239
245
|
}
|
|
240
246
|
}
|
|
241
|
-
this.cdr.detectChanges();
|
|
242
247
|
this.dragEndEmit.emit(drag);
|
|
243
248
|
}
|
|
244
249
|
setDrag(distance = 0, type = 'both') {
|
|
245
|
-
if (typeof this.railRef.nativeElement.getBoundingClientRect !== 'function')
|
|
250
|
+
if (typeof this.railRef().nativeElement.getBoundingClientRect !== 'function')
|
|
246
251
|
return;
|
|
247
|
-
let railBox = this.railRef.nativeElement.getBoundingClientRect();
|
|
248
|
-
let railBoxLength = this.vertical ? railBox.height : railBox.width;
|
|
249
|
-
let stepLength = railBoxLength / ((
|
|
252
|
+
let railBox = this.railRef().nativeElement.getBoundingClientRect();
|
|
253
|
+
let railBoxLength = this.vertical() ? railBox.height : railBox.width;
|
|
254
|
+
let stepLength = railBoxLength / ((this.max() - this.min()) / this.step());
|
|
250
255
|
let offset = Math.abs(distance % stepLength);
|
|
251
256
|
let dis = offset < stepLength / 2
|
|
252
257
|
? distance > 0
|
|
@@ -257,88 +262,85 @@ export class XSliderSelectComponent extends XSliderSelectProperty {
|
|
|
257
262
|
: distance - stepLength + offset;
|
|
258
263
|
const setOffset = (d) => {
|
|
259
264
|
let x1 = (d / 100) * railBoxLength;
|
|
260
|
-
if (this.vertical) {
|
|
261
|
-
x1 += this.reverse ? dis : -dis;
|
|
265
|
+
if (this.vertical()) {
|
|
266
|
+
x1 += this.reverse() ? dis : -dis;
|
|
262
267
|
}
|
|
263
268
|
else {
|
|
264
|
-
x1 += this.reverse ? -dis : dis;
|
|
269
|
+
x1 += this.reverse() ? -dis : dis;
|
|
265
270
|
}
|
|
266
271
|
return Math.round((x1 / railBoxLength) * 100);
|
|
267
272
|
};
|
|
268
273
|
if (type === 'both') {
|
|
269
|
-
this.startOffset
|
|
270
|
-
this.endOffset
|
|
274
|
+
this.startOffset.set(setOffset(this.start()));
|
|
275
|
+
this.endOffset.set(setOffset(this.end()));
|
|
271
276
|
}
|
|
272
277
|
else if (type === 'start') {
|
|
273
|
-
this.startOffset
|
|
278
|
+
this.startOffset.set(setOffset(this.start()));
|
|
274
279
|
}
|
|
275
280
|
else if (type === 'end') {
|
|
276
|
-
this.endOffset
|
|
281
|
+
this.endOffset.set(setOffset(this.end()));
|
|
277
282
|
}
|
|
278
283
|
this.setDragStyles();
|
|
279
284
|
}
|
|
280
285
|
setDragStyles() {
|
|
281
|
-
if (this.vertical) {
|
|
282
|
-
if (this.isArray) {
|
|
283
|
-
const wd = Math.abs(this.endOffset - this.startOffset);
|
|
284
|
-
const lt = this.endOffset > this.startOffset ? this.startOffset : this.endOffset;
|
|
285
|
-
if (this.reverse) {
|
|
286
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'top', `${this.startOffset}%`);
|
|
287
|
-
this.renderer.setStyle(this.dragEndRef.nativeElement, 'top', `${this.endOffset}%`);
|
|
288
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'top', `${lt}%`);
|
|
286
|
+
if (this.vertical()) {
|
|
287
|
+
if (this.isArray()) {
|
|
288
|
+
const wd = Math.abs(this.endOffset() - this.startOffset());
|
|
289
|
+
const lt = this.endOffset() > this.startOffset() ? this.startOffset() : this.endOffset();
|
|
290
|
+
if (this.reverse()) {
|
|
291
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'top', `${this.startOffset()}%`);
|
|
292
|
+
this.renderer.setStyle(this.dragEndRef().nativeElement, 'top', `${this.endOffset()}%`);
|
|
293
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'top', `${lt}%`);
|
|
289
294
|
}
|
|
290
295
|
else {
|
|
291
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'bottom', `${this.startOffset}%`);
|
|
292
|
-
this.renderer.setStyle(this.dragEndRef.nativeElement, 'bottom', `${this.endOffset}%`);
|
|
293
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'bottom', `${lt}%`);
|
|
296
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'bottom', `${this.startOffset()}%`);
|
|
297
|
+
this.renderer.setStyle(this.dragEndRef().nativeElement, 'bottom', `${this.endOffset()}%`);
|
|
298
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'bottom', `${lt}%`);
|
|
294
299
|
}
|
|
295
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'height', `${wd}%`);
|
|
300
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'height', `${wd}%`);
|
|
296
301
|
}
|
|
297
302
|
else {
|
|
298
|
-
if (this.reverse) {
|
|
299
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'top', `${this.startOffset}%`);
|
|
303
|
+
if (this.reverse()) {
|
|
304
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'top', `${this.startOffset()}%`);
|
|
300
305
|
}
|
|
301
306
|
else {
|
|
302
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'bottom', `${this.startOffset}%`);
|
|
307
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'bottom', `${this.startOffset()}%`);
|
|
303
308
|
}
|
|
304
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'height', `${this.startOffset}%`);
|
|
309
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'height', `${this.startOffset()}%`);
|
|
305
310
|
}
|
|
306
311
|
}
|
|
307
312
|
else {
|
|
308
|
-
if (this.isArray) {
|
|
309
|
-
const wd = Math.abs(this.endOffset - this.startOffset);
|
|
310
|
-
const lt = this.endOffset > this.startOffset ? this.startOffset : this.endOffset;
|
|
311
|
-
if (this.reverse) {
|
|
312
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'right', `${this.startOffset}%`);
|
|
313
|
-
this.renderer.setStyle(this.dragEndRef.nativeElement, 'right', `${this.endOffset}%`);
|
|
314
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'right', `${lt}%`);
|
|
313
|
+
if (this.isArray()) {
|
|
314
|
+
const wd = Math.abs(this.endOffset() - this.startOffset());
|
|
315
|
+
const lt = this.endOffset() > this.startOffset() ? this.startOffset() : this.endOffset();
|
|
316
|
+
if (this.reverse()) {
|
|
317
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'right', `${this.startOffset()}%`);
|
|
318
|
+
this.renderer.setStyle(this.dragEndRef().nativeElement, 'right', `${this.endOffset()}%`);
|
|
319
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'right', `${lt}%`);
|
|
315
320
|
}
|
|
316
321
|
else {
|
|
317
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'left', `${this.startOffset}%`);
|
|
318
|
-
this.renderer.setStyle(this.dragEndRef.nativeElement, 'left', `${this.endOffset}%`);
|
|
319
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'left', `${lt}%`);
|
|
322
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'left', `${this.startOffset()}%`);
|
|
323
|
+
this.renderer.setStyle(this.dragEndRef().nativeElement, 'left', `${this.endOffset()}%`);
|
|
324
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'left', `${lt}%`);
|
|
320
325
|
}
|
|
321
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'width', `${wd}%`);
|
|
326
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'width', `${wd}%`);
|
|
322
327
|
}
|
|
323
328
|
else {
|
|
324
|
-
if (this.reverse) {
|
|
325
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'right', `${this.startOffset}%`);
|
|
329
|
+
if (this.reverse()) {
|
|
330
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'right', `${this.startOffset()}%`);
|
|
326
331
|
}
|
|
327
332
|
else {
|
|
328
|
-
this.renderer.setStyle(this.dragStartRef.nativeElement, 'left', `${this.startOffset}%`);
|
|
333
|
+
this.renderer.setStyle(this.dragStartRef().nativeElement, 'left', `${this.startOffset()}%`);
|
|
329
334
|
}
|
|
330
|
-
this.renderer.setStyle(this.processRef.nativeElement, 'width', `${this.startOffset}%`);
|
|
335
|
+
this.renderer.setStyle(this.processRef().nativeElement, 'width', `${this.startOffset()}%`);
|
|
331
336
|
}
|
|
332
337
|
}
|
|
333
338
|
}
|
|
334
|
-
formControlChanges() {
|
|
335
|
-
|
|
336
|
-
this.cdr.detectChanges();
|
|
337
|
-
}
|
|
338
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: XSliderSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
339
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.10", type: XSliderSelectComponent, isStandalone: true, selector: "x-slider-select", host: { properties: { "class.x-slider-select-vertical": "this.getVertical" } }, providers: [XValueAccessor(XSliderSelectComponent)], viewQueries: [{ propertyName: "sliderSelect", first: true, predicate: ["sliderSelect"], descendants: true, static: true }, { propertyName: "dragStartRef", first: true, predicate: ["dragStartRef"], descendants: true, static: true }, { propertyName: "dragEndRef", first: true, predicate: ["dragEndRef"], descendants: true, static: true }, { propertyName: "railRef", first: true, predicate: ["railRef"], descendants: true, static: true }, { propertyName: "processRef", first: true, predicate: ["processRef"], descendants: true, static: true }, { propertyName: "cdkDrag", first: true, predicate: CdkDrag, descendants: true }, { propertyName: "tooltips", predicate: XTooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-slider-select-reverse]=\"reverse\"\r\n [class.x-slider-select-range]=\"range\"\r\n>\r\n @if (label) {\r\n <label [class.x-slider-select-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{\r\n label\r\n }}</label>\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled || !range\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList; track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible\"\r\n [class.x-slider-select-custom-button]=\"customButton\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip && !showStartTooltip\"\r\n [content]=\"tooltipStartTpl\"\r\n [visible]=\"startVisible\"\r\n [manual]=\"startManual\"\r\n >\r\n <ng-container *xOutlet=\"customButton\">{{ customButton }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom; context: { $value: startDisplayValue }\">{{\r\n startDisplayValue\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible\"\r\n [class.x-slider-select-custom-button]=\"customButton\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip && !showEndTooltip\"\r\n [content]=\"tooltipEndTpl\"\r\n [visible]=\"endVisible\"\r\n [manual]=\"endManual\"\r\n >\r\n <ng-container *xOutlet=\"customButton\">{{ customButton }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom; context: { $value: endDisplayValue }\">{{\r\n endDisplayValue\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0;width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);color:var(--x-text-300);font-weight:600}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:.875rem}.x-slider-select-rail{position:absolute;margin-left:.4375rem;width:calc(100% - .875rem);background-color:var(--x-border-100);height:calc(calc(var(--x-font-size) + .875rem) / 5);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%}.x-slider-select-track{margin-left:.4375rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(calc(var(--x-font-size) + .875rem) / 5);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:calc(var(--x-font-size) + .875rem);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.4375rem;width:100%;height:calc(var(--x-font-size) + .875rem);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:.875rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.65625rem;height:.65625rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:.875rem}.x-slider-select-mark-label{transform:translateY(.875rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:.875rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:.875rem;height:.875rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:.875rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.4375rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.4375rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.4375rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:.875rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.4375rem;height:calc(100% - .875rem);width:calc(calc(var(--x-font-size) + .875rem) / 5)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.4375rem;width:calc(calc(var(--x-font-size) + .875rem) / 5);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.4375rem;width:calc(calc(var(--x-font-size) + .875rem) / 5);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:.875rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(calc(var(--x-font-size) + .875rem) / 5)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:calc(var(--x-font-size) + .875rem);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:.875rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.4375rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.4375rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: XTooltipDirective, selector: "[x-tooltip], x-tooltip" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
339
|
+
formControlChanges() { }
|
|
340
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSliderSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
341
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XSliderSelectComponent, isStandalone: true, selector: "x-slider-select", host: { properties: { "class.x-slider-select-vertical": "this.getVertical" } }, providers: [XValueAccessor(XSliderSelectComponent)], viewQueries: [{ propertyName: "sliderSelect", first: true, predicate: ["sliderSelect"], descendants: true, isSignal: true }, { propertyName: "dragStartRef", first: true, predicate: ["dragStartRef"], descendants: true, isSignal: true }, { propertyName: "dragEndRef", first: true, predicate: ["dragEndRef"], descendants: true, isSignal: true }, { propertyName: "railRef", first: true, predicate: ["railRef"], descendants: true, isSignal: true }, { propertyName: "processRef", first: true, predicate: ["processRef"], descendants: true, isSignal: true }, { propertyName: "tooltips", predicate: XTooltipDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-slider-select-reverse]=\"reverse()\"\r\n [class.x-slider-select-range]=\"range()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList(); track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip() && !showStartTooltip()\"\r\n [content]=\"tooltipStartTpl\"\r\n [(visible)]=\"startVisible\"\r\n [manual]=\"startManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n startDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range()\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip() && !showEndTooltip()\"\r\n [content]=\"tooltipEndTpl\"\r\n [(visible)]=\"endVisible\"\r\n [manual]=\"endManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n endDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0;width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);color:var(--x-text-300);font-weight:600}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:1rem}.x-slider-select-rail{position:absolute;margin-left:.5rem;width:calc(100% - 1rem);background-color:var(--x-border-100);height:calc(var(--x-height-medium) / 4);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%;border-radius:var(--x-border-radius)}.x-slider-select-track{margin-left:.5rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(var(--x-height-medium) / 4);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.5rem;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:1rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.75rem;height:.75rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:1rem}.x-slider-select-mark-label{transform:translateY(1rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:1rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:var(--x-height-medium);line-height:var(--x-height-medium);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:1rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.5rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.5rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.5rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:1rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.5rem;height:calc(100% - 1rem);width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:1rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:var(--x-height-medium);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:1rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.5rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.5rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: XTooltipDirective, selector: "[x-tooltip], x-tooltip" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
340
342
|
}
|
|
341
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XSliderSelectComponent, decorators: [{
|
|
342
344
|
type: Component,
|
|
343
345
|
args: [{ selector: `${XSliderSelectPrefix}`, standalone: true, imports: [
|
|
344
346
|
NgClass,
|
|
@@ -349,30 +351,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
349
351
|
XTooltipDirective,
|
|
350
352
|
XDragDirective,
|
|
351
353
|
XOutletDirective
|
|
352
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSliderSelectComponent)], template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-slider-select-reverse]=\"reverse\"\r\n [class.x-slider-select-range]=\"range\"\r\n>\r\n @if (label) {\r\n <label [class.x-slider-select-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{\r\n label\r\n }}</label>\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled || !range\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList; track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible\"\r\n [class.x-slider-select-custom-button]=\"customButton\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip && !showStartTooltip\"\r\n [content]=\"tooltipStartTpl\"\r\n [visible]=\"startVisible\"\r\n [manual]=\"startManual\"\r\n >\r\n <ng-container *xOutlet=\"customButton\">{{ customButton }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom; context: { $value: startDisplayValue }\">{{\r\n startDisplayValue\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabled\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible\"\r\n [class.x-slider-select-custom-button]=\"customButton\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip && !showEndTooltip\"\r\n [content]=\"tooltipEndTpl\"\r\n [visible]=\"endVisible\"\r\n [manual]=\"endManual\"\r\n >\r\n <ng-container *xOutlet=\"customButton\">{{ customButton }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom; context: { $value: endDisplayValue }\">{{\r\n endDisplayValue\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0;width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);color:var(--x-text-300);font-weight:600}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:.875rem}.x-slider-select-rail{position:absolute;margin-left:.4375rem;width:calc(100% - .875rem);background-color:var(--x-border-100);height:calc(calc(var(--x-font-size) + .875rem) / 5);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%}.x-slider-select-track{margin-left:.4375rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(calc(var(--x-font-size) + .875rem) / 5);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:calc(var(--x-font-size) + .875rem);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.4375rem;width:100%;height:calc(var(--x-font-size) + .875rem);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:.875rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.65625rem;height:.65625rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:.875rem}.x-slider-select-mark-label{transform:translateY(.875rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:.875rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:.875rem;height:.875rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:.875rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.4375rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.4375rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.4375rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:.875rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.4375rem;height:calc(100% - .875rem);width:calc(calc(var(--x-font-size) + .875rem) / 5)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.4375rem;width:calc(calc(var(--x-font-size) + .875rem) / 5);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.4375rem;width:calc(calc(var(--x-font-size) + .875rem) / 5);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:.875rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(calc(var(--x-font-size) + .875rem) / 5)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:calc(var(--x-font-size) + .875rem);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:.875rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.4375rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.4375rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"] }]
|
|
353
|
-
}], propDecorators: {
|
|
354
|
-
type: ViewChild,
|
|
355
|
-
args: ['sliderSelect', { static: true }]
|
|
356
|
-
}], dragStartRef: [{
|
|
357
|
-
type: ViewChild,
|
|
358
|
-
args: ['dragStartRef', { static: true }]
|
|
359
|
-
}], dragEndRef: [{
|
|
360
|
-
type: ViewChild,
|
|
361
|
-
args: ['dragEndRef', { static: true }]
|
|
362
|
-
}], railRef: [{
|
|
363
|
-
type: ViewChild,
|
|
364
|
-
args: ['railRef', { static: true }]
|
|
365
|
-
}], processRef: [{
|
|
366
|
-
type: ViewChild,
|
|
367
|
-
args: ['processRef', { static: true }]
|
|
368
|
-
}], getVertical: [{
|
|
354
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XSliderSelectComponent)], template: "<div\r\n #sliderSelect\r\n class=\"x-slider-select\"\r\n [class.x-flex]=\"justify() || align() || direction()\"\r\n [class.x-disabled]=\"disabledComputed()\"\r\n [class.x-required]=\"requiredIsEmpty()\"\r\n [class.x-invalid]=\"invalid()\"\r\n [class.x-slider-select-reverse]=\"reverse()\"\r\n [class.x-slider-select-range]=\"range()\"\r\n [ngClass]=\"classMap()\"\r\n>\r\n @if (label()) {\r\n <label\r\n [class.x-slider-select-label-required]=\"requiredComputed()\"\r\n [style.width]=\"labelWidth()\"\r\n [ngClass]=\"labelMapSignal()\"\r\n >{{ label() }}</label\r\n >\r\n }\r\n <div class=\"x-slider-select-inner\" #innerRef>\r\n <div class=\"x-slider-select-rail\" #railRef>\r\n <div></div>\r\n </div>\r\n <div class=\"x-slider-select-drags\">\r\n <div class=\"x-slider-select-track\" #trackRef>\r\n <div\r\n #processRef\r\n class=\"x-slider-select-process\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed() || !range()\"\r\n [cdkDragBoundary]=\"trackRef\"\r\n (cdkDragStarted)=\"started($event, 'both')\"\r\n (cdkDragEnded)=\"ended($event, 'both')\"\r\n (cdkDragMoved)=\"moved($event, 'both')\"\r\n ></div>\r\n </div>\r\n <div class=\"x-slider-select-marks\">\r\n @for (mark of markList(); track mark.label) {\r\n <div class=\"x-slider-select-mark\" [ngStyle]=\"mark.style\">\r\n <span class=\"x-slider-select-mark-label\">{{ mark.label }}</span>\r\n </div>\r\n }\r\n </div>\r\n <div\r\n #dragStartRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'start')\"\r\n (cdkDragEnded)=\"ended($event, 'start')\"\r\n (cdkDragMoved)=\"moved($event, 'start')\"\r\n >\r\n <div\r\n #tooltipStart\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"startVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip() && !showStartTooltip()\"\r\n [content]=\"tooltipStartTpl\"\r\n [(visible)]=\"startVisible\"\r\n [manual]=\"startManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipStartTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: startDisplayValue() }\">{{\r\n startDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n <div\r\n [hidden]=\"!range()\"\r\n #dragEndRef\r\n class=\"x-slider-select-drag\"\r\n cdkDrag\r\n [cdkDragLockAxis]=\"vertical() ? 'y' : 'x'\"\r\n [cdkDragDisabled]=\"disabledComputed()\"\r\n [cdkDragBoundary]=\"innerRef\"\r\n (cdkDragStarted)=\"started($event, 'end')\"\r\n (cdkDragEnded)=\"ended($event, 'end')\"\r\n (cdkDragMoved)=\"moved($event, 'end')\"\r\n >\r\n <div\r\n #tooltipEnd\r\n x-tooltip\r\n tabindex=\"0\"\r\n class=\"x-slider-select-button\"\r\n [class.x-slider-select-button-actived]=\"endVisible()\"\r\n [class.x-slider-select-custom-button]=\"customButton()\"\r\n placement=\"top\"\r\n [disabled]=\"!showTooltip() && !showEndTooltip()\"\r\n [content]=\"tooltipEndTpl\"\r\n [(visible)]=\"endVisible\"\r\n [manual]=\"endManual()\"\r\n >\r\n <ng-container *xOutlet=\"customButton()\">{{ customButton() }}</ng-container>\r\n </div>\r\n <ng-template #tooltipEndTpl>\r\n <ng-container *xOutlet=\"tooltipCustom(); context: { $value: endDisplayValue() }\">{{\r\n endDisplayValue()\r\n }}</ng-container>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-slider-select{display:inline-block;width:12rem}.x-slider-select{margin:0;padding:0;width:100%}.x-slider-select.x-flex{display:flex}.x-slider-select.x-justify-start{justify-content:flex-start}.x-slider-select.x-justify-center{justify-content:center}.x-slider-select.x-justify-end{justify-content:flex-end}.x-slider-select.x-justify-space-between{justify-content:space-between}.x-slider-select.x-justify-space-around{justify-content:space-around}.x-slider-select.x-align-start{align-items:flex-start}.x-slider-select.x-align-center{align-items:center}.x-slider-select.x-align-end{align-items:flex-end}.x-slider-select.x-direction-column{flex-direction:column}.x-slider-select.x-direction-column-reverse{flex-direction:column-reverse}.x-slider-select.x-direction-row{flex-direction:row}.x-slider-select.x-direction-row-reverse{flex-direction:row-reverse}.x-slider-select>label{display:inline-block;white-space:nowrap;height:var(--x-height-medium);line-height:var(--x-height-medium);color:var(--x-text-300);font-weight:600}.x-slider-select>label.x-text-align-start{text-align:start}.x-slider-select>label.x-text-align-center{text-align:center}.x-slider-select>label.x-text-align-end{text-align:end}.x-slider-select-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-slider-select-inner{flex:1;position:relative;display:flex;align-items:center;padding-right:1rem}.x-slider-select-rail{position:absolute;margin-left:.5rem;width:calc(100% - 1rem);background-color:var(--x-border-100);height:calc(var(--x-height-medium) / 4);border-radius:var(--x-border-radius)}.x-slider-select-rail>div{width:100%;height:100%;border-radius:var(--x-border-radius)}.x-slider-select-track{margin-left:.5rem;width:100%;border-radius:var(--x-border-radius);position:absolute}.x-slider-select-process{height:calc(var(--x-height-medium) / 4);background-color:var(--x-primary);border-radius:var(--x-border-radius);width:0%;position:relative}.x-slider-select-drags{position:relative;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-drag{position:absolute;cursor:pointer}.x-slider-select-marks{position:absolute;margin-left:.5rem;width:100%;height:var(--x-height-medium);display:flex;align-items:center}.x-slider-select-mark{position:absolute;transform:translate(-50%);border-radius:1rem;display:flex;align-items:center;justify-content:center}.x-slider-select-mark:before{content:\" \";position:absolute;width:.75rem;height:.75rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100);border-radius:1rem}.x-slider-select-mark-label{transform:translateY(1rem)}.x-slider-select-button:not(.x-slider-select-custom-button){border-radius:1rem;border:calc(var(--x-border-width) * 2) solid var(--x-primary);background-color:var(--x-background-a100)}.x-slider-select-button{width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;transition:var(--x-animation-duration-base)}.x-slider-select-button:hover,.x-slider-select-button-actived{transform:scale(1.2)}.x-slider-select-bar{width:100%;height:100%}.x-slider-select.x-invalid>label,.x-slider-select.x-required>label{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row>x-icon,.x-slider-select.x-required>.x-slider-select-row>x-icon{color:var(--x-danger)}.x-slider-select.x-invalid>.x-slider-select-row:before,.x-slider-select.x-required>.x-slider-select-row:before{content:\" \";z-index:2;position:absolute;height:var(--x-height-medium);line-height:var(--x-height-medium);border-top-left-radius:var(--x-border-radius);border-bottom-left-radius:var(--x-border-radius);width:.125rem;background-color:var(--x-danger)}.x-slider-select.x-disabled .x-slider-select-rail{background-color:var(--x-border-300)}.x-slider-select.x-disabled .x-slider-select-process{background-color:var(--x-primary-400)}.x-slider-select.x-disabled .x-slider-select-drag{cursor:not-allowed}.x-slider-select.x-disabled .x-slider-select-button:not(.x-slider-select-custom-button){border-color:var(--x-primary-400)}.x-slider-select.x-flex.x-direction-row>label{padding:0 .5rem 0 0}.x-slider-select.x-flex.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-slider-select.x-flex.x-direction-column,.x-slider-select.x-flex.x-direction-column-reverse{align-items:inherit}.x-slider-select-max-length{position:absolute;font-size:var(--x-font-size-small);color:var(--x-text-500);padding:0 var(--x-padding-medium);right:0}.x-slider-select:hover:not(.x-disabled) .x-slider-select-process{background-color:var(--x-primary-100)}.x-slider-select:hover:not(.x-disabled) .x-slider-select-button{border-color:var(--x-primary-100)}.x-slider-select-reverse .x-slider-select-inner{padding-right:0;padding-left:1rem}.x-slider-select-reverse .x-slider-select-rail{margin-left:-.5rem}.x-slider-select-reverse .x-slider-select-marks{margin-right:.5rem}.x-slider-select-reverse .x-slider-select-mark{transform:translate(50%)}.x-slider-select-reverse .x-slider-select-track{display:flex;justify-content:flex-end;margin-right:.5rem}.x-slider-select-reverse .x-slider-select-drags{justify-content:flex-end;right:auto}.x-slider-select-vertical{width:initial;height:12rem}.x-slider-select-vertical .x-slider-select{height:100%}.x-slider-select-vertical .x-slider-select-inner{padding-right:initial;padding-top:1rem;align-items:initial;justify-content:center;height:100%}.x-slider-select-vertical .x-slider-select-rail{margin-left:initial;margin-top:-.5rem;height:calc(100% - 1rem);width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-track{display:flex;align-items:flex-end;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-marks{display:flex;align-items:flex-end;justify-content:center;margin-left:initial;margin-bottom:.5rem;width:calc(var(--x-height-medium) / 4);height:100%}.x-slider-select-vertical .x-slider-select-mark{transform:translate(0) translateY(50%)}.x-slider-select-vertical .x-slider-select-mark-label{transform:translate(50%) translateY(0);margin-left:1rem}.x-slider-select-vertical .x-slider-select-process{height:0%;width:calc(var(--x-height-medium) / 4)}.x-slider-select-vertical .x-slider-select-drags{height:100%;width:var(--x-height-medium);align-items:flex-end;justify-content:center;right:auto}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-inner{padding-left:initial;padding-bottom:1rem;padding-top:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-rail{margin-top:.5rem}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-track,.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-marks{align-items:flex-start;margin-bottom:-.5rem;margin-right:initial}.x-slider-select-vertical .x-slider-select-reverse .x-slider-select-mark{transform:translate(0) translateY(-50%)}.x-slider-select-range .x-slider-select-process{cursor:pointer}.x-slider-select:not(.x-slider-select-reverse) .x-slider-select-drag{left:auto}\n"] }]
|
|
355
|
+
}], propDecorators: { getVertical: [{
|
|
369
356
|
type: HostBinding,
|
|
370
357
|
args: ['class.x-slider-select-vertical']
|
|
371
|
-
}], tooltips: [{
|
|
372
|
-
type: ViewChildren,
|
|
373
|
-
args: [XTooltipDirective]
|
|
374
|
-
}], cdkDrag: [{
|
|
375
|
-
type: ViewChild,
|
|
376
|
-
args: [CdkDrag]
|
|
377
358
|
}] } });
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zbGlkZXItc2VsZWN0L3NsaWRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdC9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEVBR1QsV0FBVyxFQUNYLFlBQVksRUFFWixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFxQixNQUFNLDBCQUEwQixDQUFDO0FBQ3pHLE9BQU8sRUFDTCxRQUFRLEVBQ1IsWUFBWSxFQUNaLE9BQU8sRUFDUCxXQUFXLEVBQ1gsY0FBYyxFQUVkLFNBQVMsRUFDVCxRQUFRLEVBQ1IsT0FBTyxFQUNSLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUF5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FB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QUE5QyxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0ssVUFBVTtzQkFBcEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNVLFdBQVc7c0JBQTdELFdBQVc7dUJBQUMsZ0NBQWdDO2dCQUdaLFFBQVE7c0JBQXhDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUlYLE9BQU87c0JBQTFCLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdG9vbHRpcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgVmlld0NoaWxkcmVuLFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdFByb3BlcnR5LCBYU2xpZGVyU2VsZWN0UHJlZml4LCBYU2xpZGVyU2VsZWN0TWFyayB9IGZyb20gJy4vc2xpZGVyLXNlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRW1wdHksXHJcbiAgWElzVW5kZWZpbmVkLFxyXG4gIFhSZXNpemUsXHJcbiAgWENsZWFyQ2xhc3MsXHJcbiAgWENvbmZpZ1NlcnZpY2UsXHJcbiAgWFJlc2l6ZU9ic2VydmVyLFxyXG4gIFhJc051bWJlcixcclxuICBYSXNBcnJheSxcclxuICBYSXNOdWxsXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka0RyYWdNb3ZlLCBDZGtEcmFnU3RhcnQsIENka0RyYWdFbmQsIENka0RyYWcsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYRHJhZ0RpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2RyYWcnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYU2xpZGVyU2VsZWN0UHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgWFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBYRHJhZ0RpcmVjdGl2ZSxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYU2xpZGVyU2VsZWN0Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhTbGlkZXJTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBYU2xpZGVyU2VsZWN0UHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnc2xpZGVyU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgc2xpZGVyU2VsZWN0ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnZHJhZ1N0YXJ0UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgZHJhZ1N0YXJ0UmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnZHJhZ0VuZFJlZicsIHsgc3RhdGljOiB0cnVlIH0pIGRyYWdFbmRSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKCdyYWlsUmVmJywgeyBzdGF0aWM6IHRydWUgfSkgcmFpbFJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3Byb2Nlc3NSZWYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcm9jZXNzUmVmITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LXNsaWRlci1zZWxlY3QtdmVydGljYWwnKSBnZXQgZ2V0VmVydGljYWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbDtcclxuICB9XHJcbiAgQFZpZXdDaGlsZHJlbihYVG9vbHRpcERpcmVjdGl2ZSkgdG9vbHRpcHMhOiBRdWVyeUxpc3Q8WFRvb2x0aXBEaXJlY3RpdmU+O1xyXG4gIHRvb2x0aXBTdGFydCE6IFhUb29sdGlwRGlyZWN0aXZlO1xyXG4gIHRvb2x0aXBFbmQhOiBYVG9vbHRpcERpcmVjdGl2ZTtcclxuXHJcbiAgQFZpZXdDaGlsZChDZGtEcmFnKSBjZGtEcmFnITogQ2RrRHJhZztcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWU6IG51bWJlciB8IG51bWJlcltdID0gMDtcclxuXHJcbiAgc3RhcnRPZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgc3RhcnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhcnRNYW51YWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydCE6IG51bWJlcjtcclxuICBzdGFydERpc3BsYXlWYWx1ZSA9ICcwJztcclxuICBzaG93U3RhcnRUb29sdGlwID0gdHJ1ZTtcclxuXHJcbiAgZW5kT2Zmc2V0OiBudW1iZXIgPSAwO1xyXG4gIGVuZFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmRNYW51YWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmQhOiBudW1iZXI7XHJcbiAgZW5kRGlzcGxheVZhbHVlID0gJzAnO1xyXG4gIHNob3dFbmRUb29sdGlwID0gdHJ1ZTtcclxuXHJcbiAgbWFya0xpc3Q6IFhTbGlkZXJTZWxlY3RNYXJrW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuICBpc051bWJlciA9IHRydWU7XHJcbiAgaXNBcnJheSA9IGZhbHNlO1xyXG5cclxuICBvdmVycmlkZSBnZXQgcmVxdWlyZWRJc0VtcHR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdG9yICYmIHRoaXMucmVxdWlyZWQgJiYgKFhJc0VtcHR5KHRoaXMudmFsdWUpIHx8IHRoaXMudmFsdWUgPT09IDApO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10pIHtcclxuICAgIGlmIChYSXNOdWxsKHZhbHVlKSB8fCBYSXNVbmRlZmluZWQodmFsdWUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnJhbmdlKSB7XHJcbiAgICAgICAgdmFsdWUgPSBbTnVtYmVyKHRoaXMubWluKSwgTnVtYmVyKHRoaXMubWluKV07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdmFsdWUgPSBOdW1iZXIodGhpcy5taW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmlzTnVtYmVyID0gWElzTnVtYmVyKHRoaXMudmFsdWUpICYmICFYSXNBcnJheSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuaXNBcnJheSA9IFhJc0FycmF5KHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5zZXRMZWZ0KCk7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIG92ZXJyaWRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuICBjb25maWdTZXJ2aWNlID0gaW5qZWN0KFhDb25maWdTZXJ2aWNlKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldEZsZXgodGhpcy5zbGlkZXJTZWxlY3QubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldFByZWNpc2lvbigpO1xyXG4gICAgdGhpcy5zZXRNYXJrcygpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgWFJlc2l6ZSh0aGlzLnNsaWRlclNlbGVjdC5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICB0aGlzLnNldExlZnQoKTtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMudG9vbHRpcHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBTdGFydCA9IHRoaXMudG9vbHRpcHMuZmlyc3Q7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50b29sdGlwcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcEVuZCA9IHRoaXMudG9vbHRpcHMubGFzdDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGdldFZhbCA9IChvZmZzZXQ6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdChcclxuICAgICAgICBOdW1iZXIoKChOdW1iZXIodGhpcy5tYXgpIC0gTnVtYmVyKHRoaXMubWluKSkgKiBOdW1iZXIob2Zmc2V0KSkgLyAxMDAgKyBOdW1iZXIodGhpcy5taW4pKS50b0ZpeGVkKFxyXG4gICAgICAgICAgTnVtYmVyKHRoaXMucHJlY2lzaW9uKVxyXG4gICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBzdGFydFZhbCA9IGdldFZhbCh0aGlzLnN0YXJ0T2Zmc2V0KTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBzdGFydFZhbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGVuZFZhbCA9IGdldFZhbCh0aGlzLmVuZE9mZnNldCk7XHJcbiAgICAgIGlmIChlbmRWYWwgPCBzdGFydFZhbCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBbZW5kVmFsLCBzdGFydFZhbF07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IFtzdGFydFZhbCwgZW5kVmFsXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXRPZmZzZXQodmFsOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyhcclxuICAgICAgTWF0aC5yb3VuZChcclxuICAgICAgICAoKHZhbCArICh0aGlzLnJldmVyc2UgPyAtTnVtYmVyKHRoaXMubWluKSA6IE51bWJlcih0aGlzLm1pbikpKSAqIDEwMCkgLyAoTnVtYmVyKHRoaXMubWF4KSAtIE51bWJlcih0aGlzLm1pbikpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRMZWZ0KCkge1xyXG4gICAgbGV0IHN0YXJ0VmFsID0gMCxcclxuICAgICAgZW5kVmFsID0gMDtcclxuXHJcbiAgICBpZiAodGhpcy5pc051bWJlcikge1xyXG4gICAgICBzdGFydFZhbCA9IHRoaXMudmFsdWUgYXMgbnVtYmVyO1xyXG4gICAgfSBlbHNlIGlmIChYSXNBcnJheSh0aGlzLnZhbHVlKSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgc3RhcnRWYWwgPSB0aGlzLnZhbHVlWzBdO1xyXG4gICAgICBlbmRWYWwgPSB0aGlzLnZhbHVlWzFdO1xyXG5cclxuICAgICAgdGhpcy5lbmRPZmZzZXQgPSB0aGlzLmdldE9mZnNldChlbmRWYWwpO1xyXG4gICAgICBjb25zdCBlbmQgPSB0aGlzLmVuZE9mZnNldDtcclxuICAgICAgdGhpcy5lbmQgPSBlbmQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGFydE9mZnNldCA9IHRoaXMuZ2V0T2Zmc2V0KHN0YXJ0VmFsKTtcclxuICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydE9mZnNldDtcclxuICAgIHRoaXMuc3RhcnQgPSBzdGFydDtcclxuXHJcbiAgICB0aGlzLnNldERyYWcoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZSgpIHtcclxuICAgIGNvbnN0IGRpc3BsYXlWYWwgPSAodmFsOiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIE51bWJlcih2YWwpLnRvRml4ZWQoTnVtYmVyKHRoaXMucHJlY2lzaW9uKSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIpIHtcclxuICAgICAgdGhpcy5zdGFydERpc3BsYXlWYWx1ZSA9IGRpc3BsYXlWYWwodGhpcy52YWx1ZSBhcyBudW1iZXIpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFhJc0FycmF5KHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0ID4gdGhpcy5lbmRPZmZzZXQpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREaXNwbGF5VmFsdWUgPSBkaXNwbGF5VmFsKHRoaXMudmFsdWVbMV0pO1xyXG4gICAgICAgICAgdGhpcy5lbmREaXNwbGF5VmFsdWUgPSBkaXNwbGF5VmFsKHRoaXMudmFsdWVbMF0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheVZhbHVlID0gZGlzcGxheVZhbCh0aGlzLnZhbHVlWzBdKTtcclxuICAgICAgICAgIHRoaXMuZW5kRGlzcGxheVZhbHVlID0gZGlzcGxheVZhbCh0aGlzLnZhbHVlWzFdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldFByZWNpc2lvbigpIHtcclxuICAgIGlmIChYSXNVbmRlZmluZWQodGhpcy5wcmVjaXNpb24pIHx8ICFYSXNFbXB0eSh0aGlzLnN0ZXApKSB7XHJcbiAgICAgIGxldCBzdGVwU3RyID0gU3RyaW5nKHRoaXMuc3RlcCk7XHJcbiAgICAgIGxldCBpbmRleHBvaW50ID0gc3RlcFN0ci5pbmRleE9mKCcuJyk7XHJcbiAgICAgIGlmIChpbmRleHBvaW50ID09PSAtMSkge1xyXG4gICAgICAgIHRoaXMucHJlY2lzaW9uID0gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnByZWNpc2lvbiA9IHN0ZXBTdHIubGVuZ3RoIC0gKGluZGV4cG9pbnQgKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0TWFya3MoKSB7XHJcbiAgICBpZiAoIXRoaXMubWFya3MpIHJldHVybjtcclxuICAgIGZvciAobGV0IG1hcmsgb2YgdGhpcy5tYXJrcykge1xyXG4gICAgICBjb25zdCBtazogWFNsaWRlclNlbGVjdE1hcmsgPSB7XHJcbiAgICAgICAgdmFsdWU6IG1hcmsudmFsdWUsXHJcbiAgICAgICAgbGFiZWw6IG1hcmsubGFiZWwsXHJcbiAgICAgICAgc3R5bGU6IHsgLi4ubWFyay5zdHlsZSB9XHJcbiAgICAgIH07XHJcbiAgICAgIG1rLm9mZnNldCA9IHRoaXMuZ2V0T2Zmc2V0KG1hcmsudmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMucmV2ZXJzZSkge1xyXG4gICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ3RvcCddID0gYCR7bWsub2Zmc2V0fSVgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ3JpZ2h0J10gPSBgJHttay5vZmZzZXR9JWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ2JvdHRvbSddID0gYCR7bWsub2Zmc2V0fSVgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ2xlZnQnXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tYXJrTGlzdC5wdXNoKG1rKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0ZWQoZHJhZzogQ2RrRHJhZ1N0YXJ0LCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnc3RhcnQnKSB7XHJcbiAgICBpZiAoWydzdGFydCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLnN0YXJ0T2Zmc2V0O1xyXG4gICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXApIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TWFudWFsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnN0YXJ0VmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChbJ2VuZCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgY29uc3QgZW5kID0gdGhpcy5lbmRPZmZzZXQ7XHJcbiAgICAgIHRoaXMuZW5kID0gZW5kO1xyXG4gICAgICBpZiAodGhpcy5zaG93RW5kVG9vbHRpcCkge1xyXG4gICAgICAgIHRoaXMuZW5kTWFudWFsID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmVuZFZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLmRyYWdTdGFydEVtaXQuZW1pdChkcmFnKTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlLCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnc3RhcnQnKSB7XHJcbiAgICBsZXQgdHJhbnNmb3JtID0gZHJhZy5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXREcmFnKHRoaXMudmVydGljYWwgPyB0cmFuc2Zvcm0ueSA6IHRyYW5zZm9ybS54LCB0eXBlKTtcclxuICAgIGRyYWcuc291cmNlLnJlc2V0KCk7XHJcbiAgICBpZiAoWydzdGFydCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkgJiYgdGhpcy5zaG93U3RhcnRUb29sdGlwKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcFN0YXJ0LnVwZGF0ZVBvcnRhbCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKFsnZW5kJywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSAmJiB0aGlzLnNob3dFbmRUb29sdGlwKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcEVuZC51cGRhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlKCk7XHJcbiAgICB0aGlzLmRyYWdNb3ZlRW1pdC5lbWl0KGRyYWcpO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoZHJhZzogQ2RrRHJhZ0VuZCwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ3N0YXJ0Jykge1xyXG4gICAgaWYgKFsnc3RhcnQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXApIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TWFudWFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5zdGFydFZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFsnZW5kJywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93RW5kVG9vbHRpcCkge1xyXG4gICAgICAgIHRoaXMuZW5kTWFudWFsID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lbmRWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZHJhZ0VuZEVtaXQuZW1pdChkcmFnKTtcclxuICB9XHJcblxyXG4gIHNldERyYWcoZGlzdGFuY2U6IG51bWJlciA9IDAsIHR5cGU6ICdzdGFydCcgfCAnZW5kJyB8ICdib3RoJyA9ICdib3RoJykge1xyXG4gICAgaWYgKHR5cGVvZiB0aGlzLnJhaWxSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgIT09ICdmdW5jdGlvbicpIHJldHVybjtcclxuICAgIGxldCByYWlsQm94ID0gdGhpcy5yYWlsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgcmFpbEJveExlbmd0aCA9IHRoaXMudmVydGljYWwgPyByYWlsQm94LmhlaWdodCA6IHJhaWxCb3gud2lkdGg7XHJcbiAgICBsZXQgc3RlcExlbmd0aCA9IHJhaWxCb3hMZW5ndGggLyAoKE51bWJlcih0aGlzLm1heCkgLSBOdW1iZXIodGhpcy5taW4pKSAvIE51bWJlcih0aGlzLnN0ZXApKTtcclxuICAgIGxldCBvZmZzZXQgPSBNYXRoLmFicyhkaXN0YW5jZSAlIHN0ZXBMZW5ndGgpO1xyXG4gICAgbGV0IGRpcyA9XHJcbiAgICAgIG9mZnNldCA8IHN0ZXBMZW5ndGggLyAyXHJcbiAgICAgICAgPyBkaXN0YW5jZSA+IDBcclxuICAgICAgICAgID8gZGlzdGFuY2UgLSBvZmZzZXRcclxuICAgICAgICAgIDogZGlzdGFuY2UgKyBvZmZzZXRcclxuICAgICAgICA6IGRpc3RhbmNlID4gMFxyXG4gICAgICAgICAgPyBkaXN0YW5jZSArIHN0ZXBMZW5ndGggLSBvZmZzZXRcclxuICAgICAgICAgIDogZGlzdGFuY2UgLSBzdGVwTGVuZ3RoICsgb2Zmc2V0O1xyXG5cclxuICAgIGNvbnN0IHNldE9mZnNldCA9IChkOiBudW1iZXIpID0+IHtcclxuICAgICAgbGV0IHgxID0gKGQgLyAxMDApICogcmFpbEJveExlbmd0aDtcclxuICAgICAgaWYgKHRoaXMudmVydGljYWwpIHtcclxuICAgICAgICB4MSArPSB0aGlzLnJldmVyc2UgPyBkaXMgOiAtZGlzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHgxICs9IHRoaXMucmV2ZXJzZSA/IC1kaXMgOiBkaXM7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIE1hdGgucm91bmQoKHgxIC8gcmFpbEJveExlbmd0aCkgKiAxMDApO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodHlwZSA9PT0gJ2JvdGgnKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRPZmZzZXQgPSBzZXRPZmZzZXQodGhpcy5zdGFydCk7XHJcbiAgICAgIHRoaXMuZW5kT2Zmc2V0ID0gc2V0T2Zmc2V0KHRoaXMuZW5kKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0ID0gc2V0T2Zmc2V0KHRoaXMuc3RhcnQpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZW5kJykge1xyXG4gICAgICB0aGlzLmVuZE9mZnNldCA9IHNldE9mZnNldCh0aGlzLmVuZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXREcmFnU3R5bGVzKCk7XHJcbiAgfVxyXG5cclxuICBzZXREcmFnU3R5bGVzKCkge1xyXG4gICAgaWYgKHRoaXMudmVydGljYWwpIHtcclxuICAgICAgaWYgKHRoaXMuaXNBcnJheSkge1xyXG4gICAgICAgIGNvbnN0IHdkID0gTWF0aC5hYnModGhpcy5lbmRPZmZzZXQgLSB0aGlzLnN0YXJ0T2Zmc2V0KTtcclxuICAgICAgICBjb25zdCBsdCA9IHRoaXMuZW5kT2Zmc2V0ID4gdGhpcy5zdGFydE9mZnNldCA/IHRoaXMuc3RhcnRPZmZzZXQgOiB0aGlzLmVuZE9mZnNldDtcclxuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0fSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLmVuZE9mZnNldH0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZi5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7bHR9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0fSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLmVuZE9mZnNldH0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZi5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7bHR9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZi5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7d2R9JWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RoaXMuc3RhcnRPZmZzZXR9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0fSVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke3RoaXMuc3RhcnRPZmZzZXR9JWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5pc0FycmF5KSB7XHJcbiAgICAgICAgY29uc3Qgd2QgPSBNYXRoLmFicyh0aGlzLmVuZE9mZnNldCAtIHRoaXMuc3RhcnRPZmZzZXQpO1xyXG4gICAgICAgIGNvbnN0IGx0ID0gdGhpcy5lbmRPZmZzZXQgPiB0aGlzLnN0YXJ0T2Zmc2V0ID8gdGhpcy5zdGFydE9mZnNldCA6IHRoaXMuZW5kT2Zmc2V0O1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYubmF0aXZlRWxlbWVudCwgJ3JpZ2h0JywgYCR7dGhpcy5zdGFydE9mZnNldH0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZi5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHt0aGlzLmVuZE9mZnNldH0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZi5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0fSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5lbmRPZmZzZXR9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dkfSVgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuc3RhcnRPZmZzZXR9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5zdGFydE9mZnNldH0lYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuc3RhcnRPZmZzZXR9JWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjc2xpZGVyU2VsZWN0XHJcbiAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3RcIlxyXG4gIFtjbGFzcy54LWZsZXhdPVwianVzdGlmeSB8fCBhbGlnbiB8fCBkaXJlY3Rpb25cIlxyXG4gIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHlcIlxyXG4gIFtjbGFzcy54LWludmFsaWRdPVwiaW52YWxpZFwiXHJcbiAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1yZXZlcnNlXT1cInJldmVyc2VcIlxyXG4gIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtcmFuZ2VdPVwicmFuZ2VcIlxyXG4+XHJcbiAgQGlmIChsYWJlbCkge1xyXG4gICAgPGxhYmVsIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtbGFiZWwtcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbc3R5bGUud2lkdGhdPVwibGFiZWxXaWR0aFwiIFtuZ0NsYXNzXT1cImxhYmVsTWFwXCI+e3tcclxuICAgICAgbGFiZWxcclxuICAgIH19PC9sYWJlbD5cclxuICB9XHJcbiAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1pbm5lclwiICNpbm5lclJlZj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtcmFpbFwiICNyYWlsUmVmPlxyXG4gICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWRyYWdzXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtdHJhY2tcIiAjdHJhY2tSZWY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3Byb2Nlc3NSZWZcclxuICAgICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LXByb2Nlc3NcIlxyXG4gICAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgICAgW2Nka0RyYWdMb2NrQXhpc109XCJ2ZXJ0aWNhbCA/ICd5JyA6ICd4J1wiXHJcbiAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFyYW5nZVwiXHJcbiAgICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInRyYWNrUmVmXCJcclxuICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm1vdmVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1tYXJrc1wiPlxyXG4gICAgICAgIEBmb3IgKG1hcmsgb2YgbWFya0xpc3Q7IHRyYWNrIG1hcmsubGFiZWwpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtbWFya1wiIFtuZ1N0eWxlXT1cIm1hcmsuc3R5bGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtbWFyay1sYWJlbFwiPnt7IG1hcmsubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgI2RyYWdTdGFydFJlZlxyXG4gICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWRyYWdcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cInZlcnRpY2FsID8gJ3knIDogJ3gnXCJcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cImlubmVyUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAjdG9vbHRpcFN0YXJ0XHJcbiAgICAgICAgICB4LXRvb2x0aXBcclxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1idXR0b25cIlxyXG4gICAgICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1idXR0b24tYWN0aXZlZF09XCJzdGFydFZpc2libGVcIlxyXG4gICAgICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1jdXN0b20tYnV0dG9uXT1cImN1c3RvbUJ1dHRvblwiXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VG9vbHRpcCAmJiAhc2hvd1N0YXJ0VG9vbHRpcFwiXHJcbiAgICAgICAgICBbY29udGVudF09XCJ0b29sdGlwU3RhcnRUcGxcIlxyXG4gICAgICAgICAgW3Zpc2libGVdPVwic3RhcnRWaXNpYmxlXCJcclxuICAgICAgICAgIFttYW51YWxdPVwic3RhcnRNYW51YWxcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjdXN0b21CdXR0b25cIj57eyBjdXN0b21CdXR0b24gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBTdGFydFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tOyBjb250ZXh0OiB7ICR2YWx1ZTogc3RhcnREaXNwbGF5VmFsdWUgfVwiPnt7XHJcbiAgICAgICAgICAgIHN0YXJ0RGlzcGxheVZhbHVlXHJcbiAgICAgICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW2hpZGRlbl09XCIhcmFuZ2VcIlxyXG4gICAgICAgICNkcmFnRW5kUmVmXHJcbiAgICAgICAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtZHJhZ1wiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnTG9ja0F4aXNdPVwidmVydGljYWwgPyAneScgOiAneCdcIlxyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwiaW5uZXJSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm1vdmVkKCRldmVudCwgJ2VuZCcpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICN0b29sdGlwRW5kXHJcbiAgICAgICAgICB4LXRvb2x0aXBcclxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1idXR0b25cIlxyXG4gICAgICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1idXR0b24tYWN0aXZlZF09XCJlbmRWaXNpYmxlXCJcclxuICAgICAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtY3VzdG9tLWJ1dHRvbl09XCJjdXN0b21CdXR0b25cIlxyXG4gICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2hvd1Rvb2x0aXAgJiYgIXNob3dFbmRUb29sdGlwXCJcclxuICAgICAgICAgIFtjb250ZW50XT1cInRvb2x0aXBFbmRUcGxcIlxyXG4gICAgICAgICAgW3Zpc2libGVdPVwiZW5kVmlzaWJsZVwiXHJcbiAgICAgICAgICBbbWFudWFsXT1cImVuZE1hbnVhbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImN1c3RvbUJ1dHRvblwiPnt7IGN1c3RvbUJ1dHRvbiB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcEVuZFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tOyBjb250ZXh0OiB7ICR2YWx1ZTogZW5kRGlzcGxheVZhbHVlIH1cIj57e1xyXG4gICAgICAgICAgICBlbmREaXNwbGF5VmFsdWVcclxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
359
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zbGlkZXItc2VsZWN0L3NsaWRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdC9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFHVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDekcsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFtQixTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9B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LEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzlGLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdGLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixLQUFJLENBQUM7aUlBaFZaLHNCQUFzQjtxSEFBdEIsc0JBQXNCLDhJQUZ0QixDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLGdsQkFXM0IsaUJBQWlCLHVGQ3pEM0Msa3NJQWdIQSxzaE9EL0VJLE9BQU8sb0ZBQ1AsT0FBTywwRUFDUCxXQUFXLDhCQUNYLG1CQUFtQiw4QkFDbkIsY0FBYyxpZUFDZCxpQkFBaUIsbUVBRWpCLGdCQUFnQjs7MkZBUVAsc0JBQXNCO2tCQW5CbEMsU0FBUzsrQkFDRSxHQUFHLG1CQUFtQixFQUFFLGNBQ3RCLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLE9BQU87d0JBQ1AsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsd0JBQXdCLENBQUM7OEJBUUEsV0FBVztzQkFBN0QsV0FBVzt1QkFBQyxnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYVG9vbHRpcERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3Rvb2x0aXAnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsLFxyXG4gIHZpZXdDaGlsZCxcclxuICB2aWV3Q2hpbGRyZW4sXHJcbiAgY29tcHV0ZWRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFNsaWRlclNlbGVjdFByb3BlcnR5LCBYU2xpZGVyU2VsZWN0UHJlZml4LCBYU2xpZGVyU2VsZWN0TWFyayB9IGZyb20gJy4vc2xpZGVyLXNlbGVjdC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNVbmRlZmluZWQsIFhSZXNpemUsIFhSZXNpemVPYnNlcnZlciwgWElzTnVtYmVyLCBYSXNBcnJheSwgWElzTnVsbCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWERyYWdEaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9kcmFnJztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcbmltcG9ydCB0eXBlIHsgQ2RrRHJhZ01vdmUsIENka0RyYWdTdGFydCwgQ2RrRHJhZ0VuZCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hTbGlkZXJTZWxlY3RQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHJhZ0Ryb3BNb2R1bGUsXHJcbiAgICBYVG9vbHRpcERpcmVjdGl2ZSxcclxuICAgIFhEcmFnRGlyZWN0aXZlLFxyXG4gICAgWE91dGxldERpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NsaWRlci1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1hWYWx1ZUFjY2Vzc29yKFhTbGlkZXJTZWxlY3RDb21wb25lbnQpXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlclNlbGVjdENvbXBvbmVudCBleHRlbmRzIFhTbGlkZXJTZWxlY3RQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgc2xpZGVyU2VsZWN0ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pignc2xpZGVyU2VsZWN0Jyk7XHJcbiAgZHJhZ1N0YXJ0UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZHJhZ1N0YXJ0UmVmJyk7XHJcbiAgZHJhZ0VuZFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2RyYWdFbmRSZWYnKTtcclxuICByYWlsUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigncmFpbFJlZicpO1xyXG4gIHByb2Nlc3NSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdwcm9jZXNzUmVmJyk7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy54LXNsaWRlci1zZWxlY3QtdmVydGljYWwnKSBnZXQgZ2V0VmVydGljYWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52ZXJ0aWNhbCgpO1xyXG4gIH1cclxuICB0b29sdGlwcyA9IHZpZXdDaGlsZHJlbihYVG9vbHRpcERpcmVjdGl2ZSk7XHJcbiAgdG9vbHRpcFN0YXJ0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHMoKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBzKCkhWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSk7XHJcbiAgdG9vbHRpcEVuZCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzKCkubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwcygpIVsxXTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0pO1xyXG5cclxuICBvdmVycmlkZSB2YWx1ZSA9IHNpZ25hbDxudW1iZXIgfCBudW1iZXJbXT4oMCk7XHJcblxyXG4gIHN0YXJ0T2Zmc2V0ID0gc2lnbmFsKDApO1xyXG4gIHN0YXJ0VmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc3RhcnRNYW51YWwgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHN0YXJ0ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIHN0YXJ0RGlzcGxheVZhbHVlID0gc2lnbmFsKCcwJyk7XHJcbiAgc2hvd1N0YXJ0VG9vbHRpcCA9IHNpZ25hbCh0cnVlKTtcclxuXHJcbiAgZW5kT2Zmc2V0ID0gc2lnbmFsKDApO1xyXG4gIGVuZFZpc2libGUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGVuZE1hbnVhbCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZW5kID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIGVuZERpc3BsYXlWYWx1ZSA9IHNpZ25hbCgnMCcpO1xyXG4gIHNob3dFbmRUb29sdGlwID0gc2lnbmFsKHRydWUpO1xyXG5cclxuICBtYXJrTGlzdCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICghdGhpcy5tYXJrcygpKSByZXR1cm4gW107XHJcbiAgICBjb25zdCBtYXJrczogWFNsaWRlclNlbGVjdE1hcmtbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgbWFyayBvZiB0aGlzLm1hcmtzKCkpIHtcclxuICAgICAgY29uc3QgbWs6IFhTbGlkZXJTZWxlY3RNYXJrID0ge1xyXG4gICAgICAgIHZhbHVlOiBtYXJrLnZhbHVlLFxyXG4gICAgICAgIGxhYmVsOiBtYXJrLmxhYmVsLFxyXG4gICAgICAgIHN0eWxlOiB7IC4uLm1hcmsuc3R5bGUgfVxyXG4gICAgICB9O1xyXG4gICAgICBtay5vZmZzZXQgPSB0aGlzLmdldE9mZnNldChtYXJrLnZhbHVlKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgICAgIG1rLnN0eWxlIVsndG9wJ10gPSBgJHttay5vZmZzZXR9JWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1rLnN0eWxlIVsncmlnaHQnXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmVydGljYWwoKSkge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWydib3R0b20nXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWydsZWZ0J10gPSBgJHttay5vZmZzZXR9JWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG1hcmtzLnB1c2gobWspO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hcmtzO1xyXG4gIH0pO1xyXG5cclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuICBpc051bWJlciA9IGNvbXB1dGVkKCgpID0+IFhJc051bWJlcih0aGlzLnZhbHVlKCkpICYmICFYSXNBcnJheSh0aGlzLnZhbHVlKCkpKTtcclxuICBpc0FycmF5ID0gY29tcHV0ZWQoKCkgPT4gWElzQXJyYXkodGhpcy52YWx1ZSgpKSk7XHJcblxyXG4gIGNsYXNzTWFwID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgeC1qdXN0aWZ5LSR7dGhpcy5qdXN0aWZ5KCl9YF06ICEhdGhpcy5qdXN0aWZ5KCksXHJcbiAgICBbYHgtYWxpZ24tJHt0aGlzLmFsaWduKCl9YF06ICEhdGhpcy5hbGlnbigpLFxyXG4gICAgW2B4LWRpcmVjdGlvbi0ke3RoaXMuZGlyZWN0aW9uKCl9YF06ICEhdGhpcy5kaXJlY3Rpb24oKVxyXG4gIH0pKTtcclxuICBsYWJlbE1hcFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICh7XHJcbiAgICBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbigpfWBdOiAhIXRoaXMubGFiZWxBbGlnbigpXHJcbiAgfSkpO1xyXG5cclxuICBwcmVjaXNpb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLnByZWNpc2lvbigpO1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZChwcmVjaXNpb24pIHx8ICFYSXNFbXB0eSh0aGlzLnN0ZXAoKSkpIHtcclxuICAgICAgbGV0IHN0ZXBTdHIgPSBTdHJpbmcodGhpcy5zdGVwKCkpO1xyXG4gICAgICBsZXQgaW5kZXhwb2ludCA9IHN0ZXBTdHIuaW5kZXhPZignLicpO1xyXG4gICAgICBpZiAoaW5kZXhwb2ludCA9PT0gLTEpIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3RlcFN0ci5sZW5ndGggLSAoaW5kZXhwb2ludCArIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJlY2lzaW9uO1xyXG4gIH0pO1xyXG5cclxuICBvdmVycmlkZSByZXF1aXJlZElzRW1wdHkgPSBjb21wdXRlZChcclxuICAgICgpID0+IHRoaXMudmFsaWRhdG9yQ29tcHV0ZWQoKSAmJiB0aGlzLnJlcXVpcmVkQ29tcHV0ZWQoKSAmJiAoWElzRW1wdHkodGhpcy52YWx1ZSgpKSB8fCB0aGlzLnZhbHVlKCkgPT09IDApXHJcbiAgKTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10pIHtcclxuICAgIGlmIChYSXNOdWxsKHZhbHVlKSB8fCBYSXNVbmRlZmluZWQodmFsdWUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnJhbmdlKCkpIHtcclxuICAgICAgICB2YWx1ZSA9IFt0aGlzLm1pbigpLCB0aGlzLm1pbigpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMubWluKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICAgIHRoaXMuc2V0TGVmdCgpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIFhSZXNpemUodGhpcy5zbGlkZXJTZWxlY3QoKS5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgdGhpcy5zZXRMZWZ0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBnZXRWYWwgPSAob2Zmc2V0OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoXHJcbiAgICAgICAgTnVtYmVyKCgodGhpcy5tYXgoKSAtIHRoaXMubWluKCkpICogb2Zmc2V0KSAvIDEwMCArIHRoaXMubWluKCkpLnRvRml4ZWQodGhpcy5wcmVjaXNpb25TaWduYWwoKSlcclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBzdGFydFZhbCA9IGdldFZhbCh0aGlzLnN0YXJ0T2Zmc2V0KCkpO1xyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoKSkge1xyXG4gICAgICB0aGlzLnZhbHVlLnNldChzdGFydFZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbmRWYWwgPSBnZXRWYWwodGhpcy5lbmRPZmZzZXQoKSk7XHJcbiAgICAgIGlmIChlbmRWYWwgPCBzdGFydFZhbCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUuc2V0KFtlbmRWYWwsIHN0YXJ0VmFsXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zZXQoW3N0YXJ0VmFsLCBlbmRWYWxdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2Zmc2V0KHZhbDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gTWF0aC5hYnMoXHJcbiAgICAgIE1hdGgucm91bmQoKCh2YWwgKyAodGhpcy5yZXZlcnNlKCkgPyAtdGhpcy5taW4oKSA6IHRoaXMubWluKCkpKSAqIDEwMCkgLyAodGhpcy5tYXgoKSAtIHRoaXMubWluKCkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldExlZnQoKSB7XHJcbiAgICBsZXQgc3RhcnRWYWwgPSAwLFxyXG4gICAgICBlbmRWYWwgPSAwO1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5pc051bWJlcigpKSB7XHJcbiAgICAgIHN0YXJ0VmFsID0gdmFsdWUgYXMgbnVtYmVyO1xyXG4gICAgfSBlbHNlIGlmIChYSXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMSkge1xyXG4gICAgICBzdGFydFZhbCA9IHZhbHVlWzBdO1xyXG4gICAgICBlbmRWYWwgPSB2YWx1ZVsxXTtcclxuICAgICAgdGhpcy5lbmRPZmZzZXQuc2V0KHRoaXMuZ2V0T2Zmc2V0KGVuZFZhbCkpO1xyXG4gICAgICB0aGlzLmVuZC5zZXQodGhpcy5lbmRPZmZzZXQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdGFydE9mZnNldC5zZXQodGhpcy5nZXRPZmZzZXQoc3RhcnRWYWwpKTtcclxuICAgIHRoaXMuc3RhcnQuc2V0KHRoaXMuc3RhcnRPZmZzZXQoKSk7XHJcblxyXG4gICAgdGhpcy5zZXREcmFnKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoKSB7XHJcbiAgICBjb25zdCBkaXNwbGF5VmFsID0gKHZhbDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIHJldHVybiBOdW1iZXIodmFsKS50b0ZpeGVkKHRoaXMucHJlY2lzaW9uU2lnbmFsKCkpO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoKSkge1xyXG4gICAgICB0aGlzLnN0YXJ0RGlzcGxheVZhbHVlLnNldChkaXNwbGF5VmFsKHZhbHVlIGFzIG51bWJlcikpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKFhJc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhcnRPZmZzZXQoKSA+IHRoaXMuZW5kT2Zmc2V0KCkpIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREaXNwbGF5VmFsdWUuc2V0KGRpc3BsYXlWYWwodmFsdWVbMV0pKTtcclxuICAgICAgICAgIHRoaXMuZW5kRGlzcGxheVZhbHVlLnNldChkaXNwbGF5VmFsKHZhbHVlWzBdKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3RhcnREaXNwbGF5VmFsdWUuc2V0KGRpc3BsYXlWYWwodmFsdWVbMF0pKTtcclxuICAgICAgICAgIHRoaXMuZW5kRGlzcGxheVZhbHVlLnNldChkaXNwbGF5VmFsKHZhbHVlWzFdKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGFydGVkKGRyYWc6IENka0RyYWdTdGFydCwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ3N0YXJ0Jykge1xyXG4gICAgaWYgKFsnc3RhcnQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydE9mZnNldCgpO1xyXG4gICAgICB0aGlzLnN0YXJ0LnNldChzdGFydCk7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnRNYW51YWwuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRWaXNpYmxlLnNldCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFsnZW5kJywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBjb25zdCBlbmQgPSB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICB0aGlzLmVuZC5zZXQoZW5kKTtcclxuICAgICAgaWYgKHRoaXMuc2hvd0VuZFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuZW5kTWFudWFsLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLmVuZFZpc2libGUuc2V0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLmRyYWdTdGFydEVtaXQuZW1pdChkcmFnKTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlLCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnc3RhcnQnKSB7XHJcbiAgICBsZXQgdHJhbnNmb3JtID0gZHJhZy5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXREcmFnKHRoaXMudmVydGljYWwoKSA/IHRyYW5zZm9ybS55IDogdHJhbnNmb3JtLngsIHR5cGUpO1xyXG4gICAgZHJhZy5zb3VyY2UucmVzZXQoKTtcclxuICAgIGlmIChbJ3N0YXJ0JywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSAmJiB0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBTdGFydCgpPy51cGRhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIGlmIChbJ2VuZCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkgJiYgdGhpcy5zaG93RW5kVG9vbHRpcCgpKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcEVuZCgpPy51cGRhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlKCk7XHJcbiAgICB0aGlzLmRyYWdNb3ZlRW1pdC5lbWl0KGRyYWcpO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoZHJhZzogQ2RrRHJhZ0VuZCwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ3N0YXJ0Jykge1xyXG4gICAgaWYgKFsnc3RhcnQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnRNYW51YWwuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoWydlbmQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFbmRUb29sdGlwKCkpIHtcclxuICAgICAgICB0aGlzLmVuZE1hbnVhbC5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuZW5kVmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmRyYWdFbmRFbWl0LmVtaXQoZHJhZyk7XHJcbiAgfVxyXG5cclxuICBzZXREcmFnKGRpc3RhbmNlOiBudW1iZXIgPSAwLCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnYm90aCcpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5yYWlsUmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgIT09ICdmdW5jdGlvbicpIHJldHVybjtcclxuICAgIGxldCByYWlsQm94ID0gdGhpcy5yYWlsUmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGxldCByYWlsQm94TGVuZ3RoID0gdGhpcy52ZXJ0aWNhbCgpID8gcmFpbEJveC5oZWlnaHQgOiByYWlsQm94LndpZHRoO1xyXG4gICAgbGV0IHN0ZXBMZW5ndGggPSByYWlsQm94TGVuZ3RoIC8gKCh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSk7XHJcbiAgICBsZXQgb2Zmc2V0ID0gTWF0aC5hYnMoZGlzdGFuY2UgJSBzdGVwTGVuZ3RoKTtcclxuICAgIGxldCBkaXMgPVxyXG4gICAgICBvZmZzZXQgPCBzdGVwTGVuZ3RoIC8gMlxyXG4gICAgICAgID8gZGlzdGFuY2UgPiAwXHJcbiAgICAgICAgICA/IGRpc3RhbmNlIC0gb2Zmc2V0XHJcbiAgICAgICAgICA6IGRpc3RhbmNlICsgb2Zmc2V0XHJcbiAgICAgICAgOiBkaXN0YW5jZSA+IDBcclxuICAgICAgICAgID8gZGlzdGFuY2UgKyBzdGVwTGVuZ3RoIC0gb2Zmc2V0XHJcbiAgICAgICAgICA6IGRpc3RhbmNlIC0gc3RlcExlbmd0aCArIG9mZnNldDtcclxuXHJcbiAgICBjb25zdCBzZXRPZmZzZXQgPSAoZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCB4MSA9IChkIC8gMTAwKSAqIHJhaWxCb3hMZW5ndGg7XHJcbiAgICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgICB4MSArPSB0aGlzLnJldmVyc2UoKSA/IGRpcyA6IC1kaXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeDEgKz0gdGhpcy5yZXZlcnNlKCkgPyAtZGlzIDogZGlzO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKCh4MSAvIHJhaWxCb3hMZW5ndGgpICogMTAwKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHR5cGUgPT09ICdib3RoJykge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0LnNldChzZXRPZmZzZXQodGhpcy5zdGFydCgpISkpO1xyXG4gICAgICB0aGlzLmVuZE9mZnNldC5zZXQoc2V0T2Zmc2V0KHRoaXMuZW5kKCkhKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy5zdGFydE9mZnNldC5zZXQoc2V0T2Zmc2V0KHRoaXMuc3RhcnQoKSEpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5lbmRPZmZzZXQuc2V0KHNldE9mZnNldCh0aGlzLmVuZCgpISkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RHJhZ1N0eWxlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RHJhZ1N0eWxlcygpIHtcclxuICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgaWYgKHRoaXMuaXNBcnJheSgpKSB7XHJcbiAgICAgICAgY29uc3Qgd2QgPSBNYXRoLmFicyh0aGlzLmVuZE9mZnNldCgpIC0gdGhpcy5zdGFydE9mZnNldCgpKTtcclxuICAgICAgICBjb25zdCBsdCA9IHRoaXMuZW5kT2Zmc2V0KCkgPiB0aGlzLnN0YXJ0T2Zmc2V0KCkgPyB0aGlzLnN0YXJ0T2Zmc2V0KCkgOiB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdFbmRSZWYoKS5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy5lbmRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmKCkubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsIGAke3RoaXMuZW5kT2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7bHR9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt3ZH0lYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuaXNBcnJheSgpKSB7XHJcbiAgICAgICAgY29uc3Qgd2QgPSBNYXRoLmFicyh0aGlzLmVuZE9mZnNldCgpIC0gdGhpcy5zdGFydE9mZnNldCgpKTtcclxuICAgICAgICBjb25zdCBsdCA9IHRoaXMuZW5kT2Zmc2V0KCkgPiB0aGlzLnN0YXJ0T2Zmc2V0KCkgPyB0aGlzLnN0YXJ0T2Zmc2V0KCkgOiB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuZW5kT2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5lbmRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7bHR9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dkfSVgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHt9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNzbGlkZXJTZWxlY3RcclxuICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdFwiXHJcbiAgW2NsYXNzLngtZmxleF09XCJqdXN0aWZ5KCkgfHwgYWxpZ24oKSB8fCBkaXJlY3Rpb24oKVwiXHJcbiAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICBbY2xhc3MueC1yZXF1aXJlZF09XCJyZXF1aXJlZElzRW1wdHkoKVwiXHJcbiAgW2NsYXNzLngtaW52YWxpZF09XCJpbnZhbGlkKClcIlxyXG4gIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtcmV2ZXJzZV09XCJyZXZlcnNlKClcIlxyXG4gIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtcmFuZ2VdPVwicmFuZ2UoKVwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXAoKVwiXHJcbj5cclxuICBAaWYgKGxhYmVsKCkpIHtcclxuICAgIDxsYWJlbFxyXG4gICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWxhYmVsLXJlcXVpcmVkXT1cInJlcXVpcmVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoKClcIlxyXG4gICAgICBbbmdDbGFzc109XCJsYWJlbE1hcFNpZ25hbCgpXCJcclxuICAgICAgPnt7IGxhYmVsKCkgfX08L2xhYmVsXHJcbiAgICA+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtaW5uZXJcIiAjaW5uZXJSZWY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LXJhaWxcIiAjcmFpbFJlZj5cclxuICAgICAgPGRpdj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1kcmFnc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LXRyYWNrXCIgI3RyYWNrUmVmPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICNwcm9jZXNzUmVmXHJcbiAgICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1wcm9jZXNzXCJcclxuICAgICAgICAgIGNka0RyYWdcclxuICAgICAgICAgIFtjZGtEcmFnTG9ja0F4aXNdPVwidmVydGljYWwoKSA/ICd5JyA6ICd4J1wiXHJcbiAgICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKSB8fCAhcmFuZ2UoKVwiXHJcbiAgICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cInRyYWNrUmVmXCJcclxuICAgICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm1vdmVkKCRldmVudCwgJ2JvdGgnKVwiXHJcbiAgICAgICAgPjwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1tYXJrc1wiPlxyXG4gICAgICAgIEBmb3IgKG1hcmsgb2YgbWFya0xpc3QoKTsgdHJhY2sgbWFyay5sYWJlbCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1tYXJrXCIgW25nU3R5bGVdPVwibWFyay5zdHlsZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1tYXJrLWxhYmVsXCI+e3sgbWFyay5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAjZHJhZ1N0YXJ0UmVmXHJcbiAgICAgICAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtZHJhZ1wiXHJcbiAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgIFtjZGtEcmFnTG9ja0F4aXNdPVwidmVydGljYWwoKSA/ICd5JyA6ICd4J1wiXHJcbiAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwiaW5uZXJSZWZcIlxyXG4gICAgICAgIChjZGtEcmFnU3RhcnRlZCk9XCJzdGFydGVkKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICN0b29sdGlwU3RhcnRcclxuICAgICAgICAgIHgtdG9vbHRpcFxyXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWJ1dHRvblwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWJ1dHRvbi1hY3RpdmVkXT1cInN0YXJ0VmlzaWJsZSgpXCJcclxuICAgICAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtY3VzdG9tLWJ1dHRvbl09XCJjdXN0b21CdXR0b24oKVwiXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VG9vbHRpcCgpICYmICFzaG93U3RhcnRUb29sdGlwKClcIlxyXG4gICAgICAgICAgW2NvbnRlbnRdPVwidG9vbHRpcFN0YXJ0VHBsXCJcclxuICAgICAgICAgIFsodmlzaWJsZSldPVwic3RhcnRWaXNpYmxlXCJcclxuICAgICAgICAgIFttYW51YWxdPVwic3RhcnRNYW51YWwoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImN1c3RvbUJ1dHRvbigpXCI+e3sgY3VzdG9tQnV0dG9uKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBTdGFydFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tKCk7IGNvbnRleHQ6IHsgJHZhbHVlOiBzdGFydERpc3BsYXlWYWx1ZSgpIH1cIj57e1xyXG4gICAgICAgICAgICBzdGFydERpc3BsYXlWYWx1ZSgpXHJcbiAgICAgICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW2hpZGRlbl09XCIhcmFuZ2UoKVwiXHJcbiAgICAgICAgI2RyYWdFbmRSZWZcclxuICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1kcmFnXCJcclxuICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgW2Nka0RyYWdMb2NrQXhpc109XCJ2ZXJ0aWNhbCgpID8gJ3knIDogJ3gnXCJcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgICAgW2Nka0RyYWdCb3VuZGFyeV09XCJpbm5lclJlZlwiXHJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0ZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3Rvb2x0aXBFbmRcclxuICAgICAgICAgIHgtdG9vbHRpcFxyXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWJ1dHRvblwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWJ1dHRvbi1hY3RpdmVkXT1cImVuZFZpc2libGUoKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWN1c3RvbS1idXR0b25dPVwiY3VzdG9tQnV0dG9uKClcIlxyXG4gICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2hvd1Rvb2x0aXAoKSAmJiAhc2hvd0VuZFRvb2x0aXAoKVwiXHJcbiAgICAgICAgICBbY29udGVudF09XCJ0b29sdGlwRW5kVHBsXCJcclxuICAgICAgICAgIFsodmlzaWJsZSldPVwiZW5kVmlzaWJsZVwiXHJcbiAgICAgICAgICBbbWFudWFsXT1cImVuZE1hbnVhbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY3VzdG9tQnV0dG9uKClcIj57eyBjdXN0b21CdXR0b24oKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcEVuZFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tKCk7IGNvbnRleHQ6IHsgJHZhbHVlOiBlbmREaXNwbGF5VmFsdWUoKSB9XCI+e3tcclxuICAgICAgICAgICAgZW5kRGlzcGxheVZhbHVlKClcclxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|