@ng-nest/ui 17.0.11 → 18.0.0
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 +4 -4
- 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 +4 -4
- package/esm2022/affix/affix.property.mjs +22 -20
- package/esm2022/alert/alert.component.mjs +39 -44
- package/esm2022/alert/alert.module.mjs +4 -4
- package/esm2022/alert/alert.property.mjs +102 -107
- package/esm2022/anchor/anchor-inner.component.mjs +3 -3
- package/esm2022/anchor/anchor.component.mjs +73 -95
- package/esm2022/anchor/anchor.module.mjs +4 -4
- package/esm2022/anchor/anchor.property.mjs +45 -35
- package/esm2022/api/api.component.mjs +11 -14
- package/esm2022/api/api.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/auto-complete/auto-complete.property.mjs +142 -55
- package/esm2022/avatar/avatar-group.component.mjs +3 -3
- package/esm2022/avatar/avatar.component.mjs +75 -81
- package/esm2022/avatar/avatar.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/back-top/back-top.property.mjs +37 -29
- package/esm2022/badge/badge.component.mjs +51 -59
- package/esm2022/badge/badge.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/calendar/calendar.property.mjs +78 -24
- package/esm2022/card/card.component.mjs +10 -14
- package/esm2022/card/card.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/cascade/cascade.property.mjs +137 -48
- package/esm2022/checkbox/checkbox.component.mjs +68 -83
- package/esm2022/checkbox/checkbox.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/collapse/collapse.property.mjs +156 -66
- package/esm2022/color/color.component.mjs +25 -26
- package/esm2022/color/color.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/date-picker/date-picker.property.mjs +440 -462
- package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
- 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 +4 -4
- package/esm2022/description/description.property.mjs +175 -52
- package/esm2022/dialog/dialog-container.component.mjs +3 -3
- package/esm2022/dialog/dialog-portal.component.mjs +14 -20
- package/esm2022/dialog/dialog-portal.directives.mjs +20 -20
- package/esm2022/dialog/dialog-ref.mjs +1 -1
- package/esm2022/dialog/dialog.component.mjs +117 -131
- package/esm2022/dialog/dialog.module.mjs +4 -4
- package/esm2022/dialog/dialog.property.mjs +149 -139
- package/esm2022/dialog/dialog.service.mjs +7 -7
- package/esm2022/doc/doc.component.mjs +11 -12
- package/esm2022/doc/doc.module.mjs +4 -4
- package/esm2022/drag/drag.directive.mjs +8 -21
- package/esm2022/drag/drag.module.mjs +4 -4
- 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 +9 -9
- package/esm2022/drawer/drawer.component.mjs +40 -59
- package/esm2022/drawer/drawer.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/dropdown/dropdown.property.mjs +62 -59
- package/esm2022/empty/empty.component.mjs +6 -26
- package/esm2022/empty/empty.module.mjs +4 -4
- package/esm2022/empty/empty.property.mjs +41 -20
- package/esm2022/examples/examples.component.mjs +11 -12
- package/esm2022/examples/examples.module.mjs +4 -4
- package/esm2022/find/find.component.mjs +188 -232
- package/esm2022/find/find.module.mjs +4 -4
- package/esm2022/find/find.property.mjs +234 -193
- package/esm2022/form/control.component.mjs +138 -116
- package/esm2022/form/form.component.mjs +28 -36
- package/esm2022/form/form.module.mjs +4 -4
- package/esm2022/form/form.property.mjs +57 -55
- package/esm2022/highlight/highlight.component.mjs +54 -59
- package/esm2022/highlight/highlight.module.mjs +4 -4
- 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 +4 -4
- 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 +46 -77
- package/esm2022/icon/icon.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/input-number/input-number.property.mjs +130 -60
- package/esm2022/keyword/keyword.directive.mjs +46 -54
- package/esm2022/keyword/keyword.module.mjs +4 -4
- package/esm2022/keyword/keyword.property.mjs +32 -28
- package/esm2022/layout/col.component.mjs +48 -51
- package/esm2022/layout/layout.module.mjs +4 -4
- package/esm2022/layout/layout.property.mjs +71 -63
- package/esm2022/layout/row.component.mjs +36 -27
- package/esm2022/link/link.component.mjs +18 -45
- package/esm2022/link/link.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/list/list.property.mjs +195 -188
- package/esm2022/loading/loading.component.mjs +44 -45
- package/esm2022/loading/loading.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/menu/menu.property.mjs +56 -73
- package/esm2022/message/message.component.mjs +8 -8
- package/esm2022/message/message.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/message-box/message-box.service.mjs +6 -6
- package/esm2022/notification/notification.component.mjs +8 -8
- package/esm2022/notification/notification.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/page-header/page-header.property.mjs +31 -27
- package/esm2022/pagination/pagination.component.mjs +74 -100
- package/esm2022/pagination/pagination.module.mjs +4 -4
- package/esm2022/pagination/pagination.property.mjs +99 -136
- package/esm2022/pattern/pattern.component.mjs +12 -13
- package/esm2022/pattern/pattern.module.mjs +4 -4
- package/esm2022/pattern/pattern.property.mjs +2 -2
- package/esm2022/popconfirm/popconfirm.component.mjs +35 -47
- package/esm2022/popconfirm/popconfirm.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/popover/popover.property.mjs +71 -58
- package/esm2022/portal/portal.module.mjs +4 -4
- package/esm2022/portal/portal.property.mjs +1 -1
- package/esm2022/portal/portal.service.mjs +4 -4
- package/esm2022/progress/progress.component.mjs +173 -167
- package/esm2022/progress/progress.module.mjs +4 -4
- package/esm2022/progress/progress.property.mjs +67 -71
- package/esm2022/radio/radio.component.mjs +45 -61
- package/esm2022/radio/radio.module.mjs +4 -4
- package/esm2022/radio/radio.property.mjs +139 -66
- package/esm2022/rate/rate.component.mjs +61 -79
- package/esm2022/rate/rate.module.mjs +4 -4
- package/esm2022/rate/rate.property.mjs +121 -29
- package/esm2022/resizable/resizable.directive.mjs +30 -45
- package/esm2022/resizable/resizable.module.mjs +4 -4
- package/esm2022/resizable/resizable.property.mjs +16 -46
- package/esm2022/result/result.component.mjs +13 -17
- package/esm2022/result/result.module.mjs +4 -4
- package/esm2022/result/result.property.mjs +25 -17
- package/esm2022/ripple/ripple.directive.mjs +38 -27
- package/esm2022/ripple/ripple.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/select/select.property.mjs +195 -102
- package/esm2022/skeleton/skeleton.component.mjs +12 -23
- package/esm2022/skeleton/skeleton.module.mjs +4 -4
- package/esm2022/skeleton/skeleton.property.mjs +31 -28
- package/esm2022/slider/slider.component.mjs +103 -149
- package/esm2022/slider/slider.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/statistic/statistic.property.mjs +68 -34
- package/esm2022/steps/steps.component.mjs +33 -63
- package/esm2022/steps/steps.module.mjs +4 -4
- package/esm2022/steps/steps.property.mjs +28 -39
- package/esm2022/switch/switch.component.mjs +22 -37
- package/esm2022/switch/switch.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/table/table.property.mjs +396 -341
- package/esm2022/tabs/tab-content.component.mjs +13 -16
- package/esm2022/tabs/tab-link.directive.mjs +6 -6
- package/esm2022/tabs/tab.component.mjs +9 -17
- package/esm2022/tabs/tabs.component.mjs +83 -135
- package/esm2022/tabs/tabs.module.mjs +4 -4
- package/esm2022/tabs/tabs.property.mjs +80 -91
- package/esm2022/tag/tag.component.mjs +19 -33
- package/esm2022/tag/tag.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/text-retract/text-retract.property.mjs +22 -18
- package/esm2022/textarea/textarea.component.mjs +49 -79
- package/esm2022/textarea/textarea.module.mjs +4 -4
- package/esm2022/textarea/textarea.property.mjs +124 -47
- package/esm2022/theme/theme.component.mjs +86 -81
- package/esm2022/theme/theme.module.mjs +4 -4
- package/esm2022/theme/theme.property.mjs +35 -46
- package/esm2022/time-ago/time-ago.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/time-picker/time-picker.property.mjs +158 -70
- package/esm2022/time-range/time-range.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/tooltip/tooltip.property.mjs +53 -47
- package/esm2022/transfer/transfer.component.mjs +225 -184
- package/esm2022/transfer/transfer.module.mjs +4 -4
- 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 +4 -4
- 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 +4 -4
- 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 +4 -4
- package/esm2022/tree-select/tree-select.property.mjs +203 -125
- package/esm2022/typography/typography.component.mjs +13 -10
- package/esm2022/typography/typography.module.mjs +4 -4
- 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 +4 -4
- 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 +307 -316
- 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 +218 -203
- 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 +112 -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 +151 -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 +7 -7
- 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 +66 -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 +25 -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 +78 -84
- 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 +2 -2
- 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,67 +1,109 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject, input, output, signal, viewChild } from '@angular/core';
|
|
2
2
|
import { XTimePickerFramePrefix } from './time-picker.property';
|
|
3
|
-
import {
|
|
4
|
-
import { XI18nService } from '@ng-nest/ui/i18n';
|
|
5
|
-
import {
|
|
6
|
-
import { Subject } from 'rxjs';
|
|
3
|
+
import { XRequestAnimationFrame, XIsChange, XIsEmpty, XIsFunction, XIsNull, XIsNumber } from '@ng-nest/ui/core';
|
|
4
|
+
import { XI18nService, zh_CN } from '@ng-nest/ui/i18n';
|
|
5
|
+
import { map } from 'rxjs/operators';
|
|
7
6
|
import { XListComponent } from '@ng-nest/ui/list';
|
|
8
7
|
import { FormsModule } from '@angular/forms';
|
|
8
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/forms";
|
|
11
11
|
export class XTimePickerFrameComponent {
|
|
12
12
|
constructor() {
|
|
13
|
-
this.type = 'time';
|
|
14
|
-
this.hourStep = 1;
|
|
15
|
-
this.minuteStep = 1;
|
|
16
|
-
this.secondStep = 1;
|
|
17
|
-
this.defaultNow = true;
|
|
18
|
-
this.nodeEmit = new EventEmitter();
|
|
19
|
-
this.use12Hour = 'am';
|
|
20
|
-
this.scrollAnimating = {};
|
|
21
|
-
this.hourData = [];
|
|
22
|
-
this.minuteData = [];
|
|
23
|
-
this.secondData = [];
|
|
24
|
-
this.use12HoursData = [];
|
|
25
|
-
this.locale = {};
|
|
26
|
-
this.isInit = false;
|
|
27
|
-
this._unSubject = new Subject();
|
|
28
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
29
13
|
this.i18n = inject(XI18nService);
|
|
14
|
+
this.type = input('time');
|
|
15
|
+
this.value = input();
|
|
16
|
+
this.use12Hours = input(false);
|
|
17
|
+
this.hourStep = input(1);
|
|
18
|
+
this.minuteStep = input(1);
|
|
19
|
+
this.secondStep = input(1);
|
|
20
|
+
this.defaultNow = input(true);
|
|
21
|
+
this.disabledTime = input();
|
|
22
|
+
this.disabledTimeParam = input();
|
|
23
|
+
this.nodeEmit = output();
|
|
24
|
+
this.hourRef = viewChild.required('hourRef');
|
|
25
|
+
this.minuteRef = viewChild('minuteRef');
|
|
26
|
+
this.secondRef = viewChild('secondRef');
|
|
27
|
+
this.use12HoursRef = viewChild('use12HoursRef');
|
|
28
|
+
this.model = signal(null);
|
|
29
|
+
this.hour = signal(null);
|
|
30
|
+
this.minute = signal(null);
|
|
31
|
+
this.second = signal(null);
|
|
32
|
+
this.use12Hour = signal('am');
|
|
33
|
+
this.scrollAnimating = signal({});
|
|
34
|
+
this.hourData = computed(() => {
|
|
35
|
+
let length = this.use12Hours() ? 12 : 24;
|
|
36
|
+
return Array.from({ length: Math.ceil(length / this.hourStep()) }).map((_, i) => {
|
|
37
|
+
if (this.use12Hours() && i === 0) {
|
|
38
|
+
i = 12;
|
|
39
|
+
return {
|
|
40
|
+
disabled: this.setDisabled('hours', i),
|
|
41
|
+
label: this.prefixZero(i, 2),
|
|
42
|
+
id: i
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
const num = i * this.hourStep();
|
|
47
|
+
return {
|
|
48
|
+
disabled: this.setDisabled('hours', num),
|
|
49
|
+
label: this.prefixZero(num, 2),
|
|
50
|
+
id: num
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
this.minuteData = computed(() => {
|
|
56
|
+
return Array.from({ length: Math.ceil(60 / this.minuteStep()) }).map((_, i) => {
|
|
57
|
+
const num = i * this.minuteStep();
|
|
58
|
+
return {
|
|
59
|
+
disabled: this.setDisabled('minutes', num),
|
|
60
|
+
label: this.prefixZero(num, 2),
|
|
61
|
+
id: num
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
this.secondData = computed(() => {
|
|
66
|
+
return Array.from({ length: Math.ceil(60 / this.secondStep()) }).map((_, i) => {
|
|
67
|
+
const num = i * this.secondStep();
|
|
68
|
+
return {
|
|
69
|
+
disabled: this.setDisabled('seconds', num),
|
|
70
|
+
label: this.prefixZero(num, 2),
|
|
71
|
+
id: num
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
this.use12HoursData = computed(() => {
|
|
76
|
+
return [
|
|
77
|
+
{
|
|
78
|
+
id: 'am',
|
|
79
|
+
label: this.locale().am
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: 'pm',
|
|
83
|
+
label: this.locale().pm
|
|
84
|
+
}
|
|
85
|
+
];
|
|
86
|
+
});
|
|
87
|
+
this.locale = toSignal(this.i18n.localeChange.pipe(map((x) => x.timePicker)), {
|
|
88
|
+
initialValue: zh_CN.timePicker
|
|
89
|
+
});
|
|
30
90
|
}
|
|
31
91
|
ngOnChanges(changes) {
|
|
32
|
-
const { value
|
|
92
|
+
const { value } = changes;
|
|
33
93
|
if (XIsChange(value)) {
|
|
34
|
-
// this.setDataInit();
|
|
35
94
|
this.init();
|
|
36
95
|
this.setScrollTop(true);
|
|
37
96
|
}
|
|
38
|
-
XIsChange(disabledTimeParam) && this.setDataInit();
|
|
39
97
|
}
|
|
40
98
|
ngOnInit() {
|
|
41
|
-
this.setDataInit();
|
|
42
99
|
this.init();
|
|
43
|
-
this.i18n.localeChange
|
|
44
|
-
.pipe(map((x) => x.timePicker), takeUntil(this._unSubject))
|
|
45
|
-
.subscribe((x) => {
|
|
46
|
-
this.locale = x;
|
|
47
|
-
if (this.use12Hours) {
|
|
48
|
-
this.setUse12HoursData();
|
|
49
|
-
}
|
|
50
|
-
this.cdr.markForCheck();
|
|
51
|
-
});
|
|
52
100
|
}
|
|
53
101
|
ngAfterViewInit() {
|
|
54
102
|
this.setScrollTop();
|
|
55
103
|
}
|
|
56
|
-
setDataInit() {
|
|
57
|
-
this.setHourData();
|
|
58
|
-
this.setMinuteData();
|
|
59
|
-
this.setSecondData();
|
|
60
|
-
this.setUse12HoursData();
|
|
61
|
-
}
|
|
62
104
|
setDisabled(type, num) {
|
|
63
|
-
if (this.disabledTime && XIsFunction(this.disabledTime)) {
|
|
64
|
-
const disabledMap = this.disabledTime(this.disabledTimeParam);
|
|
105
|
+
if (this.disabledTime() && XIsFunction(this.disabledTime())) {
|
|
106
|
+
const disabledMap = this.disabledTime()(this.disabledTimeParam());
|
|
65
107
|
const { disabledHours, disabledMinutes, disabledSeconds } = disabledMap;
|
|
66
108
|
let disabledNums = [];
|
|
67
109
|
if (type === 'hours') {
|
|
@@ -77,78 +119,21 @@ export class XTimePickerFrameComponent {
|
|
|
77
119
|
}
|
|
78
120
|
return false;
|
|
79
121
|
}
|
|
80
|
-
setHourData() {
|
|
81
|
-
let length = this.use12Hours ? 12 : 24;
|
|
82
|
-
this.hourData = Array.from({ length: Math.ceil(length / this.hourStep) }).map((_, i) => {
|
|
83
|
-
if (this.use12Hours && i === 0) {
|
|
84
|
-
i = 12;
|
|
85
|
-
return {
|
|
86
|
-
disabled: this.setDisabled('hours', i),
|
|
87
|
-
label: this.prefixZero(i, 2),
|
|
88
|
-
id: i
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
const num = i * this.hourStep;
|
|
93
|
-
return {
|
|
94
|
-
disabled: this.setDisabled('hours', num),
|
|
95
|
-
label: this.prefixZero(num, 2),
|
|
96
|
-
id: num
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
setMinuteData() {
|
|
102
|
-
this.minuteData = Array.from({ length: Math.ceil(60 / this.minuteStep) }).map((_, i) => {
|
|
103
|
-
const num = i * this.minuteStep;
|
|
104
|
-
return {
|
|
105
|
-
disabled: this.setDisabled('minutes', num),
|
|
106
|
-
label: this.prefixZero(num, 2),
|
|
107
|
-
id: num
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
setSecondData() {
|
|
112
|
-
this.secondData = Array.from({ length: Math.ceil(60 / this.secondStep) }).map((_, i) => {
|
|
113
|
-
const num = i * this.secondStep;
|
|
114
|
-
return {
|
|
115
|
-
disabled: this.setDisabled('seconds', num),
|
|
116
|
-
label: this.prefixZero(num, 2),
|
|
117
|
-
id: num
|
|
118
|
-
};
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
setUse12HoursData() {
|
|
122
|
-
this.use12HoursData = [
|
|
123
|
-
{
|
|
124
|
-
id: 'am',
|
|
125
|
-
label: this.locale.am
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
id: 'pm',
|
|
129
|
-
label: this.locale.pm
|
|
130
|
-
}
|
|
131
|
-
];
|
|
132
|
-
}
|
|
133
122
|
init() {
|
|
134
|
-
if (!XIsEmpty(this.value)) {
|
|
135
|
-
this.
|
|
136
|
-
this.setTime(this.model);
|
|
123
|
+
if (!XIsEmpty(this.value())) {
|
|
124
|
+
this.model.set(new Date(this.value()));
|
|
125
|
+
this.setTime(this.model());
|
|
137
126
|
}
|
|
138
127
|
else {
|
|
139
|
-
if (this.defaultNow) {
|
|
140
|
-
this.model
|
|
128
|
+
if (this.defaultNow()) {
|
|
129
|
+
this.model.set(this.setNow());
|
|
141
130
|
}
|
|
142
131
|
else {
|
|
143
|
-
this.hour
|
|
144
|
-
this.minute
|
|
145
|
-
this.second
|
|
132
|
+
this.hour.set(null);
|
|
133
|
+
this.minute.set(null);
|
|
134
|
+
this.second.set(null);
|
|
146
135
|
}
|
|
147
136
|
}
|
|
148
|
-
this.cdr.detectChanges();
|
|
149
|
-
}
|
|
150
|
-
setDefault() {
|
|
151
|
-
this.model = new Date(this.value);
|
|
152
137
|
}
|
|
153
138
|
setNow() {
|
|
154
139
|
const def = new Date('1970-01-01');
|
|
@@ -160,63 +145,63 @@ export class XTimePickerFrameComponent {
|
|
|
160
145
|
return new Date(def.getFullYear(), def.getMonth(), def.getDate(), 0, 0, 0);
|
|
161
146
|
}
|
|
162
147
|
setTime(date) {
|
|
163
|
-
if (this.use12Hours) {
|
|
148
|
+
if (this.use12Hours()) {
|
|
164
149
|
let hour = date.getHours();
|
|
165
150
|
if (hour > 12) {
|
|
166
|
-
this.hour
|
|
167
|
-
this.use12Hour
|
|
151
|
+
this.hour.set(hour - 12);
|
|
152
|
+
this.use12Hour.set('pm');
|
|
168
153
|
}
|
|
169
154
|
else if (hour === 12) {
|
|
170
|
-
this.hour
|
|
171
|
-
this.use12Hour
|
|
155
|
+
this.hour.set(12);
|
|
156
|
+
this.use12Hour.set('pm');
|
|
172
157
|
}
|
|
173
158
|
else {
|
|
174
|
-
this.hour
|
|
175
|
-
this.use12Hour
|
|
159
|
+
this.hour.set(hour === 0 ? 12 : hour);
|
|
160
|
+
this.use12Hour.set('am');
|
|
176
161
|
}
|
|
177
162
|
}
|
|
178
163
|
else {
|
|
179
|
-
this.hour
|
|
164
|
+
this.hour.set(date.getHours());
|
|
180
165
|
}
|
|
181
|
-
this.minute
|
|
182
|
-
this.second
|
|
166
|
+
this.minute.set(date.getMinutes());
|
|
167
|
+
this.second.set(date.getSeconds());
|
|
183
168
|
}
|
|
184
169
|
prefixZero(num, n) {
|
|
185
170
|
return (Array(n).join('0') + num).slice(-n);
|
|
186
171
|
}
|
|
187
172
|
setScrollTop(animating = false) {
|
|
188
|
-
this.selected('hour', this.hourRef
|
|
189
|
-
this.selected('minute', this.minuteRef?.nativeElement, this.minute, animating);
|
|
190
|
-
this.selected('second', this.secondRef?.nativeElement, this.second, animating);
|
|
191
|
-
this.selected('use12Hour', this.use12HoursRef?.nativeElement, this.use12Hour, animating);
|
|
173
|
+
this.selected('hour', this.hourRef().nativeElement, this.hour(), animating);
|
|
174
|
+
this.selected('minute', this.minuteRef()?.nativeElement, this.minute(), animating);
|
|
175
|
+
this.selected('second', this.secondRef()?.nativeElement, this.second(), animating);
|
|
176
|
+
this.selected('use12Hour', this.use12HoursRef()?.nativeElement, this.use12Hour(), animating);
|
|
192
177
|
}
|
|
193
178
|
selected(type, ele, num, animating = false) {
|
|
194
179
|
if (!ele || XIsNull(num))
|
|
195
180
|
return;
|
|
196
|
-
if (this.scrollAnimating[ele.className])
|
|
181
|
+
if (this.scrollAnimating()[ele.className])
|
|
197
182
|
return;
|
|
198
183
|
let len = Number(num);
|
|
199
184
|
switch (type) {
|
|
200
185
|
case 'hour':
|
|
201
|
-
len = this.hourData.findIndex((x) => x.id === num);
|
|
186
|
+
len = this.hourData().findIndex((x) => x.id === num);
|
|
202
187
|
break;
|
|
203
188
|
case 'minute':
|
|
204
|
-
len = this.minuteData.findIndex((x) => x.id === num);
|
|
189
|
+
len = this.minuteData().findIndex((x) => x.id === num);
|
|
205
190
|
break;
|
|
206
191
|
case 'second':
|
|
207
|
-
len = this.secondData.findIndex((x) => x.id === num);
|
|
192
|
+
len = this.secondData().findIndex((x) => x.id === num);
|
|
208
193
|
break;
|
|
209
194
|
case 'use12Hour':
|
|
210
|
-
len = this.use12HoursData.findIndex((x) => x.id === num);
|
|
195
|
+
len = this.use12HoursData().findIndex((x) => x.id === num);
|
|
211
196
|
break;
|
|
212
197
|
}
|
|
213
|
-
|
|
198
|
+
const current = ele.querySelector(`.x-list x-list-option:nth-child(${len + 1})`);
|
|
214
199
|
if (current) {
|
|
215
200
|
if (animating) {
|
|
216
|
-
this.scrollTo(ele, current.offsetTop, 120);
|
|
201
|
+
this.scrollTo(ele, current.offsetTop - 4, 120);
|
|
217
202
|
}
|
|
218
203
|
else {
|
|
219
|
-
ele.scrollTop = current.offsetTop;
|
|
204
|
+
ele.scrollTop = current.offsetTop - 4;
|
|
220
205
|
}
|
|
221
206
|
}
|
|
222
207
|
}
|
|
@@ -224,60 +209,92 @@ export class XTimePickerFrameComponent {
|
|
|
224
209
|
return data.indexOf(item) === data.length - 1;
|
|
225
210
|
}
|
|
226
211
|
itemClick(type) {
|
|
227
|
-
if (XIsEmpty(this.model)) {
|
|
228
|
-
this.model
|
|
212
|
+
if (XIsEmpty(this.model())) {
|
|
213
|
+
this.model.set(this.setZero());
|
|
229
214
|
}
|
|
230
215
|
switch (type) {
|
|
231
216
|
case 'minute':
|
|
232
|
-
this.model.
|
|
217
|
+
this.model.update((x) => {
|
|
218
|
+
x.setMinutes(this.minute());
|
|
219
|
+
return x;
|
|
220
|
+
});
|
|
233
221
|
break;
|
|
234
222
|
case 'second':
|
|
235
|
-
this.model.
|
|
223
|
+
this.model.update((x) => {
|
|
224
|
+
x.setSeconds(this.second());
|
|
225
|
+
return x;
|
|
226
|
+
});
|
|
236
227
|
break;
|
|
237
228
|
case 'hour':
|
|
238
|
-
if (this.use12Hours) {
|
|
239
|
-
if (this.use12Hour === 'pm' && this.hour !== 12) {
|
|
240
|
-
this.model.
|
|
229
|
+
if (this.use12Hours()) {
|
|
230
|
+
if (this.use12Hour() === 'pm' && this.hour() !== 12) {
|
|
231
|
+
this.model.update((x) => {
|
|
232
|
+
x.setHours(this.hour() + 12);
|
|
233
|
+
return x;
|
|
234
|
+
});
|
|
241
235
|
}
|
|
242
|
-
else if (this.use12Hour === 'am' && this.hour === 12) {
|
|
243
|
-
this.model.
|
|
236
|
+
else if (this.use12Hour() === 'am' && this.hour() === 12) {
|
|
237
|
+
this.model.update((x) => {
|
|
238
|
+
x.setHours(0);
|
|
239
|
+
return x;
|
|
240
|
+
});
|
|
244
241
|
}
|
|
245
242
|
else {
|
|
246
|
-
this.model.
|
|
243
|
+
this.model.update((x) => {
|
|
244
|
+
x.setHours(this.hour());
|
|
245
|
+
return x;
|
|
246
|
+
});
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
else {
|
|
250
|
-
this.model.
|
|
250
|
+
this.model.update((x) => {
|
|
251
|
+
x.setHours(this.hour());
|
|
252
|
+
return x;
|
|
253
|
+
});
|
|
251
254
|
}
|
|
252
255
|
break;
|
|
253
256
|
case 'use12Hours':
|
|
254
|
-
if (this.use12Hour === 'pm' && this.hour !== 12) {
|
|
255
|
-
this.model.
|
|
257
|
+
if (this.use12Hour() === 'pm' && this.hour() !== 12) {
|
|
258
|
+
this.model.update((x) => {
|
|
259
|
+
x.setHours(this.hour() + 12);
|
|
260
|
+
return x;
|
|
261
|
+
});
|
|
256
262
|
}
|
|
257
|
-
else if (this.use12Hour === 'am' && this.hour === 12) {
|
|
258
|
-
this.model.
|
|
263
|
+
else if (this.use12Hour() === 'am' && this.hour() === 12) {
|
|
264
|
+
this.model.update((x) => {
|
|
265
|
+
x.setHours(0);
|
|
266
|
+
return x;
|
|
267
|
+
});
|
|
259
268
|
}
|
|
260
269
|
else {
|
|
261
|
-
this.model.
|
|
270
|
+
this.model.update((x) => {
|
|
271
|
+
x.setHours(this.hour());
|
|
272
|
+
return x;
|
|
273
|
+
});
|
|
262
274
|
}
|
|
263
275
|
break;
|
|
264
276
|
}
|
|
265
277
|
this.setScrollTop(true);
|
|
266
|
-
this.nodeEmit.emit(this.model);
|
|
267
|
-
this.cdr.detectChanges();
|
|
278
|
+
this.nodeEmit.emit(this.model());
|
|
268
279
|
}
|
|
269
280
|
scrollTo(element, to, duration) {
|
|
270
281
|
const clsName = element.className;
|
|
271
282
|
const difference = to - element.scrollTop;
|
|
272
283
|
const perTick = (difference / duration) * 10;
|
|
273
|
-
this.scrollAnimating
|
|
274
|
-
|
|
284
|
+
this.scrollAnimating.update((x) => {
|
|
285
|
+
x[clsName] = true;
|
|
286
|
+
return { ...x };
|
|
287
|
+
});
|
|
288
|
+
XRequestAnimationFrame(() => {
|
|
275
289
|
const num = element.scrollTop + perTick;
|
|
276
290
|
if (XIsNumber(num) && num !== Infinity) {
|
|
277
291
|
element.scrollTop = num;
|
|
278
292
|
}
|
|
279
293
|
if (element.scrollTop === to || duration <= 0) {
|
|
280
|
-
this.scrollAnimating
|
|
294
|
+
this.scrollAnimating.update((x) => {
|
|
295
|
+
x[clsName] = false;
|
|
296
|
+
return { ...x };
|
|
297
|
+
});
|
|
281
298
|
return;
|
|
282
299
|
}
|
|
283
300
|
else {
|
|
@@ -285,43 +302,11 @@ export class XTimePickerFrameComponent {
|
|
|
285
302
|
}
|
|
286
303
|
});
|
|
287
304
|
}
|
|
288
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
289
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
305
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTimePickerFrameComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
306
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XTimePickerFrameComponent, isStandalone: true, selector: "x-time-picker-frame", inputs: { type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, use12Hours: { classPropertyName: "use12Hours", publicName: "use12Hours", isSignal: true, isRequired: false, transformFunction: null }, hourStep: { classPropertyName: "hourStep", publicName: "hourStep", isSignal: true, isRequired: false, transformFunction: null }, minuteStep: { classPropertyName: "minuteStep", publicName: "minuteStep", isSignal: true, isRequired: false, transformFunction: null }, secondStep: { classPropertyName: "secondStep", publicName: "secondStep", isSignal: true, isRequired: false, transformFunction: null }, defaultNow: { classPropertyName: "defaultNow", publicName: "defaultNow", isSignal: true, isRequired: false, transformFunction: null }, disabledTime: { classPropertyName: "disabledTime", publicName: "disabledTime", isSignal: true, isRequired: false, transformFunction: null }, disabledTimeParam: { classPropertyName: "disabledTimeParam", publicName: "disabledTimeParam", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeEmit: "nodeEmit" }, viewQueries: [{ propertyName: "hourRef", first: true, predicate: ["hourRef"], descendants: true, isSignal: true }, { propertyName: "minuteRef", first: true, predicate: ["minuteRef"], descendants: true, isSignal: true }, { propertyName: "secondRef", first: true, predicate: ["secondRef"], descendants: true, isSignal: true }, { propertyName: "use12HoursRef", first: true, predicate: ["use12HoursRef"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourData()\" [(ngModel)]=\"hour\" (nodeClick)=\"itemClick('hour')\"></x-list>\r\n </div>\r\n @if (type() !== 'hour') {\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef>\r\n <x-list [data]=\"minuteData()\" [(ngModel)]=\"minute\" (nodeClick)=\"itemClick('minute')\"></x-list>\r\n </div>\r\n }\r\n @if (type() === 'time') {\r\n <div class=\"x-time-picker-frame-second\" #secondRef>\r\n <x-list [data]=\"secondData()\" [(ngModel)]=\"second\" (nodeClick)=\"itemClick('second')\"></x-list>\r\n </div>\r\n }\r\n @if (use12Hours()) {\r\n <div class=\"x-time-picker-frame-use12Hours\" #use12HoursRef>\r\n <x-list [data]=\"use12HoursData()\" [(ngModel)]=\"use12Hour\" (nodeClick)=\"itemClick('use12Hours')\"></x-list>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;display:block;height:100%}.x-time-picker-frame>div{width:4.25rem;max-height:16rem;padding-bottom:13.5rem;padding:.25rem .25rem 13.75rem}.x-time-picker-frame>div:first-child{width:4.125rem}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second,.x-time-picker-frame-use12Hours{position:relative;float:left;overflow:hidden}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover,.x-time-picker-frame-use12Hours:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list,.x-time-picker-frame-use12Hours>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem;border-radius:0}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}.x-time-picker-frame-use12Hours{width:4.5rem}.x-time-picker-frame-use12Hours>x-list>.x-list{width:4.5rem}.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:4.5rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
290
307
|
}
|
|
291
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
308
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTimePickerFrameComponent, decorators: [{
|
|
292
309
|
type: Component,
|
|
293
|
-
args: [{ selector: `${XTimePickerFramePrefix}`, standalone: true, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourData\" [(ngModel)]=\"hour\" (nodeClick)=\"itemClick('hour')\"></x-list>\r\n </div>\r\n @if (type !== 'hour') {\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef>\r\n <x-list [data]=\"minuteData\" [(ngModel)]=\"minute\" (nodeClick)=\"itemClick('minute')\"></x-list>\r\n </div>\r\n }\r\n @if (type === 'time') {\r\n <div class=\"x-time-picker-frame-second\" #secondRef>\r\n <x-list [data]=\"secondData\" [(ngModel)]=\"second\" (nodeClick)=\"itemClick('second')\"></x-list>\r\n </div>\r\n }\r\n @if (use12Hours) {\r\n <div class=\"x-time-picker-frame-use12Hours\" #use12HoursRef>\r\n <x-list [data]=\"use12HoursData\" [(ngModel)]=\"use12Hour\" (nodeClick)=\"itemClick('use12Hours')\"></x-list>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;
|
|
294
|
-
}]
|
|
295
|
-
type: Input
|
|
296
|
-
}], value: [{
|
|
297
|
-
type: Input
|
|
298
|
-
}], use12Hours: [{
|
|
299
|
-
type: Input
|
|
300
|
-
}], hourStep: [{
|
|
301
|
-
type: Input
|
|
302
|
-
}], minuteStep: [{
|
|
303
|
-
type: Input
|
|
304
|
-
}], secondStep: [{
|
|
305
|
-
type: Input
|
|
306
|
-
}], defaultNow: [{
|
|
307
|
-
type: Input
|
|
308
|
-
}], disabledTime: [{
|
|
309
|
-
type: Input
|
|
310
|
-
}], disabledTimeParam: [{
|
|
311
|
-
type: Input
|
|
312
|
-
}], nodeEmit: [{
|
|
313
|
-
type: Output
|
|
314
|
-
}], hourRef: [{
|
|
315
|
-
type: ViewChild,
|
|
316
|
-
args: ['hourRef']
|
|
317
|
-
}], minuteRef: [{
|
|
318
|
-
type: ViewChild,
|
|
319
|
-
args: ['minuteRef']
|
|
320
|
-
}], secondRef: [{
|
|
321
|
-
type: ViewChild,
|
|
322
|
-
args: ['secondRef']
|
|
323
|
-
}], use12HoursRef: [{
|
|
324
|
-
type: ViewChild,
|
|
325
|
-
args: ['use12HoursRef']
|
|
326
|
-
}] } });
|
|
327
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkIsc0JBQXNCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFDMUcsT0FBTyxFQUNMLFlBQVksRUFHWixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNWLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVzdDLE1BQU0sT0FBTyx5QkFBeUI7SUFUdEM7UUFVVyxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQUcvQixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBR2pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBUzlDLGNBQVMsR0FBVyxJQUFJLENBQUM7UUFDekIsb0JBQWUsR0FBK0IsRUFBRSxDQUFDO1FBQ2pELGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBQzNCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBQzdCLGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBQzdCLG1CQUFjLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxXQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDakMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7S0FxUnJDO0lBblJDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzdDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLHNCQUFzQjtZQUN0QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsU0FBUyxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWTthQUNuQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBNkIsQ0FBQyxFQUMzQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUMxQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBcUMsRUFBRSxHQUFXO1FBQzVELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDOUQsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ3hFLElBQUksWUFBWSxHQUFhLEVBQUUsQ0FBQztZQUNoQyxJQUFJLElBQUksS0FBSyxPQUFPLEVBQUU7Z0JBQ3BCLFlBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7YUFDckQ7aUJBQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUM3QixZQUFZLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3pEO2lCQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDN0IsWUFBWSxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUN6RDtZQUNELE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNuQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckYsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ1AsT0FBTztvQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO29CQUN0QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUM1QixFQUFFLEVBQUUsQ0FBQztpQkFDTixDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLE9BQU87b0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztvQkFDeEMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztvQkFDOUIsRUFBRSxFQUFFLEdBQUc7aUJBQ1IsQ0FBQzthQUNIO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRixNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNoQyxPQUFPO2dCQUNMLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUM7Z0JBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQzlCLEVBQUUsRUFBRSxHQUFHO2FBQ1IsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckYsTUFBTSxHQUFHLEdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDeEMsT0FBTztnQkFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QixFQUFFLEVBQUUsR0FBRzthQUNSLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHO1lBQ3BCO2dCQUNFLEVBQUUsRUFBRSxJQUFJO2dCQUNSLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7YUFDdEI7WUFDRDtnQkFDRSxFQUFFLEVBQUUsSUFBSTtnQkFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2FBQ3RCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDcEI7U0FDRjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFNLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsT0FBTyxJQUFJLElBQUksQ0FDYixHQUFHLENBQUMsV0FBVyxFQUFFLEVBQ2pCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFDZCxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQ2IsR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUNkLEdBQUcsQ0FBQyxVQUFVLEVBQUUsRUFDaEIsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7aUJBQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO2dCQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQzthQUN2QjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUM3QjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVyxFQUFFLENBQVM7UUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFTLEdBQUcsS0FBSztRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxRQUFRLENBQ04sSUFBZ0QsRUFDaEQsR0FBaUIsRUFDakIsR0FBcUIsRUFDckIsU0FBUyxHQUFHLEtBQUs7UUFFakIsSUFBSSxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQUUsT0FBTztRQUNqQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUFFLE9BQU87UUFDaEQsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxNQUFNO2dCQUNULEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDbkQsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ3JELE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNO1lBQ1IsS0FBSyxXQUFXO2dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDekQsTUFBTTtTQUNUO1FBQ0QsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxtQ0FBbUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFnQixDQUFDO1FBQzlGLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUM1QztpQkFBTTtnQkFDTCxHQUFHLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBaUIsRUFBRSxJQUFlO1FBQzNDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQWlEO1FBQ3pELElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN4QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM3QjtRQUNELFFBQVEsSUFBSSxFQUFFO1lBQ1osS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtZQUNSLEtBQUssUUFBUTtnQkFDWCxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLENBQUM7Z0JBQ3BDLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNuQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO3dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDO3FCQUN0Qzt5QkFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssRUFBRSxFQUFFO3dCQUN0RCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztxQkFDeEI7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUssQ0FBQyxDQUFDO3FCQUNqQztpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLENBQUM7aUJBQ2pDO2dCQUNELE1BQU07WUFDUixLQUFLLFlBQVk7Z0JBQ2YsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtvQkFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztpQkFDdEM7cUJBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtvQkFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3hCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsQ0FBQztpQkFDakM7Z0JBQ0QsTUFBTTtTQUNUO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQW9CLEVBQUUsRUFBVSxFQUFFLFFBQWdCO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDbEMsTUFBTSxVQUFVLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLFlBQVksQ0FBQyxHQUFHLEVBQUU7WUFDaEIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUM7WUFDeEMsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRTtnQkFDdEMsT0FBTyxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7YUFDekI7WUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN0QyxPQUFPO2FBQ1I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUFqVFUseUJBQXlCO3FIQUF6Qix5QkFBeUIsNHVCQ3ZDdEMseTNCQW9CQSwyd0REYVksV0FBVywrVkFBRSxjQUFjOzsyRkFNMUIseUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLEdBQUcsc0JBQXNCLEVBQUUsY0FDekIsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTTtnQkFDZSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ksU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNFLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDTSxhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhUaW1lUGlja2VyRGlzYWJsZWRUaW1lLCBYVGltZVBpY2tlckZyYW1lUHJlZml4LCBYVGltZVBpY2tlclR5cGUgfSBmcm9tICcuL3RpbWUtcGlja2VyLnByb3BlcnR5JztcclxuaW1wb3J0IHtcclxuICByZXFBbmltRnJhbWUsXHJcbiAgWEJvb2xlYW4sXHJcbiAgWElkZW50aXR5LFxyXG4gIFhJc0NoYW5nZSxcclxuICBYSXNFbXB0eSxcclxuICBYSXNGdW5jdGlvbixcclxuICBYSXNOdWxsLFxyXG4gIFhJc051bWJlclxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuVGltZVBpY2tlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2xpc3QnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGltZVBpY2tlckZyYW1lUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFhMaXN0Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdHlwZTogWFRpbWVQaWNrZXJUeXBlID0gJ3RpbWUnO1xyXG4gIEBJbnB1dCgpIHZhbHVlITogbnVtYmVyIHwgbnVsbDtcclxuICBASW5wdXQoKSB1c2UxMkhvdXJzITogWEJvb2xlYW47XHJcbiAgQElucHV0KCkgaG91clN0ZXAgPSAxO1xyXG4gIEBJbnB1dCgpIG1pbnV0ZVN0ZXAgPSAxO1xyXG4gIEBJbnB1dCgpIHNlY29uZFN0ZXAgPSAxO1xyXG4gIEBJbnB1dCgpIGRlZmF1bHROb3cgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkVGltZT86IFhUaW1lUGlja2VyRGlzYWJsZWRUaW1lO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkVGltZVBhcmFtPzogYW55O1xyXG4gIEBPdXRwdXQoKSBub2RlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBAVmlld0NoaWxkKCdob3VyUmVmJykgaG91clJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ21pbnV0ZVJlZicpIG1pbnV0ZVJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlY29uZFJlZicpIHNlY29uZFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ3VzZTEySG91cnNSZWYnKSB1c2UxMkhvdXJzUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgbW9kZWwhOiBEYXRlO1xyXG4gIGhvdXIhOiBudW1iZXIgfCBudWxsO1xyXG4gIG1pbnV0ZSE6IG51bWJlciB8IG51bGw7XHJcbiAgc2Vjb25kITogbnVtYmVyIHwgbnVsbDtcclxuICB1c2UxMkhvdXI6IHN0cmluZyA9ICdhbSc7XHJcbiAgc2Nyb2xsQW5pbWF0aW5nOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIGhvdXJEYXRhOiBYSWRlbnRpdHlbXSA9IFtdO1xyXG4gIG1pbnV0ZURhdGE6IFhJZGVudGl0eVtdID0gW107XHJcbiAgc2Vjb25kRGF0YTogWElkZW50aXR5W10gPSBbXTtcclxuICB1c2UxMkhvdXJzRGF0YTogWElkZW50aXR5W10gPSBbXTtcclxuICBsb2NhbGU6IFhJMThuVGltZVBpY2tlciA9IHt9O1xyXG4gIGlzSW5pdCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHZhbHVlLCBkaXNhYmxlZFRpbWVQYXJhbSB9ID0gY2hhbmdlcztcclxuICAgIGlmIChYSXNDaGFuZ2UodmFsdWUpKSB7XHJcbiAgICAgIC8vIHRoaXMuc2V0RGF0YUluaXQoKTtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHRydWUpO1xyXG4gICAgfVxyXG4gICAgWElzQ2hhbmdlKGRpc2FibGVkVGltZVBhcmFtKSAmJiB0aGlzLnNldERhdGFJbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RGF0YUluaXQoKTtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHgudGltZVBpY2tlciBhcyBYSTE4blRpbWVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICBpZiAodGhpcy51c2UxMkhvdXJzKSB7XHJcbiAgICAgICAgICB0aGlzLnNldFVzZTEySG91cnNEYXRhKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0SG91ckRhdGEoKTtcclxuICAgIHRoaXMuc2V0TWludXRlRGF0YSgpO1xyXG4gICAgdGhpcy5zZXRTZWNvbmREYXRhKCk7XHJcbiAgICB0aGlzLnNldFVzZTEySG91cnNEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZCh0eXBlOiAnaG91cnMnIHwgJ21pbnV0ZXMnIHwgJ3NlY29uZHMnLCBudW06IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRUaW1lICYmIFhJc0Z1bmN0aW9uKHRoaXMuZGlzYWJsZWRUaW1lKSkge1xyXG4gICAgICBjb25zdCBkaXNhYmxlZE1hcCA9IHRoaXMuZGlzYWJsZWRUaW1lKHRoaXMuZGlzYWJsZWRUaW1lUGFyYW0pO1xyXG4gICAgICBjb25zdCB7IGRpc2FibGVkSG91cnMsIGRpc2FibGVkTWludXRlcywgZGlzYWJsZWRTZWNvbmRzIH0gPSBkaXNhYmxlZE1hcDtcclxuICAgICAgbGV0IGRpc2FibGVkTnVtczogbnVtYmVyW10gPSBbXTtcclxuICAgICAgaWYgKHR5cGUgPT09ICdob3VycycpIHtcclxuICAgICAgICBkaXNhYmxlZE51bXMgPSBkaXNhYmxlZEhvdXJzID8gZGlzYWJsZWRIb3VycygpIDogW107XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21pbnV0ZXMnKSB7XHJcbiAgICAgICAgZGlzYWJsZWROdW1zID0gZGlzYWJsZWRNaW51dGVzID8gZGlzYWJsZWRNaW51dGVzKCkgOiBbXTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2Vjb25kcycpIHtcclxuICAgICAgICBkaXNhYmxlZE51bXMgPSBkaXNhYmxlZFNlY29uZHMgPyBkaXNhYmxlZFNlY29uZHMoKSA6IFtdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBkaXNhYmxlZE51bXMuaW5jbHVkZXMobnVtKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRIb3VyRGF0YSgpIHtcclxuICAgIGxldCBsZW5ndGggPSB0aGlzLnVzZTEySG91cnMgPyAxMiA6IDI0O1xyXG4gICAgdGhpcy5ob3VyRGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbChsZW5ndGggLyB0aGlzLmhvdXJTdGVwKSB9KS5tYXAoKF8sIGkpID0+IHtcclxuICAgICAgaWYgKHRoaXMudXNlMTJIb3VycyAmJiBpID09PSAwKSB7XHJcbiAgICAgICAgaSA9IDEyO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5zZXREaXNhYmxlZCgnaG91cnMnLCBpKSxcclxuICAgICAgICAgIGxhYmVsOiB0aGlzLnByZWZpeFplcm8oaSwgMiksXHJcbiAgICAgICAgICBpZDogaVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbnVtID0gaSAqIHRoaXMuaG91clN0ZXA7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnNldERpc2FibGVkKCdob3VycycsIG51bSksXHJcbiAgICAgICAgICBsYWJlbDogdGhpcy5wcmVmaXhaZXJvKG51bSwgMiksXHJcbiAgICAgICAgICBpZDogbnVtXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNaW51dGVEYXRhKCkge1xyXG4gICAgdGhpcy5taW51dGVEYXRhID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogTWF0aC5jZWlsKDYwIC8gdGhpcy5taW51dGVTdGVwKSB9KS5tYXAoKF8sIGkpID0+IHtcclxuICAgICAgY29uc3QgbnVtID0gaSAqIHRoaXMubWludXRlU3RlcDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkaXNhYmxlZDogdGhpcy5zZXREaXNhYmxlZCgnbWludXRlcycsIG51bSksXHJcbiAgICAgICAgbGFiZWw6IHRoaXMucHJlZml4WmVybyhudW0sIDIpLFxyXG4gICAgICAgIGlkOiBudW1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0U2Vjb25kRGF0YSgpIHtcclxuICAgIHRoaXMuc2Vjb25kRGF0YSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbCg2MCAvIHRoaXMuc2Vjb25kU3RlcCkgfSkubWFwKChfLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IG51bTogbnVtYmVyID0gaSAqIHRoaXMuc2Vjb25kU3RlcDtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBkaXNhYmxlZDogdGhpcy5zZXREaXNhYmxlZCgnc2Vjb25kcycsIG51bSksXHJcbiAgICAgICAgbGFiZWw6IHRoaXMucHJlZml4WmVybyhudW0sIDIpLFxyXG4gICAgICAgIGlkOiBudW1cclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0VXNlMTJIb3Vyc0RhdGEoKSB7XHJcbiAgICB0aGlzLnVzZTEySG91cnNEYXRhID0gW1xyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICdhbScsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMubG9jYWxlLmFtXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ3BtJyxcclxuICAgICAgICBsYWJlbDogdGhpcy5sb2NhbGUucG1cclxuICAgICAgfVxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnNldFRpbWUodGhpcy5tb2RlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5kZWZhdWx0Tm93KSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuc2V0Tm93KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ob3VyID0gbnVsbDtcclxuICAgICAgICB0aGlzLm1pbnV0ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zZWNvbmQgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKHRoaXMudmFsdWUhKTtcclxuICB9XHJcblxyXG4gIHNldE5vdygpIHtcclxuICAgIGNvbnN0IGRlZiA9IG5ldyBEYXRlKCcxOTcwLTAxLTAxJyk7XHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKFxyXG4gICAgICBkZWYuZ2V0RnVsbFllYXIoKSxcclxuICAgICAgZGVmLmdldE1vbnRoKCksXHJcbiAgICAgIGRlZi5nZXREYXRlKCksXHJcbiAgICAgIG5vdy5nZXRIb3VycygpLFxyXG4gICAgICBub3cuZ2V0TWludXRlcygpLFxyXG4gICAgICBub3cuZ2V0U2Vjb25kcygpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0WmVybygpIHtcclxuICAgIGNvbnN0IGRlZiA9IG5ldyBEYXRlKCcxOTcwLTAxLTAxJyk7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGVmLmdldEZ1bGxZZWFyKCksIGRlZi5nZXRNb250aCgpLCBkZWYuZ2V0RGF0ZSgpLCAwLCAwLCAwKTtcclxuICB9XHJcblxyXG4gIHNldFRpbWUoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMudXNlMTJIb3Vycykge1xyXG4gICAgICBsZXQgaG91ciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgICAgaWYgKGhvdXIgPiAxMikge1xyXG4gICAgICAgIHRoaXMuaG91ciA9IGhvdXIgLSAxMjtcclxuICAgICAgICB0aGlzLnVzZTEySG91ciA9ICdwbSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoaG91ciA9PT0gMTIpIHtcclxuICAgICAgICB0aGlzLmhvdXIgPSAxMjtcclxuICAgICAgICB0aGlzLnVzZTEySG91ciA9ICdwbSc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ob3VyID0gaG91ciA9PT0gMCA/IDEyIDogaG91cjtcclxuICAgICAgICB0aGlzLnVzZTEySG91ciA9ICdhbSc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaG91ciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgIH1cclxuICAgIHRoaXMubWludXRlID0gZGF0ZS5nZXRNaW51dGVzKCk7XHJcbiAgICB0aGlzLnNlY29uZCA9IGRhdGUuZ2V0U2Vjb25kcygpO1xyXG4gIH1cclxuXHJcbiAgcHJlZml4WmVybyhudW06IG51bWJlciwgbjogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKEFycmF5KG4pLmpvaW4oJzAnKSArIG51bSkuc2xpY2UoLW4pO1xyXG4gIH1cclxuXHJcbiAgc2V0U2Nyb2xsVG9wKGFuaW1hdGluZyA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkKCdob3VyJywgdGhpcy5ob3VyUmVmPy5uYXRpdmVFbGVtZW50LCB0aGlzLmhvdXIhLCBhbmltYXRpbmcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZCgnbWludXRlJywgdGhpcy5taW51dGVSZWY/Lm5hdGl2ZUVsZW1lbnQsIHRoaXMubWludXRlISwgYW5pbWF0aW5nKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQoJ3NlY29uZCcsIHRoaXMuc2Vjb25kUmVmPy5uYXRpdmVFbGVtZW50LCB0aGlzLnNlY29uZCEsIGFuaW1hdGluZyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkKCd1c2UxMkhvdXInLCB0aGlzLnVzZTEySG91cnNSZWY/Lm5hdGl2ZUVsZW1lbnQsIHRoaXMudXNlMTJIb3VyLCBhbmltYXRpbmcpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoXHJcbiAgICB0eXBlOiAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnIHwgJ3VzZTEySG91cicsXHJcbiAgICBlbGU/OiBIVE1MRWxlbWVudCxcclxuICAgIG51bT86IG51bWJlciB8IHN0cmluZyxcclxuICAgIGFuaW1hdGluZyA9IGZhbHNlXHJcbiAgKSB7XHJcbiAgICBpZiAoIWVsZSB8fCBYSXNOdWxsKG51bSkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnNjcm9sbEFuaW1hdGluZ1tlbGUuY2xhc3NOYW1lXSkgcmV0dXJuO1xyXG4gICAgbGV0IGxlbiA9IE51bWJlcihudW0pO1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2hvdXInOlxyXG4gICAgICAgIGxlbiA9IHRoaXMuaG91ckRhdGEuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBudW0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtaW51dGUnOlxyXG4gICAgICAgIGxlbiA9IHRoaXMubWludXRlRGF0YS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IG51bSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NlY29uZCc6XHJcbiAgICAgICAgbGVuID0gdGhpcy5zZWNvbmREYXRhLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gbnVtKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndXNlMTJIb3VyJzpcclxuICAgICAgICBsZW4gPSB0aGlzLnVzZTEySG91cnNEYXRhLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gbnVtKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIGxldCBjdXJyZW50ID0gZWxlLnF1ZXJ5U2VsZWN0b3IoYC54LWxpc3QgeC1saXN0LW9wdGlvbjpudGgtY2hpbGQoJHtsZW4gKyAxfSlgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmIChjdXJyZW50KSB7XHJcbiAgICAgIGlmIChhbmltYXRpbmcpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvKGVsZSwgY3VycmVudC5vZmZzZXRUb3AsIDEyMCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZWxlLnNjcm9sbFRvcCA9IGN1cnJlbnQub2Zmc2V0VG9wO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0xhc3RJdGVtKGRhdGE6IFhJZGVudGl0eVtdLCBpdGVtOiBYSWRlbnRpdHkpIHtcclxuICAgIHJldHVybiBkYXRhLmluZGV4T2YoaXRlbSkgPT09IGRhdGEubGVuZ3RoIC0gMTtcclxuICB9XHJcblxyXG4gIGl0ZW1DbGljayh0eXBlOiAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnIHwgJ3VzZTEySG91cnMnKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5tb2RlbCkpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuc2V0WmVybygpO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ21pbnV0ZSc6XHJcbiAgICAgICAgdGhpcy5tb2RlbC5zZXRNaW51dGVzKHRoaXMubWludXRlISk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NlY29uZCc6XHJcbiAgICAgICAgdGhpcy5tb2RlbC5zZXRTZWNvbmRzKHRoaXMuc2Vjb25kISk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2hvdXInOlxyXG4gICAgICAgIGlmICh0aGlzLnVzZTEySG91cnMpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnVzZTEySG91ciA9PT0gJ3BtJyAmJiB0aGlzLmhvdXIgIT09IDEyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0SG91cnModGhpcy5ob3VyISArIDEyKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2UxMkhvdXIgPT09ICdhbScgJiYgdGhpcy5ob3VyID09PSAxMikge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC5zZXRIb3Vycyh0aGlzLmhvdXIhKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC5zZXRIb3Vycyh0aGlzLmhvdXIhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3VzZTEySG91cnMnOlxyXG4gICAgICAgIGlmICh0aGlzLnVzZTEySG91ciA9PT0gJ3BtJyAmJiB0aGlzLmhvdXIgIT09IDEyKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnNldEhvdXJzKHRoaXMuaG91ciEgKyAxMik7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVzZTEySG91ciA9PT0gJ2FtJyAmJiB0aGlzLmhvdXIgPT09IDEyKSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnNldEhvdXJzKDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnNldEhvdXJzKHRoaXMuaG91ciEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHRydWUpO1xyXG4gICAgdGhpcy5ub2RlRW1pdC5lbWl0KHRoaXMubW9kZWwpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUbyhlbGVtZW50OiBIVE1MRWxlbWVudCwgdG86IG51bWJlciwgZHVyYXRpb246IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgY2xzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lO1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHRvIC0gZWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcclxuICAgIHRoaXMuc2Nyb2xsQW5pbWF0aW5nW2Nsc05hbWVdID0gdHJ1ZTtcclxuICAgIHJlcUFuaW1GcmFtZSgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG51bSA9IGVsZW1lbnQuc2Nyb2xsVG9wICsgcGVyVGljaztcclxuICAgICAgaWYgKFhJc051bWJlcihudW0pICYmIG51bSAhPT0gSW5maW5pdHkpIHtcclxuICAgICAgICBlbGVtZW50LnNjcm9sbFRvcCA9IG51bTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZWxlbWVudC5zY3JvbGxUb3AgPT09IHRvIHx8IGR1cmF0aW9uIDw9IDApIHtcclxuICAgICAgICB0aGlzLnNjcm9sbEFuaW1hdGluZ1tjbHNOYW1lXSA9IGZhbHNlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvKGVsZW1lbnQsIHRvLCBkdXJhdGlvbiAtIDEwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLWZyYW1lXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItZnJhbWUtaG91clwiICNob3VyUmVmPlxyXG4gICAgPHgtbGlzdCBbZGF0YV09XCJob3VyRGF0YVwiIFsobmdNb2RlbCldPVwiaG91clwiIChub2RlQ2xpY2spPVwiaXRlbUNsaWNrKCdob3VyJylcIj48L3gtbGlzdD5cclxuICA8L2Rpdj5cclxuICBAaWYgKHR5cGUgIT09ICdob3VyJykge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItZnJhbWUtbWludXRlXCIgI21pbnV0ZVJlZj5cclxuICAgICAgPHgtbGlzdCBbZGF0YV09XCJtaW51dGVEYXRhXCIgWyhuZ01vZGVsKV09XCJtaW51dGVcIiAobm9kZUNsaWNrKT1cIml0ZW1DbGljaygnbWludXRlJylcIj48L3gtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKHR5cGUgPT09ICd0aW1lJykge1xyXG4gICAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItZnJhbWUtc2Vjb25kXCIgI3NlY29uZFJlZj5cclxuICAgICAgPHgtbGlzdCBbZGF0YV09XCJzZWNvbmREYXRhXCIgWyhuZ01vZGVsKV09XCJzZWNvbmRcIiAobm9kZUNsaWNrKT1cIml0ZW1DbGljaygnc2Vjb25kJylcIj48L3gtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKHVzZTEySG91cnMpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLWZyYW1lLXVzZTEySG91cnNcIiAjdXNlMTJIb3Vyc1JlZj5cclxuICAgICAgPHgtbGlzdCBbZGF0YV09XCJ1c2UxMkhvdXJzRGF0YVwiIFsobmdNb2RlbCldPVwidXNlMTJIb3VyXCIgKG5vZGVDbGljayk9XCJpdGVtQ2xpY2soJ3VzZTEySG91cnMnKVwiPjwveC1saXN0PlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|
|
310
|
+
args: [{ selector: `${XTimePickerFramePrefix}`, standalone: true, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-time-picker-frame\">\r\n <div class=\"x-time-picker-frame-hour\" #hourRef>\r\n <x-list [data]=\"hourData()\" [(ngModel)]=\"hour\" (nodeClick)=\"itemClick('hour')\"></x-list>\r\n </div>\r\n @if (type() !== 'hour') {\r\n <div class=\"x-time-picker-frame-minute\" #minuteRef>\r\n <x-list [data]=\"minuteData()\" [(ngModel)]=\"minute\" (nodeClick)=\"itemClick('minute')\"></x-list>\r\n </div>\r\n }\r\n @if (type() === 'time') {\r\n <div class=\"x-time-picker-frame-second\" #secondRef>\r\n <x-list [data]=\"secondData()\" [(ngModel)]=\"second\" (nodeClick)=\"itemClick('second')\"></x-list>\r\n </div>\r\n }\r\n @if (use12Hours()) {\r\n <div class=\"x-time-picker-frame-use12Hours\" #use12HoursRef>\r\n <x-list [data]=\"use12HoursData()\" [(ngModel)]=\"use12Hour\" (nodeClick)=\"itemClick('use12Hours')\"></x-list>\r\n </div>\r\n }\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-time-picker-frame{margin:0;padding:0;display:block;height:100%}.x-time-picker-frame>div{width:4.25rem;max-height:16rem;padding-bottom:13.5rem;padding:.25rem .25rem 13.75rem}.x-time-picker-frame>div:first-child{width:4.125rem}.x-time-picker-frame>div:not(:first-child){border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-time-picker-frame-hour,.x-time-picker-frame-minute,.x-time-picker-frame-second,.x-time-picker-frame-use12Hours{position:relative;float:left;overflow:hidden}.x-time-picker-frame-hour:hover,.x-time-picker-frame-minute:hover,.x-time-picker-frame-second:hover,.x-time-picker-frame-use12Hours:hover{overflow-y:auto}.x-time-picker-frame-hour>x-list>.x-list,.x-time-picker-frame-minute>x-list>.x-list,.x-time-picker-frame-second>x-list>.x-list,.x-time-picker-frame-use12Hours>x-list>.x-list{width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:3.625rem}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option,.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option{padding-left:.6rem;border-radius:0}.x-time-picker-frame-hour>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-minute>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-second>x-list>.x-list>x-list-option>.x-list-option:not(:first-child),.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option>.x-list-option:not(:first-child){margin-top:0}.x-time-picker-frame-use12Hours{width:4.5rem}.x-time-picker-frame-use12Hours>x-list>.x-list{width:4.5rem}.x-time-picker-frame-use12Hours>x-list>.x-list>x-list-option{min-width:4.5rem}\n"] }]
|
|
311
|
+
}] });
|
|
312
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGltZS1waWNrZXIvdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBR1QsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBMkIsc0JBQXNCLEVBQW1CLE1BQU0sd0JBQXdCLENBQUM7QUFDMUcsT0FBTyxFQUNMLHNCQUFzQixFQUV0QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxFQUNWLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBbUIsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFXdEQsTUFBTSxPQUFPLHlCQUF5QjtJQVR0QztRQVVVLFNBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsU0FBSSxHQUFHLEtBQUssQ0FBa0IsTUFBTSxDQUFDLENBQUM7UUFDdEMsVUFBSyxHQUFHLEtBQUssRUFBaUIsQ0FBQztRQUMv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LFFBQVEsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUM1QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2lJQTVTVSx5QkFBeUI7cUhBQXpCLHlCQUF5Qiw2dkRDdEN0Qyx1NEJBb0JBLHVnRURZWSxXQUFXLCtWQUFFLGNBQWM7OzJGQU0xQix5QkFBeUI7a0JBVHJDLFNBQVM7K0JBQ0UsR0FBRyxzQkFBc0IsRUFBRSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLGlCQUd2QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIGNvbXB1dGVkLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgc2lnbmFsLFxyXG4gIHZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckRpc2FibGVkVGltZSwgWFRpbWVQaWNrZXJGcmFtZVByZWZpeCwgWFRpbWVQaWNrZXJUeXBlIH0gZnJvbSAnLi90aW1lLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWFJlcXVlc3RBbmltYXRpb25GcmFtZSxcclxuICBYSWRlbnRpdHksXHJcbiAgWElzQ2hhbmdlLFxyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhJc051bGwsXHJcbiAgWElzTnVtYmVyXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhJMThuU2VydmljZSwgWEkxOG5UaW1lUGlja2VyLCB6aF9DTiB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhMaXN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGlzdCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGltZVBpY2tlckZyYW1lUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFhMaXN0Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItZnJhbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbWUtcGlja2VyLWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRpbWVQaWNrZXJGcmFtZUNvbXBvbmVudCB7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgdHlwZSA9IGlucHV0PFhUaW1lUGlja2VyVHlwZT4oJ3RpbWUnKTtcclxuICB2YWx1ZSA9IGlucHV0PG51bWJlciB8IG51bGw+KCk7XHJcbiAgdXNlMTJIb3VycyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBob3VyU3RlcCA9IGlucHV0PG51bWJlcj4oMSk7XHJcbiAgbWludXRlU3RlcCA9IGlucHV0PG51bWJlcj4oMSk7XHJcbiAgc2Vjb25kU3RlcCA9IGlucHV0PG51bWJlcj4oMSk7XHJcbiAgZGVmYXVsdE5vdyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xyXG4gIGRpc2FibGVkVGltZSA9IGlucHV0PFhUaW1lUGlja2VyRGlzYWJsZWRUaW1lPigpO1xyXG4gIGRpc2FibGVkVGltZVBhcmFtID0gaW5wdXQ8YW55PigpO1xyXG4gIG5vZGVFbWl0ID0gb3V0cHV0PERhdGU+KCk7XHJcbiAgaG91clJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2hvdXJSZWYnKTtcclxuICBtaW51dGVSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdtaW51dGVSZWYnKTtcclxuICBzZWNvbmRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdzZWNvbmRSZWYnKTtcclxuICB1c2UxMkhvdXJzUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigndXNlMTJIb3Vyc1JlZicpO1xyXG4gIG1vZGVsID0gc2lnbmFsPERhdGUgfCBudWxsPihudWxsKTtcclxuICBob3VyID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIG1pbnV0ZSA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcclxuICBzZWNvbmQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgdXNlMTJIb3VyID0gc2lnbmFsKCdhbScpO1xyXG4gIHNjcm9sbEFuaW1hdGluZyA9IHNpZ25hbDx7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfT4oe30pO1xyXG4gIGhvdXJEYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgbGV0IGxlbmd0aCA9IHRoaXMudXNlMTJIb3VycygpID8gMTIgOiAyNDtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiBNYXRoLmNlaWwobGVuZ3RoIC8gdGhpcy5ob3VyU3RlcCgpKSB9KS5tYXAoKF8sIGkpID0+IHtcclxuICAgICAgaWYgKHRoaXMudXNlMTJIb3VycygpICYmIGkgPT09IDApIHtcclxuICAgICAgICBpID0gMTI7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGRpc2FibGVkOiB0aGlzLnNldERpc2FibGVkKCdob3VycycsIGkpLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJlZml4WmVybyhpLCAyKSxcclxuICAgICAgICAgIGlkOiBpXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBudW0gPSBpICogdGhpcy5ob3VyU3RlcCgpO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5zZXREaXNhYmxlZCgnaG91cnMnLCBudW0pLFxyXG4gICAgICAgICAgbGFiZWw6IHRoaXMucHJlZml4WmVybyhudW0sIDIpLFxyXG4gICAgICAgICAgaWQ6IG51bVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0pO1xyXG4gIG1pbnV0ZURhdGEgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogTWF0aC5jZWlsKDYwIC8gdGhpcy5taW51dGVTdGVwKCkpIH0pLm1hcCgoXywgaSkgPT4ge1xyXG4gICAgICBjb25zdCBudW0gPSBpICogdGhpcy5taW51dGVTdGVwKCk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRoaXMuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBudW0pLFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLnByZWZpeFplcm8obnVtLCAyKSxcclxuICAgICAgICBpZDogbnVtXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9KTtcclxuICBzZWNvbmREYXRhID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IE1hdGguY2VpbCg2MCAvIHRoaXMuc2Vjb25kU3RlcCgpKSB9KS5tYXAoKF8sIGkpID0+IHtcclxuICAgICAgY29uc3QgbnVtOiBudW1iZXIgPSBpICogdGhpcy5zZWNvbmRTdGVwKCk7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgZGlzYWJsZWQ6IHRoaXMuc2V0RGlzYWJsZWQoJ3NlY29uZHMnLCBudW0pLFxyXG4gICAgICAgIGxhYmVsOiB0aGlzLnByZWZpeFplcm8obnVtLCAyKSxcclxuICAgICAgICBpZDogbnVtXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9KTtcclxuICB1c2UxMkhvdXJzRGF0YSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogJ2FtJyxcclxuICAgICAgICBsYWJlbDogdGhpcy5sb2NhbGUoKS5hbVxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6ICdwbScsXHJcbiAgICAgICAgbGFiZWw6IHRoaXMubG9jYWxlKCkucG1cclxuICAgICAgfVxyXG4gICAgXTtcclxuICB9KTtcclxuICBsb2NhbGUgPSB0b1NpZ25hbCh0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlLnBpcGUobWFwKCh4KSA9PiB4LnRpbWVQaWNrZXIgYXMgWEkxOG5UaW1lUGlja2VyKSksIHtcclxuICAgIGluaXRpYWxWYWx1ZTogemhfQ04udGltZVBpY2tlclxyXG4gIH0pO1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHZhbHVlIH0gPSBjaGFuZ2VzO1xyXG4gICAgaWYgKFhJc0NoYW5nZSh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZCh0eXBlOiAnaG91cnMnIHwgJ21pbnV0ZXMnIHwgJ3NlY29uZHMnLCBudW06IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWRUaW1lKCkgJiYgWElzRnVuY3Rpb24odGhpcy5kaXNhYmxlZFRpbWUoKSkpIHtcclxuICAgICAgY29uc3QgZGlzYWJsZWRNYXAgPSB0aGlzLmRpc2FibGVkVGltZSgpISh0aGlzLmRpc2FibGVkVGltZVBhcmFtKCkhKTtcclxuICAgICAgY29uc3QgeyBkaXNhYmxlZEhvdXJzLCBkaXNhYmxlZE1pbnV0ZXMsIGRpc2FibGVkU2Vjb25kcyB9ID0gZGlzYWJsZWRNYXA7XHJcbiAgICAgIGxldCBkaXNhYmxlZE51bXM6IG51bWJlcltdID0gW107XHJcbiAgICAgIGlmICh0eXBlID09PSAnaG91cnMnKSB7XHJcbiAgICAgICAgZGlzYWJsZWROdW1zID0gZGlzYWJsZWRIb3VycyA/IGRpc2FibGVkSG91cnMoKSA6IFtdO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdtaW51dGVzJykge1xyXG4gICAgICAgIGRpc2FibGVkTnVtcyA9IGRpc2FibGVkTWludXRlcyA/IGRpc2FibGVkTWludXRlcygpIDogW107XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3NlY29uZHMnKSB7XHJcbiAgICAgICAgZGlzYWJsZWROdW1zID0gZGlzYWJsZWRTZWNvbmRzID8gZGlzYWJsZWRTZWNvbmRzKCkgOiBbXTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZGlzYWJsZWROdW1zLmluY2x1ZGVzKG51bSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKCkpKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc2V0KG5ldyBEYXRlKHRoaXMudmFsdWUoKSEpKTtcclxuICAgICAgdGhpcy5zZXRUaW1lKHRoaXMubW9kZWwoKSEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGVmYXVsdE5vdygpKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5zZXQodGhpcy5zZXROb3coKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ob3VyLnNldChudWxsKTtcclxuICAgICAgICB0aGlzLm1pbnV0ZS5zZXQobnVsbCk7XHJcbiAgICAgICAgdGhpcy5zZWNvbmQuc2V0KG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXROb3coKSB7XHJcbiAgICBjb25zdCBkZWYgPSBuZXcgRGF0ZSgnMTk3MC0wMS0wMScpO1xyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZShcclxuICAgICAgZGVmLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIGRlZi5nZXRNb250aCgpLFxyXG4gICAgICBkZWYuZ2V0RGF0ZSgpLFxyXG4gICAgICBub3cuZ2V0SG91cnMoKSxcclxuICAgICAgbm93LmdldE1pbnV0ZXMoKSxcclxuICAgICAgbm93LmdldFNlY29uZHMoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldFplcm8oKSB7XHJcbiAgICBjb25zdCBkZWYgPSBuZXcgRGF0ZSgnMTk3MC0wMS0wMScpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKGRlZi5nZXRGdWxsWWVhcigpLCBkZWYuZ2V0TW9udGgoKSwgZGVmLmdldERhdGUoKSwgMCwgMCwgMCk7XHJcbiAgfVxyXG5cclxuICBzZXRUaW1lKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLnVzZTEySG91cnMoKSkge1xyXG4gICAgICBsZXQgaG91ciA9IGRhdGUuZ2V0SG91cnMoKTtcclxuICAgICAgaWYgKGhvdXIgPiAxMikge1xyXG4gICAgICAgIHRoaXMuaG91ci5zZXQoaG91ciAtIDEyKTtcclxuICAgICAgICB0aGlzLnVzZTEySG91ci5zZXQoJ3BtJyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaG91ciA9PT0gMTIpIHtcclxuICAgICAgICB0aGlzLmhvdXIuc2V0KDEyKTtcclxuICAgICAgICB0aGlzLnVzZTEySG91ci5zZXQoJ3BtJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ob3VyLnNldChob3VyID09PSAwID8gMTIgOiBob3VyKTtcclxuICAgICAgICB0aGlzLnVzZTEySG91ci5zZXQoJ2FtJyk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaG91ci5zZXQoZGF0ZS5nZXRIb3VycygpKTtcclxuICAgIH1cclxuICAgIHRoaXMubWludXRlLnNldChkYXRlLmdldE1pbnV0ZXMoKSk7XHJcbiAgICB0aGlzLnNlY29uZC5zZXQoZGF0ZS5nZXRTZWNvbmRzKCkpO1xyXG4gIH1cclxuXHJcbiAgcHJlZml4WmVybyhudW06IG51bWJlciwgbjogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKEFycmF5KG4pLmpvaW4oJzAnKSArIG51bSkuc2xpY2UoLW4pO1xyXG4gIH1cclxuXHJcbiAgc2V0U2Nyb2xsVG9wKGFuaW1hdGluZyA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkKCdob3VyJywgdGhpcy5ob3VyUmVmKCkubmF0aXZlRWxlbWVudCwgdGhpcy5ob3VyKCkhLCBhbmltYXRpbmcpO1xyXG4gICAgdGhpcy5zZWxlY3RlZCgnbWludXRlJywgdGhpcy5taW51dGVSZWYoKT8ubmF0aXZlRWxlbWVudCwgdGhpcy5taW51dGUoKSEsIGFuaW1hdGluZyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkKCdzZWNvbmQnLCB0aGlzLnNlY29uZFJlZigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLnNlY29uZCgpISwgYW5pbWF0aW5nKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQoJ3VzZTEySG91cicsIHRoaXMudXNlMTJIb3Vyc1JlZigpPy5uYXRpdmVFbGVtZW50LCB0aGlzLnVzZTEySG91cigpLCBhbmltYXRpbmcpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWQoXHJcbiAgICB0eXBlOiAnaG91cicgfCAnbWludXRlJyB8ICdzZWNvbmQnIHwgJ3VzZTEySG91cicsXHJcbiAgICBlbGU/OiBIVE1MRWxlbWVudCxcclxuICAgIG51bT86IG51bWJlciB8IHN0cmluZyxcclxuICAgIGFuaW1hdGluZyA9IGZhbHNlXHJcbiAgKSB7XHJcbiAgICBpZiAoIWVsZSB8fCBYSXNOdWxsKG51bSkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnNjcm9sbEFuaW1hdGluZygpW2VsZS5jbGFzc05hbWVdKSByZXR1cm47XHJcbiAgICBsZXQgbGVuID0gTnVtYmVyKG51bSk7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnaG91cic6XHJcbiAgICAgICAgbGVuID0gdGhpcy5ob3VyRGF0YSgpLmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gbnVtKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbWludXRlJzpcclxuICAgICAgICBsZW4gPSB0aGlzLm1pbnV0ZURhdGEoKS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IG51bSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3NlY29uZCc6XHJcbiAgICAgICAgbGVuID0gdGhpcy5zZWNvbmREYXRhKCkuZmluZEluZGV4KCh4KSA9PiB4LmlkID09PSBudW0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd1c2UxMkhvdXInOlxyXG4gICAgICAgIGxlbiA9IHRoaXMudXNlMTJIb3Vyc0RhdGEoKS5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IG51bSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjdXJyZW50ID0gZWxlLnF1ZXJ5U2VsZWN0b3IoYC54LWxpc3QgeC1saXN0LW9wdGlvbjpudGgtY2hpbGQoJHtsZW4gKyAxfSlgKSBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmIChjdXJyZW50KSB7XHJcbiAgICAgIGlmIChhbmltYXRpbmcpIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvKGVsZSwgY3VycmVudC5vZmZzZXRUb3AgLSA0LCAxMjApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGVsZS5zY3JvbGxUb3AgPSBjdXJyZW50Lm9mZnNldFRvcCAtIDQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzTGFzdEl0ZW0oZGF0YTogWElkZW50aXR5W10sIGl0ZW06IFhJZGVudGl0eSkge1xyXG4gICAgcmV0dXJuIGRhdGEuaW5kZXhPZihpdGVtKSA9PT0gZGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuXHJcbiAgaXRlbUNsaWNrKHR5cGU6ICdob3VyJyB8ICdtaW51dGUnIHwgJ3NlY29uZCcgfCAndXNlMTJIb3VycycpIHtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLm1vZGVsKCkpKSB7XHJcbiAgICAgIHRoaXMubW9kZWwuc2V0KHRoaXMuc2V0WmVybygpKTtcclxuICAgIH1cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdtaW51dGUnOlxyXG4gICAgICAgIHRoaXMubW9kZWwudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICB4IS5zZXRNaW51dGVzKHRoaXMubWludXRlKCkhKTtcclxuICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzZWNvbmQnOlxyXG4gICAgICAgIHRoaXMubW9kZWwudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICB4IS5zZXRTZWNvbmRzKHRoaXMuc2Vjb25kKCkhKTtcclxuICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdob3VyJzpcclxuICAgICAgICBpZiAodGhpcy51c2UxMkhvdXJzKCkpIHtcclxuICAgICAgICAgIGlmICh0aGlzLnVzZTEySG91cigpID09PSAncG0nICYmIHRoaXMuaG91cigpICE9PSAxMikge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIHghLnNldEhvdXJzKHRoaXMuaG91cigpISArIDEyKTtcclxuICAgICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMudXNlMTJIb3VyKCkgPT09ICdhbScgJiYgdGhpcy5ob3VyKCkgPT09IDEyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgeCEuc2V0SG91cnMoMCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgICB4IS5zZXRIb3Vycyh0aGlzLmhvdXIoKSEpO1xyXG4gICAgICAgICAgICAgIHJldHVybiB4O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgeCEuc2V0SG91cnModGhpcy5ob3VyKCkhKTtcclxuICAgICAgICAgICAgcmV0dXJuIHg7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3VzZTEySG91cnMnOlxyXG4gICAgICAgIGlmICh0aGlzLnVzZTEySG91cigpID09PSAncG0nICYmIHRoaXMuaG91cigpICE9PSAxMikge1xyXG4gICAgICAgICAgdGhpcy5tb2RlbC51cGRhdGUoKHgpID0+IHtcclxuICAgICAgICAgICAgeCEuc2V0SG91cnModGhpcy5ob3VyKCkhICsgMTIpO1xyXG4gICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy51c2UxMkhvdXIoKSA9PT0gJ2FtJyAmJiB0aGlzLmhvdXIoKSA9PT0gMTIpIHtcclxuICAgICAgICAgIHRoaXMubW9kZWwudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIHghLnNldEhvdXJzKDApO1xyXG4gICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICB4IS5zZXRIb3Vycyh0aGlzLmhvdXIoKSEpO1xyXG4gICAgICAgICAgICByZXR1cm4geDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U2Nyb2xsVG9wKHRydWUpO1xyXG4gICAgdGhpcy5ub2RlRW1pdC5lbWl0KHRoaXMubW9kZWwoKSEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUbyhlbGVtZW50OiBIVE1MRWxlbWVudCwgdG86IG51bWJlciwgZHVyYXRpb246IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgY2xzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lO1xyXG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHRvIC0gZWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICBjb25zdCBwZXJUaWNrID0gKGRpZmZlcmVuY2UgLyBkdXJhdGlvbikgKiAxMDtcclxuICAgIHRoaXMuc2Nyb2xsQW5pbWF0aW5nLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICB4W2Nsc05hbWVdID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgfSk7XHJcbiAgICBYUmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgY29uc3QgbnVtID0gZWxlbWVudC5zY3JvbGxUb3AgKyBwZXJUaWNrO1xyXG4gICAgICBpZiAoWElzTnVtYmVyKG51bSkgJiYgbnVtICE9PSBJbmZpbml0eSkge1xyXG4gICAgICAgIGVsZW1lbnQuc2Nyb2xsVG9wID0gbnVtO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbGVtZW50LnNjcm9sbFRvcCA9PT0gdG8gfHwgZHVyYXRpb24gPD0gMCkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsQW5pbWF0aW5nLnVwZGF0ZSgoeCkgPT4ge1xyXG4gICAgICAgICAgeFtjbHNOYW1lXSA9IGZhbHNlO1xyXG4gICAgICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvKGVsZW1lbnQsIHRvLCBkdXJhdGlvbiAtIDEwKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLWZyYW1lXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtdGltZS1waWNrZXItZnJhbWUtaG91clwiICNob3VyUmVmPlxyXG4gICAgPHgtbGlzdCBbZGF0YV09XCJob3VyRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJob3VyXCIgKG5vZGVDbGljayk9XCJpdGVtQ2xpY2soJ2hvdXInKVwiPjwveC1saXN0PlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAodHlwZSgpICE9PSAnaG91cicpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLWZyYW1lLW1pbnV0ZVwiICNtaW51dGVSZWY+XHJcbiAgICAgIDx4LWxpc3QgW2RhdGFdPVwibWludXRlRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJtaW51dGVcIiAobm9kZUNsaWNrKT1cIml0ZW1DbGljaygnbWludXRlJylcIj48L3gtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKHR5cGUoKSA9PT0gJ3RpbWUnKSB7XHJcbiAgICA8ZGl2IGNsYXNzPVwieC10aW1lLXBpY2tlci1mcmFtZS1zZWNvbmRcIiAjc2Vjb25kUmVmPlxyXG4gICAgICA8eC1saXN0IFtkYXRhXT1cInNlY29uZERhdGEoKVwiIFsobmdNb2RlbCldPVwic2Vjb25kXCIgKG5vZGVDbGljayk9XCJpdGVtQ2xpY2soJ3NlY29uZCcpXCI+PC94LWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbiAgQGlmICh1c2UxMkhvdXJzKCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LXRpbWUtcGlja2VyLWZyYW1lLXVzZTEySG91cnNcIiAjdXNlMTJIb3Vyc1JlZj5cclxuICAgICAgPHgtbGlzdCBbZGF0YV09XCJ1c2UxMkhvdXJzRGF0YSgpXCIgWyhuZ01vZGVsKV09XCJ1c2UxMkhvdXJcIiAobm9kZUNsaWNrKT1cIml0ZW1DbGljaygndXNlMTJIb3VycycpXCI+PC94LWxpc3Q+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|