pdm-ui-kit 0.4.2 → 1.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/accordion/accordion.module.d.ts +8 -0
- package/accordion/index.d.ts +2 -0
- package/accordion/index.mjs +2 -0
- package/alert/alert.module.d.ts +9 -0
- package/alert/index.d.ts +3 -0
- package/alert/index.mjs +3 -0
- package/aspect-ratio/aspect-ratio.module.d.ts +8 -0
- package/aspect-ratio/index.d.ts +2 -0
- package/aspect-ratio/index.mjs +2 -0
- package/avatar/avatar.module.d.ts +8 -0
- package/avatar/index.d.ts +2 -0
- package/avatar/index.mjs +2 -0
- package/badge/badge.module.d.ts +8 -0
- package/badge/index.d.ts +2 -0
- package/badge/index.mjs +2 -0
- package/breadcrumb/breadcrumb.module.d.ts +8 -0
- package/breadcrumb/index.d.ts +2 -0
- package/breadcrumb/index.mjs +2 -0
- package/button/button.module.d.ts +9 -0
- package/button/index.d.ts +3 -0
- package/button/index.mjs +3 -0
- package/calendar/calendar.module.d.ts +11 -0
- package/{lib/components/date-picker → calendar}/date-picker.component.d.ts +1 -1
- package/calendar/index.d.ts +3 -0
- package/calendar/index.mjs +3 -0
- package/card/card.module.d.ts +8 -0
- package/card/index.d.ts +2 -0
- package/card/index.mjs +2 -0
- package/carousel/carousel.module.d.ts +8 -0
- package/carousel/index.d.ts +2 -0
- package/carousel/index.mjs +2 -0
- package/chart/chart.module.d.ts +8 -0
- package/chart/index.d.ts +2 -0
- package/chart/index.mjs +2 -0
- package/checkbox/checkbox.module.d.ts +8 -0
- package/checkbox/index.d.ts +2 -0
- package/checkbox/index.mjs +2 -0
- package/collapsible/collapsible.module.d.ts +8 -0
- package/collapsible/index.d.ts +2 -0
- package/collapsible/index.mjs +2 -0
- package/combobox/combobox.module.d.ts +9 -0
- package/combobox/index.d.ts +2 -0
- package/combobox/index.mjs +2 -0
- package/command/command.module.d.ts +9 -0
- package/command/index.d.ts +2 -0
- package/command/index.mjs +2 -0
- package/context-menu/context-menu.module.d.ts +9 -0
- package/context-menu/index.d.ts +2 -0
- package/context-menu/index.mjs +2 -0
- package/{lib/components/data-table → data-table}/data-table.component.d.ts +1 -1
- package/data-table/data-table.module.d.ts +10 -0
- package/{lib/components/draggable-table → data-table}/draggable-table.component.d.ts +2 -2
- package/data-table/index.d.ts +4 -0
- package/data-table/index.mjs +4 -0
- package/{lib/components/table → data-table}/table.component.d.ts +1 -1
- package/dialog/dialog.module.d.ts +8 -0
- package/dialog/index.d.ts +2 -0
- package/dialog/index.mjs +2 -0
- package/drawer/drawer.module.d.ts +10 -0
- package/drawer/index.d.ts +3 -0
- package/drawer/index.mjs +3 -0
- package/{lib/components/dropdown-menu → dropdown-menu}/dropdown-menu.component.d.ts +1 -1
- package/dropdown-menu/dropdown-menu.module.d.ts +9 -0
- package/dropdown-menu/index.d.ts +2 -0
- package/dropdown-menu/index.mjs +2 -0
- package/empty/empty.module.d.ts +10 -0
- package/empty/index.d.ts +2 -0
- package/empty/index.mjs +2 -0
- package/esm2020/{lib/components/accordion → accordion}/accordion.component.mjs +1 -1
- package/esm2020/accordion/accordion.module.mjs +21 -0
- package/esm2020/{lib/components/alert-dialog → alert}/alert-dialog.component.mjs +1 -1
- package/esm2020/{lib/components/alert → alert}/alert.component.mjs +1 -1
- package/esm2020/alert/alert.module.mjs +25 -0
- package/esm2020/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.mjs +1 -1
- package/esm2020/aspect-ratio/aspect-ratio.module.mjs +21 -0
- package/esm2020/{lib/components/avatar → avatar}/avatar.component.mjs +1 -1
- package/esm2020/avatar/avatar.module.mjs +21 -0
- package/esm2020/{lib/components/badge → badge}/badge.component.mjs +1 -1
- package/esm2020/badge/badge.module.mjs +21 -0
- package/esm2020/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.mjs +1 -1
- package/esm2020/breadcrumb/breadcrumb.module.mjs +21 -0
- package/esm2020/button/button-group.component.mjs +236 -0
- package/esm2020/button/button.component.mjs +114 -0
- package/esm2020/button/button.module.mjs +25 -0
- package/esm2020/calendar/calendar.component.mjs +529 -0
- package/esm2020/calendar/calendar.module.mjs +22 -0
- package/esm2020/{lib/components/date-picker → calendar}/date-picker.component.mjs +6 -6
- package/esm2020/{lib/components/card → card}/card.component.mjs +1 -1
- package/esm2020/card/card.module.mjs +21 -0
- package/esm2020/carousel/carousel.component.mjs +102 -0
- package/esm2020/carousel/carousel.module.mjs +21 -0
- package/esm2020/{lib/components/chart → chart}/chart.component.mjs +1 -1
- package/esm2020/chart/chart.module.mjs +21 -0
- package/esm2020/{lib/components/checkbox → checkbox}/checkbox.component.mjs +1 -1
- package/esm2020/checkbox/checkbox.module.mjs +21 -0
- package/esm2020/{lib/components/collapsible → collapsible}/collapsible.component.mjs +1 -1
- package/esm2020/collapsible/collapsible.module.mjs +21 -0
- package/esm2020/combobox/combobox.component.mjs +173 -0
- package/esm2020/combobox/combobox.module.mjs +22 -0
- package/esm2020/command/command.component.mjs +75 -0
- package/esm2020/command/command.module.mjs +20 -0
- package/esm2020/context-menu/context-menu.component.mjs +165 -0
- package/esm2020/context-menu/context-menu.module.mjs +22 -0
- package/esm2020/data-table/data-table.component.mjs +299 -0
- package/esm2020/data-table/data-table.module.mjs +29 -0
- package/esm2020/data-table/draggable-table.component.mjs +300 -0
- package/esm2020/data-table/table.component.mjs +182 -0
- package/esm2020/{lib/components/dialog → dialog}/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +21 -0
- package/esm2020/{lib/components/drawer → drawer}/drawer.component.mjs +2 -2
- package/esm2020/drawer/drawer.module.mjs +21 -0
- package/esm2020/drawer/sheet.component.mjs +116 -0
- package/esm2020/dropdown-menu/dropdown-menu.component.mjs +192 -0
- package/esm2020/dropdown-menu/dropdown-menu.module.mjs +22 -0
- package/esm2020/{lib/components/empty → empty}/empty.component.mjs +1 -1
- package/esm2020/empty/empty.module.mjs +21 -0
- package/esm2020/{lib/components/field → field}/field.component.mjs +1 -1
- package/esm2020/field/field.module.mjs +21 -0
- package/esm2020/hover-card/hover-card.component.mjs +205 -0
- package/esm2020/hover-card/hover-card.module.mjs +22 -0
- package/esm2020/icon/icon.component.mjs +144 -0
- package/esm2020/icon/icon.module.mjs +21 -0
- package/esm2020/{lib/components/input-group → input}/input-group.component.mjs +1 -1
- package/esm2020/input/input-otp.component.mjs +144 -0
- package/esm2020/{lib/components/input-password → input}/input-password.component.mjs +1 -1
- package/esm2020/{lib/components/input → input}/input.component.mjs +1 -1
- package/esm2020/input/input.module.mjs +38 -0
- package/esm2020/{lib/components/textarea → input}/textarea.component.mjs +1 -1
- package/esm2020/{lib/components/item → item}/item.component.mjs +1 -1
- package/esm2020/item/item.module.mjs +21 -0
- package/esm2020/{lib/components/kbd → kbd}/kbd.component.mjs +1 -1
- package/esm2020/kbd/kbd.module.mjs +21 -0
- package/esm2020/{lib/components/label → label}/label.component.mjs +1 -1
- package/esm2020/label/label.module.mjs +21 -0
- package/esm2020/menubar/menubar.component.mjs +144 -0
- package/esm2020/menubar/menubar.module.mjs +22 -0
- package/esm2020/{lib/components/native-select → native-select}/native-select.component.mjs +1 -1
- package/esm2020/native-select/native-select.module.mjs +20 -0
- package/esm2020/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.mjs +1 -1
- package/esm2020/navigation-menu/navigation-menu.module.mjs +21 -0
- package/esm2020/overlay/create-flexible-position-strategy.mjs +54 -0
- package/esm2020/overlay/pdm-outside-click.directive.mjs +86 -0
- package/esm2020/overlay/pdm-outside-click.module.mjs +18 -0
- package/esm2020/overlay/pdm-overlay-options.mjs +2 -0
- package/esm2020/overlay/z-index-helper.mjs +69 -0
- package/esm2020/{lib/components/pagination → pagination}/pagination.component.mjs +1 -1
- package/esm2020/pagination/pagination.module.mjs +21 -0
- package/esm2020/pdm-ui-kit.module.mjs +260 -0
- package/esm2020/popover/popover.component.mjs +162 -0
- package/esm2020/popover/popover.module.mjs +22 -0
- package/esm2020/{lib/components/progress → progress}/progress.component.mjs +1 -1
- package/esm2020/progress/progress.module.mjs +21 -0
- package/esm2020/public-api.mjs +117 -67
- package/esm2020/{lib/components/radio-group → radio-group}/radio-group.component.mjs +1 -1
- package/esm2020/radio-group/radio-group.module.mjs +21 -0
- package/esm2020/{lib/components/scroll-area → scroll-area}/scroll-area.component.mjs +1 -1
- package/esm2020/scroll-area/scroll-area.module.mjs +21 -0
- package/esm2020/select/select-option.directive.mjs +55 -0
- package/esm2020/select/select.component.mjs +164 -0
- package/esm2020/select/select.module.mjs +22 -0
- package/esm2020/{lib/components/separator → separator}/separator.component.mjs +1 -1
- package/esm2020/separator/separator.module.mjs +21 -0
- package/esm2020/{lib/components/sidebar → sidebar}/sidebar.component.mjs +1 -1
- package/esm2020/sidebar/sidebar.module.mjs +21 -0
- package/esm2020/{lib/components/skeleton → skeleton}/skeleton.component.mjs +1 -1
- package/esm2020/skeleton/skeleton.module.mjs +21 -0
- package/esm2020/{lib/components/slider → slider}/slider.component.mjs +1 -1
- package/esm2020/slider/slider.module.mjs +21 -0
- package/esm2020/{lib/components/sonner → sonner}/sonner.component.mjs +1 -1
- package/esm2020/sonner/sonner.module.mjs +20 -0
- package/esm2020/{lib/components/spinner → spinner}/spinner.component.mjs +1 -1
- package/esm2020/spinner/spinner.module.mjs +21 -0
- package/esm2020/switch/switch.component.mjs +58 -0
- package/esm2020/switch/switch.module.mjs +21 -0
- package/esm2020/{lib/components/tabs → tabs}/tabs.component.mjs +1 -1
- package/esm2020/tabs/tabs.module.mjs +21 -0
- package/esm2020/{lib/components/toggle-group → toggle}/toggle-group.component.mjs +1 -1
- package/esm2020/{lib/components/toggle → toggle}/toggle.component.mjs +1 -1
- package/esm2020/toggle/toggle.module.mjs +25 -0
- package/esm2020/tooltip/tooltip.component.mjs +176 -0
- package/esm2020/tooltip/tooltip.module.mjs +22 -0
- package/esm2020/utils/responsive.mjs +143 -0
- package/esm2020/utils/z-index.mjs +90 -0
- package/fesm2015/pdm-ui-kit.mjs +3332 -2492
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit.mjs +2668 -1828
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/field/field.module.d.ts +8 -0
- package/field/index.d.ts +2 -0
- package/field/index.mjs +2 -0
- package/hover-card/hover-card.module.d.ts +9 -0
- package/hover-card/index.d.ts +2 -0
- package/hover-card/index.mjs +2 -0
- package/icon/icon.module.d.ts +8 -0
- package/icon/index.d.ts +2 -0
- package/icon/index.mjs +2 -0
- package/input/index.d.ts +6 -0
- package/input/index.mjs +6 -0
- package/input/input.module.d.ts +13 -0
- package/item/index.d.ts +2 -0
- package/item/index.mjs +2 -0
- package/item/item.module.d.ts +8 -0
- package/kbd/index.d.ts +2 -0
- package/kbd/index.mjs +2 -0
- package/kbd/kbd.module.d.ts +8 -0
- package/label/index.d.ts +2 -0
- package/label/index.mjs +2 -0
- package/label/label.module.d.ts +8 -0
- package/menubar/index.d.ts +2 -0
- package/menubar/index.mjs +2 -0
- package/menubar/menubar.module.d.ts +9 -0
- package/native-select/index.d.ts +2 -0
- package/native-select/index.mjs +2 -0
- package/native-select/native-select.module.d.ts +9 -0
- package/navigation-menu/index.d.ts +2 -0
- package/navigation-menu/index.mjs +2 -0
- package/navigation-menu/navigation-menu.module.d.ts +8 -0
- package/overlay/index.d.ts +8 -0
- package/overlay/index.mjs +8 -0
- package/overlay/pdm-outside-click.module.d.ts +8 -0
- package/package.json +198 -2
- package/pagination/index.d.ts +2 -0
- package/pagination/index.mjs +2 -0
- package/pagination/pagination.module.d.ts +10 -0
- package/pdm-ui-kit.module.d.ts +60 -0
- package/popover/index.d.ts +2 -0
- package/popover/index.mjs +2 -0
- package/popover/popover.module.d.ts +9 -0
- package/progress/index.d.ts +2 -0
- package/progress/index.mjs +2 -0
- package/progress/progress.module.d.ts +8 -0
- package/public-api.d.ts +114 -66
- package/radio-group/index.d.ts +2 -0
- package/radio-group/index.mjs +2 -0
- package/radio-group/radio-group.module.d.ts +8 -0
- package/scroll-area/index.d.ts +2 -0
- package/scroll-area/index.mjs +2 -0
- package/scroll-area/scroll-area.module.d.ts +8 -0
- package/select/index.d.ts +3 -0
- package/select/index.mjs +3 -0
- package/{lib/components/select → select}/select.component.d.ts +1 -1
- package/select/select.module.d.ts +11 -0
- package/separator/index.d.ts +2 -0
- package/separator/index.mjs +2 -0
- package/separator/separator.module.d.ts +8 -0
- package/sidebar/index.d.ts +2 -0
- package/sidebar/index.mjs +2 -0
- package/sidebar/sidebar.module.d.ts +8 -0
- package/skeleton/index.d.ts +2 -0
- package/skeleton/index.mjs +2 -0
- package/skeleton/skeleton.module.d.ts +8 -0
- package/slider/index.d.ts +2 -0
- package/slider/index.mjs +2 -0
- package/slider/slider.module.d.ts +8 -0
- package/sonner/index.d.ts +2 -0
- package/sonner/index.mjs +2 -0
- package/sonner/sonner.module.d.ts +9 -0
- package/spinner/index.d.ts +2 -0
- package/spinner/index.mjs +2 -0
- package/spinner/spinner.module.d.ts +8 -0
- package/switch/index.d.ts +2 -0
- package/switch/index.mjs +2 -0
- package/switch/switch.module.d.ts +8 -0
- package/tabs/index.d.ts +2 -0
- package/tabs/index.mjs +2 -0
- package/tabs/tabs.module.d.ts +8 -0
- package/toggle/index.d.ts +3 -0
- package/toggle/index.mjs +3 -0
- package/toggle/toggle.module.d.ts +9 -0
- package/tooltip/index.d.ts +2 -0
- package/tooltip/index.mjs +2 -0
- package/tooltip/tooltip.module.d.ts +9 -0
- package/utils/index.d.ts +3 -0
- package/utils/index.mjs +3 -0
- package/esm2020/lib/components/button/button.component.mjs +0 -114
- package/esm2020/lib/components/button-group/button-group.component.mjs +0 -236
- package/esm2020/lib/components/calendar/calendar.component.mjs +0 -529
- package/esm2020/lib/components/carousel/carousel.component.mjs +0 -102
- package/esm2020/lib/components/combobox/combobox.component.mjs +0 -173
- package/esm2020/lib/components/command/command.component.mjs +0 -75
- package/esm2020/lib/components/context-menu/context-menu.component.mjs +0 -165
- package/esm2020/lib/components/data-table/data-table.component.mjs +0 -299
- package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +0 -300
- package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -192
- package/esm2020/lib/components/hover-card/hover-card.component.mjs +0 -205
- package/esm2020/lib/components/icon/icon.component.mjs +0 -144
- package/esm2020/lib/components/input-otp/input-otp.component.mjs +0 -144
- package/esm2020/lib/components/menubar/menubar.component.mjs +0 -144
- package/esm2020/lib/components/popover/popover.component.mjs +0 -162
- package/esm2020/lib/components/select/select-option.directive.mjs +0 -55
- package/esm2020/lib/components/select/select.component.mjs +0 -164
- package/esm2020/lib/components/sheet/sheet.component.mjs +0 -116
- package/esm2020/lib/components/switch/switch.component.mjs +0 -58
- package/esm2020/lib/components/table/table.component.mjs +0 -182
- package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -176
- package/esm2020/lib/overlay/create-flexible-position-strategy.mjs +0 -54
- package/esm2020/lib/overlay/pdm-outside-click.directive.mjs +0 -86
- package/esm2020/lib/overlay/pdm-overlay-options.mjs +0 -2
- package/esm2020/lib/overlay/z-index-helper.mjs +0 -69
- package/esm2020/lib/pdm-ui-kit.module.mjs +0 -258
- package/esm2020/lib/utils/responsive.mjs +0 -143
- package/esm2020/lib/utils/z-index.mjs +0 -90
- package/lib/pdm-ui-kit.module.d.ts +0 -68
- /package/{lib/components/accordion → accordion}/accordion.component.d.ts +0 -0
- /package/{lib/components/alert-dialog → alert}/alert-dialog.component.d.ts +0 -0
- /package/{lib/components/alert → alert}/alert.component.d.ts +0 -0
- /package/{lib/components/aspect-ratio → aspect-ratio}/aspect-ratio.component.d.ts +0 -0
- /package/{lib/components/avatar → avatar}/avatar.component.d.ts +0 -0
- /package/{lib/components/badge → badge}/badge.component.d.ts +0 -0
- /package/{lib/components/breadcrumb → breadcrumb}/breadcrumb.component.d.ts +0 -0
- /package/{lib/components/button-group → button}/button-group.component.d.ts +0 -0
- /package/{lib/components/button → button}/button.component.d.ts +0 -0
- /package/{lib/components/calendar → calendar}/calendar.component.d.ts +0 -0
- /package/{lib/components/card → card}/card.component.d.ts +0 -0
- /package/{lib/components/carousel → carousel}/carousel.component.d.ts +0 -0
- /package/{lib/components/chart → chart}/chart.component.d.ts +0 -0
- /package/{lib/components/checkbox → checkbox}/checkbox.component.d.ts +0 -0
- /package/{lib/components/collapsible → collapsible}/collapsible.component.d.ts +0 -0
- /package/{lib/components/combobox → combobox}/combobox.component.d.ts +0 -0
- /package/{lib/components/command → command}/command.component.d.ts +0 -0
- /package/{lib/components/context-menu → context-menu}/context-menu.component.d.ts +0 -0
- /package/{lib/components/dialog → dialog}/dialog.component.d.ts +0 -0
- /package/{lib/components/drawer → drawer}/drawer.component.d.ts +0 -0
- /package/{lib/components/sheet → drawer}/sheet.component.d.ts +0 -0
- /package/{lib/components/empty → empty}/empty.component.d.ts +0 -0
- /package/{lib/components/field → field}/field.component.d.ts +0 -0
- /package/{lib/components/hover-card → hover-card}/hover-card.component.d.ts +0 -0
- /package/{lib/components/icon → icon}/icon.component.d.ts +0 -0
- /package/{lib/components/input-group → input}/input-group.component.d.ts +0 -0
- /package/{lib/components/input-otp → input}/input-otp.component.d.ts +0 -0
- /package/{lib/components/input-password → input}/input-password.component.d.ts +0 -0
- /package/{lib/components/input → input}/input.component.d.ts +0 -0
- /package/{lib/components/textarea → input}/textarea.component.d.ts +0 -0
- /package/{lib/components/item → item}/item.component.d.ts +0 -0
- /package/{lib/components/kbd → kbd}/kbd.component.d.ts +0 -0
- /package/{lib/components/label → label}/label.component.d.ts +0 -0
- /package/{lib/components/menubar → menubar}/menubar.component.d.ts +0 -0
- /package/{lib/components/native-select → native-select}/native-select.component.d.ts +0 -0
- /package/{lib/components/navigation-menu → navigation-menu}/navigation-menu.component.d.ts +0 -0
- /package/{lib/overlay → overlay}/create-flexible-position-strategy.d.ts +0 -0
- /package/{lib/overlay → overlay}/pdm-outside-click.directive.d.ts +0 -0
- /package/{lib/overlay → overlay}/pdm-overlay-options.d.ts +0 -0
- /package/{lib/overlay → overlay}/z-index-helper.d.ts +0 -0
- /package/{lib/components/pagination → pagination}/pagination.component.d.ts +0 -0
- /package/{lib/components/popover → popover}/popover.component.d.ts +0 -0
- /package/{lib/components/progress → progress}/progress.component.d.ts +0 -0
- /package/{lib/components/radio-group → radio-group}/radio-group.component.d.ts +0 -0
- /package/{lib/components/scroll-area → scroll-area}/scroll-area.component.d.ts +0 -0
- /package/{lib/components/select → select}/select-option.directive.d.ts +0 -0
- /package/{lib/components/separator → separator}/separator.component.d.ts +0 -0
- /package/{lib/components/sidebar → sidebar}/sidebar.component.d.ts +0 -0
- /package/{lib/components/skeleton → skeleton}/skeleton.component.d.ts +0 -0
- /package/{lib/components/slider → slider}/slider.component.d.ts +0 -0
- /package/{lib/components/sonner → sonner}/sonner.component.d.ts +0 -0
- /package/{lib/components/spinner → spinner}/spinner.component.d.ts +0 -0
- /package/src/{lib/styles → styles}/tokens.css +0 -0
- /package/{lib/components/switch → switch}/switch.component.d.ts +0 -0
- /package/{lib/components/tabs → tabs}/tabs.component.d.ts +0 -0
- /package/{lib/components/toggle-group → toggle}/toggle-group.component.d.ts +0 -0
- /package/{lib/components/toggle → toggle}/toggle.component.d.ts +0 -0
- /package/{lib/components/tooltip → tooltip}/tooltip.component.d.ts +0 -0
- /package/{lib/utils → utils}/responsive.d.ts +0 -0
- /package/{lib/utils → utils}/z-index.d.ts +0 -0
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
2
|
-
import { TemplatePortal } from "@angular/cdk/portal";
|
|
3
|
-
import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class PdmMenubarComponent {
|
|
8
|
-
constructor(overlay, viewContainerRef, elementRef, cdr) {
|
|
9
|
-
this.overlay = overlay;
|
|
10
|
-
this.viewContainerRef = viewContainerRef;
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
this.cdr = cdr;
|
|
13
|
-
this.menus = [];
|
|
14
|
-
this.className = "";
|
|
15
|
-
this.panelClassName = "";
|
|
16
|
-
this.itemSelect = new EventEmitter();
|
|
17
|
-
this.openIndex = -1;
|
|
18
|
-
this.overlayRef = null;
|
|
19
|
-
this.outsideClickSub = null;
|
|
20
|
-
}
|
|
21
|
-
ngOnInit() { }
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this.destroyOverlay();
|
|
24
|
-
}
|
|
25
|
-
onDocumentClickOrEsc(event) {
|
|
26
|
-
// Close on escape
|
|
27
|
-
if (event.type === "keydown") {
|
|
28
|
-
if (this.openIndex >= 0) {
|
|
29
|
-
this.openIndex = -1;
|
|
30
|
-
this.cdr.markForCheck();
|
|
31
|
-
}
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
// Close on click outside
|
|
35
|
-
if (this.openIndex >= 0) {
|
|
36
|
-
const target = event.target;
|
|
37
|
-
if (!this.elementRef.nativeElement.contains(target)) {
|
|
38
|
-
this.openIndex = -1;
|
|
39
|
-
this.cdr.markForCheck();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
toggle(index, event) {
|
|
44
|
-
event.stopPropagation();
|
|
45
|
-
this.openIndex = this.openIndex === index ? -1 : index;
|
|
46
|
-
this.cdr.markForCheck();
|
|
47
|
-
if (this.openIndex >= 0) {
|
|
48
|
-
this.createOverlay(event);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
this.destroyOverlay();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
select(value) {
|
|
55
|
-
this.itemSelect.emit(value);
|
|
56
|
-
this.openIndex = -1;
|
|
57
|
-
this.cdr.markForCheck();
|
|
58
|
-
this.destroyOverlay();
|
|
59
|
-
}
|
|
60
|
-
selectItem(item) {
|
|
61
|
-
if (item.disabled || !item.value) {
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
this.select(item.value);
|
|
65
|
-
}
|
|
66
|
-
createOverlay(event) {
|
|
67
|
-
this.destroyOverlay();
|
|
68
|
-
const triggerEl = event.currentTarget;
|
|
69
|
-
const positionStrategy = this.overlay
|
|
70
|
-
.position()
|
|
71
|
-
.flexibleConnectedTo(triggerEl)
|
|
72
|
-
.withPositions(this.getPositionConfigs())
|
|
73
|
-
.withFlexibleDimensions(false)
|
|
74
|
-
.withPush(true);
|
|
75
|
-
const panelClass = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX, this.panelClassName);
|
|
76
|
-
this.overlayRef = this.overlay.create({
|
|
77
|
-
positionStrategy,
|
|
78
|
-
panelClass,
|
|
79
|
-
});
|
|
80
|
-
const portal = new TemplatePortal(this.menuTemplateRef, this.viewContainerRef);
|
|
81
|
-
this.overlayRef.attach(portal);
|
|
82
|
-
// Close on click outside
|
|
83
|
-
this.outsideClickSub = this.overlayRef
|
|
84
|
-
.outsidePointerEvents()
|
|
85
|
-
.subscribe(() => {
|
|
86
|
-
this.openIndex = -1;
|
|
87
|
-
this.cdr.markForCheck();
|
|
88
|
-
this.destroyOverlay();
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
destroyOverlay() {
|
|
92
|
-
if (this.outsideClickSub) {
|
|
93
|
-
this.outsideClickSub.unsubscribe();
|
|
94
|
-
this.outsideClickSub = null;
|
|
95
|
-
}
|
|
96
|
-
if (this.overlayRef) {
|
|
97
|
-
this.overlayRef.detach();
|
|
98
|
-
this.overlayRef.dispose();
|
|
99
|
-
this.overlayRef = null;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
getPositionConfigs() {
|
|
103
|
-
return [
|
|
104
|
-
{
|
|
105
|
-
originX: "start",
|
|
106
|
-
originY: "bottom",
|
|
107
|
-
overlayX: "start",
|
|
108
|
-
overlayY: "top",
|
|
109
|
-
offsetY: 4,
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
originX: "start",
|
|
113
|
-
originY: "top",
|
|
114
|
-
overlayX: "start",
|
|
115
|
-
overlayY: "bottom",
|
|
116
|
-
offsetY: -4,
|
|
117
|
-
},
|
|
118
|
-
];
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
PdmMenubarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
PdmMenubarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmMenubarComponent, selector: "pdm-menubar", inputs: { menus: "menus", className: "className", panelClassName: "panelClassName" }, outputs: { itemSelect: "itemSelect" }, host: { listeners: { "document:click": "onDocumentClickOrEsc()", "document:keydown.escape": "onDocumentClickOrEsc()" } }, viewQueries: [{ propertyName: "menuTemplateRef", first: true, predicate: ["menuTemplate"], descendants: true }], ngImport: i0, template: "<nav\n role=\"menubar\"\n [ngClass]=\"[\n 'inline-flex h-9 items-center gap-0.5 rounded-md border border-solid border-border bg-background p-1 shadow-sm',\n className,\n ]\"\n>\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button\n type=\"button\"\n class=\"inline-flex h-7 appearance-none box-border items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n [attr.aria-expanded]=\"openIndex === i\"\n (click)=\"toggle(i, $event)\"\n >\n {{ menu.label }}\n </button>\n </div>\n\n <!-- Template for CDK Overlay -->\n <ng-template #menuTemplate>\n <div\n class=\"min-w-40 rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\"\n >\n <button\n *ngFor=\"let item of menus[openIndex]?.items || []\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none box-border cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </ng-template>\n</nav>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
123
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmMenubarComponent, decorators: [{
|
|
124
|
-
type: Component,
|
|
125
|
-
args: [{ selector: "pdm-menubar", changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav\n role=\"menubar\"\n [ngClass]=\"[\n 'inline-flex h-9 items-center gap-0.5 rounded-md border border-solid border-border bg-background p-1 shadow-sm',\n className,\n ]\"\n>\n <div *ngFor=\"let menu of menus; let i = index\" class=\"relative\">\n <button\n type=\"button\"\n class=\"inline-flex h-7 appearance-none box-border items-center rounded-sm border-0 bg-transparent px-3 text-sm text-foreground hover:bg-accent focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n [attr.aria-expanded]=\"openIndex === i\"\n (click)=\"toggle(i, $event)\"\n >\n {{ menu.label }}\n </button>\n </div>\n\n <!-- Template for CDK Overlay -->\n <ng-template #menuTemplate>\n <div\n class=\"min-w-40 rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md sm:min-w-48\"\n >\n <button\n *ngFor=\"let item of menus[openIndex]?.items || []\"\n type=\"button\"\n [disabled]=\"item.disabled || !item.value\"\n class=\"relative flex w-full appearance-none box-border cursor-default select-none items-center rounded-sm border-0 bg-transparent px-2 py-1.5 text-sm outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground disabled:pointer-events-none disabled:opacity-50\"\n (click)=\"selectItem(item)\"\n >\n {{ item.label }}\n </button>\n </div>\n </ng-template>\n</nav>\n", styles: [":host{display:block}\n"] }]
|
|
126
|
-
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { menus: [{
|
|
127
|
-
type: Input
|
|
128
|
-
}], className: [{
|
|
129
|
-
type: Input
|
|
130
|
-
}], panelClassName: [{
|
|
131
|
-
type: Input
|
|
132
|
-
}], itemSelect: [{
|
|
133
|
-
type: Output
|
|
134
|
-
}], menuTemplateRef: [{
|
|
135
|
-
type: ViewChild,
|
|
136
|
-
args: ["menuTemplate"]
|
|
137
|
-
}], onDocumentClickOrEsc: [{
|
|
138
|
-
type: HostListener,
|
|
139
|
-
args: ["document:click"]
|
|
140
|
-
}, {
|
|
141
|
-
type: HostListener,
|
|
142
|
-
args: ["document:keydown.escape"]
|
|
143
|
-
}] } });
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVudWJhci9tZW51YmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZW51YmFyL21lbnViYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQWN0QyxNQUFNLE9BQU8sbUJBQW1CO0lBYy9CLFlBQ2tCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxVQUFtQyxFQUNuQyxHQUFzQjtRQUh0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDbkMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQi9CLFVBQUssR0FBcUIsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVuQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUVsRCxjQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFJUCxlQUFVLEdBQXNCLElBQUksQ0FBQztRQUNyQyxvQkFBZSxHQUFRLElBQUksQ0FBQztJQU9qQyxDQUFDO0lBRUosUUFBUSxLQUFVLENBQUM7SUFDbkIsV0FBVztRQUNWLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FB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LEtBQUs7c0JBQWIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFJb0IsZUFBZTtzQkFBekMsU0FBUzt1QkFBQyxjQUFjO2dCQW1CekIsb0JBQW9CO3NCQUZuQixZQUFZO3VCQUFDLGdCQUFnQjs7c0JBQzdCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7XG5cdG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MsXG5cdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxufSBmcm9tIFwiLi4vLi4vb3ZlcmxheS96LWluZGV4LWhlbHBlclwiO1xuaW1wb3J0IHsgUGRtTWVudUl0ZW0gfSBmcm9tIFwiLi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBkbU1lbnViYXJJdGVtIHtcblx0bGFiZWw6IHN0cmluZztcblx0aXRlbXM6IFBkbU1lbnVJdGVtW107XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogXCJwZG0tbWVudWJhclwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL21lbnViYXIuY29tcG9uZW50Lmh0bWxcIixcblx0c3R5bGVzOiBbXCI6aG9zdCB7IGRpc3BsYXk6IGJsb2NrOyB9XCJdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGRtTWVudWJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblx0QElucHV0KCkgbWVudXM6IFBkbU1lbnViYXJJdGVtW10gPSBbXTtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXG5cdEBPdXRwdXQoKSBpdGVtU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cblx0b3BlbkluZGV4ID0gLTE7XG5cblx0QFZpZXdDaGlsZChcIm1lbnVUZW1wbGF0ZVwiKSBtZW51VGVtcGxhdGVSZWY6IGFueTtcblxuXHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblx0cHJpdmF0ZSBvdXRzaWRlQ2xpY2tTdWI6IGFueSA9IG51bGw7XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0XHRwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcblx0KSB7fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIpXG5cdEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDprZXlkb3duLmVzY2FwZVwiKVxuXHRvbkRvY3VtZW50Q2xpY2tPckVzYyhldmVudDogTW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBDbG9zZSBvbiBlc2NhcGVcblx0XHRpZiAoZXZlbnQudHlwZSA9PT0gXCJrZXlkb3duXCIpIHtcblx0XHRcdGlmICh0aGlzLm9wZW5JbmRleCA+PSAwKSB7XG5cdFx0XHRcdHRoaXMub3BlbkluZGV4ID0gLTE7XG5cdFx0XHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHRpZiAodGhpcy5vcGVuSW5kZXggPj0gMCkge1xuXHRcdFx0Y29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIE5vZGU7XG5cdFx0XHRpZiAoIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkpIHtcblx0XHRcdFx0dGhpcy5vcGVuSW5kZXggPSAtMTtcblx0XHRcdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0dG9nZ2xlKGluZGV4OiBudW1iZXIsIGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG5cdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdFx0dGhpcy5vcGVuSW5kZXggPSB0aGlzLm9wZW5JbmRleCA9PT0gaW5kZXggPyAtMSA6IGluZGV4O1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG5cdFx0aWYgKHRoaXMub3BlbkluZGV4ID49IDApIHtcblx0XHRcdHRoaXMuY3JlYXRlT3ZlcmxheShldmVudCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR9XG5cdH1cblxuXHRzZWxlY3QodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdHRoaXMuaXRlbVNlbGVjdC5lbWl0KHZhbHVlKTtcblx0XHR0aGlzLm9wZW5JbmRleCA9IC0xO1xuXHRcdHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0fVxuXG5cdHNlbGVjdEl0ZW0oaXRlbTogUGRtTWVudUl0ZW0pOiB2b2lkIHtcblx0XHRpZiAoaXRlbS5kaXNhYmxlZCB8fCAhaXRlbS52YWx1ZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLnNlbGVjdChpdGVtLnZhbHVlKTtcblx0fVxuXG5cdHByaXZhdGUgY3JlYXRlT3ZlcmxheShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG5cblx0XHRjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG5cdFx0XHQucG9zaXRpb24oKVxuXHRcdFx0LmZsZXhpYmxlQ29ubmVjdGVkVG8odHJpZ2dlckVsKVxuXHRcdFx0LndpdGhQb3NpdGlvbnModGhpcy5nZXRQb3NpdGlvbkNvbmZpZ3MoKSlcblx0XHRcdC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuXHRcdFx0LndpdGhQdXNoKHRydWUpO1xuXG5cdFx0Y29uc3QgcGFuZWxDbGFzcyA9IG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MoXG5cdFx0XHRPVkVSTEFZX0JBU0VfWl9JTkRFWCxcblx0XHRcdHRoaXMucGFuZWxDbGFzc05hbWUsXG5cdFx0KTtcblxuXHRcdHRoaXMub3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuXHRcdFx0cG9zaXRpb25TdHJhdGVneSxcblx0XHRcdHBhbmVsQ2xhc3MsXG5cdFx0fSk7XG5cblx0XHRjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwoXG5cdFx0XHR0aGlzLm1lbnVUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHR0aGlzLm91dHNpZGVDbGlja1N1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wZW5JbmRleCA9IC0xO1xuXHRcdFx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHRcdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm91dHNpZGVDbGlja1N1Yikge1xuXHRcdFx0dGhpcy5vdXRzaWRlQ2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMub3V0c2lkZUNsaWNrU3ViID0gbnVsbDtcblx0XHR9XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblx0XHRcdHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRQb3NpdGlvbkNvbmZpZ3MoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdHtcblx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogNCxcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdG9yaWdpblg6IFwic3RhcnRcIixcblx0XHRcdFx0b3JpZ2luWTogXCJ0b3BcIixcblx0XHRcdFx0b3ZlcmxheVg6IFwic3RhcnRcIixcblx0XHRcdFx0b3ZlcmxheVk6IFwiYm90dG9tXCIsXG5cdFx0XHRcdG9mZnNldFk6IC00LFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iLCI8bmF2XG4gIHJvbGU9XCJtZW51YmFyXCJcbiAgW25nQ2xhc3NdPVwiW1xuICAgICdpbmxpbmUtZmxleCBoLTkgaXRlbXMtY2VudGVyIGdhcC0wLjUgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBwLTEgc2hhZG93LXNtJyxcbiAgICBjbGFzc05hbWUsXG4gIF1cIlxuPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBtZW51IG9mIG1lbnVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTcgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMyB0ZXh0LXNtIHRleHQtZm9yZWdyb3VuZCBob3ZlcjpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW5vbmUgZm9jdXMtdmlzaWJsZTpyaW5nLTIgZm9jdXMtdmlzaWJsZTpyaW5nLXJpbmcgZm9jdXMtdmlzaWJsZTpyaW5nLW9mZnNldC0yIGZvY3VzLXZpc2libGU6cmluZy1vZmZzZXQtYmFja2dyb3VuZFwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW5JbmRleCA9PT0gaVwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKGksICRldmVudClcIlxuICAgID5cbiAgICAgIHt7IG1lbnUubGFiZWwgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBUZW1wbGF0ZSBmb3IgQ0RLIE92ZXJsYXkgLS0+XG4gIDxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibWluLXctNDAgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctcG9wb3ZlciBwLTEgdGV4dC1wb3BvdmVyLWZvcmVncm91bmQgc2hhZG93LW1kIHNtOm1pbi13LTQ4XCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVzW29wZW5JbmRleF0/Lml0ZW1zIHx8IFtdXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkIHx8ICFpdGVtLnZhbHVlXCJcbiAgICAgICAgY2xhc3M9XCJyZWxhdGl2ZSBmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBjdXJzb3ItZGVmYXVsdCBzZWxlY3Qtbm9uZSBpdGVtcy1jZW50ZXIgcm91bmRlZC1zbSBib3JkZXItMCBiZy10cmFuc3BhcmVudCBweC0yIHB5LTEuNSB0ZXh0LXNtIG91dGxpbmUtbm9uZSB0cmFuc2l0aW9uLWNvbG9ycyBob3ZlcjpiZy1hY2NlbnQgaG92ZXI6dGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBmb2N1cy12aXNpYmxlOmJnLWFjY2VudCBmb2N1cy12aXNpYmxlOnRleHQtYWNjZW50LWZvcmVncm91bmQgZGlzYWJsZWQ6cG9pbnRlci1ldmVudHMtbm9uZSBkaXNhYmxlZDpvcGFjaXR5LTUwXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxuICAgICAgPlxuICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmF2PlxuIl19
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
2
|
-
import { TemplatePortal } from "@angular/cdk/portal";
|
|
3
|
-
import { mergeOverlayPanelClass, OVERLAY_BASE_Z_INDEX, } from "../../overlay/z-index-helper";
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
6
|
-
import * as i2 from "@angular/common";
|
|
7
|
-
export class PdmPopoverComponent {
|
|
8
|
-
constructor(overlay, viewContainerRef, elementRef, cdr) {
|
|
9
|
-
this.overlay = overlay;
|
|
10
|
-
this.viewContainerRef = viewContainerRef;
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
this.cdr = cdr;
|
|
13
|
-
this._open = false;
|
|
14
|
-
this.triggerText = "Open";
|
|
15
|
-
this.className = "";
|
|
16
|
-
this.panelClassName = "";
|
|
17
|
-
this.showTrigger = true;
|
|
18
|
-
this.openChange = new EventEmitter();
|
|
19
|
-
this.overlayRef = null;
|
|
20
|
-
this.outsideClickSub = null;
|
|
21
|
-
}
|
|
22
|
-
ngOnInit() { }
|
|
23
|
-
ngOnDestroy() {
|
|
24
|
-
this.destroyOverlay();
|
|
25
|
-
}
|
|
26
|
-
set open(value) {
|
|
27
|
-
if (this._open === !!value)
|
|
28
|
-
return;
|
|
29
|
-
if (value) {
|
|
30
|
-
this.openPanel();
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
this.closePanel();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
get open() {
|
|
37
|
-
return this._open;
|
|
38
|
-
}
|
|
39
|
-
toggle() {
|
|
40
|
-
this.open = !this.open;
|
|
41
|
-
}
|
|
42
|
-
onEsc() {
|
|
43
|
-
if (this.open) {
|
|
44
|
-
this.open = false;
|
|
45
|
-
this.openChange.emit(false);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
openPanel() {
|
|
49
|
-
if (this.overlayRef)
|
|
50
|
-
return;
|
|
51
|
-
const triggerEl = this.triggerRef?.nativeElement;
|
|
52
|
-
if (!triggerEl)
|
|
53
|
-
return;
|
|
54
|
-
this._open = true;
|
|
55
|
-
this.openChange.emit(true);
|
|
56
|
-
this.cdr.markForCheck();
|
|
57
|
-
const positionStrategy = this.overlay
|
|
58
|
-
.position()
|
|
59
|
-
.flexibleConnectedTo(triggerEl)
|
|
60
|
-
.withPositions(this.getPositionConfigs())
|
|
61
|
-
.withFlexibleDimensions(false)
|
|
62
|
-
.withPush(true);
|
|
63
|
-
const panelClass = mergeOverlayPanelClass(OVERLAY_BASE_Z_INDEX, this.panelClassName);
|
|
64
|
-
this.overlayRef = this.overlay.create({
|
|
65
|
-
positionStrategy,
|
|
66
|
-
panelClass,
|
|
67
|
-
});
|
|
68
|
-
const portal = new TemplatePortal(this.panelTemplateRef, this.viewContainerRef);
|
|
69
|
-
this.overlayRef.attach(portal);
|
|
70
|
-
// Close on click outside
|
|
71
|
-
this.outsideClickSub = this.overlayRef
|
|
72
|
-
.outsidePointerEvents()
|
|
73
|
-
.subscribe(() => {
|
|
74
|
-
this.open = false;
|
|
75
|
-
this.openChange.emit(false);
|
|
76
|
-
});
|
|
77
|
-
this.cdr.markForCheck();
|
|
78
|
-
}
|
|
79
|
-
closePanel() {
|
|
80
|
-
if (!this.overlayRef)
|
|
81
|
-
return;
|
|
82
|
-
this._open = false;
|
|
83
|
-
this.openChange.emit(false);
|
|
84
|
-
this.cdr.markForCheck();
|
|
85
|
-
this.destroyOverlay();
|
|
86
|
-
}
|
|
87
|
-
destroyOverlay() {
|
|
88
|
-
if (this.outsideClickSub) {
|
|
89
|
-
this.outsideClickSub.unsubscribe();
|
|
90
|
-
this.outsideClickSub = null;
|
|
91
|
-
}
|
|
92
|
-
if (this.overlayRef) {
|
|
93
|
-
this.overlayRef.detach();
|
|
94
|
-
this.overlayRef.dispose();
|
|
95
|
-
this.overlayRef = null;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
getPositionConfigs() {
|
|
99
|
-
return [
|
|
100
|
-
// Bottom (default)
|
|
101
|
-
{
|
|
102
|
-
originX: "start",
|
|
103
|
-
originY: "bottom",
|
|
104
|
-
overlayX: "start",
|
|
105
|
-
overlayY: "top",
|
|
106
|
-
offsetY: 8,
|
|
107
|
-
},
|
|
108
|
-
// Top (fallback)
|
|
109
|
-
{
|
|
110
|
-
originX: "start",
|
|
111
|
-
originY: "top",
|
|
112
|
-
overlayX: "start",
|
|
113
|
-
overlayY: "bottom",
|
|
114
|
-
offsetY: -8,
|
|
115
|
-
},
|
|
116
|
-
// Right
|
|
117
|
-
{
|
|
118
|
-
originX: "end",
|
|
119
|
-
originY: "bottom",
|
|
120
|
-
overlayX: "start",
|
|
121
|
-
overlayY: "top",
|
|
122
|
-
offsetY: 8,
|
|
123
|
-
},
|
|
124
|
-
// Left
|
|
125
|
-
{
|
|
126
|
-
originX: "start",
|
|
127
|
-
originY: "bottom",
|
|
128
|
-
overlayX: "end",
|
|
129
|
-
overlayY: "top",
|
|
130
|
-
offsetY: 8,
|
|
131
|
-
},
|
|
132
|
-
];
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
PdmPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, deps: [{ token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
-
PdmPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmPopoverComponent, selector: "pdm-popover", inputs: { triggerText: "triggerText", className: "className", panelClassName: "panelClassName", showTrigger: "showTrigger", open: "open" }, outputs: { openChange: "openChange" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n #triggerEl\n *ngIf=\"showTrigger\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-haspopup]=\"'dialog'\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <!-- Trigger slot for custom trigger -->\n <ng-content select=\"[pdmPopoverTrigger]\"></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #panelTemplate>\n <div\n class=\"min-w-80 rounded-md border border-solid border-border bg-popover p-4 text-popover-foreground shadow-md\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmPopoverComponent, decorators: [{
|
|
138
|
-
type: Component,
|
|
139
|
-
args: [{ selector: "pdm-popover", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative inline-block\" [ngClass]=\"className\">\n <button\n #triggerEl\n *ngIf=\"showTrigger\"\n type=\"button\"\n class=\"inline-flex h-9 appearance-none box-border items-center justify-center rounded-md border border-solid border-input bg-background px-3 text-sm font-medium text-foreground shadow-sm\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-haspopup]=\"'dialog'\"\n (click)=\"toggle()\"\n >\n {{ triggerText }}\n </button>\n\n <!-- Trigger slot for custom trigger -->\n <ng-content select=\"[pdmPopoverTrigger]\"></ng-content>\n\n <!-- Template for CDK Overlay -->\n <ng-template #panelTemplate>\n <div\n class=\"min-w-80 rounded-md border border-solid border-border bg-popover p-4 text-popover-foreground shadow-md\"\n >\n <ng-content></ng-content>\n </div>\n </ng-template>\n</div>\n", styles: [":host{display:inline-block}\n"] }]
|
|
140
|
-
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { triggerText: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], className: [{
|
|
143
|
-
type: Input
|
|
144
|
-
}], panelClassName: [{
|
|
145
|
-
type: Input
|
|
146
|
-
}], showTrigger: [{
|
|
147
|
-
type: Input
|
|
148
|
-
}], openChange: [{
|
|
149
|
-
type: Output
|
|
150
|
-
}], triggerRef: [{
|
|
151
|
-
type: ViewChild,
|
|
152
|
-
args: ["triggerEl"]
|
|
153
|
-
}], panelTemplateRef: [{
|
|
154
|
-
type: ViewChild,
|
|
155
|
-
args: ["panelTemplate"]
|
|
156
|
-
}], open: [{
|
|
157
|
-
type: Input
|
|
158
|
-
}], onEsc: [{
|
|
159
|
-
type: HostListener,
|
|
160
|
-
args: ["document:keydown.escape"]
|
|
161
|
-
}] } });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsR0FFVCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixvQkFBb0IsR0FDcEIsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQVF0QyxNQUFNLE9BQU8sbUJBQW1CO0lBZ0IvQixZQUNrQixPQUFnQixFQUNoQixnQkFBa0MsRUFDbEMsVUFBbUMsRUFDbkMsR0FBc0I7UUFIdEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkJoQyxVQUFLLEdBQUcsS0FBSyxDQUFDO1FBRWIsZ0JBQVcsR0FBRyxNQUFNLENBQUM7UUFDckIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBSzNDLGVBQVUsR0FBc0IsSUFBSSxDQUFDO1FBQ3JDLG9CQUFlLEdBQVEsSUFBSSxDQUFDO0lBT2pDLENBQUM7SUFFSixRQUFRLEtBQVUsQ0FBQztJQUNuQixXQUFXO1FBQ1Ys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U0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQWtCdEIsSUFBSTtzQkFEUCxLQUFLO2dCQW1CTixLQUFLO3NCQURKLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7XG5cdG1lcmdlT3ZlcmxheVBhbmVsQ2xhc3MsXG5cdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxufSBmcm9tIFwiLi4vLi4vb3ZlcmxheS96LWluZGV4LWhlbHBlclwiO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXBvcG92ZXJcIixcblx0dGVtcGxhdGVVcmw6IFwiLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sXCIsXG5cdHN0eWxlczogW1wiOmhvc3QgeyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1Qb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXHRwcml2YXRlIF9vcGVuID0gZmFsc2U7XG5cblx0QElucHV0KCkgdHJpZ2dlclRleHQgPSBcIk9wZW5cIjtcblx0QElucHV0KCkgY2xhc3NOYW1lID0gXCJcIjtcblx0QElucHV0KCkgcGFuZWxDbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBzaG93VHJpZ2dlciA9IHRydWU7XG5cblx0QE91dHB1dCgpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cblx0QFZpZXdDaGlsZChcInRyaWdnZXJFbFwiKSBwcml2YXRlIHRyaWdnZXJSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pjtcblx0QFZpZXdDaGlsZChcInBhbmVsVGVtcGxhdGVcIikgcHJpdmF0ZSBwYW5lbFRlbXBsYXRlUmVmOiBhbnk7XG5cblx0cHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG5cdHByaXZhdGUgb3V0c2lkZUNsaWNrU3ViOiBhbnkgPSBudWxsO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheTogT3ZlcmxheSxcblx0XHRwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdCkge31cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG5cdFx0aWYgKHRoaXMuX29wZW4gPT09ICEhdmFsdWUpIHJldHVybjtcblxuXHRcdGlmICh2YWx1ZSkge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0fVxuXHR9XG5cdGdldCBvcGVuKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLl9vcGVuO1xuXHR9XG5cblx0dG9nZ2xlKCk6IHZvaWQge1xuXHRcdHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKFwiZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGVcIilcblx0b25Fc2MoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3Blbikge1xuXHRcdFx0dGhpcy5vcGVuID0gZmFsc2U7XG5cdFx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBvcGVuUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0Y29uc3QgdHJpZ2dlckVsID0gdGhpcy50cmlnZ2VyUmVmPy5uYXRpdmVFbGVtZW50O1xuXHRcdGlmICghdHJpZ2dlckVsKSByZXR1cm47XG5cblx0XHR0aGlzLl9vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcblx0XHRcdC5wb3NpdGlvbigpXG5cdFx0XHQuZmxleGlibGVDb25uZWN0ZWRUbyh0cmlnZ2VyRWwpXG5cdFx0XHQud2l0aFBvc2l0aW9ucyh0aGlzLmdldFBvc2l0aW9uQ29uZmlncygpKVxuXHRcdFx0LndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG5cdFx0XHQud2l0aFB1c2godHJ1ZSk7XG5cblx0XHRjb25zdCBwYW5lbENsYXNzID0gbWVyZ2VPdmVybGF5UGFuZWxDbGFzcyhcblx0XHRcdE9WRVJMQVlfQkFTRV9aX0lOREVYLFxuXHRcdFx0dGhpcy5wYW5lbENsYXNzTmFtZSxcblx0XHQpO1xuXG5cdFx0dGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0cGFuZWxDbGFzcyxcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcblx0XHRcdHRoaXMucGFuZWxUZW1wbGF0ZVJlZixcblx0XHRcdHRoaXMudmlld0NvbnRhaW5lclJlZixcblx0XHQpO1xuXHRcdHRoaXMub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsKTtcblxuXHRcdC8vIENsb3NlIG9uIGNsaWNrIG91dHNpZGVcblx0XHR0aGlzLm91dHNpZGVDbGlja1N1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0XHR0aGlzLm9wZW4gPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgY2xvc2VQYW5lbCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMub3ZlcmxheVJlZikgcmV0dXJuO1xuXG5cdFx0dGhpcy5fb3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0XHR0aGlzLmRlc3Ryb3lPdmVybGF5KCk7XG5cdH1cblxuXHRwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm91dHNpZGVDbGlja1N1Yikge1xuXHRcdFx0dGhpcy5vdXRzaWRlQ2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMub3V0c2lkZUNsaWNrU3ViID0gbnVsbDtcblx0XHR9XG5cdFx0aWYgKHRoaXMub3ZlcmxheVJlZikge1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmLmRpc3Bvc2UoKTtcblx0XHRcdHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBnZXRQb3NpdGlvbkNvbmZpZ3MoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG5cdFx0cmV0dXJuIFtcblx0XHRcdC8vIEJvdHRvbSAoZGVmYXVsdClcblx0XHRcdHtcblx0XHRcdFx0b3JpZ2luWDogXCJzdGFydFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBUb3AgKGZhbGxiYWNrKVxuXHRcdFx0e1xuXHRcdFx0XHRvcmlnaW5YOiBcInN0YXJ0XCIsXG5cdFx0XHRcdG9yaWdpblk6IFwidG9wXCIsXG5cdFx0XHRcdG92ZXJsYXlYOiBcInN0YXJ0XCIsXG5cdFx0XHRcdG92ZXJsYXlZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvZmZzZXRZOiAtOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBSaWdodFxuXHRcdFx0e1xuXHRcdFx0XHRvcmlnaW5YOiBcImVuZFwiLFxuXHRcdFx0XHRvcmlnaW5ZOiBcImJvdHRvbVwiLFxuXHRcdFx0XHRvdmVybGF5WDogXCJzdGFydFwiLFxuXHRcdFx0XHRvdmVybGF5WTogXCJ0b3BcIixcblx0XHRcdFx0b2Zmc2V0WTogOCxcblx0XHRcdH0sXG5cdFx0XHQvLyBMZWZ0XG5cdFx0XHR7XG5cdFx0XHRcdG9yaWdpblg6IFwic3RhcnRcIixcblx0XHRcdFx0b3JpZ2luWTogXCJib3R0b21cIixcblx0XHRcdFx0b3ZlcmxheVg6IFwiZW5kXCIsXG5cdFx0XHRcdG92ZXJsYXlZOiBcInRvcFwiLFxuXHRcdFx0XHRvZmZzZXRZOiA4LFxuXHRcdFx0fSxcblx0XHRdO1xuXHR9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVsYXRpdmUgaW5saW5lLWJsb2NrXCIgW25nQ2xhc3NdPVwiY2xhc3NOYW1lXCI+XG4gIDxidXR0b25cbiAgICAjdHJpZ2dlckVsXG4gICAgKm5nSWY9XCJzaG93VHJpZ2dlclwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTkgYXBwZWFyYW5jZS1ub25lIGJveC1ib3JkZXIgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItaW5wdXQgYmctYmFja2dyb3VuZCBweC0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kIHNoYWRvdy1zbVwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuXCJcbiAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cIidkaWFsb2cnXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICA+XG4gICAge3sgdHJpZ2dlclRleHQgfX1cbiAgPC9idXR0b24+XG5cbiAgPCEtLSBUcmlnZ2VyIHNsb3QgZm9yIGN1c3RvbSB0cmlnZ2VyIC0tPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbcGRtUG9wb3ZlclRyaWdnZXJdXCI+PC9uZy1jb250ZW50PlxuXG4gIDwhLS0gVGVtcGxhdGUgZm9yIENESyBPdmVybGF5IC0tPlxuICA8bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtaW4tdy04MCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtNCB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWRcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Directive used to declare an option inside `<pdm-select>` via content projection.
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* ```html
|
|
8
|
-
* <pdm-select [(value)]="val">
|
|
9
|
-
* <pdm-select-option value="a">Option A</pdm-select-option>
|
|
10
|
-
* <pdm-select-option value="b" [disabled]="true">Option B</pdm-select-option>
|
|
11
|
-
* <pdm-select-option value="c" label="Option C"></pdm-select-option>
|
|
12
|
-
* </pdm-select>
|
|
13
|
-
* ```
|
|
14
|
-
*
|
|
15
|
-
* When `label` is not provided, the text content of the projected node is used.
|
|
16
|
-
*/
|
|
17
|
-
export class PdmSelectOptionDirective {
|
|
18
|
-
constructor(el) {
|
|
19
|
-
this.el = el;
|
|
20
|
-
/** The option value that will be emitted on selection. */
|
|
21
|
-
this.value = '';
|
|
22
|
-
/** When true, the option is rendered but cannot be selected. */
|
|
23
|
-
this.disabled = false;
|
|
24
|
-
/**
|
|
25
|
-
* Explicit label for the option.
|
|
26
|
-
* When omitted, the directive reads the element's `textContent` after content init.
|
|
27
|
-
*/
|
|
28
|
-
this.label = '';
|
|
29
|
-
}
|
|
30
|
-
ngAfterContentInit() {
|
|
31
|
-
// If no explicit label, harvest text from the projected node.
|
|
32
|
-
if (!this.label) {
|
|
33
|
-
this.label = (this.el.nativeElement.textContent ?? '').trim();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
/** Resolved label string — always non-empty after ngAfterContentInit. */
|
|
37
|
-
get resolvedLabel() {
|
|
38
|
-
return this.label || this.value;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
PdmSelectOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectOptionDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
42
|
-
PdmSelectOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectOptionDirective, selector: "pdm-select-option", inputs: { value: "value", disabled: "disabled", label: "label" }, ngImport: i0 });
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectOptionDirective, decorators: [{
|
|
44
|
-
type: Directive,
|
|
45
|
-
args: [{
|
|
46
|
-
selector: 'pdm-select-option'
|
|
47
|
-
}]
|
|
48
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { value: [{
|
|
49
|
-
type: Input
|
|
50
|
-
}], disabled: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}], label: [{
|
|
53
|
-
type: Input
|
|
54
|
-
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsS0FBSyxFQUNOLE1BQU0sZUFBZSxDQUFDOztBQUV2Qjs7Ozs7Ozs7Ozs7OztHQWFHO0FBSUgsTUFBTSxPQUFPLHdCQUF3QjtJQWFuQyxZQUE2QixFQUEyQjtRQUEzQixPQUFFLEdBQUYsRUFBRSxDQUF5QjtRQVp4RCwwREFBMEQ7UUFDakQsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVwQixnRUFBZ0U7UUFDdkQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7O1dBR0c7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBRXVDLENBQUM7SUFFNUQsa0JBQWtCO1FBQ2hCLDhEQUE4RDtRQUM5RCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDL0Q7SUFDSCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ2xDLENBQUM7O3FIQXpCVSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUhwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7aUJBQzlCO2lHQUdVLEtBQUs7c0JBQWIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHVzZWQgdG8gZGVjbGFyZSBhbiBvcHRpb24gaW5zaWRlIGA8cGRtLXNlbGVjdD5gIHZpYSBjb250ZW50IHByb2plY3Rpb24uXG4gKlxuICogVXNhZ2U6XG4gKiBgYGBodG1sXG4gKiA8cGRtLXNlbGVjdCBbKHZhbHVlKV09XCJ2YWxcIj5cbiAqICAgPHBkbS1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYVwiPk9wdGlvbiBBPC9wZG0tc2VsZWN0LW9wdGlvbj5cbiAqICAgPHBkbS1zZWxlY3Qtb3B0aW9uIHZhbHVlPVwiYlwiIFtkaXNhYmxlZF09XCJ0cnVlXCI+T3B0aW9uIEI8L3BkbS1zZWxlY3Qtb3B0aW9uPlxuICogICA8cGRtLXNlbGVjdC1vcHRpb24gdmFsdWU9XCJjXCIgbGFiZWw9XCJPcHRpb24gQ1wiPjwvcGRtLXNlbGVjdC1vcHRpb24+XG4gKiA8L3BkbS1zZWxlY3Q+XG4gKiBgYGBcbiAqXG4gKiBXaGVuIGBsYWJlbGAgaXMgbm90IHByb3ZpZGVkLCB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBwcm9qZWN0ZWQgbm9kZSBpcyB1c2VkLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdwZG0tc2VsZWN0LW9wdGlvbidcbn0pXG5leHBvcnQgY2xhc3MgUGRtU2VsZWN0T3B0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKiBUaGUgb3B0aW9uIHZhbHVlIHRoYXQgd2lsbCBiZSBlbWl0dGVkIG9uIHNlbGVjdGlvbi4gKi9cbiAgQElucHV0KCkgdmFsdWUgPSAnJztcblxuICAvKiogV2hlbiB0cnVlLCB0aGUgb3B0aW9uIGlzIHJlbmRlcmVkIGJ1dCBjYW5ub3QgYmUgc2VsZWN0ZWQuICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEV4cGxpY2l0IGxhYmVsIGZvciB0aGUgb3B0aW9uLlxuICAgKiBXaGVuIG9taXR0ZWQsIHRoZSBkaXJlY3RpdmUgcmVhZHMgdGhlIGVsZW1lbnQncyBgdGV4dENvbnRlbnRgIGFmdGVyIGNvbnRlbnQgaW5pdC5cbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHt9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIC8vIElmIG5vIGV4cGxpY2l0IGxhYmVsLCBoYXJ2ZXN0IHRleHQgZnJvbSB0aGUgcHJvamVjdGVkIG5vZGUuXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA/PyAnJykudHJpbSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNvbHZlZCBsYWJlbCBzdHJpbmcg4oCUIGFsd2F5cyBub24tZW1wdHkgYWZ0ZXIgbmdBZnRlckNvbnRlbnRJbml0LiAqL1xuICBnZXQgcmVzb2x2ZWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxhYmVsIHx8IHRoaXMudmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
|
|
2
|
-
import { TemplatePortal } from "@angular/cdk/portal";
|
|
3
|
-
import { PdmSelectOptionDirective } from "./select-option.directive";
|
|
4
|
-
import { createFlexiblePositionStrategy } from "../../overlay/create-flexible-position-strategy";
|
|
5
|
-
import { Z_INDEX } from "../../utils/z-index";
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/cdk/overlay";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
import * as i3 from "../icon/icon.component";
|
|
10
|
-
export class PdmSelectComponent {
|
|
11
|
-
constructor(cdr, overlay, viewContainerRef) {
|
|
12
|
-
this.cdr = cdr;
|
|
13
|
-
this.overlay = overlay;
|
|
14
|
-
this.viewContainerRef = viewContainerRef;
|
|
15
|
-
this.id = "";
|
|
16
|
-
this.value = "";
|
|
17
|
-
this.options = [];
|
|
18
|
-
this.disabled = false;
|
|
19
|
-
this.invalid = false;
|
|
20
|
-
this.className = "";
|
|
21
|
-
this.placeholder = "Select an option";
|
|
22
|
-
this.open = false;
|
|
23
|
-
this.valueChange = new EventEmitter();
|
|
24
|
-
this.overlayRef = null;
|
|
25
|
-
this.backdropSub = null;
|
|
26
|
-
}
|
|
27
|
-
ngAfterContentInit() {
|
|
28
|
-
// Re-render when projected options change (e.g. *ngFor on pdm-select-option).
|
|
29
|
-
this.projectedOptions.changes.subscribe(() => this.cdr.markForCheck());
|
|
30
|
-
}
|
|
31
|
-
ngOnDestroy() {
|
|
32
|
-
this.destroyOverlay();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Returns the effective list of options.
|
|
36
|
-
* Projected `<pdm-select-option>` children take priority over the `[options]` input.
|
|
37
|
-
* Falls back to `[options]` when no children are projected.
|
|
38
|
-
*/
|
|
39
|
-
get resolvedOptions() {
|
|
40
|
-
if (this.projectedOptions && this.projectedOptions.length > 0) {
|
|
41
|
-
return this.projectedOptions.map((d) => ({
|
|
42
|
-
label: d.resolvedLabel,
|
|
43
|
-
value: d.value,
|
|
44
|
-
disabled: d.disabled,
|
|
45
|
-
}));
|
|
46
|
-
}
|
|
47
|
-
return this.options;
|
|
48
|
-
}
|
|
49
|
-
get selectedOption() {
|
|
50
|
-
return this.resolvedOptions.find((option) => option.value === this.value);
|
|
51
|
-
}
|
|
52
|
-
get selectedLabel() {
|
|
53
|
-
return this.selectedOption?.label || this.placeholder;
|
|
54
|
-
}
|
|
55
|
-
toggle() {
|
|
56
|
-
if (this.disabled)
|
|
57
|
-
return;
|
|
58
|
-
if (this.open) {
|
|
59
|
-
this.closePanel();
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.openPanel();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
onChange(event) {
|
|
66
|
-
this.valueChange.emit(event.target.value);
|
|
67
|
-
}
|
|
68
|
-
selectOption(option) {
|
|
69
|
-
if (option.disabled)
|
|
70
|
-
return;
|
|
71
|
-
this.valueChange.emit(option.value);
|
|
72
|
-
this.closePanel();
|
|
73
|
-
}
|
|
74
|
-
onEscape() {
|
|
75
|
-
if (this.open) {
|
|
76
|
-
this.closePanel();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
openPanel() {
|
|
80
|
-
if (this.overlayRef)
|
|
81
|
-
return;
|
|
82
|
-
const triggerEl = this.triggerRef?.nativeElement;
|
|
83
|
-
if (!triggerEl)
|
|
84
|
-
return;
|
|
85
|
-
this.open = true;
|
|
86
|
-
this.cdr.markForCheck();
|
|
87
|
-
const positionStrategy = createFlexiblePositionStrategy(this.overlay, triggerEl, 4);
|
|
88
|
-
this.overlayRef = this.overlay.create({
|
|
89
|
-
// CRÍTICO: z-[70] para aparecer SOBRE modals (z-[60])
|
|
90
|
-
// panelClass se aplica al cdk-overlay-pane wrapper
|
|
91
|
-
panelClass: [Z_INDEX.popover],
|
|
92
|
-
positionStrategy,
|
|
93
|
-
scrollStrategy: this.overlay.scrollStrategies.reposition(),
|
|
94
|
-
width: triggerEl.offsetWidth,
|
|
95
|
-
// Consumer overrides are spread last — they win over every default above.
|
|
96
|
-
...this.overlayOptions,
|
|
97
|
-
});
|
|
98
|
-
const portal = new TemplatePortal(this.panelTemplateRef, this.viewContainerRef);
|
|
99
|
-
this.overlayRef.attach(portal);
|
|
100
|
-
this.backdropSub = this.overlayRef
|
|
101
|
-
.outsidePointerEvents()
|
|
102
|
-
.subscribe((event) => {
|
|
103
|
-
const target = event.target;
|
|
104
|
-
if (!triggerEl.contains(target)) {
|
|
105
|
-
this.closePanel();
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
this.cdr.markForCheck();
|
|
109
|
-
}
|
|
110
|
-
closePanel() {
|
|
111
|
-
if (!this.overlayRef)
|
|
112
|
-
return;
|
|
113
|
-
this.open = false;
|
|
114
|
-
this.destroyOverlay();
|
|
115
|
-
this.cdr.markForCheck();
|
|
116
|
-
}
|
|
117
|
-
destroyOverlay() {
|
|
118
|
-
if (this.backdropSub) {
|
|
119
|
-
this.backdropSub.unsubscribe();
|
|
120
|
-
this.backdropSub = null;
|
|
121
|
-
}
|
|
122
|
-
if (this.overlayRef) {
|
|
123
|
-
this.overlayRef.dispose();
|
|
124
|
-
this.overlayRef = null;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
PdmSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
129
|
-
PdmSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmSelectComponent, selector: "pdm-select", inputs: { id: "id", value: "value", options: "options", disabled: "disabled", invalid: "invalid", className: "className", placeholder: "placeholder", overlayOptions: "overlayOptions" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "document:keydown.escape": "onEscape()" } }, queries: [{ propertyName: "projectedOptions", predicate: PdmSelectOptionDirective }], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerEl"], descendants: true }, { propertyName: "panelTemplateRef", first: true, predicate: ["panelTemplate"], descendants: true }], ngImport: i0, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none box-border items-center justify-between rounded-md border border-solid bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none box-border items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.PdmIconComponent, selector: "pdm-icon", inputs: ["name", "library", "assetUrl", "size", "strokeWidth", "className", "ariaLabel", "decorative"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
130
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmSelectComponent, decorators: [{
|
|
131
|
-
type: Component,
|
|
132
|
-
args: [{ selector: "pdm-select", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"['relative', className || 'w-full']\">\n <button\n #triggerEl\n type=\"button\"\n [id]=\"id\"\n [disabled]=\"disabled\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-expanded]=\"open\"\n [attr.data-state]=\"open ? 'open' : 'closed'\"\n aria-haspopup=\"listbox\"\n (click)=\"toggle()\"\n [ngClass]=\"[\n 'border-input focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/50 aria-invalid:ring-2 aria-invalid:ring-destructive aria-invalid:border-destructive flex h-9 w-full appearance-none box-border items-center justify-between rounded-md border border-solid bg-background px-3 py-2 text-sm shadow-sm outline-none disabled:cursor-not-allowed disabled:opacity-50',\n ]\"\n >\n <span\n [ngClass]=\"[\n 'min-w-0 flex-1 truncate text-left leading-5',\n selectedOption\n ? 'font-medium text-foreground'\n : 'font-normal text-muted-foreground',\n ]\"\n >\n {{ selectedLabel }}\n </span>\n <pdm-icon\n name=\"chevron-down\"\n [size]=\"16\"\n className=\"shrink-0 text-muted-foreground\"\n ></pdm-icon>\n </button>\n\n <!-- Hidden native select kept for screen-reader / form fallback -->\n <select\n class=\"sr-only\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [value]=\"value\"\n (change)=\"onChange($event)\"\n >\n <option\n *ngFor=\"let option of resolvedOptions\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n </select>\n\n <!-- Slot for content-projected pdm-select-option elements (hidden from layout) -->\n <span class=\"hidden\">\n <ng-content select=\"pdm-select-option\"></ng-content>\n </span>\n</div>\n\n<ng-template #panelTemplate>\n <div\n role=\"listbox\"\n [attr.aria-labelledby]=\"id || null\"\n class=\"w-full overflow-y-auto rounded-md border border-solid border-border bg-popover p-1 text-popover-foreground shadow-md max-h-96\"\n >\n <button\n *ngFor=\"let option of resolvedOptions\"\n type=\"button\"\n role=\"option\"\n [attr.aria-selected]=\"option.value === value\"\n [disabled]=\"option.disabled\"\n (click)=\"selectOption(option)\"\n [ngClass]=\"[\n 'flex w-full appearance-none box-border items-center justify-between rounded-sm border-0 bg-transparent px-2 py-1.5 text-left text-sm outline-none transition-colors',\n option.disabled\n ? 'cursor-not-allowed opacity-50'\n : 'hover:bg-accent hover:text-accent-foreground focus-visible:bg-accent focus-visible:text-accent-foreground',\n option.value === value ? 'text-foreground' : '',\n ]\"\n >\n <span class=\"min-w-0 flex-1 truncate leading-5\">{{ option.label }}</span>\n <span\n *ngIf=\"option.value === value\"\n class=\"ml-2 flex shrink-0 items-center justify-end\"\n >\n <pdm-icon\n name=\"check\"\n [size]=\"16\"\n className=\"shrink-0 text-current\"\n ></pdm-icon>\n </span>\n </button>\n </div>\n</ng-template>\n", styles: [":host{display:block}\n"] }]
|
|
133
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }]; }, propDecorators: { id: [{
|
|
134
|
-
type: Input
|
|
135
|
-
}], value: [{
|
|
136
|
-
type: Input
|
|
137
|
-
}], options: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], disabled: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], invalid: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], className: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], placeholder: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], overlayOptions: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}], valueChange: [{
|
|
150
|
-
type: Output
|
|
151
|
-
}], triggerRef: [{
|
|
152
|
-
type: ViewChild,
|
|
153
|
-
args: ["triggerEl"]
|
|
154
|
-
}], panelTemplateRef: [{
|
|
155
|
-
type: ViewChild,
|
|
156
|
-
args: ["panelTemplate"]
|
|
157
|
-
}], projectedOptions: [{
|
|
158
|
-
type: ContentChildren,
|
|
159
|
-
args: [PdmSelectOptionDirective]
|
|
160
|
-
}], onEscape: [{
|
|
161
|
-
type: HostListener,
|
|
162
|
-
args: ["document:keydown.escape"]
|
|
163
|
-
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxHQUVULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBYzlDLE1BQU0sT0FBTyxrQkFBa0I7SUE2QjlCLFlBQ2tCLEdBQXNCLEVBQ3RCLE9BQWdCLEVBQ2hCLGdCQUFrQztRQUZsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUEvQjNDLE9BQUUsR0FBRyxFQUFFLENBQUM7UUFDUixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFDaEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixnQkFBVyxHQUFHLGtCQUFrQixDQUFDO1FBUTFDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFSCxnQkFBVyxHQUFHLElB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LEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztTQUN2QjtJQUNGLENBQUM7OytHQTNKVyxrQkFBa0I7bUdBQWxCLGtCQUFrQix3WEF1QmIsd0JBQXdCLDBPQzNEMUMseWpHQTBGQTsyRkR0RGEsa0JBQWtCO2tCQU45QixTQUFTOytCQUNDLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs2SkFHdEMsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGNBQWM7c0JBQXRCLEtBQUs7Z0JBSUksV0FBVztzQkFBcEIsTUFBTTtnQkFFeUIsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxXQUFXO2dCQUNjLGdCQUFnQjtzQkFBbkQsU0FBUzt1QkFBQyxlQUFlO2dCQUlsQixnQkFBZ0I7c0JBRHZCLGVBQWU7dUJBQUMsd0JBQXdCO2dCQWlFekMsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDaGFuZ2VEZXRlY3RvclJlZixcblx0Q29tcG9uZW50LFxuXHRDb250ZW50Q2hpbGRyZW4sXG5cdEVsZW1lbnRSZWYsXG5cdEV2ZW50RW1pdHRlcixcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPdXRwdXQsXG5cdFF1ZXJ5TGlzdCxcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFBkbVNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9IGZyb20gXCIuL3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBQZG1PdmVybGF5T3B0aW9ucyB9IGZyb20gXCIuLi8uLi9vdmVybGF5L3BkbS1vdmVybGF5LW9wdGlvbnNcIjtcbmltcG9ydCB7IGNyZWF0ZUZsZXhpYmxlUG9zaXRpb25TdHJhdGVneSB9IGZyb20gXCIuLi8uLi9vdmVybGF5L2NyZWF0ZS1mbGV4aWJsZS1wb3NpdGlvbi1zdHJhdGVneVwiO1xuaW1wb3J0IHsgWl9JTkRFWCB9IGZyb20gXCIuLi8uLi91dGlscy96LWluZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGRtU2VsZWN0T3B0aW9uIHtcblx0bGFiZWw6IHN0cmluZztcblx0dmFsdWU6IHN0cmluZztcblx0ZGlzYWJsZWQ/OiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6IFwicGRtLXNlbGVjdFwiLFxuXHR0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC5jb21wb25lbnQuaHRtbFwiLFxuXHRzdHlsZXM6IFtcIjpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cIl0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZG1TZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXHRASW5wdXQoKSBpZCA9IFwiXCI7XG5cdEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcblx0QElucHV0KCkgb3B0aW9uczogUGRtU2VsZWN0T3B0aW9uW10gPSBbXTtcblx0QElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHRASW5wdXQoKSBjbGFzc05hbWUgPSBcIlwiO1xuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiU2VsZWN0IGFuIG9wdGlvblwiO1xuXHQvKipcblx0ICogT3B0aW9uYWwgQ0RLIE92ZXJsYXlDb25maWcgb3ZlcnJpZGVzLlxuXHQgKiBTaGFsbG93LW1lcmdlZCBvbiB0b3Agb2YgY29tcG9uZW50IGRlZmF1bHRzIOKAlCBjb25zdW1lciBhbHdheXMgd2lucy5cblx0ICogUHJvdmlkaW5nIGBwb3NpdGlvblN0cmF0ZWd5YCBvciBgc2Nyb2xsU3RyYXRlZ3lgIHJlcGxhY2VzIHRoZSBjb21wb25lbnQgZGVmYXVsdCBlbnRpcmVseS5cblx0ICovXG5cdEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zPzogUGRtT3ZlcmxheU9wdGlvbnM7XG5cblx0b3BlbiA9IGZhbHNlO1xuXG5cdEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG5cdEBWaWV3Q2hpbGQoXCJ0cmlnZ2VyRWxcIikgcHJpdmF0ZSB0cmlnZ2VyUmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cdEBWaWV3Q2hpbGQoXCJwYW5lbFRlbXBsYXRlXCIpIHByaXZhdGUgcGFuZWxUZW1wbGF0ZVJlZiE6IGFueTtcblxuXHQvKiogQ29sbGVjdHMgYW55IGA8cGRtLXNlbGVjdC1vcHRpb24+YCBjaGlsZHJlbiBwcm9qZWN0ZWQgaW50byB0aGlzIGNvbXBvbmVudC4gKi9cblx0QENvbnRlbnRDaGlsZHJlbihQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmUpXG5cdHByaXZhdGUgcHJvamVjdGVkT3B0aW9ucyE6IFF1ZXJ5TGlzdDxQZG1TZWxlY3RPcHRpb25EaXJlY3RpdmU+O1xuXG5cdHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuXHRwcml2YXRlIGJhY2tkcm9wU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIHJlYWRvbmx5IGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG5cdFx0cHJpdmF0ZSByZWFkb25seSBvdmVybGF5OiBPdmVybGF5LFxuXHRcdHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0KSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQvLyBSZS1yZW5kZXIgd2hlbiBwcm9qZWN0ZWQgb3B0aW9ucyBjaGFuZ2UgKGUuZy4gKm5nRm9yIG9uIHBkbS1zZWxlY3Qtb3B0aW9uKS5cblx0XHR0aGlzLnByb2plY3RlZE9wdGlvbnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jZHIubWFya0ZvckNoZWNrKCkpO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5kZXN0cm95T3ZlcmxheSgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIGVmZmVjdGl2ZSBsaXN0IG9mIG9wdGlvbnMuXG5cdCAqIFByb2plY3RlZCBgPHBkbS1zZWxlY3Qtb3B0aW9uPmAgY2hpbGRyZW4gdGFrZSBwcmlvcml0eSBvdmVyIHRoZSBgW29wdGlvbnNdYCBpbnB1dC5cblx0ICogRmFsbHMgYmFjayB0byBgW29wdGlvbnNdYCB3aGVuIG5vIGNoaWxkcmVuIGFyZSBwcm9qZWN0ZWQuXG5cdCAqL1xuXHRnZXQgcmVzb2x2ZWRPcHRpb25zKCk6IFBkbVNlbGVjdE9wdGlvbltdIHtcblx0XHRpZiAodGhpcy5wcm9qZWN0ZWRPcHRpb25zICYmIHRoaXMucHJvamVjdGVkT3B0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcm9qZWN0ZWRPcHRpb25zLm1hcCgoZCkgPT4gKHtcblx0XHRcdFx0bGFiZWw6IGQucmVzb2x2ZWRMYWJlbCxcblx0XHRcdFx0dmFsdWU6IGQudmFsdWUsXG5cdFx0XHRcdGRpc2FibGVkOiBkLmRpc2FibGVkLFxuXHRcdFx0fSkpO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zO1xuXHR9XG5cblx0Z2V0IHNlbGVjdGVkT3B0aW9uKCk6IFBkbVNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVzb2x2ZWRPcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZExhYmVsKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24/LmxhYmVsIHx8IHRoaXMucGxhY2Vob2xkZXI7XG5cdH1cblxuXHR0b2dnbGUoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblx0XHRpZiAodGhpcy5vcGVuKSB7XG5cdFx0XHR0aGlzLmNsb3NlUGFuZWwoKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHR9XG5cdH1cblxuXHRvbkNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2ZW50LnRhcmdldCBhcyBIVE1MU2VsZWN0RWxlbWVudCkudmFsdWUpO1xuXHR9XG5cblx0c2VsZWN0T3B0aW9uKG9wdGlvbjogUGRtU2VsZWN0T3B0aW9uKTogdm9pZCB7XG5cdFx0aWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuO1xuXHRcdHRoaXMudmFsdWVDaGFuZ2UuZW1pdChvcHRpb24udmFsdWUpO1xuXHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmtleWRvd24uZXNjYXBlXCIpXG5cdG9uRXNjYXBlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm9wZW4pIHtcblx0XHRcdHRoaXMuY2xvc2VQYW5lbCgpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgb3BlblBhbmVsKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMudHJpZ2dlclJlZj8ubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoIXRyaWdnZXJFbCkgcmV0dXJuO1xuXG5cdFx0dGhpcy5vcGVuID0gdHJ1ZTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuXHRcdGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSBjcmVhdGVGbGV4aWJsZVBvc2l0aW9uU3RyYXRlZ3koXG5cdFx0XHR0aGlzLm92ZXJsYXksXG5cdFx0XHR0cmlnZ2VyRWwsXG5cdFx0XHQ0LFxuXHRcdCk7XG5cblx0XHR0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcblx0XHRcdC8vIENSw41USUNPOiB6LVs3MF0gcGFyYSBhcGFyZWNlciBTT0JSRSBtb2RhbHMgKHotWzYwXSlcblx0XHRcdC8vIHBhbmVsQ2xhc3Mgc2UgYXBsaWNhIGFsIGNkay1vdmVybGF5LXBhbmUgd3JhcHBlclxuXHRcdFx0cGFuZWxDbGFzczogW1pfSU5ERVgucG9wb3Zlcl0sXG5cdFx0XHRwb3NpdGlvblN0cmF0ZWd5LFxuXHRcdFx0c2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKSxcblx0XHRcdHdpZHRoOiB0cmlnZ2VyRWwub2Zmc2V0V2lkdGgsXG5cdFx0XHQvLyBDb25zdW1lciBvdmVycmlkZXMgYXJlIHNwcmVhZCBsYXN0IOKAlCB0aGV5IHdpbiBvdmVyIGV2ZXJ5IGRlZmF1bHQgYWJvdmUuXG5cdFx0XHQuLi50aGlzLm92ZXJsYXlPcHRpb25zLFxuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuXHRcdFx0dGhpcy5wYW5lbFRlbXBsYXRlUmVmLFxuXHRcdFx0dGhpcy52aWV3Q29udGFpbmVyUmVmLFxuXHRcdCk7XG5cdFx0dGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuXG5cdFx0dGhpcy5iYWNrZHJvcFN1YiA9IHRoaXMub3ZlcmxheVJlZlxuXHRcdFx0Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcblx0XHRcdC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBOb2RlO1xuXHRcdFx0XHRpZiAoIXRyaWdnZXJFbC5jb250YWlucyh0YXJnZXQpKSB7XG5cdFx0XHRcdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXG5cdFx0dGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwcml2YXRlIGNsb3NlUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLm92ZXJsYXlSZWYpIHJldHVybjtcblxuXHRcdHRoaXMub3BlbiA9IGZhbHNlO1xuXHRcdHRoaXMuZGVzdHJveU92ZXJsYXkoKTtcblx0XHR0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblx0fVxuXG5cdHByaXZhdGUgZGVzdHJveU92ZXJsYXkoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuYmFja2Ryb3BTdWIpIHtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIudW5zdWJzY3JpYmUoKTtcblx0XHRcdHRoaXMuYmFja2Ryb3BTdWIgPSBudWxsO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vdmVybGF5UmVmKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlSZWYuZGlzcG9zZSgpO1xuXHRcdFx0dGhpcy5vdmVybGF5UmVmID0gbnVsbDtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgW25nQ2xhc3NdPVwiWydyZWxhdGl2ZScsIGNsYXNzTmFtZSB8fCAndy1mdWxsJ11cIj5cbiAgPGJ1dHRvblxuICAgICN0cmlnZ2VyRWxcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlblwiXG4gICAgW2F0dHIuZGF0YS1zdGF0ZV09XCJvcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCdcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgIFtuZ0NsYXNzXT1cIltcbiAgICAgICdib3JkZXItaW5wdXQgZm9jdXMtdmlzaWJsZTpib3JkZXItcmluZyBmb2N1cy12aXNpYmxlOnJpbmctMiBmb2N1cy12aXNpYmxlOnJpbmctcmluZy81MCBhcmlhLWludmFsaWQ6cmluZy0yIGFyaWEtaW52YWxpZDpyaW5nLWRlc3RydWN0aXZlIGFyaWEtaW52YWxpZDpib3JkZXItZGVzdHJ1Y3RpdmUgZmxleCBoLTkgdy1mdWxsIGFwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJnLWJhY2tncm91bmQgcHgtMyBweS0yIHRleHQtc20gc2hhZG93LXNtIG91dGxpbmUtbm9uZSBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWQgZGlzYWJsZWQ6b3BhY2l0eS01MCcsXG4gICAgXVwiXG4gID5cbiAgICA8c3BhblxuICAgICAgW25nQ2xhc3NdPVwiW1xuICAgICAgICAnbWluLXctMCBmbGV4LTEgdHJ1bmNhdGUgdGV4dC1sZWZ0IGxlYWRpbmctNScsXG4gICAgICAgIHNlbGVjdGVkT3B0aW9uXG4gICAgICAgICAgPyAnZm9udC1tZWRpdW0gdGV4dC1mb3JlZ3JvdW5kJ1xuICAgICAgICAgIDogJ2ZvbnQtbm9ybWFsIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCcsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICB7eyBzZWxlY3RlZExhYmVsIH19XG4gICAgPC9zcGFuPlxuICAgIDxwZG0taWNvblxuICAgICAgbmFtZT1cImNoZXZyb24tZG93blwiXG4gICAgICBbc2l6ZV09XCIxNlwiXG4gICAgICBjbGFzc05hbWU9XCJzaHJpbmstMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIlxuICAgID48L3BkbS1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8IS0tIEhpZGRlbiBuYXRpdmUgc2VsZWN0IGtlcHQgZm9yIHNjcmVlbi1yZWFkZXIgLyBmb3JtIGZhbGxiYWNrIC0tPlxuICA8c2VsZWN0XG4gICAgY2xhc3M9XCJzci1vbmx5XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxvcHRpb25cbiAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgcmVzb2x2ZWRPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgPlxuICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDwhLS0gU2xvdCBmb3IgY29udGVudC1wcm9qZWN0ZWQgcGRtLXNlbGVjdC1vcHRpb24gZWxlbWVudHMgKGhpZGRlbiBmcm9tIGxheW91dCkgLS0+XG4gIDxzcGFuIGNsYXNzPVwiaGlkZGVuXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwicGRtLXNlbGVjdC1vcHRpb25cIj48L25nLWNvbnRlbnQ+XG4gIDwvc3Bhbj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3BhbmVsVGVtcGxhdGU+XG4gIDxkaXZcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImlkIHx8IG51bGxcIlxuICAgIGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LXktYXV0byByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1wb3BvdmVyIHAtMSB0ZXh0LXBvcG92ZXItZm9yZWdyb3VuZCBzaGFkb3ctbWQgbWF4LWgtOTZcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiByZXNvbHZlZE9wdGlvbnNcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXG4gICAgICBbbmdDbGFzc109XCJbXG4gICAgICAgICdmbGV4IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHJvdW5kZWQtc20gYm9yZGVyLTAgYmctdHJhbnNwYXJlbnQgcHgtMiBweS0xLjUgdGV4dC1sZWZ0IHRleHQtc20gb3V0bGluZS1ub25lIHRyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgb3B0aW9uLmRpc2FibGVkXG4gICAgICAgICAgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnXG4gICAgICAgICAgOiAnaG92ZXI6YmctYWNjZW50IGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQgZm9jdXMtdmlzaWJsZTpiZy1hY2NlbnQgZm9jdXMtdmlzaWJsZTp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICAgICAgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSA/ICd0ZXh0LWZvcmVncm91bmQnIDogJycsXG4gICAgICBdXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1pbi13LTAgZmxleC0xIHRydW5jYXRlIGxlYWRpbmctNVwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwib3B0aW9uLnZhbHVlID09PSB2YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwibWwtMiBmbGV4IHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZFwiXG4gICAgICA+XG4gICAgICAgIDxwZG0taWNvblxuICAgICAgICAgIG5hbWU9XCJjaGVja1wiXG4gICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgIGNsYXNzTmFtZT1cInNocmluay0wIHRleHQtY3VycmVudFwiXG4gICAgICAgID48L3BkbS1pY29uPlxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|