@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,6 +1,6 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy,
|
|
1
|
+
import { Component, ViewEncapsulation, Renderer2, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy, computed, signal, viewChild, inject, viewChildren } from '@angular/core';
|
|
2
2
|
import { XTablePrefix, XTableProperty } from './table.property';
|
|
3
|
-
import { XIsChange, XIsEmpty, XIsUndefined } from '@ng-nest/ui/core';
|
|
3
|
+
import { XIsChange, XIsEmpty, XIsUndefined, XIsArray } from '@ng-nest/ui/core';
|
|
4
4
|
import { XPaginationComponent } from '@ng-nest/ui/pagination';
|
|
5
5
|
import { takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { Subject } from 'rxjs';
|
|
@@ -11,74 +11,119 @@ import { XTableFootComponent } from './table-foot.component';
|
|
|
11
11
|
import { XTableBodyComponent } from './table-body.component';
|
|
12
12
|
import { XOutletDirective } from '@ng-nest/ui/outlet';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@ng-nest/ui/core";
|
|
15
14
|
export class XTableComponent extends XTableProperty {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return this.tcaption ? this.tcaption.nativeElement.offsetHeight : 0;
|
|
27
|
-
}
|
|
28
|
-
get getStickyBottomScrollTop() {
|
|
29
|
-
let top = 0;
|
|
30
|
-
if (this.footer && this.tfoot) {
|
|
31
|
-
top += this.tfoot?.nativeElement.clientHeight + 1;
|
|
32
|
-
}
|
|
33
|
-
return top;
|
|
34
|
-
}
|
|
35
|
-
get getStickyTopRightEleHeight() {
|
|
36
|
-
if (this.stickyTopRightEle) {
|
|
37
|
-
return this.stickyTopRightEle.nativeElement.offsetHeight;
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return 0;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
get getStickyBottomRightEleHeight() {
|
|
44
|
-
if (this.stickyBottomRightEle) {
|
|
45
|
-
return this.stickyBottomRightEle.nativeElement.offsetHeight;
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
return 0;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
constructor(renderer, elementRef, cdr, configService) {
|
|
52
|
-
super();
|
|
53
|
-
this.renderer = renderer;
|
|
54
|
-
this.elementRef = elementRef;
|
|
55
|
-
this.cdr = cdr;
|
|
56
|
-
this.configService = configService;
|
|
57
|
-
this.theads = [];
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.renderer = inject(Renderer2);
|
|
18
|
+
this.elementRef = inject((ElementRef));
|
|
19
|
+
this.cdr = inject(ChangeDetectorRef);
|
|
20
|
+
this.unSubject = new Subject();
|
|
21
|
+
this.classMap = computed(() => ({ [`${XTablePrefix}-row-size-${this.rowSize()}`]: !XIsEmpty(this.rowSize()) }));
|
|
22
|
+
this.theads = signal([]);
|
|
23
|
+
this.tfoot = signal(null);
|
|
24
|
+
this.virtualBody = signal(null);
|
|
58
25
|
this.theadsChange = [];
|
|
59
|
-
this.
|
|
60
|
-
this.
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.
|
|
65
|
-
this.
|
|
66
|
-
this.
|
|
67
|
-
this.
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
this.
|
|
71
|
-
this.
|
|
72
|
-
this.
|
|
26
|
+
this.scrollContentEle = signal(null);
|
|
27
|
+
this.hasScrollY = signal(false);
|
|
28
|
+
this.scrollYWidth = signal(0);
|
|
29
|
+
this.hasScrollX = signal(false);
|
|
30
|
+
this.scrollXHeight = signal(0);
|
|
31
|
+
this.scrollXWidth = signal(null);
|
|
32
|
+
this.scrollLeft = signal(0);
|
|
33
|
+
this.scrollLeftMax = signal(false);
|
|
34
|
+
this.scrollTop = signal(0);
|
|
35
|
+
this.rowChecked = signal(null);
|
|
36
|
+
this.headCheckboxList = signal([]);
|
|
37
|
+
this.rowExpand = signal(null);
|
|
38
|
+
this.headExpandList = signal([]);
|
|
39
|
+
this.dataIsFunc = signal(false);
|
|
40
|
+
this.getting = signal(false);
|
|
41
|
+
this.tableData = signal([]);
|
|
42
|
+
this.treeTableData = signal([]);
|
|
43
|
+
this.checkedValues = signal({});
|
|
44
|
+
this.indeterminate = signal('$$indeterminate');
|
|
45
|
+
this.table = viewChild.required('table');
|
|
46
|
+
this.caption = viewChild('caption');
|
|
47
|
+
this.pagination = viewChild('pagination');
|
|
48
|
+
this.stickyTopRightEle = viewChild('stickyTopRightEle');
|
|
49
|
+
this.stickyBottomRightEle = viewChild('stickyBottomRightEle');
|
|
50
|
+
this.headCom = viewChildren(XTableHeadComponent);
|
|
51
|
+
this.bodyCom = viewChildren(XTableBodyComponent);
|
|
52
|
+
this.footCom = viewChild(XTableFootComponent);
|
|
53
|
+
this.getScrollLeft = computed(() => this.scrollLeft() > 0);
|
|
54
|
+
this.getScrollTop = computed(() => this.scrollTop() > 0);
|
|
55
|
+
this.getRowHeight = computed(() => (this.rowHeight() === 0 ? '' : this.rowHeight()));
|
|
56
|
+
this.getStickyTopScrollTop = computed(() => (this.caption() ? this.caption().nativeElement.offsetHeight : 0));
|
|
57
|
+
this.getStickyBottomScrollTop = computed(() => {
|
|
58
|
+
let top = 0;
|
|
59
|
+
if (this.footer() && this.tfoot()) {
|
|
60
|
+
top += this.tfoot().nativeElement.clientHeight + 1;
|
|
61
|
+
}
|
|
62
|
+
return top;
|
|
63
|
+
});
|
|
64
|
+
this.getStickyTopRightEleHeight = computed(() => {
|
|
65
|
+
if (this.stickyTopRightEle()) {
|
|
66
|
+
return this.stickyTopRightEle().nativeElement.offsetHeight;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return 0;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
this.getStickyBottomRightEleHeight = computed(() => {
|
|
73
|
+
if (this.stickyBottomRightEle()) {
|
|
74
|
+
return this.stickyBottomRightEle().nativeElement.offsetHeight;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return 0;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
this.hasStickyTopRight = computed(() => this.showHeader() &&
|
|
81
|
+
(this.headerPosition() === 'top' || this.headerPosition() === 'top-bottom') &&
|
|
82
|
+
this.columns().some((x) => Number(x.right) >= 0));
|
|
83
|
+
this.hasStickyTopRightSearch = computed(() => !!this.headSearchTpl());
|
|
84
|
+
this.hasStickyBottomRight = computed(() => this.showHeader() &&
|
|
85
|
+
(this.headerPosition() === 'bottom' || this.headerPosition() === 'top-bottom') &&
|
|
86
|
+
this.columns().some((x) => Number(x.right) >= 0));
|
|
87
|
+
this.cellConfigSignal = computed(() => {
|
|
88
|
+
const cellConfig = this.cellConfig();
|
|
89
|
+
if (!cellConfig)
|
|
90
|
+
return;
|
|
91
|
+
const setRule = (rule) => {
|
|
92
|
+
if (!rule)
|
|
93
|
+
return;
|
|
94
|
+
let gridTemplateColumns = '', cells = [];
|
|
95
|
+
if (!rule.gridTemplateColumns) {
|
|
96
|
+
gridTemplateColumns = `${this.columns()
|
|
97
|
+
.map((x) => {
|
|
98
|
+
if (x.width)
|
|
99
|
+
return x.width;
|
|
100
|
+
if (x.flex)
|
|
101
|
+
return `${x.flex}fr`;
|
|
102
|
+
return '1fr';
|
|
103
|
+
})
|
|
104
|
+
.join(' ')}`;
|
|
105
|
+
}
|
|
106
|
+
if (!rule.cells)
|
|
107
|
+
return;
|
|
108
|
+
cells = rule.cells.map((y) => {
|
|
109
|
+
const col = this.columns().find((z) => z.id === y.id);
|
|
110
|
+
if (col) {
|
|
111
|
+
return { ...col, ...y };
|
|
112
|
+
}
|
|
113
|
+
return y;
|
|
114
|
+
});
|
|
115
|
+
return { gridTemplateColumns, cells };
|
|
116
|
+
};
|
|
117
|
+
return { thead: setRule(cellConfig.thead), tbody: setRule(cellConfig.tbody) };
|
|
118
|
+
});
|
|
73
119
|
}
|
|
74
120
|
ngOnInit() {
|
|
75
|
-
this.setClassMap();
|
|
76
121
|
this.setRowChecked();
|
|
77
122
|
this.setRowExpand();
|
|
78
123
|
this.setPaginationPosition();
|
|
79
124
|
}
|
|
80
125
|
ngOnChanges(simples) {
|
|
81
|
-
const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll
|
|
126
|
+
const { data, checkedRow, columns, activatedRow, manual, showPagination, expandedAll } = simples;
|
|
82
127
|
XIsChange(expandedAll) && this.setExpandedAll();
|
|
83
128
|
XIsChange(data, checkedRow) && this.setData();
|
|
84
129
|
if (XIsChange(columns)) {
|
|
@@ -87,23 +132,13 @@ export class XTableComponent extends XTableProperty {
|
|
|
87
132
|
}
|
|
88
133
|
XIsChange(columns, activatedRow, showPagination) && this.cdr.detectChanges();
|
|
89
134
|
XIsChange(manual) && this.setManual();
|
|
90
|
-
XIsChange(cellConfig) && this.setMerge();
|
|
91
135
|
}
|
|
92
136
|
ngOnDestroy() {
|
|
93
|
-
this.
|
|
94
|
-
this.
|
|
95
|
-
}
|
|
96
|
-
ngAfterViewInit() {
|
|
97
|
-
this.tcaption = this.caption;
|
|
98
|
-
}
|
|
99
|
-
setClassMap() {
|
|
100
|
-
this.classMap = {
|
|
101
|
-
[`${XTablePrefix}-row-size-${this.rowSize}`]: !XIsEmpty(this.rowSize)
|
|
102
|
-
};
|
|
103
|
-
this.cdr.detectChanges();
|
|
137
|
+
this.unSubject.next();
|
|
138
|
+
this.unSubject.complete();
|
|
104
139
|
}
|
|
105
140
|
setPaginationPosition() {
|
|
106
|
-
this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition}`);
|
|
141
|
+
this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition()}`);
|
|
107
142
|
}
|
|
108
143
|
getSticky(column) {
|
|
109
144
|
return this.getStickyLeft(column) || this.getStickyRight(column);
|
|
@@ -112,7 +147,7 @@ export class XTableComponent extends XTableProperty {
|
|
|
112
147
|
return Number(column.left) >= 0;
|
|
113
148
|
}
|
|
114
149
|
getStickyLeftLast(column) {
|
|
115
|
-
let lefts = this.columns.filter((x) => Number(x.left) >= 0);
|
|
150
|
+
let lefts = this.columns().filter((x) => Number(x.left) >= 0);
|
|
116
151
|
if (lefts.length === 0)
|
|
117
152
|
return false;
|
|
118
153
|
return lefts[lefts.length - 1].id === column.id;
|
|
@@ -121,144 +156,89 @@ export class XTableComponent extends XTableProperty {
|
|
|
121
156
|
return Number(column.right) >= 0;
|
|
122
157
|
}
|
|
123
158
|
getStickyRightFirst(column) {
|
|
124
|
-
let rights = this.columns.filter((x) => Number(x.right) >= 0);
|
|
159
|
+
let rights = this.columns().filter((x) => Number(x.right) >= 0);
|
|
125
160
|
if (rights.length === 0)
|
|
126
161
|
return false;
|
|
127
162
|
return rights[0].id === column.id;
|
|
128
163
|
}
|
|
129
|
-
hasStickyTopRight() {
|
|
130
|
-
return (this.showHeader &&
|
|
131
|
-
(this.headerPosition === 'top' || this.headerPosition === 'top-bottom') &&
|
|
132
|
-
this.columns.some((x) => Number(x.right) >= 0));
|
|
133
|
-
}
|
|
134
|
-
hasStickyTopRightSearch() {
|
|
135
|
-
return this.headSearchTpl ? true : false;
|
|
136
|
-
}
|
|
137
|
-
hasStickyBottomRight() {
|
|
138
|
-
return (this.showHeader &&
|
|
139
|
-
(this.headerPosition === 'bottom' || this.headerPosition === 'top-bottom') &&
|
|
140
|
-
this.columns.some((x) => Number(x.right) >= 0));
|
|
141
|
-
}
|
|
142
164
|
getIndex(index) {
|
|
143
|
-
return (
|
|
165
|
+
return (this.index() - 1) * this.size() + index + 1;
|
|
144
166
|
}
|
|
145
167
|
setData() {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
this.
|
|
149
|
-
this.
|
|
150
|
-
this.
|
|
151
|
-
this.
|
|
152
|
-
this.
|
|
168
|
+
const data = this.data();
|
|
169
|
+
if (XIsArray(data)) {
|
|
170
|
+
this.dataIsFunc.set(false);
|
|
171
|
+
this.tableData.set(data);
|
|
172
|
+
this.setChecked(data);
|
|
173
|
+
this.setHeadCheckboxList(data);
|
|
174
|
+
this.setExpand(data);
|
|
153
175
|
this.detectChanges();
|
|
154
176
|
}
|
|
155
|
-
else if (
|
|
156
|
-
this.dataIsFunc
|
|
177
|
+
else if (data instanceof Function) {
|
|
178
|
+
this.dataIsFunc.set(true);
|
|
157
179
|
this.getDataByFunc();
|
|
158
180
|
}
|
|
159
181
|
}
|
|
160
182
|
getDataByFunc() {
|
|
161
|
-
if (!this.manual)
|
|
183
|
+
if (!this.manual())
|
|
162
184
|
return;
|
|
163
|
-
this.getting
|
|
164
|
-
this.
|
|
165
|
-
this.
|
|
166
|
-
|
|
167
|
-
.pipe(takeUntil(this._unSubject))
|
|
185
|
+
this.getting.set(true);
|
|
186
|
+
this.unSubject.next();
|
|
187
|
+
this.data()(this.index(), this.size(), this.query())
|
|
188
|
+
.pipe(takeUntil(this.unSubject))
|
|
168
189
|
.subscribe((x) => {
|
|
169
190
|
let [data, total] = [x.list, x.total];
|
|
170
|
-
if (this.virtualBody) {
|
|
171
|
-
this.virtualBody.scrollToIndex(0);
|
|
172
|
-
this.virtualBody.checkViewportSize();
|
|
191
|
+
if (this.virtualBody()) {
|
|
192
|
+
this.virtualBody().scrollToIndex(0);
|
|
193
|
+
this.virtualBody().checkViewportSize();
|
|
173
194
|
}
|
|
174
|
-
this.getting
|
|
175
|
-
this.tableData
|
|
195
|
+
this.getting.set(false);
|
|
196
|
+
this.tableData.set(data);
|
|
176
197
|
this.setChecked(data);
|
|
177
198
|
this.setHeadCheckboxList(data);
|
|
178
199
|
this.setExpand(data);
|
|
179
|
-
this.
|
|
180
|
-
this.total = total;
|
|
181
|
-
this.detectChanges();
|
|
200
|
+
this.total.set(total);
|
|
182
201
|
});
|
|
183
202
|
}
|
|
184
203
|
setManual() {
|
|
185
|
-
if (this.dataIsFunc)
|
|
204
|
+
if (this.dataIsFunc())
|
|
186
205
|
this.getDataByFunc();
|
|
187
206
|
}
|
|
188
207
|
setRowChecked() {
|
|
189
|
-
this.rowChecked
|
|
190
|
-
this.headCheckboxList
|
|
208
|
+
this.rowChecked.set(this.columns().find((x) => x.rowChecked));
|
|
209
|
+
this.headCheckboxList.set(this.columns().filter((x) => x.type === 'checkbox' && x.headChecked));
|
|
191
210
|
}
|
|
192
211
|
setRowExpand() {
|
|
193
|
-
this.rowExpand
|
|
212
|
+
this.rowExpand.set(this.columns().find((x) => x.rowExpand));
|
|
194
213
|
}
|
|
195
214
|
isExpandColumn(column) {
|
|
196
|
-
let expandColumn = this.columns.find((x) => x.id === column.id && x.type === 'expand');
|
|
215
|
+
let expandColumn = this.columns().find((x) => x.id === column.id && x.type === 'expand');
|
|
197
216
|
if (expandColumn) {
|
|
198
217
|
return true;
|
|
199
218
|
}
|
|
200
219
|
return false;
|
|
201
220
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
return;
|
|
205
|
-
const setRule = (rule) => {
|
|
206
|
-
if (!rule)
|
|
207
|
-
return;
|
|
208
|
-
let gridTemplateColumns = '', cells = [];
|
|
209
|
-
if (!rule.gridTemplateColumns) {
|
|
210
|
-
gridTemplateColumns = `${this.columns
|
|
211
|
-
.map((x) => {
|
|
212
|
-
if (x.width)
|
|
213
|
-
return x.width;
|
|
214
|
-
if (x.flex)
|
|
215
|
-
return `${x.flex}fr`;
|
|
216
|
-
return '1fr';
|
|
217
|
-
})
|
|
218
|
-
.join(' ')}`;
|
|
219
|
-
}
|
|
220
|
-
if (!rule.cells)
|
|
221
|
-
return;
|
|
222
|
-
cells = rule.cells.map((y) => {
|
|
223
|
-
const col = this.columns.find((z) => z.id === y.id);
|
|
224
|
-
if (col) {
|
|
225
|
-
return { ...col, ...y };
|
|
226
|
-
}
|
|
227
|
-
return y;
|
|
228
|
-
});
|
|
229
|
-
return { gridTemplateColumns, cells };
|
|
230
|
-
};
|
|
231
|
-
this.cellConfig.thead = setRule(this.cellConfig.thead);
|
|
232
|
-
this.cellConfig.tbody = setRule(this.cellConfig.tbody);
|
|
233
|
-
}
|
|
234
|
-
pageChange(type) {
|
|
235
|
-
this.dataIsFunc && this.getDataByFunc();
|
|
236
|
-
if (type === 'index') {
|
|
237
|
-
this.indexChange.emit(Number(this.index));
|
|
238
|
-
}
|
|
239
|
-
else if (type === 'size') {
|
|
240
|
-
this.sizeChange.emit(Number(this.size));
|
|
241
|
-
}
|
|
221
|
+
pageChange(_type) {
|
|
222
|
+
this.dataIsFunc() && this.getDataByFunc();
|
|
242
223
|
this.resetScroll();
|
|
243
224
|
}
|
|
244
225
|
change(index) {
|
|
245
|
-
this.index
|
|
246
|
-
this.dataIsFunc && this.getDataByFunc();
|
|
247
|
-
this.indexChange.emit(this.index);
|
|
226
|
+
this.index.set(index);
|
|
227
|
+
this.dataIsFunc() && this.getDataByFunc();
|
|
248
228
|
this.resetScroll();
|
|
249
229
|
}
|
|
250
230
|
resetScroll(x = true, y = true) {
|
|
251
|
-
if (this.hasScrollX && x)
|
|
252
|
-
this.virtualBody?.scrollTo({ left: 0 });
|
|
253
|
-
if (this.hasScrollY && y)
|
|
254
|
-
this.virtualBody?.scrollTo({ top: 0 });
|
|
231
|
+
if (this.hasScrollX() && x)
|
|
232
|
+
this.virtualBody()?.scrollTo({ left: 0 });
|
|
233
|
+
if (this.hasScrollY() && y)
|
|
234
|
+
this.virtualBody()?.scrollTo({ top: 0 });
|
|
255
235
|
}
|
|
256
236
|
setChecked(data) {
|
|
257
237
|
let result = [];
|
|
258
|
-
if (XIsEmpty(data) || !this.checkedRow)
|
|
238
|
+
if (XIsEmpty(data) || !this.checkedRow())
|
|
259
239
|
return;
|
|
260
|
-
for (let key in this.checkedRow) {
|
|
261
|
-
const arr = this.checkedRow[key];
|
|
240
|
+
for (let key in this.checkedRow()) {
|
|
241
|
+
const arr = this.checkedRow()[key];
|
|
262
242
|
for (let item of data) {
|
|
263
243
|
item[key] = arr.includes(item.id);
|
|
264
244
|
result = [...result, item];
|
|
@@ -268,17 +248,16 @@ export class XTableComponent extends XTableProperty {
|
|
|
268
248
|
data = [...result];
|
|
269
249
|
}
|
|
270
250
|
setHeadCheckboxList(data) {
|
|
271
|
-
if (XIsEmpty(data) || !this.headCheckboxList)
|
|
251
|
+
if (XIsEmpty(data) || !this.headCheckboxList())
|
|
272
252
|
return;
|
|
273
|
-
for (let column of this.headCheckboxList) {
|
|
253
|
+
for (let column of this.headCheckboxList()) {
|
|
274
254
|
this.setCheckedValues(column);
|
|
275
255
|
}
|
|
276
256
|
}
|
|
277
257
|
setExpand(data) {
|
|
278
258
|
const getChildren = (node, level) => {
|
|
279
259
|
node.level = level;
|
|
280
|
-
node.expanded =
|
|
281
|
-
Boolean(this.expandedAll) || level <= Number(this.expandedLevel) || this.expanded.includes(node.id);
|
|
260
|
+
node.expanded = this.expandedAll() || level <= this.expandedLevel() || this.expanded().includes(node.id);
|
|
282
261
|
if (XIsUndefined(node.children))
|
|
283
262
|
node.children = data.filter((y) => y.pid === node.id);
|
|
284
263
|
if (XIsUndefined(node.leaf))
|
|
@@ -287,16 +266,16 @@ export class XTableComponent extends XTableProperty {
|
|
|
287
266
|
node.children?.map((y) => getChildren(y, level + 1));
|
|
288
267
|
return node;
|
|
289
268
|
};
|
|
290
|
-
this.treeTableData
|
|
269
|
+
this.treeTableData.set(data
|
|
291
270
|
.filter((x) => XIsEmpty(x.pid))
|
|
292
271
|
.map((x, index) => {
|
|
293
272
|
if (XIsUndefined(x.id))
|
|
294
273
|
x.id = index + 1;
|
|
295
274
|
return getChildren(x, 0);
|
|
296
|
-
});
|
|
275
|
+
}));
|
|
297
276
|
}
|
|
298
277
|
setExpandedAll() {
|
|
299
|
-
if (!this.treeTable || this.treeTableData?.length === 0)
|
|
278
|
+
if (!this.treeTable() || this.treeTableData()?.length === 0)
|
|
300
279
|
return;
|
|
301
280
|
const setChildren = (nodes) => {
|
|
302
281
|
if (XIsEmpty(nodes))
|
|
@@ -306,57 +285,63 @@ export class XTableComponent extends XTableProperty {
|
|
|
306
285
|
setChildren(x.children);
|
|
307
286
|
});
|
|
308
287
|
};
|
|
309
|
-
|
|
310
|
-
|
|
288
|
+
this.treeTableData.update((x) => {
|
|
289
|
+
setChildren(x);
|
|
290
|
+
return [...x];
|
|
291
|
+
});
|
|
311
292
|
}
|
|
312
|
-
setHeadExpandList() { }
|
|
313
293
|
checkSort(sort) {
|
|
314
294
|
if (!this.dataIsFunc)
|
|
315
295
|
return;
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
296
|
+
let query = this.query();
|
|
297
|
+
if (typeof query === 'undefined')
|
|
298
|
+
query = {};
|
|
299
|
+
query.sort = sort;
|
|
300
|
+
this.query.set(query);
|
|
320
301
|
this.getDataByFunc();
|
|
321
302
|
}
|
|
322
303
|
headChecked(checked, column) {
|
|
323
|
-
this.tableData.
|
|
324
|
-
|
|
325
|
-
x
|
|
326
|
-
|
|
304
|
+
this.tableData.update((z) => {
|
|
305
|
+
z.forEach((x) => {
|
|
306
|
+
if (!x.disabled) {
|
|
307
|
+
x[column.id] = checked;
|
|
308
|
+
}
|
|
309
|
+
});
|
|
310
|
+
return [...z];
|
|
327
311
|
});
|
|
328
312
|
this.setCheckedValues(column);
|
|
329
|
-
this.headCheckboxChange.emit({ rows: this.tableData, checkbox: this.checkedValues });
|
|
313
|
+
this.headCheckboxChange.emit({ rows: this.tableData(), checkbox: this.checkedValues() });
|
|
330
314
|
this.detectChanges();
|
|
331
315
|
}
|
|
332
316
|
bodyChecked(_checked, column, row) {
|
|
333
317
|
this.setCheckedValues(column);
|
|
334
318
|
this.bodyCheckboxChange.emit(row);
|
|
335
|
-
this.detectChanges();
|
|
319
|
+
// this.detectChanges();
|
|
336
320
|
}
|
|
337
321
|
setCheckedValues(column) {
|
|
338
|
-
const notDisabled = this.tableData.filter((x) => !x.disabled);
|
|
322
|
+
const notDisabled = this.tableData().filter((x) => !x.disabled);
|
|
339
323
|
const count = notDisabled.length;
|
|
340
324
|
const checkedLen = notDisabled.filter((x) => x[column.id]).length;
|
|
341
|
-
this.checkedValues
|
|
342
|
-
|
|
325
|
+
this.checkedValues.update((x) => {
|
|
326
|
+
x[column.id] = count === checkedLen && count !== 0;
|
|
327
|
+
x[column.id + this.indeterminate()] = checkedLen > 0 && checkedLen < count;
|
|
328
|
+
return { ...x };
|
|
329
|
+
});
|
|
343
330
|
}
|
|
344
331
|
detectChanges() {
|
|
345
|
-
this.
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
}
|
|
354
|
-
}
|
|
332
|
+
this.headCom()?.forEach((x) => {
|
|
333
|
+
x.cdr.markForCheck();
|
|
334
|
+
});
|
|
335
|
+
this.bodyCom()?.forEach((x) => {
|
|
336
|
+
x.cdr.markForCheck();
|
|
337
|
+
});
|
|
338
|
+
this.footCom()?.cdr.markForCheck();
|
|
339
|
+
this.cdr.markForCheck();
|
|
355
340
|
}
|
|
356
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
357
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: XTableComponent, isStandalone: true, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n @if (header) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n @if (showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n }\r\n @if (footer) {\r\n <x-table-foot [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination && size) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n [showSize]=\"showSize\"\r\n [showJump]=\"showJump\"\r\n [jumpWidth]=\"jumpWidth\"\r\n [showInputSize]=\"showInputSize\"\r\n [inputSizeWidth]=\"inputSizeWidth\"\r\n [sizeData]=\"sizeData\"\r\n [sizeWidth]=\"sizeWidth\"\r\n [pageLinkSize]=\"pageLinkSize\"\r\n [disabled]=\"disabled\"\r\n [totalTpl]=\"totalTpl\"\r\n [simple]=\"simple\"\r\n [simpleIndexWidth]=\"simpleIndexWidth\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a400)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: XPaginationComponent, selector: "x-pagination" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
341
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
342
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: XTableComponent, isStandalone: true, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true, isSignal: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true, isSignal: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true, isSignal: true }, { propertyName: "stickyTopRightEle", first: true, predicate: ["stickyTopRightEle"], descendants: true, isSignal: true }, { propertyName: "stickyBottomRightEle", first: true, predicate: ["stickyBottomRightEle"], descendants: true, isSignal: true }, { propertyName: "headCom", predicate: XTableHeadComponent, descendants: true, isSignal: true }, { propertyName: "bodyCom", predicate: XTableBodyComponent, descendants: true, isSignal: true }, { propertyName: "footCom", first: true, predicate: XTableFootComponent, descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap()\"\r\n [x-loading]=\"loading() && getting()\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder()\"\r\n [class.x-table-scroll-left]=\"getScrollLeft()\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax()\"\r\n [class.x-table-scroll-top]=\"getScrollTop()\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth()\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth()\"\r\n [class.x-table-bordered]=\"bordered()\"\r\n [class.x-table-td-adaption-height]=\"rowHeight() == 0\"\r\n [class.x-table-cell-config]=\"!!cellConfigSignal()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable() ? treeTableData() : tableData()\"\r\n [columns]=\"columns()\"\r\n [itemSize]=\"itemSize()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [bodyHeight]=\"bodyHeight()!\"\r\n [columnTpl]=\"bodyColumnTpl()\"\r\n [allowSelectRow]=\"allowSelectRow()\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [minBufferPx]=\"minBufferPx()\"\r\n [maxBufferPx]=\"maxBufferPx()\"\r\n [adaptionHeight]=\"adaptionHeight()!\"\r\n [docPercent]=\"docPercent()\"\r\n [scroll]=\"scroll()\"\r\n [rowClass]=\"rowClass()\"\r\n [cellConfig]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.top.px]=\"getStickyTopScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop() + getStickyTopRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop() + getStickyBottomRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-left);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: XTableHeadComponent, selector: "x-table-head" }, { kind: "component", type: XTableFootComponent, selector: "x-table-foot" }, { kind: "component", type: XTableBodyComponent, selector: "x-table-body" }, { kind: "component", type: XPaginationComponent, selector: "x-pagination" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
358
343
|
}
|
|
359
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: XTableComponent, decorators: [{
|
|
360
345
|
type: Component,
|
|
361
346
|
args: [{ selector: `${XTablePrefix}`, standalone: true, imports: [
|
|
362
347
|
NgClass,
|
|
@@ -366,21 +351,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
366
351
|
XTableFootComponent,
|
|
367
352
|
XTableBodyComponent,
|
|
368
353
|
XPaginationComponent
|
|
369
|
-
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n @if (header) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader && (headerPosition === 'top' || headerPosition === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'top'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n @if (showHeader && (headerPosition === 'bottom' || headerPosition === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [position]=\"'bottom'\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n }\r\n @if (footer) {\r\n <x-table-foot [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.top.px]=\"getStickyTopScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop + getStickyTopRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop + getStickyBottomRightEleHeight\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination && size) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenPaginationBorder!\"\r\n [showSize]=\"showSize\"\r\n [showJump]=\"showJump\"\r\n [jumpWidth]=\"jumpWidth\"\r\n [showInputSize]=\"showInputSize\"\r\n [inputSizeWidth]=\"inputSizeWidth\"\r\n [sizeData]=\"sizeData\"\r\n [sizeWidth]=\"sizeWidth\"\r\n [pageLinkSize]=\"pageLinkSize\"\r\n [disabled]=\"disabled\"\r\n [totalTpl]=\"totalTpl\"\r\n [simple]=\"simple\"\r\n [simpleIndexWidth]=\"simpleIndexWidth\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a400)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;border-radius:var(--x-border-radius);background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
|
|
370
|
-
}]
|
|
371
|
-
type: ViewChild,
|
|
372
|
-
args: ['table']
|
|
373
|
-
}], caption: [{
|
|
374
|
-
type: ViewChild,
|
|
375
|
-
args: ['caption']
|
|
376
|
-
}], pagination: [{
|
|
377
|
-
type: ViewChild,
|
|
378
|
-
args: ['pagination']
|
|
379
|
-
}], stickyTopRightEle: [{
|
|
380
|
-
type: ViewChild,
|
|
381
|
-
args: ['stickyTopRightEle']
|
|
382
|
-
}], stickyBottomRightEle: [{
|
|
383
|
-
type: ViewChild,
|
|
384
|
-
args: ['stickyBottomRightEle']
|
|
385
|
-
}] } });
|
|
386
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsWUFBWSxFQUNaLGNBQWMsRUFLZixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUErQyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQW1CdEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUNqRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7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c0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFhUYWJsZVByZWZpeCxcclxuICBYVGFibGVQcm9wZXJ0eSxcclxuICBYVGFibGVDb2x1bW4sXHJcbiAgWFRhYmxlUm93LFxyXG4gIFhUYWJsZUNlbGwsXHJcbiAgWFRhYmxlQ2VsbENvbmZpZ1J1bGVcclxufSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYSXNFbXB0eSwgWFJlc3VsdExpc3QsIFhOdW1iZXIsIFhTb3J0LCBYQ29uZmlnU2VydmljZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3BhZ2luYXRpb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbG9hZGluZyc7XHJcbmltcG9ydCB7IFhUYWJsZUhlYWRDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWhlYWQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWFRhYmxlRm9vdENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtZm9vdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVGFibGVCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1ib2R5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hUYWJsZVByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIFhPdXRsZXREaXJlY3RpdmUsXHJcbiAgICBYTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIFhUYWJsZUhlYWRDb21wb25lbnQsXHJcbiAgICBYVGFibGVGb290Q29tcG9uZW50LFxyXG4gICAgWFRhYmxlQm9keUNvbXBvbmVudCxcclxuICAgIFhQYWdpbmF0aW9uQ29tcG9uZW50XHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgWFRhYmxlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IGdldFNjcm9sbExlZnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxMZWZ0ID4gMDtcclxuICB9XHJcbiAgZ2V0IGdldFNjcm9sbFRvcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbFRvcCA+IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIGdldCBnZXRTdGlja3lUb3BTY3JvbGxUb3AoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50Y2FwdGlvbiA/IHRoaXMudGNhcHRpb24ubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwO1xyXG4gIH1cclxuICBnZXQgZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wKCkge1xyXG4gICAgbGV0IHRvcCA9IDA7XHJcbiAgICBpZiAodGhpcy5mb290ZXIgJiYgdGhpcy50Zm9vdCkge1xyXG4gICAgICB0b3AgKz0gdGhpcy50Zm9vdD8ubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvcDtcclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreVRvcFJpZ2h0RWxlSGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RpY2t5VG9wUmlnaHRFbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5VG9wUmlnaHRFbGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGdldFN0aWNreUJvdHRvbVJpZ2h0RWxlSGVpZ2h0KCkge1xyXG4gICAgaWYgKHRoaXMuc3RpY2t5Qm90dG9tUmlnaHRFbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5Qm90dG9tUmlnaHRFbGUubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9XHJcbiAgdGNhcHRpb24hOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICB0aGVhZHM6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+W10gPSBbXTtcclxuICB0Zm9vdCE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIHRoZWFkc0NoYW5nZTogKCgpID0+IHZvaWQpW10gPSBbXTtcclxuICBib2R5Q2hhbmdlITogKCkgPT4gdm9pZDtcclxuICBzY3JvbGxDb250ZW50RWxlITogSFRNTEVsZW1lbnQ7XHJcbiAgaGFzU2Nyb2xsWSA9IGZhbHNlO1xyXG4gIHNjcm9sbFlXaWR0aCA9IDA7XHJcbiAgaGFzU2Nyb2xsWCA9IGZhbHNlO1xyXG4gIHNjcm9sbFhIZWlnaHQgPSAwO1xyXG4gIHNjcm9sbFhXaWR0aCE6IG51bWJlciB8IG51bGw7XHJcbiAgc2Nyb2xsTGVmdCA9IDA7XHJcbiAgc2Nyb2xsTGVmdE1heCA9IGZhbHNlO1xyXG4gIHNjcm9sbFRvcCA9IDA7XHJcbiAgcm93Q2hlY2tlZCE6IFhUYWJsZUNvbHVtbjtcclxuICBoZWFkQ2hlY2tib3hMaXN0ITogWFRhYmxlQ29sdW1uW107XHJcbiAgcm93RXhwYW5kITogWFRhYmxlQ29sdW1uO1xyXG4gIGhlYWRFeHBhbmRMaXN0ITogWFRhYmxlQ29sdW1uW107XHJcbiAgZGF0YUlzRnVuYyA9IGZhbHNlO1xyXG4gIGdldHRpbmcgPSBmYWxzZTtcclxuICB0YWJsZURhdGE6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgdHJlZVRhYmxlRGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICBjaGVja2VkVmFsdWVzOiB7IFtwcm9wOiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcclxuICBpbmRldGVybWluYXRlID0gJyQkaW5kZXRlcm1pbmF0ZSc7XHJcbiAgQFZpZXdDaGlsZCgndGFibGUnKSB0YWJsZSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NhcHRpb24nKSBjYXB0aW9uITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbicpIHBhZ2luYXRpb24hOiBYUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdzdGlja3lUb3BSaWdodEVsZScpIHN0aWNreVRvcFJpZ2h0RWxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZCgnc3RpY2t5Qm90dG9tUmlnaHRFbGUnKSBzdGlja3lCb3R0b21SaWdodEVsZSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFJvd0NoZWNrZWQoKTtcclxuICAgIHRoaXMuc2V0Um93RXhwYW5kKCk7XHJcbiAgICB0aGlzLnNldFBhZ2luYXRpb25Qb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjaGVja2VkUm93LCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1hbnVhbCwgc2hvd1BhZ2luYXRpb24sIGV4cGFuZGVkQWxsLCBjZWxsQ29uZmlnIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGV4cGFuZGVkQWxsKSAmJiB0aGlzLnNldEV4cGFuZGVkQWxsKCk7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSwgY2hlY2tlZFJvdykgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBpZiAoWElzQ2hhbmdlKGNvbHVtbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgICB0aGlzLnNldFJvd0V4cGFuZCgpO1xyXG4gICAgfVxyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgc2hvd1BhZ2luYXRpb24pICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgICBYSXNDaGFuZ2UoY2VsbENvbmZpZykgJiYgdGhpcy5zZXRNZXJnZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnRjYXB0aW9uID0gdGhpcy5jYXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwID0ge1xyXG4gICAgICBbYCR7WFRhYmxlUHJlZml4fS1yb3ctc2l6ZS0ke3RoaXMucm93U2l6ZX1gXTogIVhJc0VtcHR5KHRoaXMucm93U2l6ZSlcclxuICAgIH07XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdpbmF0aW9uUG9zaXRpb24oKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgeC10YWJsZS0ke3RoaXMucGFnaW5hdGlvblBvc2l0aW9ufWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0U3RpY2t5TGVmdChjb2x1bW4pIHx8IHRoaXMuZ2V0U3RpY2t5UmlnaHQoY29sdW1uKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreUxlZnQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5sZWZ0KSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgbGVmdHMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiBOdW1iZXIoeC5sZWZ0KSA+PSAwKTtcclxuICAgIGlmIChsZWZ0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBsZWZ0c1tsZWZ0cy5sZW5ndGggLSAxXS5pZCA9PT0gY29sdW1uLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5UmlnaHQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5yaWdodCkgPj0gMDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgcmlnaHRzID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApO1xyXG4gICAgaWYgKHJpZ2h0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiByaWdodHNbMF0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGhhc1N0aWNreVRvcFJpZ2h0KCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zaG93SGVhZGVyICYmXHJcbiAgICAgICh0aGlzLmhlYWRlclBvc2l0aW9uID09PSAndG9wJyB8fCB0aGlzLmhlYWRlclBvc2l0aW9uID09PSAndG9wLWJvdHRvbScpICYmXHJcbiAgICAgIHRoaXMuY29sdW1ucy5zb21lKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lUb3BSaWdodFNlYXJjaCgpIHtcclxuICAgIHJldHVybiB0aGlzLmhlYWRTZWFyY2hUcGwgPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBoYXNTdGlja3lCb3R0b21SaWdodCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2hvd0hlYWRlciAmJlxyXG4gICAgICAodGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgdGhpcy5oZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKSAmJlxyXG4gICAgICB0aGlzLmNvbHVtbnMuc29tZSgoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIChOdW1iZXIodGhpcy5pbmRleCkgLSAxKSAqIE51bWJlcih0aGlzLnNpemUpICsgaW5kZXggKyAxO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0YSgpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YSkpIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5zZXRIZWFkQ2hlY2tib3hMaXN0KHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0RXhwYW5kKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZEV4cGFuZExpc3QoKTtcclxuICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGF0YUlzRnVuYyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YUJ5RnVuYygpIHtcclxuICAgIGlmICghdGhpcy5tYW51YWwpIHJldHVybjtcclxuICAgIHRoaXMuZ2V0dGluZyA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgKHRoaXMuZGF0YSBhcyBGdW5jdGlvbikodGhpcy5pbmRleCwgdGhpcy5zaXplLCB0aGlzLnF1ZXJ5KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoeDogWFJlc3VsdExpc3Q8WFRhYmxlUm93PikgPT4ge1xyXG4gICAgICAgIGxldCBbZGF0YSwgdG90YWxdID0gW3gubGlzdCBhcyBYVGFibGVSb3dbXSwgeC50b3RhbCBhcyBYTnVtYmVyXTtcclxuICAgICAgICBpZiAodGhpcy52aXJ0dWFsQm9keSkge1xyXG4gICAgICAgICAgdGhpcy52aXJ0dWFsQm9keS5zY3JvbGxUb0luZGV4KDApO1xyXG4gICAgICAgICAgdGhpcy52aXJ0dWFsQm9keS5jaGVja1ZpZXdwb3J0U2l6ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmdldHRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgdGhpcy5zZXRDaGVja2VkKGRhdGEpO1xyXG4gICAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEV4cGFuZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgICAgdGhpcy50b3RhbCA9IHRvdGFsO1xyXG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldE1hbnVhbCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGFJc0Z1bmMpIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMucm93Q2hlY2tlZCA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LnJvd0NoZWNrZWQpIGFzIFhUYWJsZUNvbHVtbjtcclxuICAgIHRoaXMuaGVhZENoZWNrYm94TGlzdCA9IHRoaXMuY29sdW1ucy5maWx0ZXIoKHgpID0+IHgudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB4LmhlYWRDaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHNldFJvd0V4cGFuZCgpIHtcclxuICAgIHRoaXMucm93RXhwYW5kID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHgucm93RXhwYW5kKSBhcyBYVGFibGVDb2x1bW47XHJcbiAgfVxyXG5cclxuICBpc0V4cGFuZENvbHVtbihjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgbGV0IGV4cGFuZENvbHVtbiA9IHRoaXMuY29sdW1ucy5maW5kKCh4KSA9PiB4LmlkID09PSBjb2x1bW4uaWQgJiYgeC50eXBlID09PSAnZXhwYW5kJyk7XHJcbiAgICBpZiAoZXhwYW5kQ29sdW1uKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0TWVyZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2VsbENvbmZpZykgcmV0dXJuO1xyXG4gICAgY29uc3Qgc2V0UnVsZSA9IChydWxlPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGUpID0+IHtcclxuICAgICAgaWYgKCFydWxlKSByZXR1cm47XHJcbiAgICAgIGxldCBncmlkVGVtcGxhdGVDb2x1bW5zID0gJycsXHJcbiAgICAgICAgY2VsbHMgPSBbXTtcclxuICAgICAgaWYgKCFydWxlLmdyaWRUZW1wbGF0ZUNvbHVtbnMpIHtcclxuICAgICAgICBncmlkVGVtcGxhdGVDb2x1bW5zID0gYCR7dGhpcy5jb2x1bW5zXHJcbiAgICAgICAgICAubWFwKCh4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh4LndpZHRoKSByZXR1cm4geC53aWR0aDtcclxuICAgICAgICAgICAgaWYgKHguZmxleCkgcmV0dXJuIGAke3guZmxleH1mcmA7XHJcbiAgICAgICAgICAgIHJldHVybiAnMWZyJztcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuam9pbignICcpfWA7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFydWxlLmNlbGxzKSByZXR1cm47XHJcbiAgICAgIGNlbGxzID0gcnVsZS5jZWxscy5tYXAoKHkpID0+IHtcclxuICAgICAgICBjb25zdCBjb2wgPSB0aGlzLmNvbHVtbnMuZmluZCgoeikgPT4gei5pZCA9PT0geS5pZCk7XHJcbiAgICAgICAgaWYgKGNvbCkge1xyXG4gICAgICAgICAgcmV0dXJuIHsgLi4uY29sLCAuLi55IH0gYXMgWFRhYmxlQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4geyBncmlkVGVtcGxhdGVDb2x1bW5zLCBjZWxscyB9O1xyXG4gICAgfTtcclxuICAgIHRoaXMuY2VsbENvbmZpZy50aGVhZCA9IHNldFJ1bGUodGhpcy5jZWxsQ29uZmlnLnRoZWFkKTtcclxuICAgIHRoaXMuY2VsbENvbmZpZy50Ym9keSA9IHNldFJ1bGUodGhpcy5jZWxsQ29uZmlnLnRib2R5KTtcclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2UodHlwZTogJ2luZGV4JyB8ICdzaXplJykge1xyXG4gICAgdGhpcy5kYXRhSXNGdW5jICYmIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgaWYgKHR5cGUgPT09ICdpbmRleCcpIHtcclxuICAgICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KE51bWJlcih0aGlzLmluZGV4KSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzaXplJykge1xyXG4gICAgICB0aGlzLnNpemVDaGFuZ2UuZW1pdChOdW1iZXIodGhpcy5zaXplKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoaW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5pbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5kYXRhSXNGdW5jICYmIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KHRoaXMuaW5kZXgpO1xyXG4gICAgdGhpcy5yZXNldFNjcm9sbCgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRTY3JvbGwoeCA9IHRydWUsIHkgPSB0cnVlKSB7XHJcbiAgICBpZiAodGhpcy5oYXNTY3JvbGxYICYmIHgpIHRoaXMudmlydHVhbEJvZHk/LnNjcm9sbFRvKHsgbGVmdDogMCB9KTtcclxuICAgIGlmICh0aGlzLmhhc1Njcm9sbFkgJiYgeSkgdGhpcy52aXJ0dWFsQm9keT8uc2Nyb2xsVG8oeyB0b3A6IDAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBsZXQgcmVzdWx0OiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpIHx8ICF0aGlzLmNoZWNrZWRSb3cpIHJldHVybjtcclxuICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmNoZWNrZWRSb3cpIHtcclxuICAgICAgY29uc3QgYXJyID0gdGhpcy5jaGVja2VkUm93W2tleV07XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGF0YSBhcyBhbnlbXSkge1xyXG4gICAgICAgIGl0ZW1ba2V5XSA9IGFyci5pbmNsdWRlcyhpdGVtLmlkKTtcclxuICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCBpdGVtXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSBkYXRhID0gWy4uLnJlc3VsdF07XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkQ2hlY2tib3hMaXN0KGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuaGVhZENoZWNrYm94TGlzdCkgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQgY29sdW1uIG9mIHRoaXMuaGVhZENoZWNrYm94TGlzdCkge1xyXG4gICAgICB0aGlzLnNldENoZWNrZWRWYWx1ZXMoY29sdW1uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEV4cGFuZChkYXRhOiBYVGFibGVSb3dbXSkge1xyXG4gICAgY29uc3QgZ2V0Q2hpbGRyZW4gPSAobm9kZTogWFRhYmxlUm93LCBsZXZlbDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIG5vZGUubGV2ZWwgPSBsZXZlbDtcclxuICAgICAgbm9kZS5leHBhbmRlZCA9XHJcbiAgICAgICAgQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKSB8fCBsZXZlbCA8PSBOdW1iZXIodGhpcy5leHBhbmRlZExldmVsKSB8fCB0aGlzLmV4cGFuZGVkLmluY2x1ZGVzKG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSBub2RlLmNoaWxkcmVuID0gZGF0YS5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEgPSBkYXRhXHJcbiAgICAgIC5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSlcclxuICAgICAgLm1hcCgoeCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoWElzVW5kZWZpbmVkKHguaWQpKSB4LmlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgIHJldHVybiBnZXRDaGlsZHJlbih4LCAwKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIGlmICgheC5kaXNhYmxlZCkge1xyXG4gICAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmhlYWRDaGVja2JveENoYW5nZS5lbWl0KHsgcm93czogdGhpcy50YWJsZURhdGEsIGNoZWNrYm94OiB0aGlzLmNoZWNrZWRWYWx1ZXMgfSk7XHJcbiAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGJvZHlDaGVja2VkKF9jaGVja2VkOiBib29sZWFuLCBjb2x1bW46IFhUYWJsZUNvbHVtbiwgcm93OiBYVGFibGVSb3cpIHtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5ib2R5Q2hlY2tib3hDaGFuZ2UuZW1pdChyb3cpO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkVmFsdWVzKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb25zdCBub3REaXNhYmxlZCA9IHRoaXMudGFibGVEYXRhLmZpbHRlcigoeCkgPT4gIXguZGlzYWJsZWQpO1xyXG4gICAgY29uc3QgY291bnQgPSBub3REaXNhYmxlZC5sZW5ndGg7XHJcbiAgICBjb25zdCBjaGVja2VkTGVuID0gbm90RGlzYWJsZWQuZmlsdGVyKCh4KSA9PiB4W2NvbHVtbi5pZF0pLmxlbmd0aDtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWRdID0gY291bnQgPT09IGNoZWNrZWRMZW4gJiYgY291bnQgIT09IDA7XHJcbiAgICB0aGlzLmNoZWNrZWRWYWx1ZXNbY29sdW1uLmlkICsgdGhpcy5pbmRldGVybWluYXRlXSA9IGNoZWNrZWRMZW4gPiAwICYmIGNoZWNrZWRMZW4gPCBjb3VudDtcclxuICB9XHJcblxyXG4gIGRldGVjdENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmJvZHlDaGFuZ2UgJiYgdGhpcy5ib2R5Q2hhbmdlKCk7XHJcbiAgICB0aGlzLnRoZWFkc0NoYW5nZXMoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHRoZWFkc0NoYW5nZXMoKSB7XHJcbiAgICBpZiAodGhpcy50aGVhZHNDaGFuZ2UgJiYgdGhpcy50aGVhZHNDaGFuZ2UubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMudGhlYWRzQ2hhbmdlKSB7XHJcbiAgICAgICAgaXRlbSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gICN0YWJsZVxyXG4gIGNsYXNzPVwieC10YWJsZVwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFt4LWxvYWRpbmddPVwibG9hZGluZyAmJiBnZXR0aW5nXCJcclxuICBbY2xhc3MueC10YWJsZS13cmFwLWJvcmRlci1oaWRkZW5dPVwiaGlkZGVuV3JhcEJvcmRlclwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLWxlZnRdPVwiZ2V0U2Nyb2xsTGVmdFwiXHJcbiAgW2NsYXNzLngtdGFibGUtc2Nyb2xsLWxlZnQtbWF4XT1cInNjcm9sbExlZnRNYXhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC10b3BdPVwiZ2V0U2Nyb2xsVG9wXCJcclxuICBbY2xhc3MueC10YWJsZS1oYXMtc2Nyb2xsLXJpZ2h0XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgW2NsYXNzLngtdGFibGUtaGFzLXNjcm9sbC1ib3R0b21dPVwic2Nyb2xsWFdpZHRoXCJcclxuICBbY2xhc3MueC10YWJsZS1ib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgW2NsYXNzLngtdGFibGUtdGQtYWRhcHRpb24taGVpZ2h0XT1cInJvd0hlaWdodCA9PSAwXCJcclxuICBbY2xhc3MueC10YWJsZS1jZWxsLWNvbmZpZ109XCJjZWxsQ29uZmlnXCJcclxuPlxyXG4gIEBpZiAoaGVhZGVyKSB7XHJcbiAgICA8Y2FwdGlvbiAjY2FwdGlvbiBjbGFzcz1cIngtdGFibGUtaGVhZGVyXCIgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImhlYWRlclwiPnt7IGhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jYXB0aW9uPlxyXG4gIH1cclxuICBAaWYgKHNob3dIZWFkZXIgJiYgKGhlYWRlclBvc2l0aW9uID09PSAndG9wJyB8fCBoZWFkZXJQb3NpdGlvbiA9PT0gJ3RvcC1ib3R0b20nKSkge1xyXG4gICAgPHgtdGFibGUtaGVhZFxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgICBbY29sdW1uVHBsXT1cImhlYWRDb2x1bW5UcGxcIlxyXG4gICAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICAgIFtzY3JvbGxYV2lkdGhdPVwic2Nyb2xsWFdpZHRoXCJcclxuICAgICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGhlYWRcIlxyXG4gICAgICBbcG9zaXRpb25dPVwiJ3RvcCdcIlxyXG4gICAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgICA+PC94LXRhYmxlLWhlYWQ+XHJcbiAgfVxyXG4gIDx4LXRhYmxlLWJvZHlcclxuICAgIFtkYXRhXT1cInRyZWVUYWJsZSA/IHRyZWVUYWJsZURhdGEgOiB0YWJsZURhdGFcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgW2JvZHlIZWlnaHRdPVwiYm9keUhlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImJvZHlDb2x1bW5UcGxcIlxyXG4gICAgW2FsbG93U2VsZWN0Um93XT1cImFsbG93U2VsZWN0Um93XCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbYWRhcHRpb25IZWlnaHRdPVwiYWRhcHRpb25IZWlnaHRcIlxyXG4gICAgW2RvY1BlcmNlbnRdPVwiZG9jUGVyY2VudFwiXHJcbiAgICBbc2Nyb2xsXT1cInNjcm9sbFwiXHJcbiAgICBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgW2V4cGFuZGVkQWxsXT1cImV4cGFuZGVkQWxsXCJcclxuICAgIFtleHBhbmRUcGxdPVwiZXhwYW5kVHBsXCJcclxuICAgIFsoYWN0aXZhdGVkUm93KV09XCJhY3RpdmF0ZWRSb3dcIlxyXG4gICAgKGFjdGl2YXRlZFJvd0NoYW5nZSk9XCJhY3RpdmF0ZWRSb3dDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgQGlmIChzaG93SGVhZGVyICYmIChoZWFkZXJQb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgaGVhZGVyUG9zaXRpb24gPT09ICd0b3AtYm90dG9tJykpIHtcclxuICAgIDx4LXRhYmxlLWhlYWRcclxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgICAgW2NvbHVtblRwbF09XCJoZWFkQ29sdW1uVHBsXCJcclxuICAgICAgW3Njcm9sbFlXaWR0aF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgICBbc2Nyb2xsWFdpZHRoXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICAgIFtjZWxsQ29uZmlnXT1cImNlbGxDb25maWc/LnRoZWFkXCJcclxuICAgICAgW3Bvc2l0aW9uXT1cIidib3R0b20nXCJcclxuICAgICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gICAgPjwveC10YWJsZS1oZWFkPlxyXG4gIH1cclxuICBAaWYgKGZvb3Rlcikge1xyXG4gICAgPHgtdGFibGUtZm9vdCBbdGFibGVdPVwidGhpc1wiIFtmb290ZXJdPVwiZm9vdGVyXCIgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIj48L3gtdGFibGUtZm9vdD5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lUb3BSaWdodCgpKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgICNzdGlja3lUb3BSaWdodEVsZVxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICAgIFtjbGFzcy54LXRhYmxlLWJvcmRlci1ib3R0b21dPVwiaGVhZFNlYXJjaFRwbFwiXHJcbiAgICAgIFtzdHlsZS50b3AucHhdPVwiZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wXCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lUb3BSaWdodCgpICYmIGhlYWRTZWFyY2hUcGwpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgICBbc3R5bGUudG9wLnB4XT1cImdldFN0aWNreVRvcFNjcm9sbFRvcCArIGdldFN0aWNreVRvcFJpZ2h0RWxlSGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lCb3R0b21SaWdodCgpKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgICNzdGlja3lCb3R0b21SaWdodEVsZVxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wXCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lCb3R0b21SaWdodCgpICYmIGhlYWRTZWFyY2hUcGwpIHtcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ4LXRhYmxlLXN0aWNreS1yaWdodC1zY3JvbGxcIlxyXG4gICAgICBbY2xhc3MueC10YWJsZS1ib3JkZXItYm90dG9tXT1cImhlYWRTZWFyY2hUcGxcIlxyXG4gICAgICBbc3R5bGUuYm90dG9tLnB4XT1cImdldFN0aWNreUJvdHRvbVNjcm9sbFRvcCArIGdldFN0aWNreUJvdHRvbVJpZ2h0RWxlSGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbjwvdGFibGU+XHJcbkBpZiAoc2hvd1BhZ2luYXRpb24gJiYgc2l6ZSkge1xyXG4gIDx4LXBhZ2luYXRpb25cclxuICAgICNwYWdpbmF0aW9uXHJcbiAgICBbKGluZGV4KV09XCJpbmRleFwiXHJcbiAgICBbKHNpemUpXT1cInNpemVcIlxyXG4gICAgWyhxdWVyeSldPVwicXVlcnlcIlxyXG4gICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgIChpbmRleENoYW5nZSk9XCJwYWdlQ2hhbmdlKCdpbmRleCcpXCJcclxuICAgIChzaXplQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoJ3NpemUnKVwiXHJcbiAgICBbc2hvd0VsbGlwc2lzXT1cInNob3dFbGxpcHNpc1wiXHJcbiAgICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbFwiXHJcbiAgICBbc3BhY2VdPVwic3BhY2VcIlxyXG4gICAgW2hpZGRlbkJvcmRlcl09XCJoaWRkZW5QYWdpbmF0aW9uQm9yZGVyIVwiXHJcbiAgICBbc2hvd1NpemVdPVwic2hvd1NpemVcIlxyXG4gICAgW3Nob3dKdW1wXT1cInNob3dKdW1wXCJcclxuICAgIFtqdW1wV2lkdGhdPVwianVtcFdpZHRoXCJcclxuICAgIFtzaG93SW5wdXRTaXplXT1cInNob3dJbnB1dFNpemVcIlxyXG4gICAgW2lucHV0U2l6ZVdpZHRoXT1cImlucHV0U2l6ZVdpZHRoXCJcclxuICAgIFtzaXplRGF0YV09XCJzaXplRGF0YVwiXHJcbiAgICBbc2l6ZVdpZHRoXT1cInNpemVXaWR0aFwiXHJcbiAgICBbcGFnZUxpbmtTaXplXT1cInBhZ2VMaW5rU2l6ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW3RvdGFsVHBsXT1cInRvdGFsVHBsXCJcclxuICAgIFtzaW1wbGVdPVwic2ltcGxlXCJcclxuICAgIFtzaW1wbGVJbmRleFdpZHRoXT1cInNpbXBsZUluZGV4V2lkdGhcIlxyXG4gID5cclxuICA8L3gtcGFnaW5hdGlvbj5cclxufVxyXG4iXX0=
|
|
354
|
+
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap()\"\r\n [x-loading]=\"loading() && getting()\"\r\n [class.x-table-wrap-border-hidden]=\"hiddenWrapBorder()\"\r\n [class.x-table-scroll-left]=\"getScrollLeft()\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax()\"\r\n [class.x-table-scroll-top]=\"getScrollTop()\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth()\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth()\"\r\n [class.x-table-bordered]=\"bordered()\"\r\n [class.x-table-td-adaption-height]=\"rowHeight() == 0\"\r\n [class.x-table-cell-config]=\"!!cellConfigSignal()\"\r\n>\r\n @if (header()) {\r\n <caption #caption class=\"x-table-header\" [style.height.px]=\"getRowHeight()\" [style.min-height.px]=\"getRowHeight()\">\r\n <ng-container *xOutlet=\"header()\">{{ header() }}</ng-container>\r\n </caption>\r\n }\r\n @if (showHeader() && (headerPosition() === 'top' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'top'\"\r\n ></x-table-head>\r\n }\r\n <x-table-body\r\n [data]=\"treeTable() ? treeTableData() : tableData()\"\r\n [columns]=\"columns()\"\r\n [itemSize]=\"itemSize()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [bodyHeight]=\"bodyHeight()!\"\r\n [columnTpl]=\"bodyColumnTpl()\"\r\n [allowSelectRow]=\"allowSelectRow()\"\r\n [virtualScroll]=\"virtualScroll()\"\r\n [minBufferPx]=\"minBufferPx()\"\r\n [maxBufferPx]=\"maxBufferPx()\"\r\n [adaptionHeight]=\"adaptionHeight()!\"\r\n [docPercent]=\"docPercent()\"\r\n [scroll]=\"scroll()\"\r\n [rowClass]=\"rowClass()\"\r\n [cellConfig]=\"cellConfigSignal()?.tbody\"\r\n [expandedAll]=\"expandedAll()\"\r\n [expandTpl]=\"expandTpl()\"\r\n [(activatedRow)]=\"activatedRow\"\r\n ></x-table-body>\r\n @if (showHeader() && (headerPosition() === 'bottom' || headerPosition() === 'top-bottom')) {\r\n <x-table-head\r\n [columns]=\"columns()\"\r\n [rowHeight]=\"rowHeight()\"\r\n [columnTpl]=\"headColumnTpl()\"\r\n [scrollYWidth]=\"scrollYWidth()\"\r\n [scrollXWidth]=\"scrollXWidth()!\"\r\n [cellConfig]=\"cellConfigSignal()?.thead\"\r\n [position]=\"'bottom'\"\r\n ></x-table-head>\r\n }\r\n @if (footer()) {\r\n <x-table-foot [footer]=\"footer()\" [rowHeight]=\"rowHeight()\"></x-table-foot>\r\n }\r\n @if (hasStickyTopRight()) {\r\n <div\r\n #stickyTopRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.top.px]=\"getStickyTopScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyTopRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.top.px]=\"getStickyTopScrollTop() + getStickyTopRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight()) {\r\n <div\r\n #stickyBottomRightEle\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n @if (hasStickyBottomRight() && headSearchTpl()) {\r\n <div\r\n class=\"x-table-sticky-right-scroll\"\r\n [class.x-table-border-bottom]=\"headSearchTpl()\"\r\n [style.bottom.px]=\"getStickyBottomScrollTop() + getStickyBottomRightEleHeight()\"\r\n [style.width.px]=\"scrollYWidth()\"\r\n [style.height.px]=\"getRowHeight()\"\r\n [style.min-height.px]=\"getRowHeight()\"\r\n ></div>\r\n }\r\n</table>\r\n@if (showPagination() && size()) {\r\n <x-pagination\r\n #pagination\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total()\"\r\n (indexChange)=\"pageChange('index')\"\r\n (sizeChange)=\"pageChange('size')\"\r\n [showEllipsis]=\"showEllipsis()\"\r\n [showTotal]=\"showTotal()\"\r\n [space]=\"space()\"\r\n [showBackground]=\"showBackground()\"\r\n [showSize]=\"showSize()\"\r\n [showJump]=\"showJump()\"\r\n [jumpWidth]=\"jumpWidth()\"\r\n [showInputSize]=\"showInputSize()\"\r\n [inputSizeWidth]=\"inputSizeWidth()\"\r\n [sizeData]=\"sizeData()\"\r\n [sizeWidth]=\"sizeWidth()\"\r\n [pageLinkSize]=\"pageLinkSize()\"\r\n [disabled]=\"disabled()\"\r\n [totalTpl]=\"totalTpl()\"\r\n [simple]=\"simple()\"\r\n [simpleIndexWidth]=\"simpleIndexWidth()\"\r\n >\r\n </x-pagination>\r\n}\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;position:relative}.x-table:not(.x-table-wrap-border-hidden){border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;min-height:42px}.x-table>thead>tr{width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:5}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>thead>tr.cdk-drop-list-dragging>th.cdk-drag-placeholder{background-color:var(--x-background-a200);opacity:.9}.x-table>thead.x-table-head-bottom>tr>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border);border-bottom:none}.x-table>thead.x-table-head-bottom>tr.x-table-search>th{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:5}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr>td.x-table-dragging{background-color:var(--x-background-a200);opacity:.9}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-primary-900)}.x-table>tbody tr:hover:not(.x-table-activated)>td{background-color:var(--x-background-a100)}.x-table>tbody tr:last-child>td{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:var(--x-box-shadow-bottom);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-right);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-sticky-right-scroll{position:absolute;right:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-left);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-bottom{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-border-top{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}body>.x-table-th{display:block}body>.x-table-th-big{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}body>.x-table-th-large{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}body>.x-table-th-medium{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}body>.x-table-th-small{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}body>.x-table-th-mini{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}body>.x-table-th.cdk-drag-preview{display:flex;align-items:center;border:var(--x-border-width) var(--x-border-style) var(--x-border);border-style:dashed;background-color:var(--x-background);opacity:.8;box-shadow:var(--x-box-shadow)}body>.x-table-th.cdk-drag-preview>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body>.x-table-th.cdk-drag-animating{transition:transform var(--x-animation-duration-base) cubic-bezier(0,0,.2,1)}\n"] }]
|
|
355
|
+
}] });
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLFlBQVksRUFDWixjQUFjLEVBS2YsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBc0IsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFtQnRELE1BQU0sT0FBTyxl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RUFDbkIsbUJBQW1CLDBGQUN0QixtQkFBbUIsNEdDM0Y5RCxrN0pBc0lBLHEyUkQ5RkksT0FBTyxvRkFDUCxnQkFBZ0IsNkZBQ2hCLGlCQUFpQixtRUFDakIsbUJBQW1CLHlEQUNuQixtQkFBbUIseURBQ25CLG1CQUFtQix5REFDbkIsb0JBQW9COzsyRkFPWCxlQUFlO2tCQWpCM0IsU0FBUzsrQkFDRSxHQUFHLFlBQVksRUFBRSxjQUNmLElBQUksV0FDUDt3QkFDUCxPQUFPO3dCQUNQLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7cUJBQ3JCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgY29tcHV0ZWQsXHJcbiAgc2lnbmFsLFxyXG4gIHZpZXdDaGlsZCxcclxuICBpbmplY3QsXHJcbiAgdmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWFRhYmxlUHJlZml4LFxyXG4gIFhUYWJsZVByb3BlcnR5LFxyXG4gIFhUYWJsZUNvbHVtbixcclxuICBYVGFibGVSb3csXHJcbiAgWFRhYmxlQ2VsbCxcclxuICBYVGFibGVDZWxsQ29uZmlnUnVsZVxyXG59IGZyb20gJy4vdGFibGUucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhJc0VtcHR5LCBYUmVzdWx0TGlzdCwgWFNvcnQsIFhJc1VuZGVmaW5lZCwgWElzQXJyYXkgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9sb2FkaW5nJztcclxuaW1wb3J0IHsgWFRhYmxlSGVhZENvbXBvbmVudCB9IGZyb20gJy4vdGFibGUtaGVhZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYVGFibGVGb290Q29tcG9uZW50IH0gZnJvbSAnLi90YWJsZS1mb290LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhUYWJsZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLWJvZHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWE91dGxldERpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL291dGxldCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgWE91dGxldERpcmVjdGl2ZSxcclxuICAgIFhMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgWFRhYmxlSGVhZENvbXBvbmVudCxcclxuICAgIFhUYWJsZUZvb3RDb21wb25lbnQsXHJcbiAgICBYVGFibGVCb2R5Q29tcG9uZW50LFxyXG4gICAgWFBhZ2luYXRpb25Db21wb25lbnRcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVDb21wb25lbnQgZXh0ZW5kcyBYVGFibGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xyXG4gIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY2xhc3NNYXAgPSBjb21wdXRlZCgoKSA9PiAoeyBbYCR7WFRhYmxlUHJlZml4fS1yb3ctc2l6ZS0ke3RoaXMucm93U2l6ZSgpfWBdOiAhWElzRW1wdHkodGhpcy5yb3dTaXplKCkpIH0pKTtcclxuICB0aGVhZHMgPSBzaWduYWw8RWxlbWVudFJlZjxIVE1MRWxlbWVudD5bXT4oW10pO1xyXG4gIHRmb290ID0gc2lnbmFsPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbD4obnVsbCk7XHJcbiAgdmlydHVhbEJvZHkgPSBzaWduYWw8Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0IHwgbnVsbD4obnVsbCk7XHJcbiAgdGhlYWRzQ2hhbmdlOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xyXG4gIGJvZHlDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIHNjcm9sbENvbnRlbnRFbGUgPSBzaWduYWw8SFRNTEVsZW1lbnQgfCBudWxsPihudWxsKTtcclxuICBoYXNTY3JvbGxZID0gc2lnbmFsKGZhbHNlKTtcclxuICBzY3JvbGxZV2lkdGggPSBzaWduYWwoMCk7XHJcbiAgaGFzU2Nyb2xsWCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc2Nyb2xsWEhlaWdodCA9IHNpZ25hbCgwKTtcclxuICBzY3JvbGxYV2lkdGggPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgc2Nyb2xsTGVmdCA9IHNpZ25hbCgwKTtcclxuICBzY3JvbGxMZWZ0TWF4ID0gc2lnbmFsKGZhbHNlKTtcclxuICBzY3JvbGxUb3AgPSBzaWduYWwoMCk7XHJcbiAgcm93Q2hlY2tlZCA9IHNpZ25hbDxYVGFibGVDb2x1bW4gfCBudWxsPihudWxsKTtcclxuICBoZWFkQ2hlY2tib3hMaXN0ID0gc2lnbmFsPFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgcm93RXhwYW5kID0gc2lnbmFsPFhUYWJsZUNvbHVtbiB8IG51bGw+KG51bGwpO1xyXG4gIGhlYWRFeHBhbmRMaXN0ID0gc2lnbmFsPFhUYWJsZUNvbHVtbltdPihbXSk7XHJcbiAgZGF0YUlzRnVuYyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZ2V0dGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgdGFibGVEYXRhID0gc2lnbmFsPFhUYWJsZVJvd1tdPihbXSk7XHJcbiAgdHJlZVRhYmxlRGF0YSA9IHNpZ25hbDxYVGFibGVSb3dbXT4oW10pO1xyXG4gIGNoZWNrZWRWYWx1ZXMgPSBzaWduYWw8eyBbcHJvcDogc3RyaW5nXTogYm9vbGVhbiB9Pih7fSk7XHJcbiAgaW5kZXRlcm1pbmF0ZSA9IHNpZ25hbCgnJCRpbmRldGVybWluYXRlJyk7XHJcbiAgdGFibGUgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCd0YWJsZScpO1xyXG4gIGNhcHRpb24gPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdjYXB0aW9uJyk7XHJcbiAgcGFnaW5hdGlvbiA9IHZpZXdDaGlsZDxYUGFnaW5hdGlvbkNvbXBvbmVudD4oJ3BhZ2luYXRpb24nKTtcclxuICBzdGlja3lUb3BSaWdodEVsZSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3N0aWNreVRvcFJpZ2h0RWxlJyk7XHJcbiAgc3RpY2t5Qm90dG9tUmlnaHRFbGUgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdzdGlja3lCb3R0b21SaWdodEVsZScpO1xyXG4gIGhlYWRDb20gPSB2aWV3Q2hpbGRyZW48WFRhYmxlSGVhZENvbXBvbmVudD4oWFRhYmxlSGVhZENvbXBvbmVudCk7XHJcbiAgYm9keUNvbSA9IHZpZXdDaGlsZHJlbjxYVGFibGVCb2R5Q29tcG9uZW50PihYVGFibGVCb2R5Q29tcG9uZW50KTtcclxuICBmb290Q29tID0gdmlld0NoaWxkPFhUYWJsZUZvb3RDb21wb25lbnQ+KFhUYWJsZUZvb3RDb21wb25lbnQpO1xyXG5cclxuICBnZXRTY3JvbGxMZWZ0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zY3JvbGxMZWZ0KCkgPiAwKTtcclxuICBnZXRTY3JvbGxUb3AgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNjcm9sbFRvcCgpID4gMCk7XHJcbiAgZ2V0Um93SGVpZ2h0ID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMucm93SGVpZ2h0KCkgPT09IDAgPyAnJyA6IHRoaXMucm93SGVpZ2h0KCkpKTtcclxuICBnZXRTdGlja3lUb3BTY3JvbGxUb3AgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5jYXB0aW9uKCkgPyB0aGlzLmNhcHRpb24oKSEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgOiAwKSk7XHJcbiAgZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgbGV0IHRvcCA9IDA7XHJcbiAgICBpZiAodGhpcy5mb290ZXIoKSAmJiB0aGlzLnRmb290KCkpIHtcclxuICAgICAgdG9wICs9IHRoaXMudGZvb3QoKSEubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgKyAxO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvcDtcclxuICB9KTtcclxuICBnZXRTdGlja3lUb3BSaWdodEVsZUhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnN0aWNreVRvcFJpZ2h0RWxlKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5VG9wUmlnaHRFbGUoKSEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9KTtcclxuICBnZXRTdGlja3lCb3R0b21SaWdodEVsZUhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnN0aWNreUJvdHRvbVJpZ2h0RWxlKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc3RpY2t5Qm90dG9tUmlnaHRFbGUoKSEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH1cclxuICB9KTtcclxuICBoYXNTdGlja3lUb3BSaWdodCA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT5cclxuICAgICAgdGhpcy5zaG93SGVhZGVyKCkgJiZcclxuICAgICAgKHRoaXMuaGVhZGVyUG9zaXRpb24oKSA9PT0gJ3RvcCcgfHwgdGhpcy5oZWFkZXJQb3NpdGlvbigpID09PSAndG9wLWJvdHRvbScpICYmXHJcbiAgICAgIHRoaXMuY29sdW1ucygpLnNvbWUoKHgpID0+IE51bWJlcih4LnJpZ2h0KSA+PSAwKVxyXG4gICk7XHJcbiAgaGFzU3RpY2t5VG9wUmlnaHRTZWFyY2ggPSBjb21wdXRlZCgoKSA9PiAhIXRoaXMuaGVhZFNlYXJjaFRwbCgpKTtcclxuXHJcbiAgaGFzU3RpY2t5Qm90dG9tUmlnaHQgPSBjb21wdXRlZChcclxuICAgICgpID0+XHJcbiAgICAgIHRoaXMuc2hvd0hlYWRlcigpICYmXHJcbiAgICAgICh0aGlzLmhlYWRlclBvc2l0aW9uKCkgPT09ICdib3R0b20nIHx8IHRoaXMuaGVhZGVyUG9zaXRpb24oKSA9PT0gJ3RvcC1ib3R0b20nKSAmJlxyXG4gICAgICB0aGlzLmNvbHVtbnMoKS5zb21lKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMClcclxuICApO1xyXG5cclxuICBjZWxsQ29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgY2VsbENvbmZpZyA9IHRoaXMuY2VsbENvbmZpZygpO1xyXG4gICAgaWYgKCFjZWxsQ29uZmlnKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRSdWxlID0gKHJ1bGU/OiBYVGFibGVDZWxsQ29uZmlnUnVsZSkgPT4ge1xyXG4gICAgICBpZiAoIXJ1bGUpIHJldHVybjtcclxuICAgICAgbGV0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSAnJyxcclxuICAgICAgICBjZWxscyA9IFtdO1xyXG4gICAgICBpZiAoIXJ1bGUuZ3JpZFRlbXBsYXRlQ29sdW1ucykge1xyXG4gICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgJHt0aGlzLmNvbHVtbnMoKVxyXG4gICAgICAgICAgLm1hcCgoeCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoeC53aWR0aCkgcmV0dXJuIHgud2lkdGg7XHJcbiAgICAgICAgICAgIGlmICh4LmZsZXgpIHJldHVybiBgJHt4LmZsZXh9ZnJgO1xyXG4gICAgICAgICAgICByZXR1cm4gJzFmcic7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmpvaW4oJyAnKX1gO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghcnVsZS5jZWxscykgcmV0dXJuO1xyXG4gICAgICBjZWxscyA9IHJ1bGUuY2VsbHMubWFwKCh5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5jb2x1bW5zKCkuZmluZCgoeikgPT4gei5pZCA9PT0geS5pZCk7XHJcbiAgICAgICAgaWYgKGNvbCkge1xyXG4gICAgICAgICAgcmV0dXJuIHsgLi4uY29sLCAuLi55IH0gYXMgWFRhYmxlQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4geyBncmlkVGVtcGxhdGVDb2x1bW5zLCBjZWxscyB9O1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4geyB0aGVhZDogc2V0UnVsZShjZWxsQ29uZmlnLnRoZWFkKSwgdGJvZHk6IHNldFJ1bGUoY2VsbENvbmZpZy50Ym9keSkgfTtcclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldFJvd0NoZWNrZWQoKTtcclxuICAgIHRoaXMuc2V0Um93RXhwYW5kKCk7XHJcbiAgICB0aGlzLnNldFBhZ2luYXRpb25Qb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjaGVja2VkUm93LCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1hbnVhbCwgc2hvd1BhZ2luYXRpb24sIGV4cGFuZGVkQWxsIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGV4cGFuZGVkQWxsKSAmJiB0aGlzLnNldEV4cGFuZGVkQWxsKCk7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSwgY2hlY2tlZFJvdykgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBpZiAoWElzQ2hhbmdlKGNvbHVtbnMpKSB7XHJcbiAgICAgIHRoaXMuc2V0Um93Q2hlY2tlZCgpO1xyXG4gICAgICB0aGlzLnNldFJvd0V4cGFuZCgpO1xyXG4gICAgfVxyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgc2hvd1BhZ2luYXRpb24pICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdpbmF0aW9uUG9zaXRpb24oKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBgeC10YWJsZS0ke3RoaXMucGFnaW5hdGlvblBvc2l0aW9uKCl9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3koY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTdGlja3lMZWZ0KGNvbHVtbikgfHwgdGhpcy5nZXRTdGlja3lSaWdodChjb2x1bW4pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5TGVmdChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiBOdW1iZXIoY29sdW1uLmxlZnQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lMZWZ0TGFzdChjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIGxldCBsZWZ0cyA9IHRoaXMuY29sdW1ucygpLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgubGVmdCkgPj0gMCk7XHJcbiAgICBpZiAobGVmdHMubGVuZ3RoID09PSAwKSByZXR1cm4gZmFsc2U7XHJcbiAgICByZXR1cm4gbGVmdHNbbGVmdHMubGVuZ3RoIC0gMV0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgcmV0dXJuIE51bWJlcihjb2x1bW4ucmlnaHQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRTdGlja3lSaWdodEZpcnN0KGNvbHVtbjogWFRhYmxlQ29sdW1uIHwgWFRhYmxlQ2VsbCkge1xyXG4gICAgbGV0IHJpZ2h0cyA9IHRoaXMuY29sdW1ucygpLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApO1xyXG4gICAgaWYgKHJpZ2h0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiByaWdodHNbMF0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGdldEluZGV4KGluZGV4OiBudW1iZXIpIHtcclxuICAgIHJldHVybiAodGhpcy5pbmRleCgpIC0gMSkgKiB0aGlzLnNpemUoKSArIGluZGV4ICsgMTtcclxuICB9XHJcblxyXG4gIHNldERhdGEoKSB7XHJcbiAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhKCk7XHJcbiAgICBpZiAoWElzQXJyYXk8WFRhYmxlUm93PihkYXRhKSkge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMuc2V0KGZhbHNlKTtcclxuICAgICAgdGhpcy50YWJsZURhdGEuc2V0KGRhdGEpO1xyXG4gICAgICB0aGlzLnNldENoZWNrZWQoZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdChkYXRhKTtcclxuICAgICAgdGhpcy5zZXRFeHBhbmQoZGF0YSk7XHJcbiAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSBlbHNlIGlmIChkYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jLnNldCh0cnVlKTtcclxuICAgICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhQnlGdW5jKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hbnVhbCgpKSByZXR1cm47XHJcbiAgICB0aGlzLmdldHRpbmcuc2V0KHRydWUpO1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgKHRoaXMuZGF0YSgpIGFzIEZ1bmN0aW9uKSh0aGlzLmluZGV4KCksIHRoaXMuc2l6ZSgpLCB0aGlzLnF1ZXJ5KCkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHg6IFhSZXN1bHRMaXN0PFhUYWJsZVJvdz4pID0+IHtcclxuICAgICAgICBsZXQgW2RhdGEsIHRvdGFsXSA9IFt4Lmxpc3QgYXMgWFRhYmxlUm93W10sIHgudG90YWwhXTtcclxuICAgICAgICBpZiAodGhpcy52aXJ0dWFsQm9keSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5KCkhLnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5KCkhLmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0dGluZy5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhLnNldChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldENoZWNrZWQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkQ2hlY2tib3hMaXN0KGRhdGEpO1xyXG4gICAgICAgIHRoaXMuc2V0RXhwYW5kKGRhdGEpO1xyXG4gICAgICAgIHRoaXMudG90YWwuc2V0KHRvdGFsKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRNYW51YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhSXNGdW5jKCkpIHRoaXMuZ2V0RGF0YUJ5RnVuYygpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMucm93Q2hlY2tlZC5zZXQodGhpcy5jb2x1bW5zKCkuZmluZCgoeCkgPT4geC5yb3dDaGVja2VkKSBhcyBYVGFibGVDb2x1bW4pO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hMaXN0LnNldCh0aGlzLmNvbHVtbnMoKS5maWx0ZXIoKHgpID0+IHgudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB4LmhlYWRDaGVja2VkKSk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dFeHBhbmQoKSB7XHJcbiAgICB0aGlzLnJvd0V4cGFuZC5zZXQodGhpcy5jb2x1bW5zKCkuZmluZCgoeCkgPT4geC5yb3dFeHBhbmQpIGFzIFhUYWJsZUNvbHVtbik7XHJcbiAgfVxyXG5cclxuICBpc0V4cGFuZENvbHVtbihjb2x1bW46IFhUYWJsZUNvbHVtbikge1xyXG4gICAgbGV0IGV4cGFuZENvbHVtbiA9IHRoaXMuY29sdW1ucygpLmZpbmQoKHgpID0+IHguaWQgPT09IGNvbHVtbi5pZCAmJiB4LnR5cGUgPT09ICdleHBhbmQnKTtcclxuICAgIGlmIChleHBhbmRDb2x1bW4pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwYWdlQ2hhbmdlKF90eXBlOiAnaW5kZXgnIHwgJ3NpemUnKSB7XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMoKSAmJiB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZShpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmluZGV4LnNldChpbmRleCk7XHJcbiAgICB0aGlzLmRhdGFJc0Z1bmMoKSAmJiB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIHRoaXMucmVzZXRTY3JvbGwoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U2Nyb2xsKHggPSB0cnVlLCB5ID0gdHJ1ZSkge1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWCgpICYmIHgpIHRoaXMudmlydHVhbEJvZHkoKT8uc2Nyb2xsVG8oeyBsZWZ0OiAwIH0pO1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWSgpICYmIHkpIHRoaXMudmlydHVhbEJvZHkoKT8uc2Nyb2xsVG8oeyB0b3A6IDAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBsZXQgcmVzdWx0OiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gICAgaWYgKFhJc0VtcHR5KGRhdGEpIHx8ICF0aGlzLmNoZWNrZWRSb3coKSkgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2hlY2tlZFJvdygpKSB7XHJcbiAgICAgIGNvbnN0IGFyciA9IHRoaXMuY2hlY2tlZFJvdygpW2tleV07XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGF0YSBhcyBhbnlbXSkge1xyXG4gICAgICAgIGl0ZW1ba2V5XSA9IGFyci5pbmNsdWRlcyhpdGVtLmlkKTtcclxuICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCBpdGVtXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHJlc3VsdC5sZW5ndGggPiAwKSBkYXRhID0gWy4uLnJlc3VsdF07XHJcbiAgfVxyXG5cclxuICBzZXRIZWFkQ2hlY2tib3hMaXN0KGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuaGVhZENoZWNrYm94TGlzdCgpKSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5oZWFkQ2hlY2tib3hMaXN0KCkpIHtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGNvbnN0IGdldENoaWxkcmVuID0gKG5vZGU6IFhUYWJsZVJvdywgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgICBub2RlLmxldmVsID0gbGV2ZWw7XHJcbiAgICAgIG5vZGUuZXhwYW5kZWQgPSB0aGlzLmV4cGFuZGVkQWxsKCkgfHwgbGV2ZWwgPD0gdGhpcy5leHBhbmRlZExldmVsKCkgfHwgdGhpcy5leHBhbmRlZCgpLmluY2x1ZGVzKG5vZGUuaWQpO1xyXG4gICAgICBpZiAoWElzVW5kZWZpbmVkKG5vZGUuY2hpbGRyZW4pKSBub2RlLmNoaWxkcmVuID0gZGF0YS5maWx0ZXIoKHkpID0+IHkucGlkID09PSBub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmxlYWYpKSBub2RlLmxlYWYgPSAobm9kZS5jaGlsZHJlbj8ubGVuZ3RoIGFzIG51bWJlcikgPiAwO1xyXG4gICAgICBpZiAobm9kZS5sZWFmKSBub2RlLmNoaWxkcmVuPy5tYXAoKHkpID0+IGdldENoaWxkcmVuKHksIGxldmVsICsgMSkpO1xyXG4gICAgICByZXR1cm4gbm9kZTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEuc2V0KFxyXG4gICAgICBkYXRhXHJcbiAgICAgICAgLmZpbHRlcigoeCkgPT4gWElzRW1wdHkoeC5waWQpKVxyXG4gICAgICAgIC5tYXAoKHgsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICBpZiAoWElzVW5kZWZpbmVkKHguaWQpKSB4LmlkID0gaW5kZXggKyAxO1xyXG4gICAgICAgICAgcmV0dXJuIGdldENoaWxkcmVuKHgsIDApO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kZWRBbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMudHJlZVRhYmxlKCkgfHwgdGhpcy50cmVlVGFibGVEYXRhKCk/Lmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgc2V0Q2hpbGRyZW4gPSAobm9kZXM6IFhUYWJsZVJvd1tdKSA9PiB7XHJcbiAgICAgIGlmIChYSXNFbXB0eShub2RlcykpIHJldHVybjtcclxuICAgICAgbm9kZXMuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICAgIHguZXhwYW5kZWQgPSBCb29sZWFuKHRoaXMuZXhwYW5kZWRBbGwpO1xyXG4gICAgICAgIHNldENoaWxkcmVuKHguY2hpbGRyZW4gYXMgWFRhYmxlUm93W10pO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcbiAgICB0aGlzLnRyZWVUYWJsZURhdGEudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgIHNldENoaWxkcmVuKHgpO1xyXG4gICAgICByZXR1cm4gWy4uLnhdO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGxldCBxdWVyeSA9IHRoaXMucXVlcnkoKTtcclxuICAgIGlmICh0eXBlb2YgcXVlcnkgPT09ICd1bmRlZmluZWQnKSBxdWVyeSA9IHt9O1xyXG4gICAgcXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5LnNldChxdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS51cGRhdGUoKHopID0+IHtcclxuICAgICAgei5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgICAgaWYgKCF4LmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB4W2NvbHVtbi5pZF0gPSBjaGVja2VkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBbLi4uel07XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hDaGFuZ2UuZW1pdCh7IHJvd3M6IHRoaXMudGFibGVEYXRhKCksIGNoZWNrYm94OiB0aGlzLmNoZWNrZWRWYWx1ZXMoKSB9KTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgYm9keUNoZWNrZWQoX2NoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uLCByb3c6IFhUYWJsZVJvdykge1xyXG4gICAgdGhpcy5zZXRDaGVja2VkVmFsdWVzKGNvbHVtbik7XHJcbiAgICB0aGlzLmJvZHlDaGVja2JveENoYW5nZS5lbWl0KHJvdyk7XHJcbiAgICAvLyB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWRWYWx1ZXMoY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIGNvbnN0IG5vdERpc2FibGVkID0gdGhpcy50YWJsZURhdGEoKS5maWx0ZXIoKHgpID0+ICF4LmRpc2FibGVkKTtcclxuICAgIGNvbnN0IGNvdW50ID0gbm90RGlzYWJsZWQubGVuZ3RoO1xyXG4gICAgY29uc3QgY2hlY2tlZExlbiA9IG5vdERpc2FibGVkLmZpbHRlcigoeCkgPT4geFtjb2x1bW4uaWRdKS5sZW5ndGg7XHJcbiAgICB0aGlzLmNoZWNrZWRWYWx1ZXMudXBkYXRlKCh4KSA9PiB7XHJcbiAgICAgIHhbY29sdW1uLmlkXSA9IGNvdW50ID09PSBjaGVja2VkTGVuICYmIGNvdW50ICE9PSAwO1xyXG4gICAgICB4W2NvbHVtbi5pZCArIHRoaXMuaW5kZXRlcm1pbmF0ZSgpXSA9IGNoZWNrZWRMZW4gPiAwICYmIGNoZWNrZWRMZW4gPCBjb3VudDtcclxuICAgICAgcmV0dXJuIHsgLi4ueCB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkZXRlY3RDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5oZWFkQ29tKCk/LmZvckVhY2goKHgpID0+IHtcclxuICAgICAgeC5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuYm9keUNvbSgpPy5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHguY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvb3RDb20oKT8uY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjx0YWJsZVxyXG4gICN0YWJsZVxyXG4gIGNsYXNzPVwieC10YWJsZVwiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXAoKVwiXHJcbiAgW3gtbG9hZGluZ109XCJsb2FkaW5nKCkgJiYgZ2V0dGluZygpXCJcclxuICBbY2xhc3MueC10YWJsZS13cmFwLWJvcmRlci1oaWRkZW5dPVwiaGlkZGVuV3JhcEJvcmRlcigpXCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtbGVmdF09XCJnZXRTY3JvbGxMZWZ0KClcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0LW1heF09XCJzY3JvbGxMZWZ0TWF4KClcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC10b3BdPVwiZ2V0U2Nyb2xsVG9wKClcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtcmlnaHRdPVwic2Nyb2xsWVdpZHRoKClcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtYm90dG9tXT1cInNjcm9sbFhXaWR0aCgpXCJcclxuICBbY2xhc3MueC10YWJsZS1ib3JkZXJlZF09XCJib3JkZXJlZCgpXCJcclxuICBbY2xhc3MueC10YWJsZS10ZC1hZGFwdGlvbi1oZWlnaHRdPVwicm93SGVpZ2h0KCkgPT0gMFwiXHJcbiAgW2NsYXNzLngtdGFibGUtY2VsbC1jb25maWddPVwiISFjZWxsQ29uZmlnU2lnbmFsKClcIlxyXG4+XHJcbiAgQGlmIChoZWFkZXIoKSkge1xyXG4gICAgPGNhcHRpb24gI2NhcHRpb24gY2xhc3M9XCJ4LXRhYmxlLWhlYWRlclwiIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIiBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiaGVhZGVyKClcIj57eyBoZWFkZXIoKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9jYXB0aW9uPlxyXG4gIH1cclxuICBAaWYgKHNob3dIZWFkZXIoKSAmJiAoaGVhZGVyUG9zaXRpb24oKSA9PT0gJ3RvcCcgfHwgaGVhZGVyUG9zaXRpb24oKSA9PT0gJ3RvcC1ib3R0b20nKSkge1xyXG4gICAgPHgtdGFibGUtaGVhZFxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zKClcIlxyXG4gICAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodCgpXCJcclxuICAgICAgW2NvbHVtblRwbF09XCJoZWFkQ29sdW1uVHBsKClcIlxyXG4gICAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aCgpXCJcclxuICAgICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGgoKSFcIlxyXG4gICAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnU2lnbmFsKCk/LnRoZWFkXCJcclxuICAgICAgW3Bvc2l0aW9uXT1cIid0b3AnXCJcclxuICAgID48L3gtdGFibGUtaGVhZD5cclxuICB9XHJcbiAgPHgtdGFibGUtYm9keVxyXG4gICAgW2RhdGFdPVwidHJlZVRhYmxlKCkgPyB0cmVlVGFibGVEYXRhKCkgOiB0YWJsZURhdGEoKVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zKClcIlxyXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplKClcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHQoKVwiXHJcbiAgICBbYm9keUhlaWdodF09XCJib2R5SGVpZ2h0KCkhXCJcclxuICAgIFtjb2x1bW5UcGxdPVwiYm9keUNvbHVtblRwbCgpXCJcclxuICAgIFthbGxvd1NlbGVjdFJvd109XCJhbGxvd1NlbGVjdFJvdygpXCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGwoKVwiXHJcbiAgICBbbWluQnVmZmVyUHhdPVwibWluQnVmZmVyUHgoKVwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHgoKVwiXHJcbiAgICBbYWRhcHRpb25IZWlnaHRdPVwiYWRhcHRpb25IZWlnaHQoKSFcIlxyXG4gICAgW2RvY1BlcmNlbnRdPVwiZG9jUGVyY2VudCgpXCJcclxuICAgIFtzY3JvbGxdPVwic2Nyb2xsKClcIlxyXG4gICAgW3Jvd0NsYXNzXT1cInJvd0NsYXNzKClcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZ1NpZ25hbCgpPy50Ym9keVwiXHJcbiAgICBbZXhwYW5kZWRBbGxdPVwiZXhwYW5kZWRBbGwoKVwiXHJcbiAgICBbZXhwYW5kVHBsXT1cImV4cGFuZFRwbCgpXCJcclxuICAgIFsoYWN0aXZhdGVkUm93KV09XCJhY3RpdmF0ZWRSb3dcIlxyXG4gID48L3gtdGFibGUtYm9keT5cclxuICBAaWYgKHNob3dIZWFkZXIoKSAmJiAoaGVhZGVyUG9zaXRpb24oKSA9PT0gJ2JvdHRvbScgfHwgaGVhZGVyUG9zaXRpb24oKSA9PT0gJ3RvcC1ib3R0b20nKSkge1xyXG4gICAgPHgtdGFibGUtaGVhZFxyXG4gICAgICBbY29sdW1uc109XCJjb2x1bW5zKClcIlxyXG4gICAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodCgpXCJcclxuICAgICAgW2NvbHVtblRwbF09XCJoZWFkQ29sdW1uVHBsKClcIlxyXG4gICAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aCgpXCJcclxuICAgICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGgoKSFcIlxyXG4gICAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnU2lnbmFsKCk/LnRoZWFkXCJcclxuICAgICAgW3Bvc2l0aW9uXT1cIidib3R0b20nXCJcclxuICAgID48L3gtdGFibGUtaGVhZD5cclxuICB9XHJcbiAgQGlmIChmb290ZXIoKSkge1xyXG4gICAgPHgtdGFibGUtZm9vdCBbZm9vdGVyXT1cImZvb3RlcigpXCIgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHQoKVwiPjwveC10YWJsZS1mb290PlxyXG4gIH1cclxuICBAaWYgKGhhc1N0aWNreVRvcFJpZ2h0KCkpIHtcclxuICAgIDxkaXZcclxuICAgICAgI3N0aWNreVRvcFJpZ2h0RWxlXHJcbiAgICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsKClcIlxyXG4gICAgICBbc3R5bGUudG9wLnB4XT1cImdldFN0aWNreVRvcFNjcm9sbFRvcCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aCgpXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodCgpXCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lUb3BSaWdodCgpICYmIGhlYWRTZWFyY2hUcGwoKSkge1xyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICAgIFtzdHlsZS50b3AucHhdPVwiZ2V0U3RpY2t5VG9wU2Nyb2xsVG9wKCkgKyBnZXRTdGlja3lUb3BSaWdodEVsZUhlaWdodCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoLnB4XT1cInNjcm9sbFlXaWR0aCgpXCJcclxuICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodCgpXCJcclxuICAgID48L2Rpdj5cclxuICB9XHJcbiAgQGlmIChoYXNTdGlja3lCb3R0b21SaWdodCgpKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgICNzdGlja3lCb3R0b21SaWdodEVsZVxyXG4gICAgICBjbGFzcz1cIngtdGFibGUtc3RpY2t5LXJpZ2h0LXNjcm9sbFwiXHJcbiAgICAgIFtzdHlsZS5ib3R0b20ucHhdPVwiZ2V0U3RpY2t5Qm90dG9tU2Nyb2xsVG9wKClcIlxyXG4gICAgICBbc3R5bGUud2lkdGgucHhdPVwic2Nyb2xsWVdpZHRoKClcIlxyXG4gICAgICBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodCgpXCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgPjwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGhhc1N0aWNreUJvdHRvbVJpZ2h0KCkgJiYgaGVhZFNlYXJjaFRwbCgpKSB7XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgICAgW2NsYXNzLngtdGFibGUtYm9yZGVyLWJvdHRvbV09XCJoZWFkU2VhcmNoVHBsKClcIlxyXG4gICAgICBbc3R5bGUuYm90dG9tLnB4XT1cImdldFN0aWNreUJvdHRvbVNjcm9sbFRvcCgpICsgZ2V0U3RpY2t5Qm90dG9tUmlnaHRFbGVIZWlnaHQoKVwiXHJcbiAgICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGgoKVwiXHJcbiAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0KClcIlxyXG4gICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJnZXRSb3dIZWlnaHQoKVwiXHJcbiAgICA+PC9kaXY+XHJcbiAgfVxyXG48L3RhYmxlPlxyXG5AaWYgKHNob3dQYWdpbmF0aW9uKCkgJiYgc2l6ZSgpKSB7XHJcbiAgPHgtcGFnaW5hdGlvblxyXG4gICAgI3BhZ2luYXRpb25cclxuICAgIFsoaW5kZXgpXT1cImluZGV4XCJcclxuICAgIFsoc2l6ZSldPVwic2l6ZVwiXHJcbiAgICBbKHF1ZXJ5KV09XCJxdWVyeVwiXHJcbiAgICBbdG90YWxdPVwidG90YWwoKVwiXHJcbiAgICAoaW5kZXhDaGFuZ2UpPVwicGFnZUNoYW5nZSgnaW5kZXgnKVwiXHJcbiAgICAoc2l6ZUNoYW5nZSk9XCJwYWdlQ2hhbmdlKCdzaXplJylcIlxyXG4gICAgW3Nob3dFbGxpcHNpc109XCJzaG93RWxsaXBzaXMoKVwiXHJcbiAgICBbc2hvd1RvdGFsXT1cInNob3dUb3RhbCgpXCJcclxuICAgIFtzcGFjZV09XCJzcGFjZSgpXCJcclxuICAgIFtzaG93QmFja2dyb3VuZF09XCJzaG93QmFja2dyb3VuZCgpXCJcclxuICAgIFtzaG93U2l6ZV09XCJzaG93U2l6ZSgpXCJcclxuICAgIFtzaG93SnVtcF09XCJzaG93SnVtcCgpXCJcclxuICAgIFtqdW1wV2lkdGhdPVwianVtcFdpZHRoKClcIlxyXG4gICAgW3Nob3dJbnB1dFNpemVdPVwic2hvd0lucHV0U2l6ZSgpXCJcclxuICAgIFtpbnB1dFNpemVXaWR0aF09XCJpbnB1dFNpemVXaWR0aCgpXCJcclxuICAgIFtzaXplRGF0YV09XCJzaXplRGF0YSgpXCJcclxuICAgIFtzaXplV2lkdGhdPVwic2l6ZVdpZHRoKClcIlxyXG4gICAgW3BhZ2VMaW5rU2l6ZV09XCJwYWdlTGlua1NpemUoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICBbdG90YWxUcGxdPVwidG90YWxUcGwoKVwiXHJcbiAgICBbc2ltcGxlXT1cInNpbXBsZSgpXCJcclxuICAgIFtzaW1wbGVJbmRleFdpZHRoXT1cInNpbXBsZUluZGV4V2lkdGgoKVwiXHJcbiAgPlxyXG4gIDwveC1wYWdpbmF0aW9uPlxyXG59XHJcbiJdfQ==
|