pdm-ui-kit 0.4.2 → 1.1.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/alert/alert.module.d.ts +9 -0
- package/aspect-ratio/aspect-ratio.module.d.ts +8 -0
- package/avatar/avatar.module.d.ts +8 -0
- package/badge/badge.module.d.ts +8 -0
- package/breadcrumb/breadcrumb.module.d.ts +8 -0
- package/button/button.module.d.ts +9 -0
- package/calendar/calendar.module.d.ts +11 -0
- package/{lib/components/date-picker → calendar}/date-picker.component.d.ts +2 -2
- package/card/card.module.d.ts +8 -0
- package/carousel/carousel.module.d.ts +8 -0
- package/chart/chart.module.d.ts +8 -0
- package/checkbox/checkbox.module.d.ts +8 -0
- package/collapsible/collapsible.module.d.ts +8 -0
- package/combobox/combobox.module.d.ts +9 -0
- package/{lib/components/command → command}/command.component.d.ts +1 -1
- package/command/command.module.d.ts +9 -0
- package/{lib/components/context-menu → context-menu}/context-menu.component.d.ts +1 -1
- package/context-menu/context-menu.module.d.ts +9 -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/{lib/components/table → data-table}/table.component.d.ts +1 -1
- package/dialog/dialog.module.d.ts +8 -0
- package/drawer/drawer.module.d.ts +10 -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/empty/empty.module.d.ts +10 -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/{lib/components/combobox → combobox}/combobox.component.mjs +2 -2
- 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/dialog/dialog.component.mjs +265 -0
- package/esm2020/dialog/dialog.module.mjs +21 -0
- package/esm2020/drawer/drawer.component.mjs +217 -0
- 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 +3 -3
- 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/{lib/components/hover-card → hover-card}/hover-card.component.mjs +2 -2
- 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/input/input-group.component.mjs +63 -0
- 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 +2 -2
- 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/pagination/pagination.component.mjs +72 -0
- package/esm2020/pagination/pagination.module.mjs +21 -0
- package/esm2020/pdm-ui-kit.module.mjs +260 -0
- package/esm2020/{lib/components/popover → popover}/popover.component.mjs +2 -2
- 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 +2 -2
- 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/src/accordion/accordion.component.mjs +42 -0
- package/esm2020/src/accordion/accordion.module.mjs +21 -0
- package/esm2020/src/accordion/pdm-ui-kit-src-accordion.mjs +5 -0
- package/esm2020/src/accordion/public-api.mjs +3 -0
- package/esm2020/src/alert/alert-dialog.component.mjs +87 -0
- package/esm2020/src/alert/alert.component.mjs +35 -0
- package/esm2020/src/alert/alert.module.mjs +25 -0
- package/esm2020/src/alert/pdm-ui-kit-src-alert.mjs +5 -0
- package/esm2020/src/alert/public-api.mjs +4 -0
- package/esm2020/src/aspect-ratio/aspect-ratio.component.mjs +31 -0
- package/esm2020/src/aspect-ratio/aspect-ratio.module.mjs +21 -0
- package/esm2020/src/aspect-ratio/pdm-ui-kit-src-aspect-ratio.mjs +5 -0
- package/esm2020/src/aspect-ratio/public-api.mjs +3 -0
- package/esm2020/src/avatar/avatar.component.mjs +46 -0
- package/esm2020/src/avatar/avatar.module.mjs +21 -0
- package/esm2020/src/avatar/pdm-ui-kit-src-avatar.mjs +5 -0
- package/esm2020/src/avatar/public-api.mjs +3 -0
- package/esm2020/src/badge/badge.component.mjs +23 -0
- package/esm2020/src/badge/badge.module.mjs +21 -0
- package/esm2020/src/badge/pdm-ui-kit-src-badge.mjs +5 -0
- package/esm2020/src/badge/public-api.mjs +3 -0
- package/esm2020/src/breadcrumb/breadcrumb.component.mjs +62 -0
- package/esm2020/src/breadcrumb/breadcrumb.module.mjs +21 -0
- package/esm2020/src/breadcrumb/pdm-ui-kit-src-breadcrumb.mjs +5 -0
- package/esm2020/src/breadcrumb/public-api.mjs +3 -0
- package/esm2020/{lib/components/button-group → src/button}/button-group.component.mjs +1 -1
- package/esm2020/src/button/button.component.mjs +114 -0
- package/esm2020/src/button/button.module.mjs +25 -0
- package/esm2020/src/button/pdm-ui-kit-src-button.mjs +5 -0
- package/esm2020/src/button/public-api.mjs +4 -0
- package/esm2020/src/calendar/calendar.component.mjs +529 -0
- package/esm2020/src/calendar/calendar.module.mjs +22 -0
- package/esm2020/src/calendar/date-picker.component.mjs +362 -0
- package/esm2020/src/calendar/pdm-ui-kit-src-calendar.mjs +5 -0
- package/esm2020/src/calendar/public-api.mjs +4 -0
- package/esm2020/src/card/card.component.mjs +48 -0
- package/esm2020/src/card/card.module.mjs +21 -0
- package/esm2020/src/card/pdm-ui-kit-src-card.mjs +5 -0
- package/esm2020/src/card/public-api.mjs +3 -0
- package/esm2020/src/carousel/carousel.component.mjs +102 -0
- package/esm2020/src/carousel/carousel.module.mjs +21 -0
- package/esm2020/src/carousel/pdm-ui-kit-src-carousel.mjs +5 -0
- package/esm2020/src/carousel/public-api.mjs +3 -0
- package/esm2020/src/chart/chart.component.mjs +177 -0
- package/esm2020/src/chart/chart.module.mjs +21 -0
- package/esm2020/src/chart/pdm-ui-kit-src-chart.mjs +5 -0
- package/esm2020/src/chart/public-api.mjs +3 -0
- package/esm2020/src/checkbox/checkbox.component.mjs +47 -0
- package/esm2020/src/checkbox/checkbox.module.mjs +21 -0
- package/esm2020/src/checkbox/pdm-ui-kit-src-checkbox.mjs +5 -0
- package/esm2020/src/checkbox/public-api.mjs +3 -0
- package/esm2020/src/collapsible/collapsible.component.mjs +43 -0
- package/esm2020/src/collapsible/collapsible.module.mjs +21 -0
- package/esm2020/src/collapsible/pdm-ui-kit-src-collapsible.mjs +5 -0
- package/esm2020/src/collapsible/public-api.mjs +3 -0
- package/esm2020/src/combobox/combobox.component.mjs +173 -0
- package/esm2020/src/combobox/combobox.module.mjs +22 -0
- package/esm2020/src/combobox/pdm-ui-kit-src-combobox.mjs +5 -0
- package/esm2020/src/combobox/public-api.mjs +3 -0
- package/esm2020/src/command/command.component.mjs +75 -0
- package/esm2020/src/command/command.module.mjs +20 -0
- package/esm2020/src/command/pdm-ui-kit-src-command.mjs +5 -0
- package/esm2020/src/command/public-api.mjs +3 -0
- package/esm2020/src/context-menu/context-menu.component.mjs +165 -0
- package/esm2020/src/context-menu/context-menu.module.mjs +22 -0
- package/esm2020/src/context-menu/pdm-ui-kit-src-context-menu.mjs +5 -0
- package/esm2020/src/context-menu/public-api.mjs +3 -0
- package/esm2020/src/data-table/data-table.component.mjs +299 -0
- package/esm2020/src/data-table/data-table.module.mjs +29 -0
- package/esm2020/src/data-table/draggable-table.component.mjs +300 -0
- package/esm2020/src/data-table/pdm-ui-kit-src-data-table.mjs +5 -0
- package/esm2020/src/data-table/public-api.mjs +5 -0
- package/esm2020/src/data-table/table.component.mjs +182 -0
- package/esm2020/src/dialog/dialog.component.mjs +265 -0
- package/esm2020/src/dialog/dialog.module.mjs +21 -0
- package/esm2020/src/dialog/pdm-ui-kit-src-dialog.mjs +5 -0
- package/esm2020/src/dialog/public-api.mjs +3 -0
- package/esm2020/src/drawer/drawer.component.mjs +217 -0
- package/esm2020/src/drawer/drawer.module.mjs +21 -0
- package/esm2020/src/drawer/pdm-ui-kit-src-drawer.mjs +5 -0
- package/esm2020/src/drawer/public-api.mjs +4 -0
- package/esm2020/src/drawer/sheet.component.mjs +116 -0
- package/esm2020/src/dropdown-menu/dropdown-menu.component.mjs +192 -0
- package/esm2020/src/dropdown-menu/dropdown-menu.module.mjs +22 -0
- package/esm2020/src/dropdown-menu/pdm-ui-kit-src-dropdown-menu.mjs +5 -0
- package/esm2020/src/dropdown-menu/public-api.mjs +3 -0
- package/esm2020/src/empty/empty.component.mjs +58 -0
- package/esm2020/src/empty/empty.module.mjs +21 -0
- package/esm2020/src/empty/pdm-ui-kit-src-empty.mjs +5 -0
- package/esm2020/src/empty/public-api.mjs +3 -0
- package/esm2020/src/field/field.component.mjs +64 -0
- package/esm2020/src/field/field.module.mjs +21 -0
- package/esm2020/src/field/pdm-ui-kit-src-field.mjs +5 -0
- package/esm2020/src/field/public-api.mjs +3 -0
- package/esm2020/src/hover-card/hover-card.component.mjs +205 -0
- package/esm2020/src/hover-card/hover-card.module.mjs +22 -0
- package/esm2020/src/hover-card/pdm-ui-kit-src-hover-card.mjs +5 -0
- package/esm2020/src/hover-card/public-api.mjs +3 -0
- package/esm2020/src/icon/icon.component.mjs +144 -0
- package/esm2020/src/icon/icon.module.mjs +21 -0
- package/esm2020/src/icon/pdm-ui-kit-src-icon.mjs +5 -0
- package/esm2020/src/icon/public-api.mjs +3 -0
- package/esm2020/{lib/components/input-group → src/input}/input-group.component.mjs +2 -2
- package/esm2020/src/input/input-otp.component.mjs +144 -0
- package/esm2020/src/input/input-password.component.mjs +78 -0
- package/esm2020/src/input/input.component.mjs +71 -0
- package/esm2020/src/input/input.module.mjs +38 -0
- package/esm2020/src/input/pdm-ui-kit-src-input.mjs +5 -0
- package/esm2020/src/input/public-api.mjs +7 -0
- package/esm2020/src/input/textarea.component.mjs +59 -0
- package/esm2020/src/item/item.component.mjs +23 -0
- package/esm2020/src/item/item.module.mjs +21 -0
- package/esm2020/src/item/pdm-ui-kit-src-item.mjs +5 -0
- package/esm2020/src/item/public-api.mjs +3 -0
- package/esm2020/src/kbd/kbd.component.mjs +17 -0
- package/esm2020/src/kbd/kbd.module.mjs +21 -0
- package/esm2020/src/kbd/pdm-ui-kit-src-kbd.mjs +5 -0
- package/esm2020/src/kbd/public-api.mjs +3 -0
- package/esm2020/src/label/label.component.mjs +23 -0
- package/esm2020/src/label/label.module.mjs +21 -0
- package/esm2020/src/label/pdm-ui-kit-src-label.mjs +5 -0
- package/esm2020/src/label/public-api.mjs +3 -0
- package/esm2020/src/menubar/menubar.component.mjs +144 -0
- package/esm2020/src/menubar/menubar.module.mjs +22 -0
- package/esm2020/src/menubar/pdm-ui-kit-src-menubar.mjs +5 -0
- package/esm2020/src/menubar/public-api.mjs +3 -0
- package/esm2020/src/native-select/native-select.component.mjs +42 -0
- package/esm2020/src/native-select/native-select.module.mjs +20 -0
- package/esm2020/src/native-select/pdm-ui-kit-src-native-select.mjs +5 -0
- package/esm2020/src/native-select/public-api.mjs +3 -0
- package/esm2020/src/navigation-menu/navigation-menu.component.mjs +42 -0
- package/esm2020/src/navigation-menu/navigation-menu.module.mjs +21 -0
- package/esm2020/src/navigation-menu/pdm-ui-kit-src-navigation-menu.mjs +5 -0
- package/esm2020/src/navigation-menu/public-api.mjs +3 -0
- package/esm2020/src/overlay/create-flexible-position-strategy.mjs +54 -0
- package/esm2020/src/overlay/pdm-outside-click.directive.mjs +86 -0
- package/esm2020/src/overlay/pdm-outside-click.module.mjs +18 -0
- package/esm2020/src/overlay/pdm-overlay-options.mjs +2 -0
- package/esm2020/src/overlay/pdm-ui-kit-src-overlay.mjs +5 -0
- package/esm2020/src/overlay/public-api.mjs +6 -0
- package/esm2020/src/overlay/z-index-helper.mjs +69 -0
- package/esm2020/{lib/components → src}/pagination/pagination.component.mjs +3 -3
- package/esm2020/src/pagination/pagination.module.mjs +21 -0
- package/esm2020/src/pagination/pdm-ui-kit-src-pagination.mjs +5 -0
- package/esm2020/src/pagination/public-api.mjs +3 -0
- package/esm2020/src/popover/pdm-ui-kit-src-popover.mjs +5 -0
- package/esm2020/src/popover/popover.component.mjs +162 -0
- package/esm2020/src/popover/popover.module.mjs +22 -0
- package/esm2020/src/popover/public-api.mjs +3 -0
- package/esm2020/src/progress/pdm-ui-kit-src-progress.mjs +5 -0
- package/esm2020/src/progress/progress.component.mjs +33 -0
- package/esm2020/src/progress/progress.module.mjs +21 -0
- package/esm2020/src/progress/public-api.mjs +3 -0
- package/esm2020/src/radio-group/pdm-ui-kit-src-radio-group.mjs +5 -0
- package/esm2020/src/radio-group/public-api.mjs +3 -0
- package/esm2020/src/radio-group/radio-group.component.mjs +38 -0
- package/esm2020/src/radio-group/radio-group.module.mjs +21 -0
- package/esm2020/src/scroll-area/pdm-ui-kit-src-scroll-area.mjs +5 -0
- package/esm2020/src/scroll-area/public-api.mjs +3 -0
- package/esm2020/src/scroll-area/scroll-area.component.mjs +20 -0
- package/esm2020/src/scroll-area/scroll-area.module.mjs +21 -0
- package/esm2020/src/select/pdm-ui-kit-src-select.mjs +5 -0
- package/esm2020/src/select/public-api.mjs +4 -0
- package/esm2020/src/select/select-option.directive.mjs +55 -0
- package/esm2020/src/select/select.component.mjs +164 -0
- package/esm2020/src/select/select.module.mjs +22 -0
- package/esm2020/src/separator/pdm-ui-kit-src-separator.mjs +5 -0
- package/esm2020/src/separator/public-api.mjs +3 -0
- package/esm2020/src/separator/separator.component.mjs +26 -0
- package/esm2020/src/separator/separator.module.mjs +21 -0
- package/esm2020/src/sidebar/pdm-ui-kit-src-sidebar.mjs +5 -0
- package/esm2020/src/sidebar/public-api.mjs +3 -0
- package/esm2020/src/sidebar/sidebar.component.mjs +67 -0
- package/esm2020/src/sidebar/sidebar.module.mjs +21 -0
- package/esm2020/src/skeleton/pdm-ui-kit-src-skeleton.mjs +5 -0
- package/esm2020/src/skeleton/public-api.mjs +3 -0
- package/esm2020/src/skeleton/skeleton.component.mjs +17 -0
- package/esm2020/src/skeleton/skeleton.module.mjs +21 -0
- package/esm2020/src/slider/pdm-ui-kit-src-slider.mjs +5 -0
- package/esm2020/src/slider/public-api.mjs +3 -0
- package/esm2020/src/slider/slider.component.mjs +46 -0
- package/esm2020/src/slider/slider.module.mjs +21 -0
- package/esm2020/src/sonner/pdm-ui-kit-src-sonner.mjs +5 -0
- package/esm2020/src/sonner/public-api.mjs +3 -0
- package/esm2020/src/sonner/sonner.component.mjs +39 -0
- package/esm2020/src/sonner/sonner.module.mjs +20 -0
- package/esm2020/src/spinner/pdm-ui-kit-src-spinner.mjs +5 -0
- package/esm2020/src/spinner/public-api.mjs +3 -0
- package/esm2020/src/spinner/spinner.component.mjs +20 -0
- package/esm2020/src/spinner/spinner.module.mjs +21 -0
- package/esm2020/src/switch/pdm-ui-kit-src-switch.mjs +5 -0
- package/esm2020/src/switch/public-api.mjs +3 -0
- package/esm2020/src/switch/switch.component.mjs +58 -0
- package/esm2020/src/switch/switch.module.mjs +21 -0
- package/esm2020/src/tabs/pdm-ui-kit-src-tabs.mjs +5 -0
- package/esm2020/src/tabs/public-api.mjs +3 -0
- package/esm2020/{lib/components → src}/tabs/tabs.component.mjs +1 -1
- package/esm2020/src/tabs/tabs.module.mjs +21 -0
- package/esm2020/src/toggle/pdm-ui-kit-src-toggle.mjs +5 -0
- package/esm2020/src/toggle/public-api.mjs +4 -0
- package/esm2020/{lib/components/toggle-group → src/toggle}/toggle-group.component.mjs +1 -1
- package/esm2020/{lib/components → src}/toggle/toggle.component.mjs +1 -1
- package/esm2020/src/toggle/toggle.module.mjs +25 -0
- package/esm2020/src/tooltip/pdm-ui-kit-src-tooltip.mjs +5 -0
- package/esm2020/src/tooltip/public-api.mjs +3 -0
- package/esm2020/src/tooltip/tooltip.component.mjs +176 -0
- package/esm2020/src/tooltip/tooltip.module.mjs +22 -0
- package/esm2020/src/utils/pdm-ui-kit-src-utils.mjs +5 -0
- package/esm2020/src/utils/public-api.mjs +3 -0
- package/esm2020/src/utils/responsive.mjs +143 -0
- package/esm2020/src/utils/z-index.mjs +90 -0
- package/esm2020/switch/switch.component.mjs +58 -0
- package/esm2020/switch/switch.module.mjs +21 -0
- package/esm2020/tabs/tabs.component.mjs +34 -0
- package/esm2020/tabs/tabs.module.mjs +21 -0
- package/esm2020/toggle/toggle-group.component.mjs +31 -0
- package/esm2020/toggle/toggle.component.mjs +41 -0
- package/esm2020/toggle/toggle.module.mjs +25 -0
- package/esm2020/{lib/components/tooltip → tooltip}/tooltip.component.mjs +2 -2
- 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-src-accordion.mjs +68 -0
- package/fesm2015/pdm-ui-kit-src-accordion.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-alert.mjs +147 -0
- package/fesm2015/pdm-ui-kit-src-alert.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs +56 -0
- package/fesm2015/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-avatar.mjs +71 -0
- package/fesm2015/pdm-ui-kit-src-avatar.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-badge.mjs +48 -0
- package/fesm2015/pdm-ui-kit-src-badge.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-breadcrumb.mjs +87 -0
- package/fesm2015/pdm-ui-kit-src-breadcrumb.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-button.mjs +376 -0
- package/fesm2015/pdm-ui-kit-src-button.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-calendar.mjs +912 -0
- package/fesm2015/pdm-ui-kit-src-calendar.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-card.mjs +73 -0
- package/fesm2015/pdm-ui-kit-src-card.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-carousel.mjs +127 -0
- package/fesm2015/pdm-ui-kit-src-carousel.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-chart.mjs +203 -0
- package/fesm2015/pdm-ui-kit-src-chart.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-checkbox.mjs +72 -0
- package/fesm2015/pdm-ui-kit-src-checkbox.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-collapsible.mjs +68 -0
- package/fesm2015/pdm-ui-kit-src-collapsible.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-combobox.mjs +200 -0
- package/fesm2015/pdm-ui-kit-src-combobox.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-command.mjs +100 -0
- package/fesm2015/pdm-ui-kit-src-command.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-context-menu.mjs +191 -0
- package/fesm2015/pdm-ui-kit-src-context-menu.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-data-table.mjs +806 -0
- package/fesm2015/pdm-ui-kit-src-data-table.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-dialog.mjs +289 -0
- package/fesm2015/pdm-ui-kit-src-dialog.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-drawer.mjs +354 -0
- package/fesm2015/pdm-ui-kit-src-drawer.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-dropdown-menu.mjs +212 -0
- package/fesm2015/pdm-ui-kit-src-dropdown-menu.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-empty.mjs +83 -0
- package/fesm2015/pdm-ui-kit-src-empty.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-field.mjs +89 -0
- package/fesm2015/pdm-ui-kit-src-field.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-hover-card.mjs +231 -0
- package/fesm2015/pdm-ui-kit-src-hover-card.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-icon.mjs +172 -0
- package/fesm2015/pdm-ui-kit-src-icon.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-input.mjs +443 -0
- package/fesm2015/pdm-ui-kit-src-input.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-item.mjs +48 -0
- package/fesm2015/pdm-ui-kit-src-item.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-kbd.mjs +42 -0
- package/fesm2015/pdm-ui-kit-src-kbd.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-label.mjs +48 -0
- package/fesm2015/pdm-ui-kit-src-label.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-menubar.mjs +170 -0
- package/fesm2015/pdm-ui-kit-src-menubar.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-native-select.mjs +66 -0
- package/fesm2015/pdm-ui-kit-src-native-select.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-navigation-menu.mjs +67 -0
- package/fesm2015/pdm-ui-kit-src-navigation-menu.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-overlay.mjs +225 -0
- package/fesm2015/pdm-ui-kit-src-overlay.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-pagination.mjs +97 -0
- package/fesm2015/pdm-ui-kit-src-pagination.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-popover.mjs +189 -0
- package/fesm2015/pdm-ui-kit-src-popover.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-progress.mjs +58 -0
- package/fesm2015/pdm-ui-kit-src-progress.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-radio-group.mjs +63 -0
- package/fesm2015/pdm-ui-kit-src-radio-group.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-scroll-area.mjs +45 -0
- package/fesm2015/pdm-ui-kit-src-scroll-area.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-select.mjs +238 -0
- package/fesm2015/pdm-ui-kit-src-select.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-separator.mjs +51 -0
- package/fesm2015/pdm-ui-kit-src-separator.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-sidebar.mjs +92 -0
- package/fesm2015/pdm-ui-kit-src-sidebar.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-skeleton.mjs +42 -0
- package/fesm2015/pdm-ui-kit-src-skeleton.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-slider.mjs +71 -0
- package/fesm2015/pdm-ui-kit-src-slider.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-sonner.mjs +63 -0
- package/fesm2015/pdm-ui-kit-src-sonner.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-spinner.mjs +45 -0
- package/fesm2015/pdm-ui-kit-src-spinner.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-switch.mjs +83 -0
- package/fesm2015/pdm-ui-kit-src-switch.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-tabs.mjs +59 -0
- package/fesm2015/pdm-ui-kit-src-tabs.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-toggle.mjs +97 -0
- package/fesm2015/pdm-ui-kit-src-toggle.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-tooltip.mjs +202 -0
- package/fesm2015/pdm-ui-kit-src-tooltip.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit-src-utils.mjs +239 -0
- package/fesm2015/pdm-ui-kit-src-utils.mjs.map +1 -0
- package/fesm2015/pdm-ui-kit.mjs +3832 -2982
- package/fesm2015/pdm-ui-kit.mjs.map +1 -1
- package/fesm2020/pdm-ui-kit-src-accordion.mjs +67 -0
- package/fesm2020/pdm-ui-kit-src-accordion.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-alert.mjs +147 -0
- package/fesm2020/pdm-ui-kit-src-alert.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs +56 -0
- package/fesm2020/pdm-ui-kit-src-aspect-ratio.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-avatar.mjs +71 -0
- package/fesm2020/pdm-ui-kit-src-avatar.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-badge.mjs +48 -0
- package/fesm2020/pdm-ui-kit-src-badge.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-breadcrumb.mjs +87 -0
- package/fesm2020/pdm-ui-kit-src-breadcrumb.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-button.mjs +375 -0
- package/fesm2020/pdm-ui-kit-src-button.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-calendar.mjs +911 -0
- package/fesm2020/pdm-ui-kit-src-calendar.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-card.mjs +73 -0
- package/fesm2020/pdm-ui-kit-src-card.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-carousel.mjs +127 -0
- package/fesm2020/pdm-ui-kit-src-carousel.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-chart.mjs +202 -0
- package/fesm2020/pdm-ui-kit-src-chart.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-checkbox.mjs +72 -0
- package/fesm2020/pdm-ui-kit-src-checkbox.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-collapsible.mjs +68 -0
- package/fesm2020/pdm-ui-kit-src-collapsible.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-combobox.mjs +199 -0
- package/fesm2020/pdm-ui-kit-src-combobox.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-command.mjs +99 -0
- package/fesm2020/pdm-ui-kit-src-command.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-context-menu.mjs +191 -0
- package/fesm2020/pdm-ui-kit-src-context-menu.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-data-table.mjs +805 -0
- package/fesm2020/pdm-ui-kit-src-data-table.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-dialog.mjs +289 -0
- package/fesm2020/pdm-ui-kit-src-dialog.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-drawer.mjs +354 -0
- package/fesm2020/pdm-ui-kit-src-drawer.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-dropdown-menu.mjs +218 -0
- package/fesm2020/pdm-ui-kit-src-dropdown-menu.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-empty.mjs +83 -0
- package/fesm2020/pdm-ui-kit-src-empty.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-field.mjs +89 -0
- package/fesm2020/pdm-ui-kit-src-field.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-hover-card.mjs +231 -0
- package/fesm2020/pdm-ui-kit-src-hover-card.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-icon.mjs +169 -0
- package/fesm2020/pdm-ui-kit-src-icon.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-input.mjs +441 -0
- package/fesm2020/pdm-ui-kit-src-input.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-item.mjs +48 -0
- package/fesm2020/pdm-ui-kit-src-item.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-kbd.mjs +42 -0
- package/fesm2020/pdm-ui-kit-src-kbd.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-label.mjs +48 -0
- package/fesm2020/pdm-ui-kit-src-label.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-menubar.mjs +170 -0
- package/fesm2020/pdm-ui-kit-src-menubar.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-native-select.mjs +66 -0
- package/fesm2020/pdm-ui-kit-src-native-select.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-navigation-menu.mjs +67 -0
- package/fesm2020/pdm-ui-kit-src-navigation-menu.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-overlay.mjs +229 -0
- package/fesm2020/pdm-ui-kit-src-overlay.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-pagination.mjs +97 -0
- package/fesm2020/pdm-ui-kit-src-pagination.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-popover.mjs +188 -0
- package/fesm2020/pdm-ui-kit-src-popover.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-progress.mjs +58 -0
- package/fesm2020/pdm-ui-kit-src-progress.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-radio-group.mjs +63 -0
- package/fesm2020/pdm-ui-kit-src-radio-group.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-scroll-area.mjs +45 -0
- package/fesm2020/pdm-ui-kit-src-scroll-area.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-select.mjs +241 -0
- package/fesm2020/pdm-ui-kit-src-select.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-separator.mjs +51 -0
- package/fesm2020/pdm-ui-kit-src-separator.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-sidebar.mjs +92 -0
- package/fesm2020/pdm-ui-kit-src-sidebar.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-skeleton.mjs +42 -0
- package/fesm2020/pdm-ui-kit-src-skeleton.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-slider.mjs +71 -0
- package/fesm2020/pdm-ui-kit-src-slider.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-sonner.mjs +63 -0
- package/fesm2020/pdm-ui-kit-src-sonner.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-spinner.mjs +45 -0
- package/fesm2020/pdm-ui-kit-src-spinner.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-switch.mjs +83 -0
- package/fesm2020/pdm-ui-kit-src-switch.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-tabs.mjs +59 -0
- package/fesm2020/pdm-ui-kit-src-tabs.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-toggle.mjs +97 -0
- package/fesm2020/pdm-ui-kit-src-toggle.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-tooltip.mjs +202 -0
- package/fesm2020/pdm-ui-kit-src-tooltip.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit-src-utils.mjs +239 -0
- package/fesm2020/pdm-ui-kit-src-utils.mjs.map +1 -0
- package/fesm2020/pdm-ui-kit.mjs +3865 -3015
- package/fesm2020/pdm-ui-kit.mjs.map +1 -1
- package/field/field.module.d.ts +8 -0
- package/hover-card/hover-card.module.d.ts +9 -0
- package/icon/icon.module.d.ts +8 -0
- package/{lib/components/input-password → input}/input-password.component.d.ts +1 -1
- package/input/input.module.d.ts +13 -0
- package/item/item.module.d.ts +8 -0
- package/kbd/kbd.module.d.ts +8 -0
- package/label/label.module.d.ts +8 -0
- package/{lib/components/menubar → menubar}/menubar.component.d.ts +1 -1
- package/menubar/menubar.module.d.ts +9 -0
- package/native-select/native-select.module.d.ts +9 -0
- package/navigation-menu/navigation-menu.module.d.ts +8 -0
- package/overlay/pdm-outside-click.module.d.ts +8 -0
- package/package.json +786 -2
- package/{lib/components/pagination → pagination}/pagination.component.d.ts +1 -1
- package/pagination/pagination.module.d.ts +10 -0
- package/pdm-ui-kit.module.d.ts +60 -0
- package/popover/popover.module.d.ts +9 -0
- package/progress/progress.module.d.ts +8 -0
- package/public-api.d.ts +114 -66
- package/radio-group/radio-group.module.d.ts +8 -0
- package/scroll-area/scroll-area.module.d.ts +8 -0
- package/{lib/components/select → select}/select.component.d.ts +1 -1
- package/select/select.module.d.ts +11 -0
- package/separator/separator.module.d.ts +8 -0
- package/sidebar/sidebar.module.d.ts +8 -0
- package/skeleton/skeleton.module.d.ts +8 -0
- package/slider/slider.module.d.ts +8 -0
- package/sonner/sonner.module.d.ts +9 -0
- package/spinner/spinner.module.d.ts +8 -0
- package/src/accordion/accordion.component.d.ts +19 -0
- package/src/accordion/accordion.module.d.ts +8 -0
- package/src/accordion/index.d.ts +5 -0
- package/src/accordion/public-api.d.ts +2 -0
- package/src/alert/alert-dialog.component.d.ts +29 -0
- package/src/alert/alert.component.d.ts +13 -0
- package/src/alert/alert.module.d.ts +9 -0
- package/src/alert/index.d.ts +5 -0
- package/src/alert/public-api.d.ts +3 -0
- package/src/aspect-ratio/aspect-ratio.component.d.ts +10 -0
- package/src/aspect-ratio/aspect-ratio.module.d.ts +8 -0
- package/src/aspect-ratio/index.d.ts +5 -0
- package/src/aspect-ratio/public-api.d.ts +2 -0
- package/src/avatar/avatar.component.d.ts +20 -0
- package/src/avatar/avatar.module.d.ts +8 -0
- package/src/avatar/index.d.ts +5 -0
- package/src/avatar/public-api.d.ts +2 -0
- package/src/badge/badge.component.d.ts +9 -0
- package/src/badge/badge.module.d.ts +8 -0
- package/src/badge/index.d.ts +5 -0
- package/src/badge/public-api.d.ts +2 -0
- package/src/breadcrumb/breadcrumb.component.d.ts +32 -0
- package/src/breadcrumb/breadcrumb.module.d.ts +8 -0
- package/src/breadcrumb/index.d.ts +5 -0
- package/src/breadcrumb/public-api.d.ts +2 -0
- package/src/button/button-group.component.d.ts +19 -0
- package/src/button/button.component.d.ts +29 -0
- package/src/button/button.module.d.ts +9 -0
- package/src/button/index.d.ts +5 -0
- package/src/button/public-api.d.ts +3 -0
- package/src/calendar/calendar.component.d.ts +149 -0
- package/src/calendar/calendar.module.d.ts +11 -0
- package/src/calendar/date-picker.component.d.ts +89 -0
- package/src/calendar/index.d.ts +5 -0
- package/src/calendar/public-api.d.ts +3 -0
- package/src/card/card.component.d.ts +37 -0
- package/src/card/card.module.d.ts +8 -0
- package/src/card/index.d.ts +5 -0
- package/src/card/public-api.d.ts +2 -0
- package/src/carousel/carousel.component.d.ts +28 -0
- package/src/carousel/carousel.module.d.ts +8 -0
- package/src/carousel/index.d.ts +5 -0
- package/src/carousel/public-api.d.ts +2 -0
- package/src/chart/chart.component.d.ts +44 -0
- package/src/chart/chart.module.d.ts +8 -0
- package/src/chart/index.d.ts +5 -0
- package/src/chart/public-api.d.ts +2 -0
- package/src/checkbox/checkbox.component.d.ts +17 -0
- package/src/checkbox/checkbox.module.d.ts +8 -0
- package/src/checkbox/index.d.ts +5 -0
- package/src/checkbox/public-api.d.ts +2 -0
- package/src/collapsible/collapsible.component.d.ts +14 -0
- package/src/collapsible/collapsible.module.d.ts +8 -0
- package/src/collapsible/index.d.ts +5 -0
- package/src/collapsible/public-api.d.ts +2 -0
- package/src/combobox/combobox.component.d.ts +35 -0
- package/src/combobox/combobox.module.d.ts +9 -0
- package/src/combobox/index.d.ts +5 -0
- package/src/combobox/public-api.d.ts +2 -0
- package/src/command/command.component.d.ts +33 -0
- package/src/command/command.module.d.ts +9 -0
- package/src/command/index.d.ts +5 -0
- package/src/command/public-api.d.ts +2 -0
- package/src/context-menu/context-menu.component.d.ts +38 -0
- package/src/context-menu/context-menu.module.d.ts +9 -0
- package/src/context-menu/index.d.ts +5 -0
- package/src/context-menu/public-api.d.ts +2 -0
- package/src/data-table/data-table.component.d.ts +200 -0
- package/src/data-table/data-table.module.d.ts +10 -0
- package/src/data-table/draggable-table.component.d.ts +74 -0
- package/src/data-table/index.d.ts +5 -0
- package/src/data-table/public-api.d.ts +4 -0
- package/src/data-table/table.component.d.ts +55 -0
- package/src/dialog/dialog.component.d.ts +72 -0
- package/src/dialog/dialog.module.d.ts +8 -0
- package/src/dialog/index.d.ts +5 -0
- package/src/dialog/public-api.d.ts +2 -0
- package/src/drawer/drawer.component.d.ts +96 -0
- package/src/drawer/drawer.module.d.ts +10 -0
- package/src/drawer/index.d.ts +5 -0
- package/src/drawer/public-api.d.ts +3 -0
- package/src/drawer/sheet.component.d.ts +46 -0
- package/src/dropdown-menu/dropdown-menu.component.d.ts +61 -0
- package/src/dropdown-menu/dropdown-menu.module.d.ts +9 -0
- package/src/dropdown-menu/index.d.ts +5 -0
- package/src/dropdown-menu/public-api.d.ts +2 -0
- package/src/empty/empty.component.d.ts +19 -0
- package/src/empty/empty.module.d.ts +10 -0
- package/src/empty/index.d.ts +5 -0
- package/src/empty/public-api.d.ts +2 -0
- package/src/field/field.component.d.ts +23 -0
- package/src/field/field.module.d.ts +8 -0
- package/src/field/index.d.ts +5 -0
- package/src/field/public-api.d.ts +2 -0
- package/src/hover-card/hover-card.component.d.ts +37 -0
- package/src/hover-card/hover-card.module.d.ts +9 -0
- package/src/hover-card/index.d.ts +5 -0
- package/src/hover-card/public-api.d.ts +2 -0
- package/src/icon/icon.component.d.ts +28 -0
- package/src/icon/icon.module.d.ts +8 -0
- package/src/icon/index.d.ts +5 -0
- package/src/icon/public-api.d.ts +2 -0
- package/src/input/index.d.ts +5 -0
- package/src/input/input-group.component.d.ts +22 -0
- package/src/input/input-otp.component.d.ts +26 -0
- package/src/input/input-password.component.d.ts +28 -0
- package/src/input/input.component.d.ts +27 -0
- package/src/input/input.module.d.ts +13 -0
- package/src/input/public-api.d.ts +6 -0
- package/src/input/textarea.component.d.ts +21 -0
- package/src/item/index.d.ts +5 -0
- package/src/item/item.component.d.ts +8 -0
- package/src/item/item.module.d.ts +8 -0
- package/src/item/public-api.d.ts +2 -0
- package/src/kbd/index.d.ts +5 -0
- package/src/kbd/kbd.component.d.ts +6 -0
- package/src/kbd/kbd.module.d.ts +8 -0
- package/src/kbd/public-api.d.ts +2 -0
- package/src/label/index.d.ts +5 -0
- package/src/label/label.component.d.ts +8 -0
- package/src/label/label.module.d.ts +8 -0
- package/src/label/public-api.d.ts +2 -0
- package/src/menubar/index.d.ts +5 -0
- package/src/menubar/menubar.component.d.ts +34 -0
- package/src/menubar/menubar.module.d.ts +9 -0
- package/src/menubar/public-api.d.ts +2 -0
- package/src/native-select/index.d.ts +5 -0
- package/src/native-select/native-select.component.d.ts +20 -0
- package/src/native-select/native-select.module.d.ts +9 -0
- package/src/native-select/public-api.d.ts +2 -0
- package/src/navigation-menu/index.d.ts +5 -0
- package/src/navigation-menu/navigation-menu.component.d.ts +33 -0
- package/src/navigation-menu/navigation-menu.module.d.ts +8 -0
- package/src/navigation-menu/public-api.d.ts +2 -0
- package/src/overlay/create-flexible-position-strategy.d.ts +15 -0
- package/src/overlay/index.d.ts +5 -0
- package/src/overlay/pdm-outside-click.directive.d.ts +40 -0
- package/src/overlay/pdm-outside-click.module.d.ts +8 -0
- package/src/overlay/pdm-overlay-options.d.ts +21 -0
- package/src/overlay/public-api.d.ts +5 -0
- package/src/overlay/z-index-helper.d.ts +36 -0
- package/src/pagination/index.d.ts +5 -0
- package/src/pagination/pagination.component.d.ts +21 -0
- package/src/pagination/pagination.module.d.ts +10 -0
- package/src/pagination/public-api.d.ts +2 -0
- package/src/popover/index.d.ts +5 -0
- package/src/popover/popover.component.d.ts +32 -0
- package/src/popover/popover.module.d.ts +9 -0
- package/src/popover/public-api.d.ts +2 -0
- package/src/progress/index.d.ts +5 -0
- package/src/progress/progress.component.d.ts +10 -0
- package/src/progress/progress.module.d.ts +8 -0
- package/src/progress/public-api.d.ts +2 -0
- package/src/radio-group/index.d.ts +5 -0
- package/src/radio-group/public-api.d.ts +2 -0
- package/src/radio-group/radio-group.component.d.ts +19 -0
- package/src/radio-group/radio-group.module.d.ts +8 -0
- package/src/scroll-area/index.d.ts +5 -0
- package/src/scroll-area/public-api.d.ts +2 -0
- package/src/scroll-area/scroll-area.component.d.ts +7 -0
- package/src/scroll-area/scroll-area.module.d.ts +8 -0
- package/src/select/index.d.ts +5 -0
- package/src/select/public-api.d.ts +3 -0
- package/src/select/select-option.directive.d.ts +34 -0
- package/src/select/select.component.d.ts +55 -0
- package/src/select/select.module.d.ts +11 -0
- package/src/separator/index.d.ts +5 -0
- package/src/separator/public-api.d.ts +2 -0
- package/src/separator/separator.component.d.ts +9 -0
- package/src/separator/separator.module.d.ts +8 -0
- package/src/sidebar/index.d.ts +5 -0
- package/src/sidebar/public-api.d.ts +2 -0
- package/src/sidebar/sidebar.component.d.ts +45 -0
- package/src/sidebar/sidebar.module.d.ts +8 -0
- package/src/skeleton/index.d.ts +5 -0
- package/src/skeleton/public-api.d.ts +2 -0
- package/src/skeleton/skeleton.component.d.ts +6 -0
- package/src/skeleton/skeleton.module.d.ts +8 -0
- package/src/slider/index.d.ts +5 -0
- package/src/slider/public-api.d.ts +2 -0
- package/src/slider/slider.component.d.ts +15 -0
- package/src/slider/slider.module.d.ts +8 -0
- package/src/sonner/index.d.ts +5 -0
- package/src/sonner/public-api.d.ts +2 -0
- package/src/sonner/sonner.component.d.ts +13 -0
- package/src/sonner/sonner.module.d.ts +9 -0
- package/src/spinner/index.d.ts +5 -0
- package/src/spinner/public-api.d.ts +2 -0
- package/src/spinner/spinner.component.d.ts +7 -0
- package/src/spinner/spinner.module.d.ts +8 -0
- package/src/switch/index.d.ts +5 -0
- package/src/switch/public-api.d.ts +2 -0
- package/src/switch/switch.module.d.ts +8 -0
- package/src/tabs/index.d.ts +5 -0
- package/src/tabs/public-api.d.ts +2 -0
- package/src/tabs/tabs.module.d.ts +8 -0
- package/src/toggle/index.d.ts +5 -0
- package/src/toggle/public-api.d.ts +3 -0
- package/src/toggle/toggle.module.d.ts +9 -0
- package/src/tooltip/index.d.ts +5 -0
- package/src/tooltip/public-api.d.ts +2 -0
- package/src/tooltip/tooltip.module.d.ts +9 -0
- package/src/utils/index.d.ts +5 -0
- package/src/utils/public-api.d.ts +2 -0
- package/switch/switch.component.d.ts +18 -0
- package/switch/switch.module.d.ts +8 -0
- package/tabs/tabs.component.d.ts +18 -0
- package/tabs/tabs.module.d.ts +8 -0
- package/toggle/toggle-group.component.d.ts +16 -0
- package/toggle/toggle.component.d.ts +14 -0
- package/toggle/toggle.module.d.ts +9 -0
- package/tooltip/tooltip.component.d.ts +28 -0
- package/tooltip/tooltip.module.d.ts +9 -0
- package/utils/responsive.d.ts +107 -0
- package/utils/z-index.d.ts +69 -0
- package/esm2020/lib/components/button/button.component.mjs +0 -114
- package/esm2020/lib/components/calendar/calendar.component.mjs +0 -529
- package/esm2020/lib/components/carousel/carousel.component.mjs +0 -102
- 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/dialog/dialog.component.mjs +0 -265
- package/esm2020/lib/components/draggable-table/draggable-table.component.mjs +0 -300
- package/esm2020/lib/components/drawer/drawer.component.mjs +0 -217
- package/esm2020/lib/components/dropdown-menu/dropdown-menu.component.mjs +0 -192
- 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/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/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/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 → 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/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/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 → src}/switch/switch.component.d.ts +0 -0
- /package/{lib/components → src}/tabs/tabs.component.d.ts +0 -0
- /package/{lib/components/toggle-group → src/toggle}/toggle-group.component.d.ts +0 -0
- /package/{lib/components → src}/toggle/toggle.component.d.ts +0 -0
- /package/{lib/components → src}/tooltip/tooltip.component.d.ts +0 -0
- /package/{lib → src}/utils/responsive.d.ts +0 -0
- /package/{lib → src}/utils/z-index.d.ts +0 -0
|
@@ -1,300 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/common";
|
|
4
|
-
/**
|
|
5
|
-
* Tabla con funcionalidad de reordenamiento de filas mediante drag & drop
|
|
6
|
-
*
|
|
7
|
-
* Extiende pdm-table agregando la capacidad de reordenar filas.
|
|
8
|
-
* Si no necesitás drag & drop, usá pdm-table directamente (más simple y liviano).
|
|
9
|
-
*
|
|
10
|
-
* @example
|
|
11
|
-
* <pdm-draggable-table
|
|
12
|
-
* variant="interactive"
|
|
13
|
-
* [reorderRows]="true"
|
|
14
|
-
* (rowOrderChange)="onOrderChange($event)">
|
|
15
|
-
* <tbody>
|
|
16
|
-
* <tr data-row-id="1"><td>Row 1</td></tr>
|
|
17
|
-
* <tr data-row-id="2"><td>Row 2</td></tr>
|
|
18
|
-
* </tbody>
|
|
19
|
-
* </pdm-draggable-table>
|
|
20
|
-
*
|
|
21
|
-
* IMPORTANTE: Cada <tr> debe tener un atributo data-row-id único
|
|
22
|
-
*/
|
|
23
|
-
export class PdmDraggableTableComponent {
|
|
24
|
-
constructor(renderer) {
|
|
25
|
-
this.renderer = renderer;
|
|
26
|
-
this.variant = 'default';
|
|
27
|
-
this.responsiveStrategy = 'scroll';
|
|
28
|
-
this.className = '';
|
|
29
|
-
this.fullBleed = false;
|
|
30
|
-
/**
|
|
31
|
-
* Habilita el reordenamiento de filas mediante drag & drop
|
|
32
|
-
*/
|
|
33
|
-
this.reorderRows = false;
|
|
34
|
-
/**
|
|
35
|
-
* Selector CSS para identificar los handles de drag
|
|
36
|
-
* Por defecto busca: [data-drag-handle], [data-slot=row-drag-handle], .row-drag-handle
|
|
37
|
-
* Si no encuentra ninguno, inserta un handle automático
|
|
38
|
-
*/
|
|
39
|
-
this.dragHandleSelector = '[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle,[data-auto-drag-handle]';
|
|
40
|
-
/**
|
|
41
|
-
* Emite el nuevo orden de las filas cuando el usuario termina de arrastrar
|
|
42
|
-
* Array de data-row-id en el nuevo orden
|
|
43
|
-
*/
|
|
44
|
-
this.rowOrderChange = new EventEmitter();
|
|
45
|
-
this.cleanupListeners = [];
|
|
46
|
-
this.draggedRow = null;
|
|
47
|
-
}
|
|
48
|
-
ngAfterViewInit() {
|
|
49
|
-
this.syncReorderBehavior();
|
|
50
|
-
}
|
|
51
|
-
// Getters para clases CSS (mismo comportamiento que pdm-table)
|
|
52
|
-
get wrapperClasses() {
|
|
53
|
-
const baseClasses = ['relative', 'w-full'];
|
|
54
|
-
const strategyClasses = this.getResponsiveStrategyClasses();
|
|
55
|
-
const variantClasses = this.getVariantWrapperClasses();
|
|
56
|
-
if (this.fullBleed && this.responsiveStrategy === 'scroll') {
|
|
57
|
-
baseClasses.push('-mx-4', 'px-4', 'sm:mx-0', 'sm:px-0');
|
|
58
|
-
}
|
|
59
|
-
return [
|
|
60
|
-
...baseClasses,
|
|
61
|
-
...strategyClasses,
|
|
62
|
-
...variantClasses,
|
|
63
|
-
this.className
|
|
64
|
-
].filter(Boolean);
|
|
65
|
-
}
|
|
66
|
-
get tableClasses() {
|
|
67
|
-
const baseClasses = ['w-full', 'caption-bottom', 'text-sm'];
|
|
68
|
-
const variantClasses = this.getVariantTableClasses();
|
|
69
|
-
const cellClasses = this.getCellClasses();
|
|
70
|
-
return [...baseClasses, ...variantClasses, ...cellClasses].filter(Boolean);
|
|
71
|
-
}
|
|
72
|
-
getResponsiveStrategyClasses() {
|
|
73
|
-
if (this.responsiveStrategy === 'scroll' || this.responsiveStrategy === 'wrap' || this.responsiveStrategy === 'collapse') {
|
|
74
|
-
return ['overflow-x-auto'];
|
|
75
|
-
}
|
|
76
|
-
return [];
|
|
77
|
-
}
|
|
78
|
-
getVariantWrapperClasses() {
|
|
79
|
-
if (this.variant === 'interactive') {
|
|
80
|
-
return ['rounded-xl', 'border border-solid', 'border-border', 'bg-background'];
|
|
81
|
-
}
|
|
82
|
-
if (this.variant === 'data') {
|
|
83
|
-
return ['rounded-md', 'border border-solid', 'border-border', 'bg-background'];
|
|
84
|
-
}
|
|
85
|
-
return [];
|
|
86
|
-
}
|
|
87
|
-
getVariantTableClasses() {
|
|
88
|
-
if (this.variant === 'data') {
|
|
89
|
-
return [
|
|
90
|
-
'border-collapse', 'text-foreground',
|
|
91
|
-
'[&_thead_tr]:border-b', '[&_thead_tr]:border-border',
|
|
92
|
-
'[&_tbody_tr]:border-b', '[&_tbody_tr]:border-border',
|
|
93
|
-
'[&_tbody_tr:last-child]:border-b-0',
|
|
94
|
-
'[&_th]:h-10', '[&_th]:px-2', '[&_th]:text-left', '[&_th]:align-middle', '[&_th]:font-medium',
|
|
95
|
-
'[&_td]:p-2', '[&_td]:align-middle'
|
|
96
|
-
];
|
|
97
|
-
}
|
|
98
|
-
if (this.variant === 'interactive') {
|
|
99
|
-
return [
|
|
100
|
-
'text-foreground',
|
|
101
|
-
'[&_thead]:sticky', '[&_thead]:top-0', '[&_thead]:z-10', '[&_thead]:bg-muted/70',
|
|
102
|
-
'[&_thead_tr]:border-b', '[&_thead_tr]:border-border',
|
|
103
|
-
'[&_th]:h-12', '[&_th]:px-4', '[&_th]:text-left', '[&_th]:align-middle', '[&_th]:text-sm', '[&_th]:font-medium',
|
|
104
|
-
'[&_tbody_tr]:border-b', '[&_tbody_tr]:border-border',
|
|
105
|
-
'[&_tbody_tr]:transition-colors', '[&_tbody_tr:hover]:bg-muted/50',
|
|
106
|
-
'[&_tbody_tr:last-child]:border-b-0',
|
|
107
|
-
'[&_td]:h-14', '[&_td]:px-4', '[&_td]:align-middle', '[&_td]:text-sm',
|
|
108
|
-
'[&_svg]:text-muted-foreground'
|
|
109
|
-
];
|
|
110
|
-
}
|
|
111
|
-
return [];
|
|
112
|
-
}
|
|
113
|
-
getCellClasses() {
|
|
114
|
-
if (this.responsiveStrategy === 'scroll') {
|
|
115
|
-
return ['[&_td]:whitespace-normal', '[&_th]:whitespace-normal', 'sm:[&_td]:whitespace-nowrap', 'sm:[&_th]:whitespace-nowrap'];
|
|
116
|
-
}
|
|
117
|
-
if (this.responsiveStrategy === 'wrap') {
|
|
118
|
-
return ['[&_td]:whitespace-normal', '[&_td]:break-words', '[&_th]:whitespace-normal'];
|
|
119
|
-
}
|
|
120
|
-
return [];
|
|
121
|
-
}
|
|
122
|
-
ngOnChanges(changes) {
|
|
123
|
-
if (changes['reorderRows'] || changes['variant']) {
|
|
124
|
-
this.syncReorderBehavior();
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
ngOnDestroy() {
|
|
128
|
-
this.cleanupReorderBehavior();
|
|
129
|
-
}
|
|
130
|
-
syncReorderBehavior() {
|
|
131
|
-
this.cleanupReorderBehavior();
|
|
132
|
-
if (!this.reorderRows) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const tbody = this.getTbody();
|
|
136
|
-
if (!tbody) {
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
this.setRowsDraggable(tbody, true);
|
|
140
|
-
this.cleanupListeners.push(this.renderer.listen(tbody, 'mousedown', (event) => this.armDragFromHandle(event)), this.renderer.listen(tbody, 'dragstart', (event) => this.onDragStart(event)), this.renderer.listen(tbody, 'dragover', (event) => this.onDragOver(event, tbody)), this.renderer.listen(tbody, 'drop', (event) => this.onDrop(event)), this.renderer.listen(tbody, 'dragend', () => this.onDragEnd()));
|
|
141
|
-
// Observer para detectar cambios en el DOM (filas agregadas/removidas)
|
|
142
|
-
this.observer = new MutationObserver(() => this.setRowsDraggable(tbody, true));
|
|
143
|
-
this.observer.observe(tbody, { childList: true });
|
|
144
|
-
}
|
|
145
|
-
cleanupReorderBehavior() {
|
|
146
|
-
this.cleanupListeners.forEach((dispose) => dispose());
|
|
147
|
-
this.cleanupListeners = [];
|
|
148
|
-
if (this.observer) {
|
|
149
|
-
this.observer.disconnect();
|
|
150
|
-
this.observer = undefined;
|
|
151
|
-
}
|
|
152
|
-
const tbody = this.getTbody();
|
|
153
|
-
if (tbody) {
|
|
154
|
-
this.setRowsDraggable(tbody, false);
|
|
155
|
-
}
|
|
156
|
-
this.draggedRow = null;
|
|
157
|
-
}
|
|
158
|
-
getTbody() {
|
|
159
|
-
return this.tableElement?.nativeElement.tBodies.item(0) ?? null;
|
|
160
|
-
}
|
|
161
|
-
setRowsDraggable(tbody, enabled) {
|
|
162
|
-
const rows = Array.from(tbody.rows);
|
|
163
|
-
rows.forEach((row) => {
|
|
164
|
-
this.syncAutoDragHandle(row, enabled);
|
|
165
|
-
row.draggable = false;
|
|
166
|
-
if (!enabled) {
|
|
167
|
-
delete row.dataset['dragging'];
|
|
168
|
-
delete row.dataset['dragArmed'];
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Inserta un handle de drag automático si no existe uno custom
|
|
174
|
-
*/
|
|
175
|
-
syncAutoDragHandle(row, enabled) {
|
|
176
|
-
const firstCell = row.cells.item(0);
|
|
177
|
-
if (!firstCell) {
|
|
178
|
-
return;
|
|
179
|
-
}
|
|
180
|
-
const existingAutoHandle = firstCell.querySelector('[data-auto-drag-handle]');
|
|
181
|
-
if (!enabled) {
|
|
182
|
-
existingAutoHandle?.remove();
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
const hasCustomHandle = !!firstCell.querySelector('[data-drag-handle],[data-slot=row-drag-handle],.row-drag-handle');
|
|
186
|
-
if (hasCustomHandle || existingAutoHandle) {
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
// Crear handle automático
|
|
190
|
-
const button = this.renderer.createElement('button');
|
|
191
|
-
this.renderer.setAttribute(button, 'type', 'button');
|
|
192
|
-
this.renderer.setAttribute(button, 'aria-label', 'Drag row');
|
|
193
|
-
this.renderer.setAttribute(button, 'data-auto-drag-handle', 'true');
|
|
194
|
-
this.renderer.addClass(button, 'inline-flex');
|
|
195
|
-
this.renderer.addClass(button, 'h-7');
|
|
196
|
-
this.renderer.addClass(button, 'w-7');
|
|
197
|
-
this.renderer.addClass(button, 'items-center');
|
|
198
|
-
this.renderer.addClass(button, 'justify-center');
|
|
199
|
-
this.renderer.addClass(button, 'cursor-grab');
|
|
200
|
-
this.renderer.addClass(button, 'active:cursor-grabbing');
|
|
201
|
-
this.renderer.addClass(button, 'text-muted-foreground');
|
|
202
|
-
const dots = this.renderer.createElement('span');
|
|
203
|
-
this.renderer.addClass(dots, 'text-sm');
|
|
204
|
-
this.renderer.addClass(dots, 'leading-none');
|
|
205
|
-
this.renderer.setProperty(dots, 'textContent', '⋮⋮');
|
|
206
|
-
this.renderer.appendChild(button, dots);
|
|
207
|
-
this.renderer.insertBefore(firstCell, button, firstCell.firstChild);
|
|
208
|
-
}
|
|
209
|
-
onDragStart(event) {
|
|
210
|
-
const target = event.target;
|
|
211
|
-
const row = target?.closest('tr');
|
|
212
|
-
if (!row) {
|
|
213
|
-
return;
|
|
214
|
-
}
|
|
215
|
-
const handle = target?.closest(this.dragHandleSelector);
|
|
216
|
-
const isArmed = row.dataset['dragArmed'] === 'true';
|
|
217
|
-
if ((!handle || !row.contains(handle)) && !isArmed) {
|
|
218
|
-
event.preventDefault();
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
this.draggedRow = row;
|
|
222
|
-
this.draggedRow.dataset['dragging'] = 'true';
|
|
223
|
-
if (event.dataTransfer) {
|
|
224
|
-
event.dataTransfer.effectAllowed = 'move';
|
|
225
|
-
event.dataTransfer.setData('text/plain', '');
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
onDragOver(event, tbody) {
|
|
229
|
-
if (!this.draggedRow) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
event.preventDefault();
|
|
233
|
-
const target = event.target;
|
|
234
|
-
const targetRow = target?.closest('tr');
|
|
235
|
-
if (!targetRow || targetRow === this.draggedRow) {
|
|
236
|
-
return;
|
|
237
|
-
}
|
|
238
|
-
const rect = targetRow.getBoundingClientRect();
|
|
239
|
-
const shouldInsertBefore = event.clientY < rect.top + rect.height / 2;
|
|
240
|
-
tbody.insertBefore(this.draggedRow, shouldInsertBefore ? targetRow : targetRow.nextSibling);
|
|
241
|
-
}
|
|
242
|
-
onDrop(event) {
|
|
243
|
-
event.preventDefault();
|
|
244
|
-
}
|
|
245
|
-
onDragEnd() {
|
|
246
|
-
const tbody = this.getTbody();
|
|
247
|
-
if (tbody) {
|
|
248
|
-
Array.from(tbody.rows).forEach((row) => {
|
|
249
|
-
row.draggable = false;
|
|
250
|
-
delete row.dataset['dragArmed'];
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
if (this.draggedRow) {
|
|
254
|
-
delete this.draggedRow.dataset['dragging'];
|
|
255
|
-
this.draggedRow = null;
|
|
256
|
-
}
|
|
257
|
-
if (!tbody) {
|
|
258
|
-
return;
|
|
259
|
-
}
|
|
260
|
-
const order = Array.from(tbody.rows).map((row, index) => row.getAttribute('data-row-id') || String(index));
|
|
261
|
-
this.rowOrderChange.emit(order);
|
|
262
|
-
}
|
|
263
|
-
armDragFromHandle(event) {
|
|
264
|
-
const target = event.target;
|
|
265
|
-
const handle = target?.closest(this.dragHandleSelector);
|
|
266
|
-
if (!handle) {
|
|
267
|
-
return;
|
|
268
|
-
}
|
|
269
|
-
const row = handle.closest('tr');
|
|
270
|
-
if (!row) {
|
|
271
|
-
return;
|
|
272
|
-
}
|
|
273
|
-
row.draggable = true;
|
|
274
|
-
row.dataset['dragArmed'] = 'true';
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
PdmDraggableTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDraggableTableComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
-
PdmDraggableTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDraggableTableComponent, selector: "pdm-draggable-table", inputs: { variant: "variant", responsiveStrategy: "responsiveStrategy", className: "className", fullBleed: "fullBleed", reorderRows: "reorderRows", dragHandleSelector: "dragHandleSelector" }, outputs: { rowOrderChange: "rowOrderChange" }, viewQueries: [{ propertyName: "tableElement", first: true, predicate: ["tableElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
279
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDraggableTableComponent, decorators: [{
|
|
280
|
-
type: Component,
|
|
281
|
-
args: [{ selector: 'pdm-draggable-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"wrapperClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table-container' : null\">\n <table #tableElement [ngClass]=\"tableClasses\" [attr.data-slot]=\"variant === 'interactive' ? 'table' : null\">\n <ng-content></ng-content>\n </table>\n</div>\n" }]
|
|
282
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { variant: [{
|
|
283
|
-
type: Input
|
|
284
|
-
}], responsiveStrategy: [{
|
|
285
|
-
type: Input
|
|
286
|
-
}], className: [{
|
|
287
|
-
type: Input
|
|
288
|
-
}], fullBleed: [{
|
|
289
|
-
type: Input
|
|
290
|
-
}], reorderRows: [{
|
|
291
|
-
type: Input
|
|
292
|
-
}], dragHandleSelector: [{
|
|
293
|
-
type: Input
|
|
294
|
-
}], rowOrderChange: [{
|
|
295
|
-
type: Output
|
|
296
|
-
}], tableElement: [{
|
|
297
|
-
type: ViewChild,
|
|
298
|
-
args: ['tableElement']
|
|
299
|
-
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmFnZ2FibGUtdGFibGUvZHJhZ2dhYmxlLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmFnZ2FibGUtdGFibGUvZHJhZ2dhYmxlLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7O0FBSXZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBOEJyQyxZQUE2QixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBN0J2QyxZQUFPLEdBQW9CLFNBQVMsQ0FBQztRQUNyQyx1QkFBa0IsR0FBNEIsUUFBUSxDQUFDO1FBQ3ZELGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRTNCOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFN0I7Ozs7V0FJRztRQUNNLHVCQUFrQixHQUFHLHlGQUF5RixDQUFDO1FBRXhIOzs7V0FHRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUloRCxxQkFBZ0IsR0FBc0IsRUFBRSxDQUFDO1FBRXpDLGVBQVUsR0FBK0IsSUFBSSxDQUFDO0lBRUgsQ0FBQztJQUVwRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELCtEQUErRDtJQUMvRCxJQUFJLGNBQWM7UUFDaEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7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LDBCQUEwQiw2YUN6Q3ZDLHVSQUtBOzJGRG9DYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07Z0dBR3RDLE9BQU87c0JBQWYsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUtHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csa0JBQWtCO3NCQUExQixLQUFLO2dCQU1JLGNBQWM7c0JBQXZCLE1BQU07Z0JBRW9CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGRtVGFibGVWYXJpYW50IH0gZnJvbSAnLi4vdGFibGUvdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzcG9uc2l2ZSc7XG5cbi8qKlxuICogVGFibGEgY29uIGZ1bmNpb25hbGlkYWQgZGUgcmVvcmRlbmFtaWVudG8gZGUgZmlsYXMgbWVkaWFudGUgZHJhZyAmIGRyb3BcbiAqIFxuICogRXh0aWVuZGUgcGRtLXRhYmxlIGFncmVnYW5kbyBsYSBjYXBhY2lkYWQgZGUgcmVvcmRlbmFyIGZpbGFzLlxuICogU2kgbm8gbmVjZXNpdMOhcyBkcmFnICYgZHJvcCwgdXPDoSBwZG0tdGFibGUgZGlyZWN0YW1lbnRlIChtw6FzIHNpbXBsZSB5IGxpdmlhbm8pLlxuICogXG4gKiBAZXhhbXBsZVxuICogPHBkbS1kcmFnZ2FibGUtdGFibGUgXG4gKiAgIHZhcmlhbnQ9XCJpbnRlcmFjdGl2ZVwiXG4gKiAgIFtyZW9yZGVyUm93c109XCJ0cnVlXCJcbiAqICAgKHJvd09yZGVyQ2hhbmdlKT1cIm9uT3JkZXJDaGFuZ2UoJGV2ZW50KVwiPlxuICogICA8dGJvZHk+XG4gKiAgICAgPHRyIGRhdGEtcm93LWlkPVwiMVwiPjx0ZD5Sb3cgMTwvdGQ+PC90cj5cbiAqICAgICA8dHIgZGF0YS1yb3ctaWQ9XCIyXCI+PHRkPlJvdyAyPC90ZD48L3RyPlxuICogICA8L3Rib2R5PlxuICogPC9wZG0tZHJhZ2dhYmxlLXRhYmxlPlxuICogXG4gKiBJTVBPUlRBTlRFOiBDYWRhIDx0cj4gZGViZSB0ZW5lciB1biBhdHJpYnV0byBkYXRhLXJvdy1pZCDDum5pY29cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncGRtLWRyYWdnYWJsZS10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kcmFnZ2FibGUtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQZG1EcmFnZ2FibGVUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgdmFyaWFudDogUGRtVGFibGVWYXJpYW50ID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSByZXNwb25zaXZlU3RyYXRlZ3k6IFRhYmxlUmVzcG9uc2l2ZVN0cmF0ZWd5ID0gJ3Njcm9sbCc7XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSA9ICcnO1xuICBASW5wdXQoKSBmdWxsQmxlZWQgPSBmYWxzZTtcbiAgXG4gIC8qKlxuICAgKiBIYWJpbGl0YSBlbCByZW9yZGVuYW1pZW50byBkZSBmaWxhcyBtZWRpYW50ZSBkcmFnICYgZHJvcFxuICAgKi9cbiAgQElucHV0KCkgcmVvcmRlclJvd3MgPSBmYWxzZTtcbiAgXG4gIC8qKlxuICAgKiBTZWxlY3RvciBDU1MgcGFyYSBpZGVudGlmaWNhciBsb3MgaGFuZGxlcyBkZSBkcmFnXG4gICAqIFBvciBkZWZlY3RvIGJ1c2NhOiBbZGF0YS1kcmFnLWhhbmRsZV0sIFtkYXRhLXNsb3Q9cm93LWRyYWctaGFuZGxlXSwgLnJvdy1kcmFnLWhhbmRsZVxuICAgKiBTaSBubyBlbmN1ZW50cmEgbmluZ3VubywgaW5zZXJ0YSB1biBoYW5kbGUgYXV0b23DoXRpY29cbiAgICovXG4gIEBJbnB1dCgpIGRyYWdIYW5kbGVTZWxlY3RvciA9ICdbZGF0YS1kcmFnLWhhbmRsZV0sW2RhdGEtc2xvdD1yb3ctZHJhZy1oYW5kbGVdLC5yb3ctZHJhZy1oYW5kbGUsW2RhdGEtYXV0by1kcmFnLWhhbmRsZV0nO1xuICBcbiAgLyoqXG4gICAqIEVtaXRlIGVsIG51ZXZvIG9yZGVuIGRlIGxhcyBmaWxhcyBjdWFuZG8gZWwgdXN1YXJpbyB0ZXJtaW5hIGRlIGFycmFzdHJhclxuICAgKiBBcnJheSBkZSBkYXRhLXJvdy1pZCBlbiBlbCBudWV2byBvcmRlblxuICAgKi9cbiAgQE91dHB1dCgpIHJvd09yZGVyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBAVmlld0NoaWxkKCd0YWJsZUVsZW1lbnQnKSB0YWJsZUVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxUYWJsZUVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgY2xlYW51cExpc3RlbmVyczogQXJyYXk8KCkgPT4gdm9pZD4gPSBbXTtcbiAgcHJpdmF0ZSBvYnNlcnZlcj86IE11dGF0aW9uT2JzZXJ2ZXI7XG4gIHByaXZhdGUgZHJhZ2dlZFJvdzogSFRNTFRhYmxlUm93RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zeW5jUmVvcmRlckJlaGF2aW9yKCk7XG4gIH1cblxuICAvLyBHZXR0ZXJzIHBhcmEgY2xhc2VzIENTUyAobWlzbW8gY29tcG9ydGFtaWVudG8gcXVlIHBkbS10YWJsZSlcbiAgZ2V0IHdyYXBwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBiYXNlQ2xhc3NlcyA9IFsncmVsYXRpdmUnLCAndy1mdWxsJ107XG4gICAgY29uc3Qgc3RyYXRlZ3lDbGFzc2VzID0gdGhpcy5nZXRSZXNwb25zaXZlU3RyYXRlZ3lDbGFzc2VzKCk7XG4gICAgY29uc3QgdmFyaWFudENsYXNzZXMgPSB0aGlzLmdldFZhcmlhbnRXcmFwcGVyQ2xhc3NlcygpO1xuICAgIFxuICAgIGlmICh0aGlzLmZ1bGxCbGVlZCAmJiB0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3Njcm9sbCcpIHtcbiAgICAgIGJhc2VDbGFzc2VzLnB1c2goJy1teC00JywgJ3B4LTQnLCAnc206bXgtMCcsICdzbTpweC0wJyk7XG4gICAgfVxuICAgIFxuICAgIHJldHVybiBbXG4gICAgICAuLi5iYXNlQ2xhc3NlcyxcbiAgICAgIC4uLnN0cmF0ZWd5Q2xhc3NlcyxcbiAgICAgIC4uLnZhcmlhbnRDbGFzc2VzLFxuICAgICAgdGhpcy5jbGFzc05hbWVcbiAgICBdLmZpbHRlcihCb29sZWFuKTtcbiAgfVxuXG4gIGdldCB0YWJsZUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGJhc2VDbGFzc2VzID0gWyd3LWZ1bGwnLCAnY2FwdGlvbi1ib3R0b20nLCAndGV4dC1zbSddO1xuICAgIGNvbnN0IHZhcmlhbnRDbGFzc2VzID0gdGhpcy5nZXRWYXJpYW50VGFibGVDbGFzc2VzKCk7XG4gICAgY29uc3QgY2VsbENsYXNzZXMgPSB0aGlzLmdldENlbGxDbGFzc2VzKCk7XG4gICAgXG4gICAgcmV0dXJuIFsuLi5iYXNlQ2xhc3NlcywgLi4udmFyaWFudENsYXNzZXMsIC4uLmNlbGxDbGFzc2VzXS5maWx0ZXIoQm9vbGVhbik7XG4gIH1cblxuICBwcml2YXRlIGdldFJlc3BvbnNpdmVTdHJhdGVneUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3Njcm9sbCcgfHwgdGhpcy5yZXNwb25zaXZlU3RyYXRlZ3kgPT09ICd3cmFwJyB8fCB0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ2NvbGxhcHNlJykge1xuICAgICAgcmV0dXJuIFsnb3ZlcmZsb3cteC1hdXRvJ107XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFyaWFudFdyYXBwZXJDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnaW50ZXJhY3RpdmUnKSB7XG4gICAgICByZXR1cm4gWydyb3VuZGVkLXhsJywgJ2JvcmRlciBib3JkZXItc29saWQnLCAnYm9yZGVyLWJvcmRlcicsICdiZy1iYWNrZ3JvdW5kJ107XG4gICAgfVxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdkYXRhJykge1xuICAgICAgcmV0dXJuIFsncm91bmRlZC1tZCcsICdib3JkZXIgYm9yZGVyLXNvbGlkJywgJ2JvcmRlci1ib3JkZXInLCAnYmctYmFja2dyb3VuZCddO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIGdldFZhcmlhbnRUYWJsZUNsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdkYXRhJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgJ2JvcmRlci1jb2xsYXBzZScsICd0ZXh0LWZvcmVncm91bmQnLFxuICAgICAgICAnWyZfdGhlYWRfdHJdOmJvcmRlci1iJywgJ1smX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3Rib2R5X3RyXTpib3JkZXItYicsICdbJl90Ym9keV90cl06Ym9yZGVyLWJvcmRlcicsXG4gICAgICAgICdbJl90Ym9keV90cjpsYXN0LWNoaWxkXTpib3JkZXItYi0wJyxcbiAgICAgICAgJ1smX3RoXTpoLTEwJywgJ1smX3RoXTpweC0yJywgJ1smX3RoXTp0ZXh0LWxlZnQnLCAnWyZfdGhdOmFsaWduLW1pZGRsZScsICdbJl90aF06Zm9udC1tZWRpdW0nLFxuICAgICAgICAnWyZfdGRdOnAtMicsICdbJl90ZF06YWxpZ24tbWlkZGxlJ1xuICAgICAgXTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ2ludGVyYWN0aXZlJykge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgJ3RleHQtZm9yZWdyb3VuZCcsXG4gICAgICAgICdbJl90aGVhZF06c3RpY2t5JywgJ1smX3RoZWFkXTp0b3AtMCcsICdbJl90aGVhZF06ei0xMCcsICdbJl90aGVhZF06YmctbXV0ZWQvNzAnLFxuICAgICAgICAnWyZfdGhlYWRfdHJdOmJvcmRlci1iJywgJ1smX3RoZWFkX3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3RoXTpoLTEyJywgJ1smX3RoXTpweC00JywgJ1smX3RoXTp0ZXh0LWxlZnQnLCAnWyZfdGhdOmFsaWduLW1pZGRsZScsICdbJl90aF06dGV4dC1zbScsICdbJl90aF06Zm9udC1tZWRpdW0nLFxuICAgICAgICAnWyZfdGJvZHlfdHJdOmJvcmRlci1iJywgJ1smX3Rib2R5X3RyXTpib3JkZXItYm9yZGVyJyxcbiAgICAgICAgJ1smX3Rib2R5X3RyXTp0cmFuc2l0aW9uLWNvbG9ycycsICdbJl90Ym9keV90cjpob3Zlcl06YmctbXV0ZWQvNTAnLFxuICAgICAgICAnWyZfdGJvZHlfdHI6bGFzdC1jaGlsZF06Ym9yZGVyLWItMCcsXG4gICAgICAgICdbJl90ZF06aC0xNCcsICdbJl90ZF06cHgtNCcsICdbJl90ZF06YWxpZ24tbWlkZGxlJywgJ1smX3RkXTp0ZXh0LXNtJyxcbiAgICAgICAgJ1smX3N2Z106dGV4dC1tdXRlZC1mb3JlZ3JvdW5kJ1xuICAgICAgXTtcbiAgICB9XG4gICAgXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDZWxsQ2xhc3NlcygpOiBzdHJpbmdbXSB7XG4gICAgaWYgKHRoaXMucmVzcG9uc2l2ZVN0cmF0ZWd5ID09PSAnc2Nyb2xsJykge1xuICAgICAgcmV0dXJuIFsnWyZfdGRdOndoaXRlc3BhY2Utbm9ybWFsJywgJ1smX3RoXTp3aGl0ZXNwYWNlLW5vcm1hbCcsICdzbTpbJl90ZF06d2hpdGVzcGFjZS1ub3dyYXAnLCAnc206WyZfdGhdOndoaXRlc3BhY2Utbm93cmFwJ107XG4gICAgfVxuICAgIGlmICh0aGlzLnJlc3BvbnNpdmVTdHJhdGVneSA9PT0gJ3dyYXAnKSB7XG4gICAgICByZXR1cm4gWydbJl90ZF06d2hpdGVzcGFjZS1ub3JtYWwnLCAnWyZfdGRdOmJyZWFrLXdvcmRzJywgJ1smX3RoXTp3aGl0ZXNwYWNlLW5vcm1hbCddO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3Jlb3JkZXJSb3dzJ10gfHwgY2hhbmdlc1sndmFyaWFudCddKSB7XG4gICAgICB0aGlzLnN5bmNSZW9yZGVyQmVoYXZpb3IoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBSZW9yZGVyQmVoYXZpb3IoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3luY1Jlb3JkZXJCZWhhdmlvcigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFudXBSZW9yZGVyQmVoYXZpb3IoKTtcblxuICAgIGlmICghdGhpcy5yZW9yZGVyUm93cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRib2R5ID0gdGhpcy5nZXRUYm9keSgpO1xuICAgIGlmICghdGJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFJvd3NEcmFnZ2FibGUodGJvZHksIHRydWUpO1xuXG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ21vdXNlZG93bicsIChldmVudDogTW91c2VFdmVudCkgPT4gdGhpcy5hcm1EcmFnRnJvbUhhbmRsZShldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnc3RhcnQnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyYWdTdGFydChldmVudCkpLFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGJvZHksICdkcmFnb3ZlcicsIChldmVudDogRHJhZ0V2ZW50KSA9PiB0aGlzLm9uRHJhZ092ZXIoZXZlbnQsIHRib2R5KSksXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0Ym9keSwgJ2Ryb3AnLCAoZXZlbnQ6IERyYWdFdmVudCkgPT4gdGhpcy5vbkRyb3AoZXZlbnQpKSxcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRib2R5LCAnZHJhZ2VuZCcsICgpID0+IHRoaXMub25EcmFnRW5kKCkpXG4gICAgKTtcblxuICAgIC8vIE9ic2VydmVyIHBhcmEgZGV0ZWN0YXIgY2FtYmlvcyBlbiBlbCBET00gKGZpbGFzIGFncmVnYWRhcy9yZW1vdmlkYXMpXG4gICAgdGhpcy5vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMuc2V0Um93c0RyYWdnYWJsZSh0Ym9keSwgdHJ1ZSkpO1xuICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0Ym9keSwgeyBjaGlsZExpc3Q6IHRydWUgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXBSZW9yZGVyQmVoYXZpb3IoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzLmZvckVhY2goKGRpc3Bvc2UpID0+IGRpc3Bvc2UoKSk7XG4gICAgdGhpcy5jbGVhbnVwTGlzdGVuZXJzID0gW107XG5cbiAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLm9ic2VydmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRib2R5ID0gdGhpcy5nZXRUYm9keSgpO1xuICAgIGlmICh0Ym9keSkge1xuICAgICAgdGhpcy5zZXRSb3dzRHJhZ2dhYmxlKHRib2R5LCBmYWxzZSk7XG4gICAgfVxuXG4gICAgdGhpcy5kcmFnZ2VkUm93ID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGJvZHkoKTogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZUVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQudEJvZGllcy5pdGVtKDApID8/IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHNldFJvd3NEcmFnZ2FibGUodGJvZHk6IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3Qgcm93cyA9IEFycmF5LmZyb20odGJvZHkucm93cyk7XG4gICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgIHRoaXMuc3luY0F1dG9EcmFnSGFuZGxlKHJvdywgZW5hYmxlZCk7XG4gICAgICByb3cuZHJhZ2dhYmxlID0gZmFsc2U7XG4gICAgICBpZiAoIWVuYWJsZWQpIHtcbiAgICAgICAgZGVsZXRlIHJvdy5kYXRhc2V0WydkcmFnZ2luZyddO1xuICAgICAgICBkZWxldGUgcm93LmRhdGFzZXRbJ2RyYWdBcm1lZCddO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc2VydGEgdW4gaGFuZGxlIGRlIGRyYWcgYXV0b23DoXRpY28gc2kgbm8gZXhpc3RlIHVubyBjdXN0b21cbiAgICovXG4gIHByaXZhdGUgc3luY0F1dG9EcmFnSGFuZGxlKHJvdzogSFRNTFRhYmxlUm93RWxlbWVudCwgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IGZpcnN0Q2VsbCA9IHJvdy5jZWxscy5pdGVtKDApO1xuICAgIGlmICghZmlyc3RDZWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXhpc3RpbmdBdXRvSGFuZGxlID0gZmlyc3RDZWxsLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWF1dG8tZHJhZy1oYW5kbGVdJyk7XG4gICAgaWYgKCFlbmFibGVkKSB7XG4gICAgICBleGlzdGluZ0F1dG9IYW5kbGU/LnJlbW92ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0N1c3RvbUhhbmRsZSA9ICEhZmlyc3RDZWxsLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWRyYWctaGFuZGxlXSxbZGF0YS1zbG90PXJvdy1kcmFnLWhhbmRsZV0sLnJvdy1kcmFnLWhhbmRsZScpO1xuICAgIGlmIChoYXNDdXN0b21IYW5kbGUgfHwgZXhpc3RpbmdBdXRvSGFuZGxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQ3JlYXIgaGFuZGxlIGF1dG9tw6F0aWNvXG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdidXR0b24nKSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24sICd0eXBlJywgJ2J1dHRvbicpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGJ1dHRvbiwgJ2FyaWEtbGFiZWwnLCAnRHJhZyByb3cnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShidXR0b24sICdkYXRhLWF1dG8tZHJhZy1oYW5kbGUnLCAndHJ1ZScpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnaW5saW5lLWZsZXgnKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2gtNycpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAndy03Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdpdGVtcy1jZW50ZXInKTtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJ1dHRvbiwgJ2p1c3RpZnktY2VudGVyJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhidXR0b24sICdjdXJzb3ItZ3JhYicpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnYWN0aXZlOmN1cnNvci1ncmFiYmluZycpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAndGV4dC1tdXRlZC1mb3JlZ3JvdW5kJyk7XG5cbiAgICBjb25zdCBkb3RzID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb3RzLCAndGV4dC1zbScpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG90cywgJ2xlYWRpbmctbm9uZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkoZG90cywgJ3RleHRDb250ZW50JywgJ+KLruKLricpO1xuICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoYnV0dG9uLCBkb3RzKTtcblxuICAgIHRoaXMucmVuZGVyZXIuaW5zZXJ0QmVmb3JlKGZpcnN0Q2VsbCwgYnV0dG9uLCBmaXJzdENlbGwuZmlyc3RDaGlsZCk7XG4gIH1cblxuICBwcml2YXRlIG9uRHJhZ1N0YXJ0KGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0IHJvdyA9IHRhcmdldD8uY2xvc2VzdCgndHInKTtcbiAgICBpZiAoIXJvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZSA9IHRhcmdldD8uY2xvc2VzdCh0aGlzLmRyYWdIYW5kbGVTZWxlY3Rvcik7XG4gICAgY29uc3QgaXNBcm1lZCA9IHJvdy5kYXRhc2V0WydkcmFnQXJtZWQnXSA9PT0gJ3RydWUnO1xuICAgIGlmICgoIWhhbmRsZSB8fCAhcm93LmNvbnRhaW5zKGhhbmRsZSkpICYmICFpc0FybWVkKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZHJhZ2dlZFJvdyA9IHJvdyBhcyBIVE1MVGFibGVSb3dFbGVtZW50O1xuICAgIHRoaXMuZHJhZ2dlZFJvdy5kYXRhc2V0WydkcmFnZ2luZyddID0gJ3RydWUnO1xuXG4gICAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZXZlbnQuZGF0YVRyYW5zZmVyLmVmZmVjdEFsbG93ZWQgPSAnbW92ZSc7XG4gICAgICBldmVudC5kYXRhVHJhbnNmZXIuc2V0RGF0YSgndGV4dC9wbGFpbicsICcnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uRHJhZ092ZXIoZXZlbnQ6IERyYWdFdmVudCwgdGJvZHk6IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRyYWdnZWRSb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgY29uc3QgdGFyZ2V0Um93ID0gdGFyZ2V0Py5jbG9zZXN0KCd0cicpIGFzIEhUTUxUYWJsZVJvd0VsZW1lbnQgfCBudWxsO1xuXG4gICAgaWYgKCF0YXJnZXRSb3cgfHwgdGFyZ2V0Um93ID09PSB0aGlzLmRyYWdnZWRSb3cpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZWN0ID0gdGFyZ2V0Um93LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIGNvbnN0IHNob3VsZEluc2VydEJlZm9yZSA9IGV2ZW50LmNsaWVudFkgPCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMjtcbiAgICB0Ym9keS5pbnNlcnRCZWZvcmUodGhpcy5kcmFnZ2VkUm93LCBzaG91bGRJbnNlcnRCZWZvcmUgPyB0YXJnZXRSb3cgOiB0YXJnZXRSb3cubmV4dFNpYmxpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcml2YXRlIG9uRHJhZ0VuZCgpOiB2b2lkIHtcbiAgICBjb25zdCB0Ym9keSA9IHRoaXMuZ2V0VGJvZHkoKTtcbiAgICBpZiAodGJvZHkpIHtcbiAgICAgIEFycmF5LmZyb20odGJvZHkucm93cykuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgIHJvdy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgICAgICAgZGVsZXRlIHJvdy5kYXRhc2V0WydkcmFnQXJtZWQnXTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRyYWdnZWRSb3cpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmRyYWdnZWRSb3cuZGF0YXNldFsnZHJhZ2dpbmcnXTtcbiAgICAgIHRoaXMuZHJhZ2dlZFJvdyA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKCF0Ym9keSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG9yZGVyID0gQXJyYXkuZnJvbSh0Ym9keS5yb3dzKS5tYXAoKHJvdywgaW5kZXgpID0+IHJvdy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcm93LWlkJykgfHwgU3RyaW5nKGluZGV4KSk7XG4gICAgdGhpcy5yb3dPcmRlckNoYW5nZS5lbWl0KG9yZGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJtRHJhZ0Zyb21IYW5kbGUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIGNvbnN0IGhhbmRsZSA9IHRhcmdldD8uY2xvc2VzdCh0aGlzLmRyYWdIYW5kbGVTZWxlY3Rvcik7XG4gICAgaWYgKCFoYW5kbGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByb3cgPSBoYW5kbGUuY2xvc2VzdCgndHInKSBhcyBIVE1MVGFibGVSb3dFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoIXJvdykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJvdy5kcmFnZ2FibGUgPSB0cnVlO1xuICAgIHJvdy5kYXRhc2V0WydkcmFnQXJtZWQnXSA9ICd0cnVlJztcbiAgfVxufVxuIiwiPGRpdiBbbmdDbGFzc109XCJ3cmFwcGVyQ2xhc3Nlc1wiIFthdHRyLmRhdGEtc2xvdF09XCJ2YXJpYW50ID09PSAnaW50ZXJhY3RpdmUnID8gJ3RhYmxlLWNvbnRhaW5lcicgOiBudWxsXCI+XG4gIDx0YWJsZSAjdGFibGVFbGVtZW50IFtuZ0NsYXNzXT1cInRhYmxlQ2xhc3Nlc1wiIFthdHRyLmRhdGEtc2xvdF09XCJ2YXJpYW50ID09PSAnaW50ZXJhY3RpdmUnID8gJ3RhYmxlJyA6IG51bGxcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
|
|
2
|
-
import { Z_INDEX } from '../../utils/z-index';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@angular/common";
|
|
5
|
-
/**
|
|
6
|
-
* Drawer/Sheet component con soporte responsive
|
|
7
|
-
*
|
|
8
|
-
* MEJORADO en v0.2.0:
|
|
9
|
-
* - Posicionamiento configurable (bottom, left, right, top)
|
|
10
|
-
* - Tamaños predefinidos
|
|
11
|
-
* - Responsive: bottom sheet en mobile, side panel en desktop
|
|
12
|
-
* - Contenido genérico via ng-content
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* // Drawer simple desde el bottom
|
|
16
|
-
* <pdm-drawer [open]="isOpen" position="bottom">
|
|
17
|
-
* <h3>Title</h3>
|
|
18
|
-
* <p>Content</p>
|
|
19
|
-
* </pdm-drawer>
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* // Side panel desde la right
|
|
23
|
-
* <pdm-drawer [open]="isOpen" position="right" size="md">
|
|
24
|
-
* <p>Content</p>
|
|
25
|
-
* </pdm-drawer>
|
|
26
|
-
*/
|
|
27
|
-
export class PdmDrawerComponent {
|
|
28
|
-
constructor() {
|
|
29
|
-
this.open = false;
|
|
30
|
-
/**
|
|
31
|
-
* Posición del drawer
|
|
32
|
-
* - bottom: desde abajo (default, mejor para mobile)
|
|
33
|
-
* - left: side panel desde izquierda
|
|
34
|
-
* - right: side panel desde derecha
|
|
35
|
-
* - top: desde arriba (poco común)
|
|
36
|
-
*/
|
|
37
|
-
this.position = 'bottom';
|
|
38
|
-
/**
|
|
39
|
-
* Tamaño del drawer
|
|
40
|
-
* - sm: 400px (side) / 50vh (bottom/top)
|
|
41
|
-
* - md: 500px (side) / 66vh (bottom/top) (default)
|
|
42
|
-
* - lg: 640px (side) / 80vh (bottom/top)
|
|
43
|
-
* - full: 100% ancho/alto
|
|
44
|
-
*/
|
|
45
|
-
this.size = 'md';
|
|
46
|
-
/**
|
|
47
|
-
* @deprecated Use position="bottom" instead
|
|
48
|
-
*/
|
|
49
|
-
this.variant = 'drawer';
|
|
50
|
-
this.className = '';
|
|
51
|
-
this.title = '';
|
|
52
|
-
this.description = '';
|
|
53
|
-
/**
|
|
54
|
-
* Mostrar handle visual (línea para arrastrar)
|
|
55
|
-
* Solo tiene sentido en position="bottom"
|
|
56
|
-
*/
|
|
57
|
-
this.showHandle = true;
|
|
58
|
-
/**
|
|
59
|
-
* Mostrar botón de cerrar
|
|
60
|
-
*/
|
|
61
|
-
this.showCloseButton = true;
|
|
62
|
-
this.closeOnEsc = true;
|
|
63
|
-
this.closeOnBackdropClick = true;
|
|
64
|
-
this.openChange = new EventEmitter();
|
|
65
|
-
// DEPRECATED: contenido específico que se movió a ng-content
|
|
66
|
-
this.value = '';
|
|
67
|
-
this.unit = '';
|
|
68
|
-
this.decrementLabel = '-';
|
|
69
|
-
this.incrementLabel = '+';
|
|
70
|
-
this.primaryLabel = '';
|
|
71
|
-
this.secondaryLabel = '';
|
|
72
|
-
this.profileTitle = '';
|
|
73
|
-
this.profileDescription = '';
|
|
74
|
-
this.nameLabel = 'Name';
|
|
75
|
-
this.nameValue = '';
|
|
76
|
-
this.usernameLabel = 'Username';
|
|
77
|
-
this.usernameValue = '';
|
|
78
|
-
this.responsivePrimaryLabel = '';
|
|
79
|
-
this.bars = [];
|
|
80
|
-
this.primaryAction = new EventEmitter();
|
|
81
|
-
this.secondaryAction = new EventEmitter();
|
|
82
|
-
}
|
|
83
|
-
onEsc() {
|
|
84
|
-
if (this.open && this.closeOnEsc) {
|
|
85
|
-
this.close();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
onBackdropClick() {
|
|
89
|
-
if (this.closeOnBackdropClick) {
|
|
90
|
-
this.close();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
close() {
|
|
94
|
-
this.openChange.emit(false);
|
|
95
|
-
}
|
|
96
|
-
onPrimaryAction() {
|
|
97
|
-
this.primaryAction.emit();
|
|
98
|
-
}
|
|
99
|
-
onSecondaryAction() {
|
|
100
|
-
this.secondaryAction.emit();
|
|
101
|
-
}
|
|
102
|
-
get containerClassName() {
|
|
103
|
-
return `fixed inset-0 ${Z_INDEX.drawer} ${this.className}`;
|
|
104
|
-
}
|
|
105
|
-
get panelClassName() {
|
|
106
|
-
const base = [
|
|
107
|
-
'absolute',
|
|
108
|
-
'bg-background',
|
|
109
|
-
'border border-solid',
|
|
110
|
-
'border-border',
|
|
111
|
-
'shadow-lg',
|
|
112
|
-
'overflow-auto'
|
|
113
|
-
];
|
|
114
|
-
// Posicionamiento
|
|
115
|
-
const positionClasses = this.getPositionClasses();
|
|
116
|
-
// Tamaño
|
|
117
|
-
const sizeClasses = this.getSizeClasses();
|
|
118
|
-
return [...base, ...positionClasses, ...sizeClasses].filter(Boolean).join(' ');
|
|
119
|
-
}
|
|
120
|
-
getPositionClasses() {
|
|
121
|
-
const map = {
|
|
122
|
-
bottom: ['inset-x-0', 'bottom-0', 'rounded-t-xl'],
|
|
123
|
-
top: ['inset-x-0', 'top-0', 'rounded-b-xl'],
|
|
124
|
-
left: ['inset-y-0', 'left-0', 'rounded-r-xl'],
|
|
125
|
-
right: ['inset-y-0', 'right-0', 'rounded-l-xl']
|
|
126
|
-
};
|
|
127
|
-
return map[this.position] || map.bottom;
|
|
128
|
-
}
|
|
129
|
-
getSizeClasses() {
|
|
130
|
-
const isVertical = this.position === 'bottom' || this.position === 'top';
|
|
131
|
-
if (this.size === 'full') {
|
|
132
|
-
return ['w-full', 'h-full'];
|
|
133
|
-
}
|
|
134
|
-
const sizeMap = {
|
|
135
|
-
sm: isVertical ? 'max-h-[50vh]' : 'max-w-[400px]',
|
|
136
|
-
md: isVertical ? 'max-h-[66vh]' : 'max-w-[500px]',
|
|
137
|
-
lg: isVertical ? 'max-h-[80vh]' : 'max-w-[640px]'
|
|
138
|
-
};
|
|
139
|
-
const maxDimension = sizeMap[this.size] || sizeMap.md;
|
|
140
|
-
if (isVertical) {
|
|
141
|
-
return ['w-full', maxDimension];
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
return ['h-full', maxDimension];
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
get showLegacyContent() {
|
|
148
|
-
// Mostrar contenido legacy si variant está siendo usado
|
|
149
|
-
return this.variant === 'drawer' || this.variant === 'responsive-dialog';
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
PdmDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
PdmDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PdmDrawerComponent, selector: "pdm-drawer", inputs: { open: "open", position: "position", size: "size", variant: "variant", className: "className", title: "title", description: "description", showHandle: "showHandle", showCloseButton: "showCloseButton", closeOnEsc: "closeOnEsc", closeOnBackdropClick: "closeOnBackdropClick", value: "value", unit: "unit", decrementLabel: "decrementLabel", incrementLabel: "incrementLabel", primaryLabel: "primaryLabel", secondaryLabel: "secondaryLabel", profileTitle: "profileTitle", profileDescription: "profileDescription", nameLabel: "nameLabel", nameValue: "nameValue", usernameLabel: "usernameLabel", usernameValue: "usernameValue", responsivePrimaryLabel: "responsivePrimaryLabel", bars: "bars" }, outputs: { openChange: "openChange", primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, host: { listeners: { "document:keydown.escape": "onEsc()" } }, ngImport: i0, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Panel -->\n <section [ngClass]=\"panelClassName\">\n <!-- Handle visual (solo para bottom) -->\n <div \n *ngIf=\"showHandle && position === 'bottom'\" \n class=\"mx-auto mb-4 mt-2 h-1 w-10 rounded-full bg-border\">\n </div>\n\n <!-- Header (opcional) -->\n <div *ngIf=\"title || description || showCloseButton\" class=\"flex items-start justify-between gap-4 p-6 pb-4\">\n <div *ngIf=\"title || description\" class=\"flex-1 min-w-0\">\n <h3 *ngIf=\"title\" class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">\n {{ title }}\n </h3>\n <p *ngIf=\"description\" class=\"m-0 mt-1 text-sm text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n \n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n (click)=\"close()\"\n aria-label=\"Close drawer\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"px-6 pb-6\">\n <!-- Contenido gen\u00E9rico -->\n <ng-container *ngIf=\"!showLegacyContent\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- LEGACY: contenido espec\u00EDfico hardcodeado (backward compatibility) -->\n <ng-container *ngIf=\"showLegacyContent\">\n <!-- Variant: drawer -->\n <div *ngIf=\"variant === 'drawer'\" class=\"mx-auto flex max-w-sm flex-col items-center\">\n <div *ngIf=\"value !== ''\" class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none box-border items-center justify-center rounded-full border border-solid border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div *ngIf=\"unit\" class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none box-border items-center justify-center rounded-full border border-solid border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none box-border rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none box-border rounded-md border border-solid border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n\n <!-- Variant: responsive-dialog -->\n <div *ngIf=\"variant === 'responsive-dialog'\" class=\"flex flex-col gap-3\">\n <div *ngIf=\"nameLabel && nameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-solid border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div *ngIf=\"usernameLabel && usernameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-solid border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none box-border rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </div>\n </ng-container>\n </div>\n </section>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
154
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PdmDrawerComponent, decorators: [{
|
|
155
|
-
type: Component,
|
|
156
|
-
args: [{ selector: 'pdm-drawer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"open\" [ngClass]=\"containerClassName\">\n <!-- Backdrop -->\n <div class=\"absolute inset-0 bg-foreground/30 backdrop-blur-sm\" (click)=\"onBackdropClick()\"></div>\n\n <!-- Panel -->\n <section [ngClass]=\"panelClassName\">\n <!-- Handle visual (solo para bottom) -->\n <div \n *ngIf=\"showHandle && position === 'bottom'\" \n class=\"mx-auto mb-4 mt-2 h-1 w-10 rounded-full bg-border\">\n </div>\n\n <!-- Header (opcional) -->\n <div *ngIf=\"title || description || showCloseButton\" class=\"flex items-start justify-between gap-4 p-6 pb-4\">\n <div *ngIf=\"title || description\" class=\"flex-1 min-w-0\">\n <h3 *ngIf=\"title\" class=\"m-0 text-lg font-semibold leading-none tracking-tight text-foreground\">\n {{ title }}\n </h3>\n <p *ngIf=\"description\" class=\"m-0 mt-1 text-sm text-muted-foreground\">\n {{ description }}\n </p>\n </div>\n \n <button\n *ngIf=\"showCloseButton\"\n type=\"button\"\n class=\"inline-flex h-6 w-6 flex-shrink-0 appearance-none box-border items-center justify-center rounded-sm border-0 bg-transparent p-0 text-foreground opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n (click)=\"close()\"\n aria-label=\"Close drawer\"\n >\n <svg viewBox=\"0 0 24 24\" class=\"h-4 w-4\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M6 6L18 18M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"></path>\n </svg>\n </button>\n </div>\n\n <!-- Content -->\n <div class=\"px-6 pb-6\">\n <!-- Contenido gen\u00E9rico -->\n <ng-container *ngIf=\"!showLegacyContent\">\n <ng-content></ng-content>\n </ng-container>\n\n <!-- LEGACY: contenido espec\u00EDfico hardcodeado (backward compatibility) -->\n <ng-container *ngIf=\"showLegacyContent\">\n <!-- Variant: drawer -->\n <div *ngIf=\"variant === 'drawer'\" class=\"mx-auto flex max-w-sm flex-col items-center\">\n <div *ngIf=\"value !== ''\" class=\"mt-3 flex w-full items-center justify-center gap-4\">\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none box-border items-center justify-center rounded-full border border-solid border-border bg-transparent p-0 text-muted-foreground\">{{ decrementLabel }}</button>\n <div class=\"text-center\">\n <div class=\"text-5xl font-semibold leading-none text-foreground\">{{ value }}</div>\n <div *ngIf=\"unit\" class=\"mt-1 text-xs tracking-wide text-muted-foreground\">{{ unit }}</div>\n </div>\n <button type=\"button\" class=\"inline-flex h-6 w-6 appearance-none box-border items-center justify-center rounded-full border border-solid border-border bg-transparent p-0 text-muted-foreground\">{{ incrementLabel }}</button>\n </div>\n\n <div *ngIf=\"bars.length\" class=\"mt-3 flex h-14 w-full items-end gap-1\">\n <div *ngFor=\"let bar of bars\" class=\"flex-1 bg-foreground\" [style.height.px]=\"bar\"></div>\n </div>\n\n <button *ngIf=\"primaryLabel\" type=\"button\" class=\"mt-3 h-9 w-full appearance-none box-border rounded-md bg-primary text-sm font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ primaryLabel }}</button>\n <button *ngIf=\"secondaryLabel\" type=\"button\" class=\"mt-2 h-9 w-full appearance-none box-border rounded-md border border-solid border-input bg-background text-sm font-medium text-foreground\" (click)=\"onSecondaryAction()\">{{ secondaryLabel }}</button>\n </div>\n\n <!-- Variant: responsive-dialog -->\n <div *ngIf=\"variant === 'responsive-dialog'\" class=\"flex flex-col gap-3\">\n <div *ngIf=\"nameLabel && nameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ nameLabel }}</label>\n <div class=\"h-8 rounded-md border border-solid border-border bg-background px-2 py-1 text-xs text-foreground\">{{ nameValue }}</div>\n </div>\n <div *ngIf=\"usernameLabel && usernameValue\">\n <label class=\"mb-1 block text-xs font-medium text-foreground\">{{ usernameLabel }}</label>\n <div class=\"h-8 rounded-md border border-solid border-border bg-background px-2 py-1 text-xs text-foreground\">{{ usernameValue }}</div>\n </div>\n\n <button *ngIf=\"responsivePrimaryLabel\" type=\"button\" class=\"mt-3 h-8 w-full appearance-none box-border rounded-md bg-primary text-xs font-medium text-primary-foreground\" (click)=\"onPrimaryAction()\">{{ responsivePrimaryLabel }}</button>\n </div>\n </ng-container>\n </div>\n </section>\n</div>\n" }]
|
|
157
|
-
}], propDecorators: { open: [{
|
|
158
|
-
type: Input
|
|
159
|
-
}], position: [{
|
|
160
|
-
type: Input
|
|
161
|
-
}], size: [{
|
|
162
|
-
type: Input
|
|
163
|
-
}], variant: [{
|
|
164
|
-
type: Input
|
|
165
|
-
}], className: [{
|
|
166
|
-
type: Input
|
|
167
|
-
}], title: [{
|
|
168
|
-
type: Input
|
|
169
|
-
}], description: [{
|
|
170
|
-
type: Input
|
|
171
|
-
}], showHandle: [{
|
|
172
|
-
type: Input
|
|
173
|
-
}], showCloseButton: [{
|
|
174
|
-
type: Input
|
|
175
|
-
}], closeOnEsc: [{
|
|
176
|
-
type: Input
|
|
177
|
-
}], closeOnBackdropClick: [{
|
|
178
|
-
type: Input
|
|
179
|
-
}], openChange: [{
|
|
180
|
-
type: Output
|
|
181
|
-
}], value: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], unit: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], decrementLabel: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], incrementLabel: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}], primaryLabel: [{
|
|
190
|
-
type: Input
|
|
191
|
-
}], secondaryLabel: [{
|
|
192
|
-
type: Input
|
|
193
|
-
}], profileTitle: [{
|
|
194
|
-
type: Input
|
|
195
|
-
}], profileDescription: [{
|
|
196
|
-
type: Input
|
|
197
|
-
}], nameLabel: [{
|
|
198
|
-
type: Input
|
|
199
|
-
}], nameValue: [{
|
|
200
|
-
type: Input
|
|
201
|
-
}], usernameLabel: [{
|
|
202
|
-
type: Input
|
|
203
|
-
}], usernameValue: [{
|
|
204
|
-
type: Input
|
|
205
|
-
}], responsivePrimaryLabel: [{
|
|
206
|
-
type: Input
|
|
207
|
-
}], bars: [{
|
|
208
|
-
type: Input
|
|
209
|
-
}], primaryAction: [{
|
|
210
|
-
type: Output
|
|
211
|
-
}], secondaryAction: [{
|
|
212
|
-
type: Output
|
|
213
|
-
}], onEsc: [{
|
|
214
|
-
type: HostListener,
|
|
215
|
-
args: ['document:keydown.escape']
|
|
216
|
-
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kcmF3ZXIvZHJhd2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFNSCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBTVcsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUV0Qjs7Ozs7O1dBTUc7UUFDTSxhQUFRLEdBQXNCLFFBQVEsQ0FBQztRQUVoRDs7Ozs7O1dBTUc7UUFDTSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUVwQzs7V0FFRztRQUNNLFlBQU8sR0FBcUIsUUFBUSxDQUFDO1FBRXJDLGNBQVMsR0FBRyxFQUFFLENBQUM7UUFDZixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7OztXQUdHO1FBQ00sZUFBVSxHQUFHLElBQUksQ0FBQztRQUUzQjs7V0FFRztRQUNNLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBRXZCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIseUJBQW9CLEdBQUcsSUFBSSxDQUFDO1FBRTNCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRW5ELDZEQUE2RDtRQUNwRCxVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFDckIsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDbkIsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGtCQUFhLEdBQUcsVUFBVSxDQUFDO1FBQzNCLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLDJCQUFzQixHQUFHLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQWEsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0F1RnREO0lBcEZDLEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxpQkFBaUIsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLElBQUksR0FBRztZQUNYLFVBQVU7WUFDVixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLGVBQWU7WUFDZixXQUFXO1lBQ1gsZUFBZTtTQUNoQixDQUFDO1FBRUYsa0JBQWtCO1FBQ2xCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRWxELFNBQVM7UUFDVCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFMUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUcsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sR0FBRyxHQUF3QztZQUMvQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsQ0FBQztZQUNqRCxHQUFHLEVBQUUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGNBQWMsQ0FBQztZQUMzQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQztZQUM3QyxLQUFLLEVBQUUsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQztTQUNoRCxDQUFDO1FBRUYsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxLQUFLLENBQUM7UUFFekUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN4QixPQUFPLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQzdCO1FBRUQsTUFBTSxPQUFPLEdBQUc7WUFDZCxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDakQsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxlQUFlO1lBQ2pELEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZUFBZTtTQUNsRCxDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDO1FBRXRELElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0wsT0FBTyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQix3REFBd0Q7UUFDeEQsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLG1CQUFtQixDQUFDO0lBQzNFLENBQUM7OytHQXBKVSxrQkFBa0I7bUdBQWxCLGtCQUFrQixrNUJDdkMvQixneEpBaUZBOzJGRDFDYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsWUFBWSxtQkFFTCx1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBU0csUUFBUTtzQkFBaEIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0UsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBR1AsS0FBSztzQkFESixZQUFZO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyByZXNwb25zaXZlIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVzcG9uc2l2ZSc7XG5pbXBvcnQgeyBaX0lOREVYIH0gZnJvbSAnLi4vLi4vdXRpbHMvei1pbmRleCc7XG5cbmV4cG9ydCB0eXBlIFBkbURyYXdlclBvc2l0aW9uID0gJ2JvdHRvbScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCc7XG5leHBvcnQgdHlwZSBQZG1EcmF3ZXJTaXplID0gJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ2Z1bGwnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBzcGVjaWZpYyBkcmF3ZXIgdHlwZXMuIFdpbGwgYmUgcmVtb3ZlZCBpbiB2MC4zLjBcbiAqL1xuZXhwb3J0IHR5cGUgUGRtRHJhd2VyVmFyaWFudCA9ICdkcmF3ZXInIHwgJ3Jlc3BvbnNpdmUtZGlhbG9nJztcblxuLyoqXG4gKiBEcmF3ZXIvU2hlZXQgY29tcG9uZW50IGNvbiBzb3BvcnRlIHJlc3BvbnNpdmVcbiAqIFxuICogTUVKT1JBRE8gZW4gdjAuMi4wOlxuICogLSBQb3NpY2lvbmFtaWVudG8gY29uZmlndXJhYmxlIChib3R0b20sIGxlZnQsIHJpZ2h0LCB0b3ApXG4gKiAtIFRhbWHDsW9zIHByZWRlZmluaWRvc1xuICogLSBSZXNwb25zaXZlOiBib3R0b20gc2hlZXQgZW4gbW9iaWxlLCBzaWRlIHBhbmVsIGVuIGRlc2t0b3BcbiAqIC0gQ29udGVuaWRvIGdlbsOpcmljbyB2aWEgbmctY29udGVudFxuICogXG4gKiBAZXhhbXBsZVxuICogLy8gRHJhd2VyIHNpbXBsZSBkZXNkZSBlbCBib3R0b21cbiAqIDxwZG0tZHJhd2VyIFtvcGVuXT1cImlzT3BlblwiIHBvc2l0aW9uPVwiYm90dG9tXCI+XG4gKiAgIDxoMz5UaXRsZTwvaDM+XG4gKiAgIDxwPkNvbnRlbnQ8L3A+XG4gKiA8L3BkbS1kcmF3ZXI+XG4gKiBcbiAqIEBleGFtcGxlXG4gKiAvLyBTaWRlIHBhbmVsIGRlc2RlIGxhIHJpZ2h0XG4gKiA8cGRtLWRyYXdlciBbb3Blbl09XCJpc09wZW5cIiBwb3NpdGlvbj1cInJpZ2h0XCIgc2l6ZT1cIm1kXCI+XG4gKiAgIDxwPkNvbnRlbnQ8L3A+XG4gKiA8L3BkbS1kcmF3ZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3BkbS1kcmF3ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUGRtRHJhd2VyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICBcbiAgLyoqXG4gICAqIFBvc2ljacOzbiBkZWwgZHJhd2VyXG4gICAqIC0gYm90dG9tOiBkZXNkZSBhYmFqbyAoZGVmYXVsdCwgbWVqb3IgcGFyYSBtb2JpbGUpXG4gICAqIC0gbGVmdDogc2lkZSBwYW5lbCBkZXNkZSBpenF1aWVyZGFcbiAgICogLSByaWdodDogc2lkZSBwYW5lbCBkZXNkZSBkZXJlY2hhXG4gICAqIC0gdG9wOiBkZXNkZSBhcnJpYmEgKHBvY28gY29tw7puKVxuICAgKi9cbiAgQElucHV0KCkgcG9zaXRpb246IFBkbURyYXdlclBvc2l0aW9uID0gJ2JvdHRvbSc7XG4gIFxuICAvKipcbiAgICogVGFtYcOxbyBkZWwgZHJhd2VyXG4gICAqIC0gc206IDQwMHB4IChzaWRlKSAvIDUwdmggKGJvdHRvbS90b3ApXG4gICAqIC0gbWQ6IDUwMHB4IChzaWRlKSAvIDY2dmggKGJvdHRvbS90b3ApIChkZWZhdWx0KVxuICAgKiAtIGxnOiA2NDBweCAoc2lkZSkgLyA4MHZoIChib3R0b20vdG9wKVxuICAgKiAtIGZ1bGw6IDEwMCUgYW5jaG8vYWx0b1xuICAgKi9cbiAgQElucHV0KCkgc2l6ZTogUGRtRHJhd2VyU2l6ZSA9ICdtZCc7XG4gIFxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHBvc2l0aW9uPVwiYm90dG9tXCIgaW5zdGVhZFxuICAgKi9cbiAgQElucHV0KCkgdmFyaWFudDogUGRtRHJhd2VyVmFyaWFudCA9ICdkcmF3ZXInO1xuICBcbiAgQElucHV0KCkgY2xhc3NOYW1lID0gJyc7XG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uID0gJyc7XG4gIFxuICAvKipcbiAgICogTW9zdHJhciBoYW5kbGUgdmlzdWFsIChsw61uZWEgcGFyYSBhcnJhc3RyYXIpXG4gICAqIFNvbG8gdGllbmUgc2VudGlkbyBlbiBwb3NpdGlvbj1cImJvdHRvbVwiXG4gICAqL1xuICBASW5wdXQoKSBzaG93SGFuZGxlID0gdHJ1ZTtcbiAgXG4gIC8qKlxuICAgKiBNb3N0cmFyIGJvdMOzbiBkZSBjZXJyYXJcbiAgICovXG4gIEBJbnB1dCgpIHNob3dDbG9zZUJ1dHRvbiA9IHRydWU7XG4gIFxuICBASW5wdXQoKSBjbG9zZU9uRXNjID0gdHJ1ZTtcbiAgQElucHV0KCkgY2xvc2VPbkJhY2tkcm9wQ2xpY2sgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8vIERFUFJFQ0FURUQ6IGNvbnRlbmlkbyBlc3BlY8OtZmljbyBxdWUgc2UgbW92acOzIGEgbmctY29udGVudFxuICBASW5wdXQoKSB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHVuaXQgPSAnJztcbiAgQElucHV0KCkgZGVjcmVtZW50TGFiZWwgPSAnLSc7XG4gIEBJbnB1dCgpIGluY3JlbWVudExhYmVsID0gJysnO1xuICBASW5wdXQoKSBwcmltYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgc2Vjb25kYXJ5TGFiZWwgPSAnJztcbiAgQElucHV0KCkgcHJvZmlsZVRpdGxlID0gJyc7XG4gIEBJbnB1dCgpIHByb2ZpbGVEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBuYW1lTGFiZWwgPSAnTmFtZSc7XG4gIEBJbnB1dCgpIG5hbWVWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSB1c2VybmFtZUxhYmVsID0gJ1VzZXJuYW1lJztcbiAgQElucHV0KCkgdXNlcm5hbWVWYWx1ZSA9ICcnO1xuICBASW5wdXQoKSByZXNwb25zaXZlUHJpbWFyeUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGJhcnM6IG51bWJlcltdID0gW107XG4gIEBPdXRwdXQoKSBwcmltYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgc2Vjb25kYXJ5QWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJylcbiAgb25Fc2MoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3BlbiAmJiB0aGlzLmNsb3NlT25Fc2MpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2xvc2VPbkJhY2tkcm9wQ2xpY2spIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBvblByaW1hcnlBY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIG9uU2Vjb25kYXJ5QWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmVtaXQoKTtcbiAgfVxuXG4gIGdldCBjb250YWluZXJDbGFzc05hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGZpeGVkIGluc2V0LTAgJHtaX0lOREVYLmRyYXdlcn0gJHt0aGlzLmNsYXNzTmFtZX1gO1xuICB9XG5cbiAgZ2V0IHBhbmVsQ2xhc3NOYW1lKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZSA9IFtcbiAgICAgICdhYnNvbHV0ZScsXG4gICAgICAnYmctYmFja2dyb3VuZCcsXG4gICAgICAnYm9yZGVyIGJvcmRlci1zb2xpZCcsXG4gICAgICAnYm9yZGVyLWJvcmRlcicsXG4gICAgICAnc2hhZG93LWxnJyxcbiAgICAgICdvdmVyZmxvdy1hdXRvJ1xuICAgIF07XG5cbiAgICAvLyBQb3NpY2lvbmFtaWVudG9cbiAgICBjb25zdCBwb3NpdGlvbkNsYXNzZXMgPSB0aGlzLmdldFBvc2l0aW9uQ2xhc3NlcygpO1xuICAgIFxuICAgIC8vIFRhbWHDsW9cbiAgICBjb25zdCBzaXplQ2xhc3NlcyA9IHRoaXMuZ2V0U2l6ZUNsYXNzZXMoKTtcblxuICAgIHJldHVybiBbLi4uYmFzZSwgLi4ucG9zaXRpb25DbGFzc2VzLCAuLi5zaXplQ2xhc3Nlc10uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25DbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBtYXA6IFJlY29yZDxQZG1EcmF3ZXJQb3NpdGlvbiwgc3RyaW5nW10+ID0ge1xuICAgICAgYm90dG9tOiBbJ2luc2V0LXgtMCcsICdib3R0b20tMCcsICdyb3VuZGVkLXQteGwnXSxcbiAgICAgIHRvcDogWydpbnNldC14LTAnLCAndG9wLTAnLCAncm91bmRlZC1iLXhsJ10sXG4gICAgICBsZWZ0OiBbJ2luc2V0LXktMCcsICdsZWZ0LTAnLCAncm91bmRlZC1yLXhsJ10sXG4gICAgICByaWdodDogWydpbnNldC15LTAnLCAncmlnaHQtMCcsICdyb3VuZGVkLWwteGwnXVxuICAgIH07XG5cbiAgICByZXR1cm4gbWFwW3RoaXMucG9zaXRpb25dIHx8IG1hcC5ib3R0b207XG4gIH1cblxuICBwcml2YXRlIGdldFNpemVDbGFzc2VzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBpc1ZlcnRpY2FsID0gdGhpcy5wb3NpdGlvbiA9PT0gJ2JvdHRvbScgfHwgdGhpcy5wb3NpdGlvbiA9PT0gJ3RvcCc7XG4gICAgXG4gICAgaWYgKHRoaXMuc2l6ZSA9PT0gJ2Z1bGwnKSB7XG4gICAgICByZXR1cm4gWyd3LWZ1bGwnLCAnaC1mdWxsJ107XG4gICAgfVxuXG4gICAgY29uc3Qgc2l6ZU1hcCA9IHtcbiAgICAgIHNtOiBpc1ZlcnRpY2FsID8gJ21heC1oLVs1MHZoXScgOiAnbWF4LXctWzQwMHB4XScsXG4gICAgICBtZDogaXNWZXJ0aWNhbCA/ICdtYXgtaC1bNjZ2aF0nIDogJ21heC13LVs1MDBweF0nLFxuICAgICAgbGc6IGlzVmVydGljYWwgPyAnbWF4LWgtWzgwdmhdJyA6ICdtYXgtdy1bNjQwcHhdJ1xuICAgIH07XG5cbiAgICBjb25zdCBtYXhEaW1lbnNpb24gPSBzaXplTWFwW3RoaXMuc2l6ZV0gfHwgc2l6ZU1hcC5tZDtcblxuICAgIGlmIChpc1ZlcnRpY2FsKSB7XG4gICAgICByZXR1cm4gWyd3LWZ1bGwnLCBtYXhEaW1lbnNpb25dO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gWydoLWZ1bGwnLCBtYXhEaW1lbnNpb25dO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaG93TGVnYWN5Q29udGVudCgpOiBib29sZWFuIHtcbiAgICAvLyBNb3N0cmFyIGNvbnRlbmlkbyBsZWdhY3kgc2kgdmFyaWFudCBlc3TDoSBzaWVuZG8gdXNhZG9cbiAgICByZXR1cm4gdGhpcy52YXJpYW50ID09PSAnZHJhd2VyJyB8fCB0aGlzLnZhcmlhbnQgPT09ICdyZXNwb25zaXZlLWRpYWxvZyc7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJvcGVuXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NOYW1lXCI+XG4gIDwhLS0gQmFja2Ryb3AgLS0+XG4gIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWZvcmVncm91bmQvMzAgYmFja2Ryb3AtYmx1ci1zbVwiIChjbGljayk9XCJvbkJhY2tkcm9wQ2xpY2soKVwiPjwvZGl2PlxuXG4gIDwhLS0gUGFuZWwgLS0+XG4gIDxzZWN0aW9uIFtuZ0NsYXNzXT1cInBhbmVsQ2xhc3NOYW1lXCI+XG4gICAgPCEtLSBIYW5kbGUgdmlzdWFsIChzb2xvIHBhcmEgYm90dG9tKSAtLT5cbiAgICA8ZGl2IFxuICAgICAgKm5nSWY9XCJzaG93SGFuZGxlICYmIHBvc2l0aW9uID09PSAnYm90dG9tJ1wiIFxuICAgICAgY2xhc3M9XCJteC1hdXRvIG1iLTQgbXQtMiBoLTEgdy0xMCByb3VuZGVkLWZ1bGwgYmctYm9yZGVyXCI+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEhlYWRlciAob3BjaW9uYWwpIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0aXRsZSB8fCBkZXNjcmlwdGlvbiB8fCBzaG93Q2xvc2VCdXR0b25cIiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIGdhcC00IHAtNiBwYi00XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwidGl0bGUgfHwgZGVzY3JpcHRpb25cIiBjbGFzcz1cImZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICAgIDxoMyAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJtLTAgdGV4dC1sZyBmb250LXNlbWlib2xkIGxlYWRpbmctbm9uZSB0cmFja2luZy10aWdodCB0ZXh0LWZvcmVncm91bmRcIj5cbiAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICA8L2gzPlxuICAgICAgICA8cCAqbmdJZj1cImRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtLTAgbXQtMSB0ZXh0LXNtIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPlxuICAgICAgICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgICAgXG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaC02IHctNiBmbGV4LXNocmluay0wIGFwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXNtIGJvcmRlci0wIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LWZvcmVncm91bmQgb3BhY2l0eS03MCByaW5nLW9mZnNldC1iYWNrZ3JvdW5kIHRyYW5zaXRpb24tb3BhY2l0eSBob3ZlcjpvcGFjaXR5LTEwMCBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctcmluZyBmb2N1czpyaW5nLW9mZnNldC0yXCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2xvc2UgZHJhd2VyXCJcbiAgICAgID5cbiAgICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgY2xhc3M9XCJoLTQgdy00XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPHBhdGggZD1cIk02IDZMMTggMThNMTggNkw2IDE4XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiPjwvcGF0aD5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29udGVudCAtLT5cbiAgICA8ZGl2IGNsYXNzPVwicHgtNiBwYi02XCI+XG4gICAgICA8IS0tIENvbnRlbmlkbyBnZW7DqXJpY28gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNob3dMZWdhY3lDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIExFR0FDWTogY29udGVuaWRvIGVzcGVjw61maWNvIGhhcmRjb2RlYWRvIChiYWNrd2FyZCBjb21wYXRpYmlsaXR5KSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TGVnYWN5Q29udGVudFwiPlxuICAgICAgICA8IS0tIFZhcmlhbnQ6IGRyYXdlciAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQgPT09ICdkcmF3ZXInXCIgY2xhc3M9XCJteC1hdXRvIGZsZXggbWF4LXctc20gZmxleC1jb2wgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cInZhbHVlICE9PSAnJ1wiIGNsYXNzPVwibXQtMyBmbGV4IHctZnVsbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTRcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiaW5saW5lLWZsZXggaC02IHctNiBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC1mdWxsIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy10cmFuc3BhcmVudCBwLTAgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+e3sgZGVjcmVtZW50TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC01eGwgZm9udC1zZW1pYm9sZCBsZWFkaW5nLW5vbmUgdGV4dC1mb3JlZ3JvdW5kXCI+e3sgdmFsdWUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVuaXRcIiBjbGFzcz1cIm10LTEgdGV4dC14cyB0cmFja2luZy13aWRlIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPnt7IHVuaXQgfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJpbmxpbmUtZmxleCBoLTYgdy02IGFwcGVhcmFuY2Utbm9uZSBib3gtYm9yZGVyIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1zb2xpZCBib3JkZXItYm9yZGVyIGJnLXRyYW5zcGFyZW50IHAtMCB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj57eyBpbmNyZW1lbnRMYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImJhcnMubGVuZ3RoXCIgY2xhc3M9XCJtdC0zIGZsZXggaC0xNCB3LWZ1bGwgaXRlbXMtZW5kIGdhcC0xXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBiYXIgb2YgYmFyc1wiIGNsYXNzPVwiZmxleC0xIGJnLWZvcmVncm91bmRcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImJhclwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInByaW1hcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTMgaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciByb3VuZGVkLW1kIGJnLXByaW1hcnkgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFwiIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiPnt7IHByaW1hcnlMYWJlbCB9fTwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWNvbmRhcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTIgaC05IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWlucHV0IGJnLWJhY2tncm91bmQgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIiAoY2xpY2spPVwib25TZWNvbmRhcnlBY3Rpb24oKVwiPnt7IHNlY29uZGFyeUxhYmVsIH19PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gVmFyaWFudDogcmVzcG9uc2l2ZS1kaWFsb2cgLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYW50ID09PSAncmVzcG9uc2l2ZS1kaWFsb2cnXCIgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm5hbWVMYWJlbCAmJiBuYW1lVmFsdWVcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTEgYmxvY2sgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyBuYW1lTGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtOCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc29saWQgYm9yZGVyLWJvcmRlciBiZy1iYWNrZ3JvdW5kIHB4LTIgcHktMSB0ZXh0LXhzIHRleHQtZm9yZWdyb3VuZFwiPnt7IG5hbWVWYWx1ZSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VybmFtZUxhYmVsICYmIHVzZXJuYW1lVmFsdWVcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1iLTEgYmxvY2sgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LWZvcmVncm91bmRcIj57eyB1c2VybmFtZUxhYmVsIH19PC9sYWJlbD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTggcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXNvbGlkIGJvcmRlci1ib3JkZXIgYmctYmFja2dyb3VuZCBweC0yIHB5LTEgdGV4dC14cyB0ZXh0LWZvcmVncm91bmRcIj57eyB1c2VybmFtZVZhbHVlIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwicmVzcG9uc2l2ZVByaW1hcnlMYWJlbFwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm10LTMgaC04IHctZnVsbCBhcHBlYXJhbmNlLW5vbmUgYm94LWJvcmRlciByb3VuZGVkLW1kIGJnLXByaW1hcnkgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZFwiIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiPnt7IHJlc3BvbnNpdmVQcmltYXJ5TGFiZWwgfX08L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|