@qius.solutions/parallel-ui-angular 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +88 -0
- package/README.md +254 -0
- package/accordion/accordion.d.ts +77 -0
- package/accordion/index.d.ts +5 -0
- package/accordion/public_api.d.ts +1 -0
- package/animate/animate.d.ts +27 -0
- package/animate/index.d.ts +5 -0
- package/animate/public_api.d.ts +1 -0
- package/api/blockableui.d.ts +3 -0
- package/api/confirmaeventtype.d.ts +5 -0
- package/api/confirmation.d.ts +24 -0
- package/api/confirmationservice.d.ts +13 -0
- package/api/contextmenuservice.d.ts +10 -0
- package/api/filtermatchmode.d.ts +22 -0
- package/api/filtermetadata.d.ts +5 -0
- package/api/filteroperator.d.ts +4 -0
- package/api/filterservice.d.ts +29 -0
- package/api/index.d.ts +5 -0
- package/api/lazyloadevent.d.ts +15 -0
- package/api/megamenuitem.d.ts +36 -0
- package/api/menuitem.d.ts +55 -0
- package/api/message.d.ts +15 -0
- package/api/messageservice.d.ts +13 -0
- package/api/overlayoptions.d.ts +50 -0
- package/api/overlayservice.d.ts +9 -0
- package/api/parallel-ui-angular-config.d.ts +20 -0
- package/api/parallel-ui-icons.d.ts +260 -0
- package/api/public_api.d.ts +29 -0
- package/api/selectitem.d.ts +8 -0
- package/api/selectitemgroup.d.ts +6 -0
- package/api/shared.d.ts +25 -0
- package/api/sortevent.d.ts +8 -0
- package/api/sortmeta.d.ts +4 -0
- package/api/tablestate.d.ts +20 -0
- package/api/translation.d.ts +47 -0
- package/api/translationkeys.d.ts +42 -0
- package/api/treedragdropservice.d.ts +12 -0
- package/api/treenode.d.ts +19 -0
- package/api/treenodedragevent.d.ts +8 -0
- package/autocomplete/autocomplete.d.ts +183 -0
- package/autocomplete/index.d.ts +5 -0
- package/autocomplete/public_api.d.ts +1 -0
- package/autofocus/autofocus.d.ts +17 -0
- package/autofocus/index.d.ts +5 -0
- package/autofocus/public_api.d.ts +1 -0
- package/avatar/avatar.d.ts +28 -0
- package/avatar/index.d.ts +5 -0
- package/avatar/public_api.d.ts +1 -0
- package/avatargroup/avatargroup.d.ts +13 -0
- package/avatargroup/index.d.ts +5 -0
- package/avatargroup/public_api.d.ts +1 -0
- package/badge/badge.d.ts +56 -0
- package/badge/index.d.ts +5 -0
- package/badge/public_api.d.ts +1 -0
- package/baseicon/baseicon.d.ts +14 -0
- package/baseicon/index.d.ts +5 -0
- package/baseicon/public_api.d.ts +1 -0
- package/blockui/blockui.d.ts +37 -0
- package/blockui/index.d.ts +5 -0
- package/blockui/public_api.d.ts +1 -0
- package/breadcrumb/breadcrumb.d.ts +29 -0
- package/breadcrumb/index.d.ts +5 -0
- package/breadcrumb/public_api.d.ts +1 -0
- package/button/button.d.ts +87 -0
- package/button/index.d.ts +5 -0
- package/button/public_api.d.ts +1 -0
- package/calendar/calendar.d.ts +353 -0
- package/calendar/index.d.ts +5 -0
- package/calendar/public_api.d.ts +1 -0
- package/card/card.d.ts +30 -0
- package/card/index.d.ts +5 -0
- package/card/public_api.d.ts +1 -0
- package/carousel/carousel.d.ts +112 -0
- package/carousel/index.d.ts +5 -0
- package/carousel/public_api.d.ts +1 -0
- package/cascadeselect/cascadeselect.d.ts +156 -0
- package/cascadeselect/index.d.ts +5 -0
- package/cascadeselect/public_api.d.ts +1 -0
- package/chart/chart.d.ts +39 -0
- package/chart/index.d.ts +5 -0
- package/chart/public_api.d.ts +1 -0
- package/checkbox/checkbox.d.ts +56 -0
- package/checkbox/index.d.ts +5 -0
- package/checkbox/public_api.d.ts +1 -0
- package/chip/chip.d.ts +33 -0
- package/chip/index.d.ts +5 -0
- package/chip/public_api.d.ts +1 -0
- package/chips/chips.d.ts +73 -0
- package/chips/index.d.ts +5 -0
- package/chips/public_api.d.ts +1 -0
- package/colorpicker/colorpicker.d.ts +141 -0
- package/colorpicker/index.d.ts +5 -0
- package/colorpicker/public_api.d.ts +1 -0
- package/confirmdialog/confirmdialog.d.ts +116 -0
- package/confirmdialog/index.d.ts +5 -0
- package/confirmdialog/public_api.d.ts +1 -0
- package/confirmpopup/confirmpopup.d.ts +71 -0
- package/confirmpopup/index.d.ts +5 -0
- package/confirmpopup/public_api.d.ts +1 -0
- package/contextmenu/contextmenu.d.ts +92 -0
- package/contextmenu/index.d.ts +5 -0
- package/contextmenu/public_api.d.ts +1 -0
- package/dataview/dataview.d.ts +104 -0
- package/dataview/index.d.ts +5 -0
- package/dataview/public_api.d.ts +1 -0
- package/defer/defer.d.ts +29 -0
- package/defer/index.d.ts +5 -0
- package/defer/public_api.d.ts +1 -0
- package/dialog/dialog.d.ts +155 -0
- package/dialog/index.d.ts +5 -0
- package/dialog/public_api.d.ts +1 -0
- package/divider/divider.d.ts +29 -0
- package/divider/index.d.ts +5 -0
- package/divider/public_api.d.ts +1 -0
- package/dock/dock.d.ts +43 -0
- package/dock/index.d.ts +5 -0
- package/dock/public_api.d.ts +1 -0
- package/dom/connectedoverlayscrollhandler.d.ts +9 -0
- package/dom/domhandler.d.ts +82 -0
- package/dom/index.d.ts +5 -0
- package/dom/public_api.d.ts +2 -0
- package/dragdrop/dragdrop.d.ts +65 -0
- package/dragdrop/index.d.ts +5 -0
- package/dragdrop/public_api.d.ts +1 -0
- package/dropdown/dropdown.d.ts +225 -0
- package/dropdown/index.d.ts +5 -0
- package/dropdown/public_api.d.ts +1 -0
- package/dynamicdialog/dialogservice.d.ts +18 -0
- package/dynamicdialog/dynamicdialog-config.d.ts +29 -0
- package/dynamicdialog/dynamicdialog-injector.d.ts +8 -0
- package/dynamicdialog/dynamicdialog-ref.d.ts +25 -0
- package/dynamicdialog/dynamicdialog.d.ts +101 -0
- package/dynamicdialog/dynamicdialogcontent.d.ts +8 -0
- package/dynamicdialog/index.d.ts +5 -0
- package/dynamicdialog/public_api.d.ts +6 -0
- package/editor/editor.d.ts +50 -0
- package/editor/index.d.ts +5 -0
- package/editor/public_api.d.ts +1 -0
- package/esm2020/accordion/accordion.mjs +396 -0
- package/esm2020/accordion/public_api.mjs +2 -0
- package/esm2020/accordion/qius.solutions-parallel-ui-angular-accordion.mjs +5 -0
- package/esm2020/animate/animate.mjs +79 -0
- package/esm2020/animate/public_api.mjs +2 -0
- package/esm2020/animate/qius.solutions-parallel-ui-angular-animate.mjs +5 -0
- package/esm2020/api/blockableui.mjs +2 -0
- package/esm2020/api/confirmaeventtype.mjs +7 -0
- package/esm2020/api/confirmation.mjs +2 -0
- package/esm2020/api/confirmationservice.mjs +28 -0
- package/esm2020/api/contextmenuservice.mjs +23 -0
- package/esm2020/api/filtermatchmode.mjs +23 -0
- package/esm2020/api/filtermetadata.mjs +2 -0
- package/esm2020/api/filteroperator.mjs +5 -0
- package/esm2020/api/filterservice.mjs +221 -0
- package/esm2020/api/lazyloadevent.mjs +2 -0
- package/esm2020/api/megamenuitem.mjs +2 -0
- package/esm2020/api/menuitem.mjs +2 -0
- package/esm2020/api/message.mjs +2 -0
- package/esm2020/api/messageservice.mjs +30 -0
- package/esm2020/api/overlayoptions.mjs +2 -0
- package/esm2020/api/overlayservice.mjs +21 -0
- package/esm2020/api/parallel-ui-angular-config.mjs +84 -0
- package/esm2020/api/parallel-ui-icons.mjs +261 -0
- package/esm2020/api/public_api.mjs +30 -0
- package/esm2020/api/qius.solutions-parallel-ui-angular-api.mjs +5 -0
- package/esm2020/api/selectitem.mjs +2 -0
- package/esm2020/api/selectitemgroup.mjs +2 -0
- package/esm2020/api/shared.mjs +62 -0
- package/esm2020/api/sortevent.mjs +2 -0
- package/esm2020/api/sortmeta.mjs +2 -0
- package/esm2020/api/tablestate.mjs +2 -0
- package/esm2020/api/translation.mjs +2 -0
- package/esm2020/api/translationkeys.mjs +43 -0
- package/esm2020/api/treedragdropservice.mjs +23 -0
- package/esm2020/api/treenode.mjs +2 -0
- package/esm2020/api/treenodedragevent.mjs +2 -0
- package/esm2020/autocomplete/autocomplete.mjs +1144 -0
- package/esm2020/autocomplete/public_api.mjs +2 -0
- package/esm2020/autocomplete/qius.solutions-parallel-ui-angular-autocomplete.mjs +5 -0
- package/esm2020/autofocus/autofocus.mjs +51 -0
- package/esm2020/autofocus/public_api.mjs +2 -0
- package/esm2020/autofocus/qius.solutions-parallel-ui-angular-autofocus.mjs +5 -0
- package/esm2020/avatar/avatar.mjs +75 -0
- package/esm2020/avatar/public_api.mjs +2 -0
- package/esm2020/avatar/qius.solutions-parallel-ui-angular-avatar.mjs +5 -0
- package/esm2020/avatargroup/avatargroup.mjs +40 -0
- package/esm2020/avatargroup/public_api.mjs +2 -0
- package/esm2020/avatargroup/qius.solutions-parallel-ui-angular-avatargroup.mjs +5 -0
- package/esm2020/badge/badge.mjs +182 -0
- package/esm2020/badge/public_api.mjs +2 -0
- package/esm2020/badge/qius.solutions-parallel-ui-angular-badge.mjs +5 -0
- package/esm2020/baseicon/baseicon.mjs +41 -0
- package/esm2020/baseicon/public_api.mjs +2 -0
- package/esm2020/baseicon/qius.solutions-parallel-ui-angular-baseicon.mjs +5 -0
- package/esm2020/blockui/blockui.mjs +140 -0
- package/esm2020/blockui/public_api.mjs +2 -0
- package/esm2020/blockui/qius.solutions-parallel-ui-angular-blockui.mjs +5 -0
- package/esm2020/breadcrumb/breadcrumb.mjs +296 -0
- package/esm2020/breadcrumb/public_api.mjs +2 -0
- package/esm2020/breadcrumb/qius.solutions-parallel-ui-angular-breadcrumb.mjs +5 -0
- package/esm2020/button/button.mjs +362 -0
- package/esm2020/button/public_api.mjs +2 -0
- package/esm2020/button/qius.solutions-parallel-ui-angular-button.mjs +5 -0
- package/esm2020/calendar/calendar.mjs +3123 -0
- package/esm2020/calendar/public_api.mjs +2 -0
- package/esm2020/calendar/qius.solutions-parallel-ui-angular-calendar.mjs +5 -0
- package/esm2020/card/card.mjs +126 -0
- package/esm2020/card/public_api.mjs +2 -0
- package/esm2020/card/qius.solutions-parallel-ui-angular-card.mjs +5 -0
- package/esm2020/carousel/carousel.mjs +696 -0
- package/esm2020/carousel/public_api.mjs +2 -0
- package/esm2020/carousel/qius.solutions-parallel-ui-angular-carousel.mjs +5 -0
- package/esm2020/cascadeselect/cascadeselect.mjs +766 -0
- package/esm2020/cascadeselect/public_api.mjs +2 -0
- package/esm2020/cascadeselect/qius.solutions-parallel-ui-angular-cascadeselect.mjs +5 -0
- package/esm2020/chart/chart.mjs +142 -0
- package/esm2020/chart/public_api.mjs +2 -0
- package/esm2020/chart/qius.solutions-parallel-ui-angular-chart.mjs +5 -0
- package/esm2020/checkbox/checkbox.mjs +247 -0
- package/esm2020/checkbox/public_api.mjs +2 -0
- package/esm2020/checkbox/qius.solutions-parallel-ui-angular-checkbox.mjs +5 -0
- package/esm2020/chip/chip.mjs +113 -0
- package/esm2020/chip/public_api.mjs +2 -0
- package/esm2020/chip/qius.solutions-parallel-ui-angular-chip.mjs +5 -0
- package/esm2020/chips/chips.mjs +375 -0
- package/esm2020/chips/public_api.mjs +2 -0
- package/esm2020/chips/qius.solutions-parallel-ui-angular-chips.mjs +5 -0
- package/esm2020/colorpicker/colorpicker.mjs +685 -0
- package/esm2020/colorpicker/public_api.mjs +2 -0
- package/esm2020/colorpicker/qius.solutions-parallel-ui-angular-colorpicker.mjs +5 -0
- package/esm2020/confirmdialog/confirmdialog.mjs +606 -0
- package/esm2020/confirmdialog/public_api.mjs +2 -0
- package/esm2020/confirmdialog/qius.solutions-parallel-ui-angular-confirmdialog.mjs +5 -0
- package/esm2020/confirmpopup/confirmpopup.mjs +394 -0
- package/esm2020/confirmpopup/public_api.mjs +2 -0
- package/esm2020/confirmpopup/qius.solutions-parallel-ui-angular-confirmpopup.mjs +5 -0
- package/esm2020/contextmenu/contextmenu.mjs +691 -0
- package/esm2020/contextmenu/public_api.mjs +2 -0
- package/esm2020/contextmenu/qius.solutions-parallel-ui-angular-contextmenu.mjs +5 -0
- package/esm2020/dataview/dataview.mjs +512 -0
- package/esm2020/dataview/public_api.mjs +2 -0
- package/esm2020/dataview/qius.solutions-parallel-ui-angular-dataview.mjs +5 -0
- package/esm2020/defer/defer.mjs +92 -0
- package/esm2020/defer/public_api.mjs +2 -0
- package/esm2020/defer/qius.solutions-parallel-ui-angular-defer.mjs +5 -0
- package/esm2020/dialog/dialog.mjs +833 -0
- package/esm2020/dialog/public_api.mjs +2 -0
- package/esm2020/dialog/qius.solutions-parallel-ui-angular-dialog.mjs +5 -0
- package/esm2020/divider/divider.mjs +69 -0
- package/esm2020/divider/public_api.mjs +2 -0
- package/esm2020/divider/qius.solutions-parallel-ui-angular-divider.mjs +5 -0
- package/esm2020/dock/dock.mjs +210 -0
- package/esm2020/dock/public_api.mjs +2 -0
- package/esm2020/dock/qius.solutions-parallel-ui-angular-dock.mjs +5 -0
- package/esm2020/dom/connectedoverlayscrollhandler.mjs +27 -0
- package/esm2020/dom/domhandler.mjs +600 -0
- package/esm2020/dom/public_api.mjs +3 -0
- package/esm2020/dom/qius.solutions-parallel-ui-angular-dom.mjs +5 -0
- package/esm2020/dragdrop/dragdrop.mjs +251 -0
- package/esm2020/dragdrop/public_api.mjs +2 -0
- package/esm2020/dragdrop/qius.solutions-parallel-ui-angular-dragdrop.mjs +5 -0
- package/esm2020/dropdown/dropdown.mjs +1372 -0
- package/esm2020/dropdown/public_api.mjs +2 -0
- package/esm2020/dropdown/qius.solutions-parallel-ui-angular-dropdown.mjs +5 -0
- package/esm2020/dynamicdialog/dialogservice.mjs +60 -0
- package/esm2020/dynamicdialog/dynamicdialog-config.mjs +3 -0
- package/esm2020/dynamicdialog/dynamicdialog-injector.mjs +13 -0
- package/esm2020/dynamicdialog/dynamicdialog-ref.mjs +41 -0
- package/esm2020/dynamicdialog/dynamicdialog.mjs +562 -0
- package/esm2020/dynamicdialog/dynamicdialogcontent.mjs +19 -0
- package/esm2020/dynamicdialog/public_api.mjs +7 -0
- package/esm2020/dynamicdialog/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +5 -0
- package/esm2020/editor/editor.mjs +309 -0
- package/esm2020/editor/public_api.mjs +2 -0
- package/esm2020/editor/qius.solutions-parallel-ui-angular-editor.mjs +5 -0
- package/esm2020/fieldset/fieldset.mjs +214 -0
- package/esm2020/fieldset/public_api.mjs +2 -0
- package/esm2020/fieldset/qius.solutions-parallel-ui-angular-fieldset.mjs +5 -0
- package/esm2020/fileupload/fileupload.mjs +754 -0
- package/esm2020/fileupload/public_api.mjs +2 -0
- package/esm2020/fileupload/qius.solutions-parallel-ui-angular-fileupload.mjs +5 -0
- package/esm2020/focustrap/focustrap.mjs +52 -0
- package/esm2020/focustrap/public_api.mjs +2 -0
- package/esm2020/focustrap/qius.solutions-parallel-ui-angular-focustrap.mjs +5 -0
- package/esm2020/galleria/galleria.mjs +1187 -0
- package/esm2020/galleria/public_api.mjs +2 -0
- package/esm2020/galleria/qius.solutions-parallel-ui-angular-galleria.mjs +5 -0
- package/esm2020/icons/angledoubledown/angledoubledown.mjs +35 -0
- package/esm2020/icons/angledoubledown/public_api.mjs +2 -0
- package/esm2020/icons/angledoubledown/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +5 -0
- package/esm2020/icons/angledoubleleft/angledoubleleft.mjs +35 -0
- package/esm2020/icons/angledoubleleft/public_api.mjs +2 -0
- package/esm2020/icons/angledoubleleft/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +5 -0
- package/esm2020/icons/angledoubleright/angledoubleright.mjs +35 -0
- package/esm2020/icons/angledoubleright/public_api.mjs +2 -0
- package/esm2020/icons/angledoubleright/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +5 -0
- package/esm2020/icons/angledoubleup/angledoubleup.mjs +35 -0
- package/esm2020/icons/angledoubleup/public_api.mjs +2 -0
- package/esm2020/icons/angledoubleup/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +5 -0
- package/esm2020/icons/angledown/angledown.mjs +31 -0
- package/esm2020/icons/angledown/public_api.mjs +2 -0
- package/esm2020/icons/angledown/qius.solutions-parallel-ui-angular-icons-angledown.mjs +5 -0
- package/esm2020/icons/angleleft/angleleft.mjs +31 -0
- package/esm2020/icons/angleleft/public_api.mjs +2 -0
- package/esm2020/icons/angleleft/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +5 -0
- package/esm2020/icons/angleright/angleright.mjs +31 -0
- package/esm2020/icons/angleright/public_api.mjs +2 -0
- package/esm2020/icons/angleright/qius.solutions-parallel-ui-angular-icons-angleright.mjs +5 -0
- package/esm2020/icons/angleup/angleup.mjs +31 -0
- package/esm2020/icons/angleup/public_api.mjs +2 -0
- package/esm2020/icons/angleup/qius.solutions-parallel-ui-angular-icons-angleup.mjs +5 -0
- package/esm2020/icons/arrowdown/arrowdown.mjs +49 -0
- package/esm2020/icons/arrowdown/public_api.mjs +2 -0
- package/esm2020/icons/arrowdown/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +5 -0
- package/esm2020/icons/arrowdownleft/arrowdownleft.mjs +31 -0
- package/esm2020/icons/arrowdownleft/public_api.mjs +2 -0
- package/esm2020/icons/arrowdownleft/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +5 -0
- package/esm2020/icons/arrowdownright/arrowdownright.mjs +31 -0
- package/esm2020/icons/arrowdownright/public_api.mjs +2 -0
- package/esm2020/icons/arrowdownright/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +5 -0
- package/esm2020/icons/arrowleft/arrowleft.mjs +49 -0
- package/esm2020/icons/arrowleft/public_api.mjs +2 -0
- package/esm2020/icons/arrowleft/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +5 -0
- package/esm2020/icons/arrowright/arrowright.mjs +35 -0
- package/esm2020/icons/arrowright/public_api.mjs +2 -0
- package/esm2020/icons/arrowright/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +5 -0
- package/esm2020/icons/arrowup/arrowup.mjs +49 -0
- package/esm2020/icons/arrowup/public_api.mjs +2 -0
- package/esm2020/icons/arrowup/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +5 -0
- package/esm2020/icons/ban/ban.mjs +45 -0
- package/esm2020/icons/ban/public_api.mjs +2 -0
- package/esm2020/icons/ban/qius.solutions-parallel-ui-angular-icons-ban.mjs +5 -0
- package/esm2020/icons/bars/bars.mjs +35 -0
- package/esm2020/icons/bars/public_api.mjs +2 -0
- package/esm2020/icons/bars/qius.solutions-parallel-ui-angular-icons-bars.mjs +5 -0
- package/esm2020/icons/calendar/calendar.mjs +31 -0
- package/esm2020/icons/calendar/public_api.mjs +2 -0
- package/esm2020/icons/calendar/qius.solutions-parallel-ui-angular-icons-calendar.mjs +5 -0
- package/esm2020/icons/caretleft/caretleft.mjs +31 -0
- package/esm2020/icons/caretleft/public_api.mjs +2 -0
- package/esm2020/icons/caretleft/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +5 -0
- package/esm2020/icons/caretright/caretright.mjs +31 -0
- package/esm2020/icons/caretright/public_api.mjs +2 -0
- package/esm2020/icons/caretright/qius.solutions-parallel-ui-angular-icons-caretright.mjs +5 -0
- package/esm2020/icons/check/check.mjs +31 -0
- package/esm2020/icons/check/public_api.mjs +2 -0
- package/esm2020/icons/check/qius.solutions-parallel-ui-angular-icons-check.mjs +5 -0
- package/esm2020/icons/chevrondown/chevrondown.mjs +31 -0
- package/esm2020/icons/chevrondown/public_api.mjs +2 -0
- package/esm2020/icons/chevrondown/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +5 -0
- package/esm2020/icons/chevronleft/chevronleft.mjs +31 -0
- package/esm2020/icons/chevronleft/public_api.mjs +2 -0
- package/esm2020/icons/chevronleft/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +5 -0
- package/esm2020/icons/chevronright/chevronright.mjs +31 -0
- package/esm2020/icons/chevronright/public_api.mjs +2 -0
- package/esm2020/icons/chevronright/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +5 -0
- package/esm2020/icons/chevronup/chevronup.mjs +31 -0
- package/esm2020/icons/chevronup/public_api.mjs +2 -0
- package/esm2020/icons/chevronup/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +5 -0
- package/esm2020/icons/exclamationtriangle/exclamationtriangle.mjs +61 -0
- package/esm2020/icons/exclamationtriangle/public_api.mjs +2 -0
- package/esm2020/icons/exclamationtriangle/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +5 -0
- package/esm2020/icons/eye/eye.mjs +35 -0
- package/esm2020/icons/eye/public_api.mjs +2 -0
- package/esm2020/icons/eye/qius.solutions-parallel-ui-angular-icons-eye.mjs +5 -0
- package/esm2020/icons/eyeslash/eyeslash.mjs +49 -0
- package/esm2020/icons/eyeslash/public_api.mjs +2 -0
- package/esm2020/icons/eyeslash/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +5 -0
- package/esm2020/icons/filter/filter.mjs +45 -0
- package/esm2020/icons/filter/public_api.mjs +2 -0
- package/esm2020/icons/filter/qius.solutions-parallel-ui-angular-icons-filter.mjs +5 -0
- package/esm2020/icons/filterslash/filterslash.mjs +49 -0
- package/esm2020/icons/filterslash/public_api.mjs +2 -0
- package/esm2020/icons/filterslash/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +5 -0
- package/esm2020/icons/home/home.mjs +49 -0
- package/esm2020/icons/home/public_api.mjs +2 -0
- package/esm2020/icons/home/qius.solutions-parallel-ui-angular-icons-home.mjs +5 -0
- package/esm2020/icons/infocircle/infocircle.mjs +49 -0
- package/esm2020/icons/infocircle/public_api.mjs +2 -0
- package/esm2020/icons/infocircle/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +5 -0
- package/esm2020/icons/minus/minus.mjs +32 -0
- package/esm2020/icons/minus/public_api.mjs +2 -0
- package/esm2020/icons/minus/qius.solutions-parallel-ui-angular-icons-minus.mjs +5 -0
- package/esm2020/icons/pencil/pencil.mjs +45 -0
- package/esm2020/icons/pencil/public_api.mjs +2 -0
- package/esm2020/icons/pencil/qius.solutions-parallel-ui-angular-icons-pencil.mjs +5 -0
- package/esm2020/icons/plus/plus.mjs +45 -0
- package/esm2020/icons/plus/public_api.mjs +2 -0
- package/esm2020/icons/plus/qius.solutions-parallel-ui-angular-icons-plus.mjs +5 -0
- package/esm2020/icons/refresh/public_api.mjs +2 -0
- package/esm2020/icons/refresh/qius.solutions-parallel-ui-angular-icons-refresh.mjs +5 -0
- package/esm2020/icons/refresh/refresh.mjs +49 -0
- package/esm2020/icons/search/public_api.mjs +2 -0
- package/esm2020/icons/search/qius.solutions-parallel-ui-angular-icons-search.mjs +5 -0
- package/esm2020/icons/search/search.mjs +49 -0
- package/esm2020/icons/searchminus/public_api.mjs +2 -0
- package/esm2020/icons/searchminus/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +5 -0
- package/esm2020/icons/searchminus/searchminus.mjs +49 -0
- package/esm2020/icons/searchplus/public_api.mjs +2 -0
- package/esm2020/icons/searchplus/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +5 -0
- package/esm2020/icons/searchplus/searchplus.mjs +49 -0
- package/esm2020/icons/sortalt/public_api.mjs +2 -0
- package/esm2020/icons/sortalt/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +5 -0
- package/esm2020/icons/sortalt/sortalt.mjs +57 -0
- package/esm2020/icons/sortamountdown/public_api.mjs +2 -0
- package/esm2020/icons/sortamountdown/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +5 -0
- package/esm2020/icons/sortamountdown/sortamountdown.mjs +85 -0
- package/esm2020/icons/sortamountupalt/public_api.mjs +2 -0
- package/esm2020/icons/sortamountupalt/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +5 -0
- package/esm2020/icons/sortamountupalt/sortamountupalt.mjs +85 -0
- package/esm2020/icons/spinner/public_api.mjs +2 -0
- package/esm2020/icons/spinner/qius.solutions-parallel-ui-angular-icons-spinner.mjs +5 -0
- package/esm2020/icons/spinner/spinner.mjs +45 -0
- package/esm2020/icons/star/public_api.mjs +2 -0
- package/esm2020/icons/star/qius.solutions-parallel-ui-angular-icons-star.mjs +5 -0
- package/esm2020/icons/star/star.mjs +45 -0
- package/esm2020/icons/starfill/public_api.mjs +2 -0
- package/esm2020/icons/starfill/qius.solutions-parallel-ui-angular-icons-starfill.mjs +5 -0
- package/esm2020/icons/starfill/starfill.mjs +45 -0
- package/esm2020/icons/thlarge/public_api.mjs +2 -0
- package/esm2020/icons/thlarge/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +5 -0
- package/esm2020/icons/thlarge/thlarge.mjs +49 -0
- package/esm2020/icons/times/public_api.mjs +2 -0
- package/esm2020/icons/times/qius.solutions-parallel-ui-angular-icons-times.mjs +5 -0
- package/esm2020/icons/times/times.mjs +31 -0
- package/esm2020/icons/timescircle/public_api.mjs +2 -0
- package/esm2020/icons/timescircle/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +5 -0
- package/esm2020/icons/timescircle/timescircle.mjs +49 -0
- package/esm2020/icons/trash/public_api.mjs +2 -0
- package/esm2020/icons/trash/qius.solutions-parallel-ui-angular-icons-trash.mjs +5 -0
- package/esm2020/icons/trash/trash.mjs +49 -0
- package/esm2020/icons/undo/public_api.mjs +2 -0
- package/esm2020/icons/undo/qius.solutions-parallel-ui-angular-icons-undo.mjs +5 -0
- package/esm2020/icons/undo/undo.mjs +49 -0
- package/esm2020/icons/upload/public_api.mjs +2 -0
- package/esm2020/icons/upload/qius.solutions-parallel-ui-angular-icons-upload.mjs +5 -0
- package/esm2020/icons/upload/upload.mjs +49 -0
- package/esm2020/icons/windowmaximize/public_api.mjs +2 -0
- package/esm2020/icons/windowmaximize/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +5 -0
- package/esm2020/icons/windowmaximize/windowmaximize.mjs +49 -0
- package/esm2020/icons/windowminimize/public_api.mjs +2 -0
- package/esm2020/icons/windowminimize/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +5 -0
- package/esm2020/icons/windowminimize/windowminimize.mjs +49 -0
- package/esm2020/image/image.mjs +321 -0
- package/esm2020/image/public_api.mjs +2 -0
- package/esm2020/image/qius.solutions-parallel-ui-angular-image.mjs +5 -0
- package/esm2020/inplace/inplace.mjs +168 -0
- package/esm2020/inplace/public_api.mjs +2 -0
- package/esm2020/inplace/qius.solutions-parallel-ui-angular-inplace.mjs +5 -0
- package/esm2020/inputmask/inputmask.mjs +697 -0
- package/esm2020/inputmask/public_api.mjs +2 -0
- package/esm2020/inputmask/qius.solutions-parallel-ui-angular-inputmask.mjs +5 -0
- package/esm2020/inputnumber/inputnumber.mjs +1189 -0
- package/esm2020/inputnumber/public_api.mjs +2 -0
- package/esm2020/inputnumber/qius.solutions-parallel-ui-angular-inputnumber.mjs +5 -0
- package/esm2020/inputswitch/inputswitch.mjs +160 -0
- package/esm2020/inputswitch/public_api.mjs +2 -0
- package/esm2020/inputswitch/qius.solutions-parallel-ui-angular-inputswitch.mjs +5 -0
- package/esm2020/inputtext/inputtext.mjs +55 -0
- package/esm2020/inputtext/public_api.mjs +2 -0
- package/esm2020/inputtext/qius.solutions-parallel-ui-angular-inputtext.mjs +5 -0
- package/esm2020/inputtextarea/inputtextarea.mjs +117 -0
- package/esm2020/inputtextarea/public_api.mjs +2 -0
- package/esm2020/inputtextarea/qius.solutions-parallel-ui-angular-inputtextarea.mjs +5 -0
- package/esm2020/keyfilter/keyfilter.mjs +214 -0
- package/esm2020/keyfilter/public_api.mjs +2 -0
- package/esm2020/keyfilter/qius.solutions-parallel-ui-angular-keyfilter.mjs +5 -0
- package/esm2020/knob/knob.mjs +283 -0
- package/esm2020/knob/public_api.mjs +2 -0
- package/esm2020/knob/qius.solutions-parallel-ui-angular-knob.mjs +5 -0
- package/esm2020/listbox/listbox.mjs +800 -0
- package/esm2020/listbox/public_api.mjs +2 -0
- package/esm2020/listbox/qius.solutions-parallel-ui-angular-listbox.mjs +5 -0
- package/esm2020/megamenu/megamenu.mjs +464 -0
- package/esm2020/megamenu/public_api.mjs +2 -0
- package/esm2020/megamenu/qius.solutions-parallel-ui-angular-megamenu.mjs +5 -0
- package/esm2020/menu/menu.mjs +548 -0
- package/esm2020/menu/public_api.mjs +2 -0
- package/esm2020/menu/qius.solutions-parallel-ui-angular-menu.mjs +5 -0
- package/esm2020/menubar/menubar.mjs +515 -0
- package/esm2020/menubar/public_api.mjs +2 -0
- package/esm2020/menubar/qius.solutions-parallel-ui-angular-menubar.mjs +5 -0
- package/esm2020/message/message.mjs +103 -0
- package/esm2020/message/public_api.mjs +2 -0
- package/esm2020/message/qius.solutions-parallel-ui-angular-message.mjs +5 -0
- package/esm2020/messages/messages.mjs +272 -0
- package/esm2020/messages/public_api.mjs +2 -0
- package/esm2020/messages/qius.solutions-parallel-ui-angular-messages.mjs +5 -0
- package/esm2020/multiselect/multiselect.mjs +1411 -0
- package/esm2020/multiselect/public_api.mjs +2 -0
- package/esm2020/multiselect/qius.solutions-parallel-ui-angular-multiselect.mjs +5 -0
- package/esm2020/orderlist/orderlist.mjs +621 -0
- package/esm2020/orderlist/public_api.mjs +2 -0
- package/esm2020/orderlist/qius.solutions-parallel-ui-angular-orderlist.mjs +5 -0
- package/esm2020/organizationchart/organizationchart.mjs +319 -0
- package/esm2020/organizationchart/public_api.mjs +2 -0
- package/esm2020/organizationchart/qius.solutions-parallel-ui-angular-organizationchart.mjs +5 -0
- package/esm2020/overlay/overlay.mjs +520 -0
- package/esm2020/overlay/public_api.mjs +2 -0
- package/esm2020/overlay/qius.solutions-parallel-ui-angular-overlay.mjs +5 -0
- package/esm2020/overlaypanel/overlaypanel.mjs +410 -0
- package/esm2020/overlaypanel/public_api.mjs +2 -0
- package/esm2020/overlaypanel/qius.solutions-parallel-ui-angular-overlaypanel.mjs +5 -0
- package/esm2020/paginator/paginator.mjs +405 -0
- package/esm2020/paginator/public_api.mjs +2 -0
- package/esm2020/paginator/qius.solutions-parallel-ui-angular-paginator.mjs +5 -0
- package/esm2020/panel/panel.mjs +296 -0
- package/esm2020/panel/public_api.mjs +2 -0
- package/esm2020/panel/qius.solutions-parallel-ui-angular-panel.mjs +5 -0
- package/esm2020/panelmenu/panelmenu.mjs +518 -0
- package/esm2020/panelmenu/public_api.mjs +2 -0
- package/esm2020/panelmenu/qius.solutions-parallel-ui-angular-panelmenu.mjs +5 -0
- package/esm2020/password/password.mjs +782 -0
- package/esm2020/password/public_api.mjs +2 -0
- package/esm2020/password/qius.solutions-parallel-ui-angular-password.mjs +5 -0
- package/esm2020/picklist/picklist.mjs +1268 -0
- package/esm2020/picklist/public_api.mjs +2 -0
- package/esm2020/picklist/qius.solutions-parallel-ui-angular-picklist.mjs +5 -0
- package/esm2020/progressbar/progressbar.mjs +81 -0
- package/esm2020/progressbar/public_api.mjs +2 -0
- package/esm2020/progressbar/qius.solutions-parallel-ui-angular-progressbar.mjs +5 -0
- package/esm2020/progressspinner/progressspinner.mjs +55 -0
- package/esm2020/progressspinner/public_api.mjs +2 -0
- package/esm2020/progressspinner/qius.solutions-parallel-ui-angular-progressspinner.mjs +5 -0
- package/esm2020/public_api.mjs +2 -0
- package/esm2020/qius.solutions-parallel-ui-angular.mjs +5 -0
- package/esm2020/radiobutton/public_api.mjs +2 -0
- package/esm2020/radiobutton/qius.solutions-parallel-ui-angular-radiobutton.mjs +5 -0
- package/esm2020/radiobutton/radiobutton.mjs +254 -0
- package/esm2020/rating/public_api.mjs +2 -0
- package/esm2020/rating/qius.solutions-parallel-ui-angular-rating.mjs +5 -0
- package/esm2020/rating/rating.mjs +199 -0
- package/esm2020/ripple/public_api.mjs +2 -0
- package/esm2020/ripple/qius.solutions-parallel-ui-angular-ripple.mjs +5 -0
- package/esm2020/ripple/ripple.mjs +126 -0
- package/esm2020/scroller/public_api.mjs +2 -0
- package/esm2020/scroller/qius.solutions-parallel-ui-angular-scroller.mjs +5 -0
- package/esm2020/scroller/scroller.mjs +928 -0
- package/esm2020/scrollpanel/public_api.mjs +2 -0
- package/esm2020/scrollpanel/qius.solutions-parallel-ui-angular-scrollpanel.mjs +5 -0
- package/esm2020/scrollpanel/scrollpanel.mjs +272 -0
- package/esm2020/scrolltop/public_api.mjs +2 -0
- package/esm2020/scrolltop/qius.solutions-parallel-ui-angular-scrolltop.mjs +5 -0
- package/esm2020/scrolltop/scrolltop.mjs +221 -0
- package/esm2020/selectbutton/public_api.mjs +2 -0
- package/esm2020/selectbutton/qius.solutions-parallel-ui-angular-selectbutton.mjs +5 -0
- package/esm2020/selectbutton/selectbutton.mjs +209 -0
- package/esm2020/sidebar/public_api.mjs +2 -0
- package/esm2020/sidebar/qius.solutions-parallel-ui-angular-sidebar.mjs +5 -0
- package/esm2020/sidebar/sidebar.mjs +369 -0
- package/esm2020/skeleton/public_api.mjs +2 -0
- package/esm2020/skeleton/qius.solutions-parallel-ui-angular-skeleton.mjs +5 -0
- package/esm2020/skeleton/skeleton.mjs +65 -0
- package/esm2020/slidemenu/public_api.mjs +2 -0
- package/esm2020/slidemenu/qius.solutions-parallel-ui-angular-slidemenu.mjs +5 -0
- package/esm2020/slidemenu/slidemenu.mjs +616 -0
- package/esm2020/slider/public_api.mjs +2 -0
- package/esm2020/slider/qius.solutions-parallel-ui-angular-slider.mjs +5 -0
- package/esm2020/slider/slider.mjs +588 -0
- package/esm2020/speeddial/public_api.mjs +2 -0
- package/esm2020/speeddial/qius.solutions-parallel-ui-angular-speeddial.mjs +5 -0
- package/esm2020/speeddial/speeddial.mjs +402 -0
- package/esm2020/spinner/public_api.mjs +2 -0
- package/esm2020/spinner/qius.solutions-parallel-ui-angular-spinner.mjs +5 -0
- package/esm2020/spinner/spinner.mjs +407 -0
- package/esm2020/splitbutton/public_api.mjs +2 -0
- package/esm2020/splitbutton/qius.solutions-parallel-ui-angular-splitbutton.mjs +5 -0
- package/esm2020/splitbutton/splitbutton.mjs +141 -0
- package/esm2020/splitter/public_api.mjs +2 -0
- package/esm2020/splitter/qius.solutions-parallel-ui-angular-splitter.mjs +5 -0
- package/esm2020/splitter/splitter.mjs +355 -0
- package/esm2020/steps/public_api.mjs +2 -0
- package/esm2020/steps/qius.solutions-parallel-ui-angular-steps.mjs +5 -0
- package/esm2020/steps/steps.mjs +205 -0
- package/esm2020/styleclass/public_api.mjs +2 -0
- package/esm2020/styleclass/qius.solutions-parallel-ui-angular-styleclass.mjs +5 -0
- package/esm2020/styleclass/styleclass.mjs +220 -0
- package/esm2020/table/public_api.mjs +2 -0
- package/esm2020/table/qius.solutions-parallel-ui-angular-table.mjs +5 -0
- package/esm2020/table/table.mjs +5314 -0
- package/esm2020/tabmenu/public_api.mjs +2 -0
- package/esm2020/tabmenu/qius.solutions-parallel-ui-angular-tabmenu.mjs +5 -0
- package/esm2020/tabmenu/tabmenu.mjs +374 -0
- package/esm2020/tabview/public_api.mjs +2 -0
- package/esm2020/tabview/qius.solutions-parallel-ui-angular-tabview.mjs +5 -0
- package/esm2020/tabview/tabview.mjs +527 -0
- package/esm2020/tag/public_api.mjs +2 -0
- package/esm2020/tag/qius.solutions-parallel-ui-angular-tag.mjs +5 -0
- package/esm2020/tag/tag.mjs +86 -0
- package/esm2020/terminal/public_api.mjs +3 -0
- package/esm2020/terminal/qius.solutions-parallel-ui-angular-terminal.mjs +5 -0
- package/esm2020/terminal/terminal.mjs +112 -0
- package/esm2020/terminal/terminalservice.mjs +27 -0
- package/esm2020/tieredmenu/public_api.mjs +2 -0
- package/esm2020/tieredmenu/qius.solutions-parallel-ui-angular-tieredmenu.mjs +5 -0
- package/esm2020/tieredmenu/tieredmenu.mjs +663 -0
- package/esm2020/timeline/public_api.mjs +2 -0
- package/esm2020/timeline/qius.solutions-parallel-ui-angular-timeline.mjs +5 -0
- package/esm2020/timeline/timeline.mjs +131 -0
- package/esm2020/toast/public_api.mjs +2 -0
- package/esm2020/toast/qius.solutions-parallel-ui-angular-toast.mjs +5 -0
- package/esm2020/toast/toast.mjs +443 -0
- package/esm2020/togglebutton/public_api.mjs +2 -0
- package/esm2020/togglebutton/qius.solutions-parallel-ui-angular-togglebutton.mjs +5 -0
- package/esm2020/togglebutton/togglebutton.mjs +133 -0
- package/esm2020/toolbar/public_api.mjs +2 -0
- package/esm2020/toolbar/qius.solutions-parallel-ui-angular-toolbar.mjs +5 -0
- package/esm2020/toolbar/toolbar.mjs +83 -0
- package/esm2020/tooltip/public_api.mjs +2 -0
- package/esm2020/tooltip/qius.solutions-parallel-ui-angular-tooltip.mjs +5 -0
- package/esm2020/tooltip/tooltip.mjs +546 -0
- package/esm2020/tree/public_api.mjs +2 -0
- package/esm2020/tree/qius.solutions-parallel-ui-angular-tree.mjs +5 -0
- package/esm2020/tree/tree.mjs +1584 -0
- package/esm2020/treeselect/public_api.mjs +2 -0
- package/esm2020/treeselect/qius.solutions-parallel-ui-angular-treeselect.mjs +5 -0
- package/esm2020/treeselect/treeselect.mjs +778 -0
- package/esm2020/treetable/public_api.mjs +2 -0
- package/esm2020/treetable/qius.solutions-parallel-ui-angular-treetable.mjs +5 -0
- package/esm2020/treetable/treetable.mjs +3217 -0
- package/esm2020/tristatecheckbox/public_api.mjs +2 -0
- package/esm2020/tristatecheckbox/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +5 -0
- package/esm2020/tristatecheckbox/tristatecheckbox.mjs +223 -0
- package/esm2020/utils/objectutils.mjs +198 -0
- package/esm2020/utils/public_api.mjs +5 -0
- package/esm2020/utils/qius.solutions-parallel-ui-angular-utils.mjs +5 -0
- package/esm2020/utils/uniquecomponentid.mjs +7 -0
- package/esm2020/utils/zindexutils.mjs +35 -0
- package/esm2020/virtualscroller/public_api.mjs +2 -0
- package/esm2020/virtualscroller/qius.solutions-parallel-ui-angular-virtualscroller.mjs +5 -0
- package/esm2020/virtualscroller/virtualscroller.mjs +153 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-accordion.mjs +405 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-accordion.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-animate.mjs +86 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-animate.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-api.mjs +817 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-api.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-autocomplete.mjs +1154 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-autocomplete.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-autofocus.mjs +58 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-autofocus.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-avatar.mjs +82 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-avatar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-avatargroup.mjs +47 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-avatargroup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-badge.mjs +191 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-badge.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-baseicon.mjs +48 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-baseicon.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-blockui.mjs +149 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-blockui.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-breadcrumb.mjs +303 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-breadcrumb.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-button.mjs +371 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-button.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-calendar.mjs +3133 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-calendar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-card.mjs +133 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-card.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-carousel.mjs +706 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-carousel.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-cascadeselect.mjs +776 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-cascadeselect.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chart.mjs +151 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chart.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-checkbox.mjs +254 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-checkbox.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chip.mjs +120 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chip.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chips.mjs +384 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-chips.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-colorpicker.mjs +694 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-colorpicker.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-confirmdialog.mjs +615 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-confirmdialog.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-confirmpopup.mjs +403 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-confirmpopup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-contextmenu.mjs +702 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-contextmenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dataview.mjs +519 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dataview.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-defer.mjs +101 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-defer.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dialog.mjs +842 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dialog.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-divider.mjs +76 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-divider.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dock.mjs +217 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dock.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dom.mjs +632 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dom.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dragdrop.mjs +258 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dragdrop.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dropdown.mjs +1379 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dropdown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +698 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-dynamicdialog.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-editor.mjs +317 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-editor.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-fieldset.mjs +221 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-fieldset.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-fileupload.mjs +764 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-fileupload.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-focustrap.mjs +60 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-focustrap.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-galleria.mjs +1199 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-galleria.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledown.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angledown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleright.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleup.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-angleup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-arrowup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-ban.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-ban.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-bars.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-bars.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-calendar.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-calendar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretright.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-caretright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-check.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-check.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronright.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-chevronup.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +68 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-eye.mjs +42 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-eye.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-filter.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-filter.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-filterslash.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-home.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-home.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-infocircle.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-minus.mjs +39 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-minus.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-pencil.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-pencil.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-plus.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-plus.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-refresh.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-refresh.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-search.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-search.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchminus.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-searchplus.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +64 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortalt.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +92 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +92 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-spinner.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-spinner.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-star.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-star.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-starfill.mjs +52 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-starfill.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-thlarge.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-times.mjs +38 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-times.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-timescircle.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-trash.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-trash.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-undo.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-undo.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-upload.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-upload.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +56 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-image.mjs +330 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-image.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inplace.mjs +175 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inplace.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputmask.mjs +706 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputmask.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputnumber.mjs +1198 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputnumber.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputswitch.mjs +167 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputswitch.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputtext.mjs +64 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputtext.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputtextarea.mjs +126 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-inputtextarea.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-keyfilter.mjs +223 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-keyfilter.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-knob.mjs +292 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-knob.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-listbox.mjs +807 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-listbox.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-megamenu.mjs +473 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-megamenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-menu.mjs +559 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-menu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-menubar.mjs +526 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-menubar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-message.mjs +110 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-message.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-messages.mjs +283 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-messages.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-multiselect.mjs +1421 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-multiselect.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-orderlist.mjs +630 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-orderlist.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-organizationchart.mjs +327 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-organizationchart.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-overlay.mjs +554 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-overlay.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-overlaypanel.mjs +419 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-overlaypanel.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-paginator.mjs +411 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-paginator.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-panel.mjs +303 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-panel.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-panelmenu.mjs +525 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-panelmenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-password.mjs +793 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-password.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-picklist.mjs +1277 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-picklist.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-progressbar.mjs +88 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-progressbar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-progressspinner.mjs +62 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-progressspinner.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-radiobutton.mjs +261 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-radiobutton.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-rating.mjs +206 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-rating.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-ripple.mjs +135 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-ripple.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scroller.mjs +938 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scroller.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scrollpanel.mjs +281 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scrollpanel.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scrolltop.mjs +230 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-scrolltop.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-selectbutton.mjs +216 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-selectbutton.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-sidebar.mjs +378 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-sidebar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-skeleton.mjs +72 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-skeleton.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-slidemenu.mjs +627 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-slidemenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-slider.mjs +597 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-slider.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-speeddial.mjs +408 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-speeddial.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-spinner.mjs +414 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-spinner.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-splitbutton.mjs +148 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-splitbutton.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-splitter.mjs +364 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-splitter.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-steps.mjs +212 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-steps.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-styleclass.mjs +227 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-styleclass.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-table.mjs +5329 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-table.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tabmenu.mjs +385 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tabmenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tabview.mjs +539 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tabview.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tag.mjs +92 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tag.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-terminal.mjs +143 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-terminal.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tieredmenu.mjs +674 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tieredmenu.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-timeline.mjs +138 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-timeline.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-toast.mjs +451 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-toast.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-togglebutton.mjs +140 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-togglebutton.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-toolbar.mjs +90 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-toolbar.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tooltip.mjs +556 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tooltip.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tree.mjs +1596 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tree.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-treeselect.mjs +791 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-treeselect.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-treetable.mjs +3228 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-treetable.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +230 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-utils.mjs +246 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-utils.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-virtualscroller.mjs +157 -0
- package/fesm2015/qius.solutions-parallel-ui-angular-virtualscroller.mjs.map +1 -0
- package/fesm2015/qius.solutions-parallel-ui-angular.mjs +6 -0
- package/fesm2015/qius.solutions-parallel-ui-angular.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-accordion.mjs +403 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-accordion.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-animate.mjs +86 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-animate.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-api.mjs +817 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-api.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-autocomplete.mjs +1151 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-autocomplete.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-autofocus.mjs +58 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-autofocus.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-avatar.mjs +82 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-avatar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-avatargroup.mjs +47 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-avatargroup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-badge.mjs +189 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-badge.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-baseicon.mjs +48 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-baseicon.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-blockui.mjs +147 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-blockui.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-breadcrumb.mjs +303 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-breadcrumb.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-button.mjs +369 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-button.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-calendar.mjs +3130 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-calendar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-card.mjs +133 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-card.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-carousel.mjs +703 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-carousel.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-cascadeselect.mjs +773 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-cascadeselect.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chart.mjs +149 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chart.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-checkbox.mjs +254 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-checkbox.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chip.mjs +120 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chip.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chips.mjs +382 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-chips.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-colorpicker.mjs +692 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-colorpicker.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-confirmdialog.mjs +613 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-confirmdialog.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-confirmpopup.mjs +401 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-confirmpopup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-contextmenu.mjs +698 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-contextmenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dataview.mjs +519 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dataview.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-defer.mjs +99 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-defer.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dialog.mjs +840 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dialog.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-divider.mjs +76 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-divider.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dock.mjs +217 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dock.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dom.mjs +632 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dom.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dragdrop.mjs +258 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dragdrop.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dropdown.mjs +1379 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dropdown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dynamicdialog.mjs +693 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-dynamicdialog.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-editor.mjs +316 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-editor.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-fieldset.mjs +221 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-fieldset.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-fileupload.mjs +761 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-fileupload.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-focustrap.mjs +59 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-focustrap.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-galleria.mjs +1194 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-galleria.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubledown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledoubleup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledown.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angledown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleleft.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleright.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleup.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-angleup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowdownright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowright.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowup.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-arrowup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-ban.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-ban.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-bars.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-bars.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-calendar.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-calendar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretleft.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretright.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-caretright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-check.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-check.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevrondown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronleft.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronright.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronright.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronup.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-chevronup.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs +68 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-exclamationtriangle.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-eye.mjs +42 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-eye.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-eyeslash.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-filter.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-filter.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-filterslash.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-filterslash.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-home.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-home.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-infocircle.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-infocircle.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-minus.mjs +39 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-minus.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-pencil.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-pencil.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-plus.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-plus.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-refresh.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-refresh.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-search.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-search.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchminus.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchminus.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchplus.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-searchplus.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortalt.mjs +64 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortalt.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs +92 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountdown.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs +92 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-sortamountupalt.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-spinner.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-spinner.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-star.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-star.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-starfill.mjs +52 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-starfill.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-thlarge.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-thlarge.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-times.mjs +38 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-times.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-timescircle.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-timescircle.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-trash.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-trash.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-undo.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-undo.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-upload.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-upload.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowmaximize.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs +56 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-icons-windowminimize.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-image.mjs +328 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-image.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inplace.mjs +175 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inplace.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputmask.mjs +704 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputmask.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputnumber.mjs +1196 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputnumber.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputswitch.mjs +167 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputswitch.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputtext.mjs +62 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputtext.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputtextarea.mjs +124 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-inputtextarea.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-keyfilter.mjs +221 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-keyfilter.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-knob.mjs +290 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-knob.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-listbox.mjs +807 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-listbox.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-megamenu.mjs +471 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-megamenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-menu.mjs +555 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-menu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-menubar.mjs +522 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-menubar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-message.mjs +110 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-message.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-messages.mjs +279 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-messages.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-multiselect.mjs +1418 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-multiselect.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-orderlist.mjs +628 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-orderlist.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-organizationchart.mjs +325 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-organizationchart.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-overlay.mjs +527 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-overlay.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-overlaypanel.mjs +417 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-overlaypanel.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-paginator.mjs +411 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-paginator.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-panel.mjs +303 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-panel.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-panelmenu.mjs +525 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-panelmenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-password.mjs +789 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-password.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-picklist.mjs +1275 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-picklist.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-progressbar.mjs +88 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-progressbar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-progressspinner.mjs +62 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-progressspinner.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-radiobutton.mjs +261 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-radiobutton.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-rating.mjs +206 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-rating.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-ripple.mjs +133 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-ripple.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scroller.mjs +935 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scroller.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scrollpanel.mjs +279 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scrollpanel.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scrolltop.mjs +228 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-scrolltop.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-selectbutton.mjs +216 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-selectbutton.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-sidebar.mjs +376 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-sidebar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-skeleton.mjs +72 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-skeleton.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-slidemenu.mjs +623 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-slidemenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-slider.mjs +595 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-slider.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-speeddial.mjs +409 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-speeddial.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-spinner.mjs +414 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-spinner.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-splitbutton.mjs +148 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-splitbutton.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-splitter.mjs +362 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-splitter.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-steps.mjs +212 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-steps.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-styleclass.mjs +227 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-styleclass.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-table.mjs +5321 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-table.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tabmenu.mjs +381 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tabmenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tabview.mjs +534 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tabview.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tag.mjs +92 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tag.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-terminal.mjs +143 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-terminal.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tieredmenu.mjs +670 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tieredmenu.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-timeline.mjs +138 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-timeline.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-toast.mjs +449 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-toast.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-togglebutton.mjs +140 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-togglebutton.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-toolbar.mjs +90 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-toolbar.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tooltip.mjs +553 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tooltip.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tree.mjs +1591 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tree.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-treeselect.mjs +785 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-treeselect.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-treetable.mjs +3224 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-treetable.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs +230 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-tristatecheckbox.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-utils.mjs +246 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-utils.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-virtualscroller.mjs +160 -0
- package/fesm2020/qius.solutions-parallel-ui-angular-virtualscroller.mjs.map +1 -0
- package/fesm2020/qius.solutions-parallel-ui-angular.mjs +6 -0
- package/fesm2020/qius.solutions-parallel-ui-angular.mjs.map +1 -0
- package/fieldset/fieldset.d.ts +41 -0
- package/fieldset/index.d.ts +5 -0
- package/fieldset/public_api.d.ts +1 -0
- package/fileupload/fileupload.d.ts +139 -0
- package/fileupload/index.d.ts +5 -0
- package/fileupload/public_api.d.ts +1 -0
- package/focustrap/focustrap.d.ts +16 -0
- package/focustrap/index.d.ts +5 -0
- package/focustrap/public_api.d.ts +1 -0
- package/galleria/galleria.d.ts +218 -0
- package/galleria/index.d.ts +5 -0
- package/galleria/public_api.d.ts +1 -0
- package/icons/angledoubledown/angledoubledown.d.ts +6 -0
- package/icons/angledoubledown/index.d.ts +5 -0
- package/icons/angledoubledown/public_api.d.ts +1 -0
- package/icons/angledoubleleft/angledoubleleft.d.ts +6 -0
- package/icons/angledoubleleft/index.d.ts +5 -0
- package/icons/angledoubleleft/public_api.d.ts +1 -0
- package/icons/angledoubleright/angledoubleright.d.ts +6 -0
- package/icons/angledoubleright/index.d.ts +5 -0
- package/icons/angledoubleright/public_api.d.ts +1 -0
- package/icons/angledoubleup/angledoubleup.d.ts +6 -0
- package/icons/angledoubleup/index.d.ts +5 -0
- package/icons/angledoubleup/public_api.d.ts +1 -0
- package/icons/angledown/angledown.d.ts +6 -0
- package/icons/angledown/index.d.ts +5 -0
- package/icons/angledown/public_api.d.ts +1 -0
- package/icons/angleleft/angleleft.d.ts +6 -0
- package/icons/angleleft/index.d.ts +5 -0
- package/icons/angleleft/public_api.d.ts +1 -0
- package/icons/angleright/angleright.d.ts +6 -0
- package/icons/angleright/index.d.ts +5 -0
- package/icons/angleright/public_api.d.ts +1 -0
- package/icons/angleup/angleup.d.ts +6 -0
- package/icons/angleup/index.d.ts +5 -0
- package/icons/angleup/public_api.d.ts +1 -0
- package/icons/arrowdown/arrowdown.d.ts +6 -0
- package/icons/arrowdown/index.d.ts +5 -0
- package/icons/arrowdown/public_api.d.ts +1 -0
- package/icons/arrowdownleft/arrowdownleft.d.ts +6 -0
- package/icons/arrowdownleft/index.d.ts +5 -0
- package/icons/arrowdownleft/public_api.d.ts +1 -0
- package/icons/arrowdownright/arrowdownright.d.ts +6 -0
- package/icons/arrowdownright/index.d.ts +5 -0
- package/icons/arrowdownright/public_api.d.ts +1 -0
- package/icons/arrowleft/arrowleft.d.ts +6 -0
- package/icons/arrowleft/index.d.ts +5 -0
- package/icons/arrowleft/public_api.d.ts +1 -0
- package/icons/arrowright/arrowright.d.ts +6 -0
- package/icons/arrowright/index.d.ts +5 -0
- package/icons/arrowright/public_api.d.ts +1 -0
- package/icons/arrowup/arrowup.d.ts +6 -0
- package/icons/arrowup/index.d.ts +5 -0
- package/icons/arrowup/public_api.d.ts +1 -0
- package/icons/ban/ban.d.ts +6 -0
- package/icons/ban/index.d.ts +5 -0
- package/icons/ban/public_api.d.ts +1 -0
- package/icons/bars/bars.d.ts +6 -0
- package/icons/bars/index.d.ts +5 -0
- package/icons/bars/public_api.d.ts +1 -0
- package/icons/calendar/calendar.d.ts +6 -0
- package/icons/calendar/index.d.ts +5 -0
- package/icons/calendar/public_api.d.ts +1 -0
- package/icons/caretleft/caretleft.d.ts +6 -0
- package/icons/caretleft/index.d.ts +5 -0
- package/icons/caretleft/public_api.d.ts +1 -0
- package/icons/caretright/caretright.d.ts +6 -0
- package/icons/caretright/index.d.ts +5 -0
- package/icons/caretright/public_api.d.ts +1 -0
- package/icons/check/check.d.ts +6 -0
- package/icons/check/index.d.ts +5 -0
- package/icons/check/public_api.d.ts +1 -0
- package/icons/chevrondown/chevrondown.d.ts +6 -0
- package/icons/chevrondown/index.d.ts +5 -0
- package/icons/chevrondown/public_api.d.ts +1 -0
- package/icons/chevronleft/chevronleft.d.ts +6 -0
- package/icons/chevronleft/index.d.ts +5 -0
- package/icons/chevronleft/public_api.d.ts +1 -0
- package/icons/chevronright/chevronright.d.ts +6 -0
- package/icons/chevronright/index.d.ts +5 -0
- package/icons/chevronright/public_api.d.ts +1 -0
- package/icons/chevronup/chevronup.d.ts +6 -0
- package/icons/chevronup/index.d.ts +5 -0
- package/icons/chevronup/public_api.d.ts +1 -0
- package/icons/exclamationtriangle/exclamationtriangle.d.ts +6 -0
- package/icons/exclamationtriangle/index.d.ts +5 -0
- package/icons/exclamationtriangle/public_api.d.ts +1 -0
- package/icons/eye/eye.d.ts +6 -0
- package/icons/eye/index.d.ts +5 -0
- package/icons/eye/public_api.d.ts +1 -0
- package/icons/eyeslash/eyeslash.d.ts +6 -0
- package/icons/eyeslash/index.d.ts +5 -0
- package/icons/eyeslash/public_api.d.ts +1 -0
- package/icons/filter/filter.d.ts +6 -0
- package/icons/filter/index.d.ts +5 -0
- package/icons/filter/public_api.d.ts +1 -0
- package/icons/filterslash/filterslash.d.ts +6 -0
- package/icons/filterslash/index.d.ts +5 -0
- package/icons/filterslash/public_api.d.ts +1 -0
- package/icons/home/home.d.ts +6 -0
- package/icons/home/index.d.ts +5 -0
- package/icons/home/public_api.d.ts +1 -0
- package/icons/infocircle/index.d.ts +5 -0
- package/icons/infocircle/infocircle.d.ts +6 -0
- package/icons/infocircle/public_api.d.ts +1 -0
- package/icons/minus/index.d.ts +5 -0
- package/icons/minus/minus.d.ts +6 -0
- package/icons/minus/public_api.d.ts +1 -0
- package/icons/pencil/index.d.ts +5 -0
- package/icons/pencil/pencil.d.ts +6 -0
- package/icons/pencil/public_api.d.ts +1 -0
- package/icons/plus/index.d.ts +5 -0
- package/icons/plus/plus.d.ts +6 -0
- package/icons/plus/public_api.d.ts +1 -0
- package/icons/refresh/index.d.ts +5 -0
- package/icons/refresh/public_api.d.ts +1 -0
- package/icons/refresh/refresh.d.ts +6 -0
- package/icons/search/index.d.ts +5 -0
- package/icons/search/public_api.d.ts +1 -0
- package/icons/search/search.d.ts +6 -0
- package/icons/searchminus/index.d.ts +5 -0
- package/icons/searchminus/public_api.d.ts +1 -0
- package/icons/searchminus/searchminus.d.ts +6 -0
- package/icons/searchplus/index.d.ts +5 -0
- package/icons/searchplus/public_api.d.ts +1 -0
- package/icons/searchplus/searchplus.d.ts +6 -0
- package/icons/sortalt/index.d.ts +5 -0
- package/icons/sortalt/public_api.d.ts +1 -0
- package/icons/sortalt/sortalt.d.ts +6 -0
- package/icons/sortamountdown/index.d.ts +5 -0
- package/icons/sortamountdown/public_api.d.ts +1 -0
- package/icons/sortamountdown/sortamountdown.d.ts +6 -0
- package/icons/sortamountupalt/index.d.ts +5 -0
- package/icons/sortamountupalt/public_api.d.ts +1 -0
- package/icons/sortamountupalt/sortamountupalt.d.ts +6 -0
- package/icons/spinner/index.d.ts +5 -0
- package/icons/spinner/public_api.d.ts +1 -0
- package/icons/spinner/spinner.d.ts +6 -0
- package/icons/star/index.d.ts +5 -0
- package/icons/star/public_api.d.ts +1 -0
- package/icons/star/star.d.ts +6 -0
- package/icons/starfill/index.d.ts +5 -0
- package/icons/starfill/public_api.d.ts +1 -0
- package/icons/starfill/starfill.d.ts +6 -0
- package/icons/thlarge/index.d.ts +5 -0
- package/icons/thlarge/public_api.d.ts +1 -0
- package/icons/thlarge/thlarge.d.ts +6 -0
- package/icons/times/index.d.ts +5 -0
- package/icons/times/public_api.d.ts +1 -0
- package/icons/times/times.d.ts +6 -0
- package/icons/timescircle/index.d.ts +5 -0
- package/icons/timescircle/public_api.d.ts +1 -0
- package/icons/timescircle/timescircle.d.ts +6 -0
- package/icons/trash/index.d.ts +5 -0
- package/icons/trash/public_api.d.ts +1 -0
- package/icons/trash/trash.d.ts +6 -0
- package/icons/undo/index.d.ts +5 -0
- package/icons/undo/public_api.d.ts +1 -0
- package/icons/undo/undo.d.ts +6 -0
- package/icons/upload/index.d.ts +5 -0
- package/icons/upload/public_api.d.ts +1 -0
- package/icons/upload/upload.d.ts +6 -0
- package/icons/windowmaximize/index.d.ts +5 -0
- package/icons/windowmaximize/public_api.d.ts +1 -0
- package/icons/windowmaximize/windowmaximize.d.ts +6 -0
- package/icons/windowminimize/index.d.ts +5 -0
- package/icons/windowminimize/public_api.d.ts +1 -0
- package/icons/windowminimize/windowminimize.d.ts +6 -0
- package/image/image.d.ts +81 -0
- package/image/index.d.ts +5 -0
- package/image/public_api.d.ts +1 -0
- package/index.d.ts +5 -0
- package/inplace/index.d.ts +5 -0
- package/inplace/inplace.d.ts +45 -0
- package/inplace/public_api.d.ts +1 -0
- package/inputmask/index.d.ts +5 -0
- package/inputmask/inputmask.d.ts +108 -0
- package/inputmask/public_api.d.ts +1 -0
- package/inputnumber/index.d.ts +5 -0
- package/inputnumber/inputnumber.d.ts +177 -0
- package/inputnumber/public_api.d.ts +1 -0
- package/inputswitch/index.d.ts +5 -0
- package/inputswitch/inputswitch.d.ts +47 -0
- package/inputswitch/public_api.d.ts +1 -0
- package/inputtext/index.d.ts +5 -0
- package/inputtext/inputtext.d.ts +22 -0
- package/inputtext/public_api.d.ts +1 -0
- package/inputtextarea/index.d.ts +5 -0
- package/inputtextarea/inputtextarea.d.ts +34 -0
- package/inputtextarea/public_api.d.ts +1 -0
- package/keyfilter/index.d.ts +5 -0
- package/keyfilter/keyfilter.d.ts +39 -0
- package/keyfilter/public_api.d.ts +1 -0
- package/knob/index.d.ts +5 -0
- package/knob/knob.d.ts +81 -0
- package/knob/public_api.d.ts +1 -0
- package/listbox/index.d.ts +5 -0
- package/listbox/listbox.d.ts +125 -0
- package/listbox/public_api.d.ts +1 -0
- package/megamenu/index.d.ts +5 -0
- package/megamenu/megamenu.d.ts +42 -0
- package/megamenu/public_api.d.ts +1 -0
- package/menu/index.d.ts +5 -0
- package/menu/menu.d.ts +77 -0
- package/menu/public_api.d.ts +1 -0
- package/menubar/index.d.ts +5 -0
- package/menubar/menubar.d.ts +97 -0
- package/menubar/public_api.d.ts +1 -0
- package/message/index.d.ts +5 -0
- package/message/message.d.ts +21 -0
- package/message/public_api.d.ts +1 -0
- package/messages/index.d.ts +5 -0
- package/messages/messages.d.ts +49 -0
- package/messages/public_api.d.ts +1 -0
- package/multiselect/index.d.ts +5 -0
- package/multiselect/multiselect.d.ts +232 -0
- package/multiselect/public_api.d.ts +1 -0
- package/orderlist/index.d.ts +5 -0
- package/orderlist/orderlist.d.ts +105 -0
- package/orderlist/public_api.d.ts +1 -0
- package/organizationchart/index.d.ts +5 -0
- package/organizationchart/organizationchart.d.ts +63 -0
- package/organizationchart/public_api.d.ts +1 -0
- package/overlay/index.d.ts +5 -0
- package/overlay/overlay.d.ts +118 -0
- package/overlay/public_api.d.ts +1 -0
- package/overlaypanel/index.d.ts +5 -0
- package/overlaypanel/overlaypanel.d.ts +80 -0
- package/overlaypanel/public_api.d.ts +1 -0
- package/package.json +1267 -0
- package/paginator/index.d.ts +5 -0
- package/paginator/paginator.d.ts +79 -0
- package/paginator/public_api.d.ts +1 -0
- package/panel/index.d.ts +5 -0
- package/panel/panel.d.ts +52 -0
- package/panel/public_api.d.ts +1 -0
- package/panelmenu/index.d.ts +5 -0
- package/panelmenu/panelmenu.d.ts +66 -0
- package/panelmenu/public_api.d.ts +1 -0
- package/password/index.d.ts +5 -0
- package/password/password.d.ts +168 -0
- package/password/public_api.d.ts +1 -0
- package/picklist/index.d.ts +5 -0
- package/picklist/picklist.d.ts +183 -0
- package/picklist/public_api.d.ts +1 -0
- package/progressbar/index.d.ts +5 -0
- package/progressbar/progressbar.d.ts +18 -0
- package/progressbar/public_api.d.ts +1 -0
- package/progressspinner/index.d.ts +5 -0
- package/progressspinner/progressspinner.d.ts +16 -0
- package/progressspinner/public_api.d.ts +1 -0
- package/public_api.d.ts +2 -0
- package/radiobutton/index.d.ts +5 -0
- package/radiobutton/public_api.d.ts +1 -0
- package/radiobutton/radiobutton.d.ts +62 -0
- package/rating/index.d.ts +5 -0
- package/rating/public_api.d.ts +1 -0
- package/rating/rating.d.ts +52 -0
- package/resources/components/accordion/accordion.css +33 -0
- package/resources/components/autocomplete/autocomplete.css +100 -0
- package/resources/components/avatar/avatar.css +26 -0
- package/resources/components/avatargroup/avatargroup.css +8 -0
- package/resources/components/badge/badge.css +32 -0
- package/resources/components/blockui/blockui.css +24 -0
- package/resources/components/breadcrumb/breadcrumb.css +25 -0
- package/resources/components/button/button.css +69 -0
- package/resources/components/calendar/calendar.css +171 -0
- package/resources/components/card/card.css +3 -0
- package/resources/components/carousel/carousel.css +69 -0
- package/resources/components/cascadeselect/cascadeselect.css +96 -0
- package/resources/components/checkbox/checkbox.css +28 -0
- package/resources/components/chip/chip.css +24 -0
- package/resources/components/chips/chips.css +66 -0
- package/resources/components/colorpicker/colorpicker-images.css +7 -0
- package/resources/components/colorpicker/colorpicker.css +81 -0
- package/resources/components/colorpicker/images/color.png +0 -0
- package/resources/components/colorpicker/images/hue.png +0 -0
- package/resources/components/common/common.css +167 -0
- package/resources/components/confirmpopup/confirmpopup.css +49 -0
- package/resources/components/contextmenu/contextmenu.css +46 -0
- package/resources/components/dataview/dataview.css +11 -0
- package/resources/components/dialog/dialog.css +138 -0
- package/resources/components/divider/divider.css +84 -0
- package/resources/components/dock/dock.css +105 -0
- package/resources/components/dropdown/dropdown.css +78 -0
- package/resources/components/editor/editor.css +4 -0
- package/resources/components/fieldset/fieldset.css +25 -0
- package/resources/components/fileupload/fileupload.css +45 -0
- package/resources/components/galleria/galleria.css +274 -0
- package/resources/components/image/image.css +64 -0
- package/resources/components/inplace/inplace.css +17 -0
- package/resources/components/inputmask/inputmask.css +10 -0
- package/resources/components/inputnumber/inputnumber.css +113 -0
- package/resources/components/inputswitch/inputswitch.css +20 -0
- package/resources/components/inputtext/inputtext.css +105 -0
- package/resources/components/inputtextarea/inputtextarea.css +8 -0
- package/resources/components/knob/knob.css +18 -0
- package/resources/components/listbox/listbox.css +38 -0
- package/resources/components/megamenu/megamenu.css +107 -0
- package/resources/components/menu/menu.css +28 -0
- package/resources/components/menubar/menubar.css +75 -0
- package/resources/components/message/message.css +15 -0
- package/resources/components/messages/messages.css +20 -0
- package/resources/components/multiselect/multiselect.css +108 -0
- package/resources/components/orderlist/orderlist.css +76 -0
- package/resources/components/organizationchart/organizationchart.css +60 -0
- package/resources/components/overlay/overlay.css +78 -0
- package/resources/components/overlaypanel/overlaypanel.css +58 -0
- package/resources/components/paginator/paginator.css +35 -0
- package/resources/components/panel/panel.css +27 -0
- package/resources/components/panelmenu/panelmenu.css +40 -0
- package/resources/components/password/images/password-meter.png +0 -0
- package/resources/components/password/password.css +44 -0
- package/resources/components/picklist/picklist.css +58 -0
- package/resources/components/progressbar/progressbar.css +96 -0
- package/resources/components/progressspinner/progressspinner.css +72 -0
- package/resources/components/radiobutton/radiobutton.css +36 -0
- package/resources/components/rating/rating.css +11 -0
- package/resources/components/ripple/ripple.css +27 -0
- package/resources/components/scroller/scroller.css +56 -0
- package/resources/components/scrollpanel/scrollpanel.css +48 -0
- package/resources/components/scrolltop/scrolltop.css +16 -0
- package/resources/components/sidebar/sidebar.css +104 -0
- package/resources/components/skeleton/skeleton.css +33 -0
- package/resources/components/slidemenu/slidemenu.css +99 -0
- package/resources/components/slider/slider.css +39 -0
- package/resources/components/speeddial/speeddial.css +110 -0
- package/resources/components/spinner/spinner.css +61 -0
- package/resources/components/splitbutton/splitbutton.css +31 -0
- package/resources/components/splitter/splitter.css +62 -0
- package/resources/components/steps/steps.css +47 -0
- package/resources/components/table/table.css +242 -0
- package/resources/components/tabmenu/tabmenu.css +78 -0
- package/resources/components/tabview/tabview.css +73 -0
- package/resources/components/tag/tag.css +15 -0
- package/resources/components/terminal/terminal.css +22 -0
- package/resources/components/tieredmenu/tieredmenu.css +49 -0
- package/resources/components/timeline/timeline.css +110 -0
- package/resources/components/toast/toast.css +68 -0
- package/resources/components/toolbar/toolbar.css +17 -0
- package/resources/components/tooltip/tooltip.css +61 -0
- package/resources/components/tree/images/line.gif +0 -0
- package/resources/components/tree/tree.css +156 -0
- package/resources/components/treeselect/treeselect.css +95 -0
- package/resources/components/treetable/treetable.css +203 -0
- package/resources/images/color.png +0 -0
- package/resources/images/hue.png +0 -0
- package/resources/images/line.gif +0 -0
- package/resources/images/password-meter.png +0 -0
- package/resources/parallel-ui-angular.css +588 -0
- package/resources/parallel-ui-angular.min.css +1 -0
- package/resources/themes/arya-blue/theme.css +7757 -0
- package/resources/themes/arya-green/theme.css +7757 -0
- package/resources/themes/arya-orange/theme.css +7757 -0
- package/resources/themes/arya-purple/theme.css +7757 -0
- package/resources/themes/bootstrap4-dark-blue/theme.css +7763 -0
- package/resources/themes/bootstrap4-dark-purple/theme.css +7763 -0
- package/resources/themes/bootstrap4-light-blue/theme.css +7763 -0
- package/resources/themes/bootstrap4-light-purple/theme.css +7763 -0
- package/resources/themes/fluent-light/theme.css +7905 -0
- package/resources/themes/lara-dark-blue/theme.css +7737 -0
- package/resources/themes/lara-dark-indigo/theme.css +7737 -0
- package/resources/themes/lara-dark-purple/theme.css +7737 -0
- package/resources/themes/lara-dark-teal/theme.css +7737 -0
- package/resources/themes/lara-light-blue/theme.css +7737 -0
- package/resources/themes/lara-light-indigo/theme.css +7737 -0
- package/resources/themes/lara-light-purple/theme.css +7737 -0
- package/resources/themes/lara-light-teal/theme.css +7737 -0
- package/resources/themes/luna-amber/theme.css +7686 -0
- package/resources/themes/luna-blue/theme.css +7686 -0
- package/resources/themes/luna-green/theme.css +7686 -0
- package/resources/themes/luna-pink/theme.css +7686 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/md-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/md-dark-deeppurple/theme.css +9765 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/md-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/md-dark-indigo/theme.css +9765 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/md-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/md-light-deeppurple/theme.css +9765 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/md-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/md-light-indigo/theme.css +9765 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/mdc-dark-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/mdc-dark-deeppurple/theme.css +9765 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/mdc-dark-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/mdc-dark-indigo/theme.css +9765 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/mdc-light-deeppurple/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/mdc-light-deeppurple/theme.css +9765 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff +0 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-500.woff2 +0 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff +0 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/mdc-light-indigo/fonts/roboto-v20-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/mdc-light-indigo/theme.css +9765 -0
- package/resources/themes/mira/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/mira/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/mira/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/mira/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/mira/theme.css +7990 -0
- package/resources/themes/nano/theme.css +7736 -0
- package/resources/themes/nova/theme.css +7702 -0
- package/resources/themes/nova-accent/theme.css +7714 -0
- package/resources/themes/nova-alt/theme.css +7714 -0
- package/resources/themes/rhea/theme.css +7690 -0
- package/resources/themes/saga-blue/theme.css +7753 -0
- package/resources/themes/saga-green/theme.css +7753 -0
- package/resources/themes/saga-orange/theme.css +7753 -0
- package/resources/themes/saga-purple/theme.css +7753 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/soho-dark/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/soho-dark/theme.css +7719 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/soho-light/fonts/lato-v17-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/soho-light/theme.css +7785 -0
- package/resources/themes/tailwind-light/fonts/Inter-Bold.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Bold.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Light.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Light.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Medium.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Medium.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Regular.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-Regular.woff2 +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff +0 -0
- package/resources/themes/tailwind-light/fonts/Inter-SemiBold.woff2 +0 -0
- package/resources/themes/tailwind-light/theme.css +7867 -0
- package/resources/themes/vela-blue/theme.css +7757 -0
- package/resources/themes/vela-green/theme.css +7757 -0
- package/resources/themes/vela-orange/theme.css +7757 -0
- package/resources/themes/vela-purple/theme.css +7757 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/viva-dark/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/viva-dark/theme.css +7910 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-300.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-600.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-700.woff2 +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff +0 -0
- package/resources/themes/viva-light/fonts/poppins-v15-latin-ext_latin-regular.woff2 +0 -0
- package/resources/themes/viva-light/theme.css +7910 -0
- package/ripple/index.d.ts +5 -0
- package/ripple/public_api.d.ts +1 -0
- package/ripple/ripple.d.ts +31 -0
- package/scroller/index.d.ts +5 -0
- package/scroller/public_api.d.ts +1 -0
- package/scroller/scroller.d.ts +251 -0
- package/scrollpanel/index.d.ts +5 -0
- package/scrollpanel/public_api.d.ts +1 -0
- package/scrollpanel/scrollpanel.d.ts +59 -0
- package/scrolltop/index.d.ts +5 -0
- package/scrolltop/public_api.d.ts +1 -0
- package/scrolltop/scrolltop.d.ts +53 -0
- package/selectbutton/index.d.ts +5 -0
- package/selectbutton/public_api.d.ts +1 -0
- package/selectbutton/selectbutton.d.ts +45 -0
- package/sidebar/index.d.ts +5 -0
- package/sidebar/public_api.d.ts +1 -0
- package/sidebar/sidebar.d.ts +75 -0
- package/skeleton/index.d.ts +5 -0
- package/skeleton/public_api.d.ts +1 -0
- package/skeleton/skeleton.d.ts +25 -0
- package/slidemenu/index.d.ts +5 -0
- package/slidemenu/public_api.d.ts +1 -0
- package/slidemenu/slidemenu.d.ts +112 -0
- package/slider/index.d.ts +5 -0
- package/slider/public_api.d.ts +1 -0
- package/slider/slider.d.ts +92 -0
- package/speeddial/index.d.ts +5 -0
- package/speeddial/public_api.d.ts +1 -0
- package/speeddial/speeddial.d.ts +137 -0
- package/spinner/index.d.ts +5 -0
- package/spinner/public_api.d.ts +1 -0
- package/spinner/spinner.d.ts +80 -0
- package/splitbutton/index.d.ts +5 -0
- package/splitbutton/public_api.d.ts +1 -0
- package/splitbutton/splitbutton.d.ts +45 -0
- package/splitter/index.d.ts +5 -0
- package/splitter/public_api.d.ts +1 -0
- package/splitter/splitter.d.ts +88 -0
- package/steps/index.d.ts +5 -0
- package/steps/public_api.d.ts +1 -0
- package/steps/steps.d.ts +33 -0
- package/styleclass/index.d.ts +5 -0
- package/styleclass/public_api.d.ts +1 -0
- package/styleclass/styleclass.d.ts +45 -0
- package/table/index.d.ts +5 -0
- package/table/public_api.d.ts +1 -0
- package/table/table.d.ts +890 -0
- package/tabmenu/index.d.ts +5 -0
- package/tabmenu/public_api.d.ts +1 -0
- package/tabmenu/tabmenu.d.ts +61 -0
- package/tabview/index.d.ts +5 -0
- package/tabview/public_api.d.ts +1 -0
- package/tabview/tabview.d.ts +110 -0
- package/tag/index.d.ts +5 -0
- package/tag/public_api.d.ts +1 -0
- package/tag/tag.d.ts +30 -0
- package/terminal/index.d.ts +5 -0
- package/terminal/public_api.d.ts +2 -0
- package/terminal/terminal.d.ts +34 -0
- package/terminal/terminalservice.d.ts +11 -0
- package/tieredmenu/index.d.ts +5 -0
- package/tieredmenu/public_api.d.ts +1 -0
- package/tieredmenu/tieredmenu.d.ts +109 -0
- package/timeline/index.d.ts +5 -0
- package/timeline/public_api.d.ts +1 -0
- package/timeline/timeline.d.ts +27 -0
- package/toast/index.d.ts +5 -0
- package/toast/public_api.d.ts +1 -0
- package/toast/toast.d.ts +87 -0
- package/togglebutton/index.d.ts +5 -0
- package/togglebutton/public_api.d.ts +1 -0
- package/togglebutton/togglebutton.d.ts +40 -0
- package/toolbar/index.d.ts +5 -0
- package/toolbar/public_api.d.ts +1 -0
- package/toolbar/toolbar.d.ts +23 -0
- package/tooltip/index.d.ts +5 -0
- package/tooltip/public_api.d.ts +1 -0
- package/tooltip/tooltip.d.ts +115 -0
- package/tree/index.d.ts +5 -0
- package/tree/public_api.d.ts +1 -0
- package/tree/tree.d.ts +207 -0
- package/treeselect/index.d.ts +5 -0
- package/treeselect/public_api.d.ts +1 -0
- package/treeselect/treeselect.d.ts +149 -0
- package/treetable/index.d.ts +5 -0
- package/treetable/public_api.d.ts +1 -0
- package/treetable/treetable.d.ts +542 -0
- package/tristatecheckbox/index.d.ts +5 -0
- package/tristatecheckbox/public_api.d.ts +1 -0
- package/tristatecheckbox/tristatecheckbox.d.ts +49 -0
- package/utils/index.d.ts +5 -0
- package/utils/objectutils.d.ts +17 -0
- package/utils/public_api.d.ts +4 -0
- package/utils/uniquecomponentid.d.ts +2 -0
- package/utils/zindexutils.d.ts +7 -0
- package/virtualscroller/index.d.ts +5 -0
- package/virtualscroller/public_api.d.ts +1 -0
- package/virtualscroller/virtualscroller.d.ts +41 -0
|
@@ -0,0 +1,1372 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, forwardRef, Input, NgModule, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { QiusTemplate, SharedModule, TranslationKeys } from '@qius.solutions/parallel-ui-angular/api';
|
|
5
|
+
import { AutoFocusModule } from '@qius.solutions/parallel-ui-angular/autofocus';
|
|
6
|
+
import { DomHandler } from '@qius.solutions/parallel-ui-angular/dom';
|
|
7
|
+
import { OverlayModule } from '@qius.solutions/parallel-ui-angular/overlay';
|
|
8
|
+
import { RippleModule } from '@qius.solutions/parallel-ui-angular/ripple';
|
|
9
|
+
import { ScrollerModule } from '@qius.solutions/parallel-ui-angular/scroller';
|
|
10
|
+
import { TooltipModule } from '@qius.solutions/parallel-ui-angular/tooltip';
|
|
11
|
+
import { ObjectUtils, UniqueComponentId } from '@qius.solutions/parallel-ui-angular/utils';
|
|
12
|
+
import { TimesIcon } from '@qius.solutions/parallel-ui-angular/icons/times';
|
|
13
|
+
import { ChevronDownIcon } from '@qius.solutions/parallel-ui-angular/icons/chevrondown';
|
|
14
|
+
import { SearchIcon } from '@qius.solutions/parallel-ui-angular/icons/search';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/common";
|
|
17
|
+
import * as i2 from "@qius.solutions/parallel-ui-angular/ripple";
|
|
18
|
+
import * as i3 from "@qius.solutions/parallel-ui-angular/api";
|
|
19
|
+
import * as i4 from "@qius.solutions/parallel-ui-angular/overlay";
|
|
20
|
+
import * as i5 from "@qius.solutions/parallel-ui-angular/tooltip";
|
|
21
|
+
import * as i6 from "@qius.solutions/parallel-ui-angular/scroller";
|
|
22
|
+
import * as i7 from "@qius.solutions/parallel-ui-angular/autofocus";
|
|
23
|
+
export const DROPDOWN_VALUE_ACCESSOR = {
|
|
24
|
+
provide: NG_VALUE_ACCESSOR,
|
|
25
|
+
useExisting: forwardRef(() => Dropdown),
|
|
26
|
+
multi: true
|
|
27
|
+
};
|
|
28
|
+
export class DropdownItem {
|
|
29
|
+
constructor() {
|
|
30
|
+
this.onClick = new EventEmitter();
|
|
31
|
+
}
|
|
32
|
+
onOptionClick(event) {
|
|
33
|
+
this.onClick.emit({
|
|
34
|
+
originalEvent: event,
|
|
35
|
+
option: this.option
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
DropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropdownItem, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
DropdownItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DropdownItem, selector: "p-dropdownItem", inputs: { option: "option", selected: "selected", label: "label", disabled: "disabled", visible: "visible", itemSize: "itemSize", template: "template" }, outputs: { onClick: "onClick" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
|
|
41
|
+
<li
|
|
42
|
+
(click)="onOptionClick($event)"
|
|
43
|
+
role="option"
|
|
44
|
+
pRipple
|
|
45
|
+
[attr.aria-label]="label"
|
|
46
|
+
[attr.aria-selected]="selected"
|
|
47
|
+
[ngStyle]="{ height: itemSize + 'px' }"
|
|
48
|
+
[id]="selected ? 'p-highlighted-option' : ''"
|
|
49
|
+
[ngClass]="{ 'p-dropdown-item': true, 'p-highlight': selected, 'p-disabled': disabled }"
|
|
50
|
+
>
|
|
51
|
+
<span *ngIf="!template">{{ label ?? 'empty' }}</span>
|
|
52
|
+
<ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
|
|
53
|
+
</li>
|
|
54
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.Ripple, selector: "[pRipple]" }] });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropdownItem, decorators: [{
|
|
56
|
+
type: Component,
|
|
57
|
+
args: [{
|
|
58
|
+
selector: 'p-dropdownItem',
|
|
59
|
+
template: `
|
|
60
|
+
<li
|
|
61
|
+
(click)="onOptionClick($event)"
|
|
62
|
+
role="option"
|
|
63
|
+
pRipple
|
|
64
|
+
[attr.aria-label]="label"
|
|
65
|
+
[attr.aria-selected]="selected"
|
|
66
|
+
[ngStyle]="{ height: itemSize + 'px' }"
|
|
67
|
+
[id]="selected ? 'p-highlighted-option' : ''"
|
|
68
|
+
[ngClass]="{ 'p-dropdown-item': true, 'p-highlight': selected, 'p-disabled': disabled }"
|
|
69
|
+
>
|
|
70
|
+
<span *ngIf="!template">{{ label ?? 'empty' }}</span>
|
|
71
|
+
<ng-container *ngTemplateOutlet="template; context: { $implicit: option }"></ng-container>
|
|
72
|
+
</li>
|
|
73
|
+
`,
|
|
74
|
+
host: {
|
|
75
|
+
class: 'p-element'
|
|
76
|
+
}
|
|
77
|
+
}]
|
|
78
|
+
}], propDecorators: { option: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], selected: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], label: [{
|
|
83
|
+
type: Input
|
|
84
|
+
}], disabled: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], visible: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], itemSize: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], template: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], onClick: [{
|
|
93
|
+
type: Output
|
|
94
|
+
}] } });
|
|
95
|
+
export class Dropdown {
|
|
96
|
+
constructor(el, renderer, cd, zone, filterService, config) {
|
|
97
|
+
this.el = el;
|
|
98
|
+
this.renderer = renderer;
|
|
99
|
+
this.cd = cd;
|
|
100
|
+
this.zone = zone;
|
|
101
|
+
this.filterService = filterService;
|
|
102
|
+
this.config = config;
|
|
103
|
+
this.scrollHeight = '200px';
|
|
104
|
+
this.resetFilterOnHide = false;
|
|
105
|
+
this.optionGroupChildren = 'items';
|
|
106
|
+
this.autoDisplayFirst = true;
|
|
107
|
+
this.emptyFilterMessage = '';
|
|
108
|
+
this.emptyMessage = '';
|
|
109
|
+
this.lazy = false;
|
|
110
|
+
this.filterMatchMode = 'contains';
|
|
111
|
+
this.tooltip = '';
|
|
112
|
+
this.tooltipPosition = 'right';
|
|
113
|
+
this.tooltipPositionStyle = 'absolute';
|
|
114
|
+
this.autofocusFilter = true;
|
|
115
|
+
this.overlayDirection = 'end';
|
|
116
|
+
this.onChange = new EventEmitter();
|
|
117
|
+
this.onFilter = new EventEmitter();
|
|
118
|
+
this.onFocus = new EventEmitter();
|
|
119
|
+
this.onBlur = new EventEmitter();
|
|
120
|
+
this.onClick = new EventEmitter();
|
|
121
|
+
this.onShow = new EventEmitter();
|
|
122
|
+
this.onHide = new EventEmitter();
|
|
123
|
+
this.onClear = new EventEmitter();
|
|
124
|
+
this.onLazyLoad = new EventEmitter();
|
|
125
|
+
this.onModelChange = () => { };
|
|
126
|
+
this.onModelTouched = () => { };
|
|
127
|
+
this.id = UniqueComponentId();
|
|
128
|
+
}
|
|
129
|
+
get disabled() {
|
|
130
|
+
return this._disabled;
|
|
131
|
+
}
|
|
132
|
+
set disabled(_disabled) {
|
|
133
|
+
if (_disabled) {
|
|
134
|
+
this.focused = false;
|
|
135
|
+
if (this.overlayVisible)
|
|
136
|
+
this.hide();
|
|
137
|
+
}
|
|
138
|
+
this._disabled = _disabled;
|
|
139
|
+
if (!this.cd.destroyed) {
|
|
140
|
+
this.cd.detectChanges();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
get itemSize() {
|
|
144
|
+
return this._itemSize;
|
|
145
|
+
}
|
|
146
|
+
set itemSize(val) {
|
|
147
|
+
this._itemSize = val;
|
|
148
|
+
console.warn('The itemSize property is deprecated, use virtualScrollItemSize property instead.');
|
|
149
|
+
}
|
|
150
|
+
get autoZIndex() {
|
|
151
|
+
return this._autoZIndex;
|
|
152
|
+
}
|
|
153
|
+
set autoZIndex(val) {
|
|
154
|
+
this._autoZIndex = val;
|
|
155
|
+
console.warn('The autoZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');
|
|
156
|
+
}
|
|
157
|
+
get baseZIndex() {
|
|
158
|
+
return this._baseZIndex;
|
|
159
|
+
}
|
|
160
|
+
set baseZIndex(val) {
|
|
161
|
+
this._baseZIndex = val;
|
|
162
|
+
console.warn('The baseZIndex property is deprecated since v14.2.0, use overlayOptions property instead.');
|
|
163
|
+
}
|
|
164
|
+
get showTransitionOptions() {
|
|
165
|
+
return this._showTransitionOptions;
|
|
166
|
+
}
|
|
167
|
+
set showTransitionOptions(val) {
|
|
168
|
+
this._showTransitionOptions = val;
|
|
169
|
+
console.warn('The showTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');
|
|
170
|
+
}
|
|
171
|
+
get hideTransitionOptions() {
|
|
172
|
+
return this._hideTransitionOptions;
|
|
173
|
+
}
|
|
174
|
+
set hideTransitionOptions(val) {
|
|
175
|
+
this._hideTransitionOptions = val;
|
|
176
|
+
console.warn('The hideTransitionOptions property is deprecated since v14.2.0, use overlayOptions property instead.');
|
|
177
|
+
}
|
|
178
|
+
ngAfterContentInit() {
|
|
179
|
+
this.templates.forEach((item) => {
|
|
180
|
+
switch (item.getType()) {
|
|
181
|
+
case 'item':
|
|
182
|
+
this.itemTemplate = item.template;
|
|
183
|
+
break;
|
|
184
|
+
case 'selectedItem':
|
|
185
|
+
this.selectedItemTemplate = item.template;
|
|
186
|
+
break;
|
|
187
|
+
case 'header':
|
|
188
|
+
this.headerTemplate = item.template;
|
|
189
|
+
break;
|
|
190
|
+
case 'filter':
|
|
191
|
+
this.filterTemplate = item.template;
|
|
192
|
+
break;
|
|
193
|
+
case 'footer':
|
|
194
|
+
this.footerTemplate = item.template;
|
|
195
|
+
break;
|
|
196
|
+
case 'emptyfilter':
|
|
197
|
+
this.emptyFilterTemplate = item.template;
|
|
198
|
+
break;
|
|
199
|
+
case 'empty':
|
|
200
|
+
this.emptyTemplate = item.template;
|
|
201
|
+
break;
|
|
202
|
+
case 'group':
|
|
203
|
+
this.groupTemplate = item.template;
|
|
204
|
+
break;
|
|
205
|
+
case 'loader':
|
|
206
|
+
this.loaderTemplate = item.template;
|
|
207
|
+
break;
|
|
208
|
+
case 'dropdownicon':
|
|
209
|
+
this.dropdownIconTemplate = item.template;
|
|
210
|
+
break;
|
|
211
|
+
case 'clearicon':
|
|
212
|
+
this.clearIconTemplate = item.template;
|
|
213
|
+
break;
|
|
214
|
+
case 'filtericon':
|
|
215
|
+
this.filterIconTemplate = item.template;
|
|
216
|
+
break;
|
|
217
|
+
default:
|
|
218
|
+
this.itemTemplate = item.template;
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
ngOnInit() {
|
|
224
|
+
this.optionsToDisplay = this.options;
|
|
225
|
+
this.updateSelectedOption(null);
|
|
226
|
+
this.labelId = this.id + '_label';
|
|
227
|
+
this.listId = this.id + '_list';
|
|
228
|
+
if (this.filterBy) {
|
|
229
|
+
this.filterOptions = {
|
|
230
|
+
filter: (value) => this.onFilterInputChange(value),
|
|
231
|
+
reset: () => this.resetFilter()
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
get options() {
|
|
236
|
+
return this._options;
|
|
237
|
+
}
|
|
238
|
+
set options(val) {
|
|
239
|
+
this._options = val;
|
|
240
|
+
this.optionsToDisplay = this._options;
|
|
241
|
+
this.updateSelectedOption(this.value);
|
|
242
|
+
this.selectedOption = this.findOption(this.value, this.optionsToDisplay);
|
|
243
|
+
if (!this.selectedOption && ObjectUtils.isNotEmpty(this.value) && !this.editable) {
|
|
244
|
+
this.value = null;
|
|
245
|
+
this.onModelChange(this.value);
|
|
246
|
+
}
|
|
247
|
+
this.optionsChanged = true;
|
|
248
|
+
if (this._filterValue && this._filterValue.length) {
|
|
249
|
+
this.activateFilter();
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
get filterValue() {
|
|
253
|
+
return this._filterValue;
|
|
254
|
+
}
|
|
255
|
+
set filterValue(val) {
|
|
256
|
+
this._filterValue = val;
|
|
257
|
+
this.activateFilter();
|
|
258
|
+
}
|
|
259
|
+
ngAfterViewInit() {
|
|
260
|
+
if (this.editable) {
|
|
261
|
+
this.updateEditableLabel();
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
get label() {
|
|
265
|
+
if (typeof this.selectedOption === 'number') {
|
|
266
|
+
this.selectedOption = this.selectedOption.toString();
|
|
267
|
+
}
|
|
268
|
+
return this.selectedOption ? this.getOptionLabel(this.selectedOption) : null;
|
|
269
|
+
}
|
|
270
|
+
get emptyMessageLabel() {
|
|
271
|
+
return this.emptyMessage || this.config.getTranslation(TranslationKeys.EMPTY_MESSAGE);
|
|
272
|
+
}
|
|
273
|
+
get emptyFilterMessageLabel() {
|
|
274
|
+
return this.emptyFilterMessage || this.config.getTranslation(TranslationKeys.EMPTY_FILTER_MESSAGE);
|
|
275
|
+
}
|
|
276
|
+
get filled() {
|
|
277
|
+
if (typeof this.value === 'string')
|
|
278
|
+
return !!this.value;
|
|
279
|
+
return this.value || this.value != null || this.value != undefined;
|
|
280
|
+
}
|
|
281
|
+
get isVisibleClearIcon() {
|
|
282
|
+
return this.value != null && this.value !== '' && this.showClear && !this.disabled;
|
|
283
|
+
}
|
|
284
|
+
updateEditableLabel() {
|
|
285
|
+
if (this.editableInputViewChild && this.editableInputViewChild.nativeElement) {
|
|
286
|
+
this.editableInputViewChild.nativeElement.value = this.selectedOption ? this.getOptionLabel(this.selectedOption) : this.value || '';
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
getOptionLabel(option) {
|
|
290
|
+
return this.optionLabel ? ObjectUtils.resolveFieldData(option, this.optionLabel) : option && option.label !== undefined ? option.label : option;
|
|
291
|
+
}
|
|
292
|
+
getOptionValue(option) {
|
|
293
|
+
return this.optionValue ? ObjectUtils.resolveFieldData(option, this.optionValue) : !this.optionLabel && option && option.value !== undefined ? option.value : option;
|
|
294
|
+
}
|
|
295
|
+
isOptionDisabled(option) {
|
|
296
|
+
return this.optionDisabled ? ObjectUtils.resolveFieldData(option, this.optionDisabled) : option && option.disabled !== undefined ? option.disabled : false;
|
|
297
|
+
}
|
|
298
|
+
getOptionGroupLabel(optionGroup) {
|
|
299
|
+
return this.optionGroupLabel ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupLabel) : optionGroup && optionGroup.label !== undefined ? optionGroup.label : optionGroup;
|
|
300
|
+
}
|
|
301
|
+
getOptionGroupChildren(optionGroup) {
|
|
302
|
+
return this.optionGroupChildren ? ObjectUtils.resolveFieldData(optionGroup, this.optionGroupChildren) : optionGroup.items;
|
|
303
|
+
}
|
|
304
|
+
onItemClick(event) {
|
|
305
|
+
const option = event.option;
|
|
306
|
+
if (!this.isOptionDisabled(option)) {
|
|
307
|
+
this.selectItem(event.originalEvent, option);
|
|
308
|
+
this.accessibleViewChild.nativeElement.focus({ preventScroll: true });
|
|
309
|
+
}
|
|
310
|
+
setTimeout(() => {
|
|
311
|
+
this.hide();
|
|
312
|
+
}, 1);
|
|
313
|
+
}
|
|
314
|
+
selectItem(event, option) {
|
|
315
|
+
if (this.selectedOption != option) {
|
|
316
|
+
this.selectedOption = option;
|
|
317
|
+
this.value = this.getOptionValue(option);
|
|
318
|
+
this.onModelChange(this.value);
|
|
319
|
+
this.updateEditableLabel();
|
|
320
|
+
this.onChange.emit({
|
|
321
|
+
originalEvent: event,
|
|
322
|
+
value: this.value
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
ngAfterViewChecked() {
|
|
327
|
+
if (this.optionsChanged && this.overlayVisible) {
|
|
328
|
+
this.optionsChanged = false;
|
|
329
|
+
this.zone.runOutsideAngular(() => {
|
|
330
|
+
setTimeout(() => {
|
|
331
|
+
if (this.overlayViewChild) {
|
|
332
|
+
this.overlayViewChild.alignOverlay();
|
|
333
|
+
}
|
|
334
|
+
}, 1);
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
if (this.selectedOptionUpdated && this.itemsWrapper) {
|
|
338
|
+
let selectedItem = DomHandler.findSingle(this.overlayViewChild.overlayViewChild.nativeElement, 'li.p-highlight');
|
|
339
|
+
if (selectedItem) {
|
|
340
|
+
DomHandler.scrollInView(this.itemsWrapper, selectedItem);
|
|
341
|
+
}
|
|
342
|
+
this.selectedOptionUpdated = false;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
writeValue(value) {
|
|
346
|
+
if (this.filter) {
|
|
347
|
+
this.resetFilter();
|
|
348
|
+
}
|
|
349
|
+
this.value = value;
|
|
350
|
+
this.updateSelectedOption(value);
|
|
351
|
+
this.updateEditableLabel();
|
|
352
|
+
this.cd.markForCheck();
|
|
353
|
+
}
|
|
354
|
+
resetFilter() {
|
|
355
|
+
this._filterValue = null;
|
|
356
|
+
if (this.filterViewChild && this.filterViewChild.nativeElement) {
|
|
357
|
+
this.filterViewChild.nativeElement.value = '';
|
|
358
|
+
}
|
|
359
|
+
this.optionsToDisplay = this.options;
|
|
360
|
+
}
|
|
361
|
+
updateSelectedOption(val) {
|
|
362
|
+
this.selectedOption = this.findOption(val, this.optionsToDisplay);
|
|
363
|
+
if (this.autoDisplayFirst && !this.placeholder && !this.selectedOption && this.optionsToDisplay && this.optionsToDisplay.length && !this.editable) {
|
|
364
|
+
if (this.group) {
|
|
365
|
+
this.selectedOption = this.optionsToDisplay[0].items[0];
|
|
366
|
+
}
|
|
367
|
+
else {
|
|
368
|
+
this.selectedOption = this.optionsToDisplay[0];
|
|
369
|
+
}
|
|
370
|
+
this.value = this.getOptionValue(this.selectedOption);
|
|
371
|
+
this.onModelChange(this.value);
|
|
372
|
+
}
|
|
373
|
+
this.selectedOptionUpdated = true;
|
|
374
|
+
}
|
|
375
|
+
registerOnChange(fn) {
|
|
376
|
+
this.onModelChange = fn;
|
|
377
|
+
}
|
|
378
|
+
registerOnTouched(fn) {
|
|
379
|
+
this.onModelTouched = fn;
|
|
380
|
+
}
|
|
381
|
+
setDisabledState(val) {
|
|
382
|
+
this.disabled = val;
|
|
383
|
+
this.cd.markForCheck();
|
|
384
|
+
}
|
|
385
|
+
onMouseclick(event) {
|
|
386
|
+
if (this.disabled || this.readonly || this.isInputClick(event)) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
this.onClick.emit(event);
|
|
390
|
+
this.accessibleViewChild.nativeElement.focus({ preventScroll: true });
|
|
391
|
+
if (this.overlayVisible)
|
|
392
|
+
this.hide();
|
|
393
|
+
else
|
|
394
|
+
this.show();
|
|
395
|
+
this.cd.detectChanges();
|
|
396
|
+
}
|
|
397
|
+
isInputClick(event) {
|
|
398
|
+
return DomHandler.hasClass(event.target, 'p-dropdown-clear-icon') || event.target.isSameNode(this.accessibleViewChild.nativeElement) || (this.editableInputViewChild && event.target.isSameNode(this.editableInputViewChild.nativeElement));
|
|
399
|
+
}
|
|
400
|
+
isEmpty() {
|
|
401
|
+
return !this.optionsToDisplay || (this.optionsToDisplay && this.optionsToDisplay.length === 0);
|
|
402
|
+
}
|
|
403
|
+
onEditableInputFocus(event) {
|
|
404
|
+
this.focused = true;
|
|
405
|
+
this.hide();
|
|
406
|
+
this.onFocus.emit(event);
|
|
407
|
+
}
|
|
408
|
+
onEditableInputChange(event) {
|
|
409
|
+
this.value = event.target.value;
|
|
410
|
+
this.updateSelectedOption(this.value);
|
|
411
|
+
this.onModelChange(this.value);
|
|
412
|
+
this.onChange.emit({
|
|
413
|
+
originalEvent: event,
|
|
414
|
+
value: this.value
|
|
415
|
+
});
|
|
416
|
+
}
|
|
417
|
+
show() {
|
|
418
|
+
this.overlayVisible = true;
|
|
419
|
+
this.cd.markForCheck();
|
|
420
|
+
}
|
|
421
|
+
onOverlayAnimationStart(event) {
|
|
422
|
+
if (event.toState === 'visible') {
|
|
423
|
+
this.itemsWrapper = DomHandler.findSingle(this.overlayViewChild.overlayViewChild.nativeElement, this.virtualScroll ? '.p-scroller' : '.p-dropdown-items-wrapper');
|
|
424
|
+
this.virtualScroll && this.scroller.setContentEl(this.itemsViewChild.nativeElement);
|
|
425
|
+
if (this.options && this.options.length) {
|
|
426
|
+
if (this.virtualScroll) {
|
|
427
|
+
const selectedIndex = this.selectedOption ? this.findOptionIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
428
|
+
if (selectedIndex !== -1) {
|
|
429
|
+
this.scroller.scrollToIndex(selectedIndex);
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
else {
|
|
433
|
+
let selectedListItem = DomHandler.findSingle(this.itemsWrapper, '.p-dropdown-item.p-highlight');
|
|
434
|
+
if (selectedListItem) {
|
|
435
|
+
selectedListItem.scrollIntoView({ block: 'nearest', inline: 'center' });
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
if (this.filterViewChild && this.filterViewChild.nativeElement) {
|
|
440
|
+
this.preventModelTouched = true;
|
|
441
|
+
if (this.autofocusFilter) {
|
|
442
|
+
this.filterViewChild.nativeElement.focus();
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
this.onShow.emit(event);
|
|
446
|
+
}
|
|
447
|
+
if (event.toState === 'void') {
|
|
448
|
+
this.itemsWrapper = null;
|
|
449
|
+
this.onModelTouched();
|
|
450
|
+
this.onHide.emit(event);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
hide() {
|
|
454
|
+
this.overlayVisible = false;
|
|
455
|
+
if (this.filter && this.resetFilterOnHide) {
|
|
456
|
+
this.resetFilter();
|
|
457
|
+
}
|
|
458
|
+
this.cd.markForCheck();
|
|
459
|
+
}
|
|
460
|
+
onInputFocus(event) {
|
|
461
|
+
this.focused = true;
|
|
462
|
+
this.onFocus.emit(event);
|
|
463
|
+
}
|
|
464
|
+
onInputBlur(event) {
|
|
465
|
+
this.focused = false;
|
|
466
|
+
this.onBlur.emit(event);
|
|
467
|
+
if (!this.preventModelTouched) {
|
|
468
|
+
this.onModelTouched();
|
|
469
|
+
}
|
|
470
|
+
this.preventModelTouched = false;
|
|
471
|
+
}
|
|
472
|
+
findPrevEnabledOption(index) {
|
|
473
|
+
let prevEnabledOption;
|
|
474
|
+
if (this.optionsToDisplay && this.optionsToDisplay.length) {
|
|
475
|
+
for (let i = index - 1; 0 <= i; i--) {
|
|
476
|
+
let option = this.optionsToDisplay[i];
|
|
477
|
+
if (this.isOptionDisabled(option)) {
|
|
478
|
+
continue;
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
prevEnabledOption = option;
|
|
482
|
+
break;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
if (!prevEnabledOption) {
|
|
486
|
+
for (let i = this.optionsToDisplay.length - 1; i >= index; i--) {
|
|
487
|
+
let option = this.optionsToDisplay[i];
|
|
488
|
+
if (this.isOptionDisabled(option)) {
|
|
489
|
+
continue;
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
prevEnabledOption = option;
|
|
493
|
+
break;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
return prevEnabledOption;
|
|
499
|
+
}
|
|
500
|
+
findNextEnabledOption(index) {
|
|
501
|
+
let nextEnabledOption;
|
|
502
|
+
if (this.optionsToDisplay && this.optionsToDisplay.length) {
|
|
503
|
+
for (let i = index + 1; i < this.optionsToDisplay.length; i++) {
|
|
504
|
+
let option = this.optionsToDisplay[i];
|
|
505
|
+
if (this.isOptionDisabled(option)) {
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
else {
|
|
509
|
+
nextEnabledOption = option;
|
|
510
|
+
break;
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
if (!nextEnabledOption) {
|
|
514
|
+
for (let i = 0; i < index; i++) {
|
|
515
|
+
let option = this.optionsToDisplay[i];
|
|
516
|
+
if (this.isOptionDisabled(option)) {
|
|
517
|
+
continue;
|
|
518
|
+
}
|
|
519
|
+
else {
|
|
520
|
+
nextEnabledOption = option;
|
|
521
|
+
break;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
return nextEnabledOption;
|
|
527
|
+
}
|
|
528
|
+
onKeydown(event, search) {
|
|
529
|
+
if (this.readonly || !this.optionsToDisplay || this.optionsToDisplay.length === null) {
|
|
530
|
+
return;
|
|
531
|
+
}
|
|
532
|
+
switch (event.which) {
|
|
533
|
+
//down
|
|
534
|
+
case 40:
|
|
535
|
+
if (!this.overlayVisible && event.altKey) {
|
|
536
|
+
this.show();
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
if (this.group) {
|
|
540
|
+
let selectedItemIndex = this.selectedOption ? this.findOptionGroupIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
541
|
+
if (selectedItemIndex !== -1) {
|
|
542
|
+
let nextItemIndex = selectedItemIndex.itemIndex + 1;
|
|
543
|
+
if (nextItemIndex < this.getOptionGroupChildren(this.optionsToDisplay[selectedItemIndex.groupIndex]).length) {
|
|
544
|
+
this.selectItem(event, this.getOptionGroupChildren(this.optionsToDisplay[selectedItemIndex.groupIndex])[nextItemIndex]);
|
|
545
|
+
this.selectedOptionUpdated = true;
|
|
546
|
+
}
|
|
547
|
+
else if (this.optionsToDisplay[selectedItemIndex.groupIndex + 1]) {
|
|
548
|
+
this.selectItem(event, this.getOptionGroupChildren(this.optionsToDisplay[selectedItemIndex.groupIndex + 1])[0]);
|
|
549
|
+
this.selectedOptionUpdated = true;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
else {
|
|
553
|
+
if (this.optionsToDisplay && this.optionsToDisplay.length > 0) {
|
|
554
|
+
this.selectItem(event, this.getOptionGroupChildren(this.optionsToDisplay[0])[0]);
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
let selectedItemIndex = this.selectedOption ? this.findOptionIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
560
|
+
let nextEnabledOption = this.findNextEnabledOption(selectedItemIndex);
|
|
561
|
+
if (nextEnabledOption) {
|
|
562
|
+
this.selectItem(event, nextEnabledOption);
|
|
563
|
+
this.selectedOptionUpdated = true;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
event.preventDefault();
|
|
568
|
+
break;
|
|
569
|
+
//up
|
|
570
|
+
case 38:
|
|
571
|
+
if (this.group) {
|
|
572
|
+
let selectedItemIndex = this.selectedOption ? this.findOptionGroupIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
573
|
+
if (selectedItemIndex !== -1) {
|
|
574
|
+
let prevItemIndex = selectedItemIndex.itemIndex - 1;
|
|
575
|
+
if (prevItemIndex >= 0) {
|
|
576
|
+
this.selectItem(event, this.getOptionGroupChildren(this.optionsToDisplay[selectedItemIndex.groupIndex])[prevItemIndex]);
|
|
577
|
+
this.selectedOptionUpdated = true;
|
|
578
|
+
}
|
|
579
|
+
else if (prevItemIndex < 0) {
|
|
580
|
+
let prevGroup = this.optionsToDisplay[selectedItemIndex.groupIndex - 1];
|
|
581
|
+
if (prevGroup) {
|
|
582
|
+
this.selectItem(event, this.getOptionGroupChildren(prevGroup)[this.getOptionGroupChildren(prevGroup).length - 1]);
|
|
583
|
+
this.selectedOptionUpdated = true;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
else {
|
|
589
|
+
let selectedItemIndex = this.selectedOption ? this.findOptionIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
590
|
+
let prevEnabledOption = this.findPrevEnabledOption(selectedItemIndex);
|
|
591
|
+
if (prevEnabledOption) {
|
|
592
|
+
this.selectItem(event, prevEnabledOption);
|
|
593
|
+
this.selectedOptionUpdated = true;
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
event.preventDefault();
|
|
597
|
+
break;
|
|
598
|
+
//space
|
|
599
|
+
case 32:
|
|
600
|
+
if (search) {
|
|
601
|
+
if (!this.overlayVisible) {
|
|
602
|
+
this.show();
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
this.hide();
|
|
606
|
+
}
|
|
607
|
+
event.preventDefault();
|
|
608
|
+
}
|
|
609
|
+
break;
|
|
610
|
+
//enter
|
|
611
|
+
case 13:
|
|
612
|
+
if (this.overlayVisible && (!this.filter || (this.optionsToDisplay && this.optionsToDisplay.length > 0))) {
|
|
613
|
+
this.hide();
|
|
614
|
+
}
|
|
615
|
+
else if (!this.overlayVisible) {
|
|
616
|
+
this.show();
|
|
617
|
+
}
|
|
618
|
+
event.preventDefault();
|
|
619
|
+
break;
|
|
620
|
+
//escape and tab
|
|
621
|
+
case 27:
|
|
622
|
+
case 9:
|
|
623
|
+
this.hide();
|
|
624
|
+
break;
|
|
625
|
+
//search item based on keyboard input
|
|
626
|
+
default:
|
|
627
|
+
if (search && !event.metaKey && event.which !== 17) {
|
|
628
|
+
this.search(event);
|
|
629
|
+
}
|
|
630
|
+
break;
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
search(event) {
|
|
634
|
+
if (this.searchTimeout) {
|
|
635
|
+
clearTimeout(this.searchTimeout);
|
|
636
|
+
}
|
|
637
|
+
const char = event.key;
|
|
638
|
+
this.previousSearchChar = this.currentSearchChar;
|
|
639
|
+
this.currentSearchChar = char;
|
|
640
|
+
if (this.previousSearchChar === this.currentSearchChar)
|
|
641
|
+
this.searchValue = this.currentSearchChar;
|
|
642
|
+
else
|
|
643
|
+
this.searchValue = this.searchValue ? this.searchValue + char : char;
|
|
644
|
+
let newOption;
|
|
645
|
+
if (this.group) {
|
|
646
|
+
let searchIndex = this.selectedOption ? this.findOptionGroupIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : { groupIndex: 0, itemIndex: 0 };
|
|
647
|
+
newOption = this.searchOptionWithinGroup(searchIndex);
|
|
648
|
+
}
|
|
649
|
+
else {
|
|
650
|
+
let searchIndex = this.selectedOption ? this.findOptionIndex(this.getOptionValue(this.selectedOption), this.optionsToDisplay) : -1;
|
|
651
|
+
newOption = this.searchOption(++searchIndex);
|
|
652
|
+
}
|
|
653
|
+
if (newOption && !this.isOptionDisabled(newOption)) {
|
|
654
|
+
this.selectItem(event, newOption);
|
|
655
|
+
this.selectedOptionUpdated = true;
|
|
656
|
+
}
|
|
657
|
+
this.searchTimeout = setTimeout(() => {
|
|
658
|
+
this.searchValue = null;
|
|
659
|
+
}, 250);
|
|
660
|
+
}
|
|
661
|
+
searchOption(index) {
|
|
662
|
+
let option;
|
|
663
|
+
if (this.searchValue) {
|
|
664
|
+
option = this.searchOptionInRange(index, this.optionsToDisplay.length);
|
|
665
|
+
if (!option) {
|
|
666
|
+
option = this.searchOptionInRange(0, index);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
return option;
|
|
670
|
+
}
|
|
671
|
+
searchOptionInRange(start, end) {
|
|
672
|
+
for (let i = start; i < end; i++) {
|
|
673
|
+
let opt = this.optionsToDisplay[i];
|
|
674
|
+
if (this.getOptionLabel(opt)
|
|
675
|
+
.toLocaleLowerCase(this.filterLocale)
|
|
676
|
+
.startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)) &&
|
|
677
|
+
!this.isOptionDisabled(opt)) {
|
|
678
|
+
return opt;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
return null;
|
|
682
|
+
}
|
|
683
|
+
searchOptionWithinGroup(index) {
|
|
684
|
+
let option;
|
|
685
|
+
if (this.searchValue) {
|
|
686
|
+
for (let i = index.groupIndex; i < this.optionsToDisplay.length; i++) {
|
|
687
|
+
for (let j = index.groupIndex === i ? index.itemIndex + 1 : 0; j < this.getOptionGroupChildren(this.optionsToDisplay[i]).length; j++) {
|
|
688
|
+
let opt = this.getOptionGroupChildren(this.optionsToDisplay[i])[j];
|
|
689
|
+
if (this.getOptionLabel(opt)
|
|
690
|
+
.toLocaleLowerCase(this.filterLocale)
|
|
691
|
+
.startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)) &&
|
|
692
|
+
!this.isOptionDisabled(opt)) {
|
|
693
|
+
return opt;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
if (!option) {
|
|
698
|
+
for (let i = 0; i <= index.groupIndex; i++) {
|
|
699
|
+
for (let j = 0; j < (index.groupIndex === i ? index.itemIndex : this.getOptionGroupChildren(this.optionsToDisplay[i]).length); j++) {
|
|
700
|
+
let opt = this.getOptionGroupChildren(this.optionsToDisplay[i])[j];
|
|
701
|
+
if (this.getOptionLabel(opt)
|
|
702
|
+
.toLocaleLowerCase(this.filterLocale)
|
|
703
|
+
.startsWith(this.searchValue.toLocaleLowerCase(this.filterLocale)) &&
|
|
704
|
+
!this.isOptionDisabled(opt)) {
|
|
705
|
+
return opt;
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
return null;
|
|
712
|
+
}
|
|
713
|
+
findOptionIndex(val, opts) {
|
|
714
|
+
let index = -1;
|
|
715
|
+
if (opts) {
|
|
716
|
+
for (let i = 0; i < opts.length; i++) {
|
|
717
|
+
if ((val == null && this.getOptionValue(opts[i]) == null) || ObjectUtils.equals(val, this.getOptionValue(opts[i]), this.dataKey)) {
|
|
718
|
+
index = i;
|
|
719
|
+
break;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
return index;
|
|
724
|
+
}
|
|
725
|
+
findOptionGroupIndex(val, opts) {
|
|
726
|
+
let groupIndex, itemIndex;
|
|
727
|
+
if (opts) {
|
|
728
|
+
for (let i = 0; i < opts.length; i++) {
|
|
729
|
+
groupIndex = i;
|
|
730
|
+
itemIndex = this.findOptionIndex(val, this.getOptionGroupChildren(opts[i]));
|
|
731
|
+
if (itemIndex !== -1) {
|
|
732
|
+
break;
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
if (itemIndex !== -1) {
|
|
737
|
+
return { groupIndex: groupIndex, itemIndex: itemIndex };
|
|
738
|
+
}
|
|
739
|
+
else {
|
|
740
|
+
return -1;
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
findOption(val, opts, inGroup) {
|
|
744
|
+
if (this.group && !inGroup) {
|
|
745
|
+
let opt;
|
|
746
|
+
if (opts && opts.length) {
|
|
747
|
+
for (let optgroup of opts) {
|
|
748
|
+
opt = this.findOption(val, this.getOptionGroupChildren(optgroup), true);
|
|
749
|
+
if (opt) {
|
|
750
|
+
break;
|
|
751
|
+
}
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
return opt;
|
|
755
|
+
}
|
|
756
|
+
else {
|
|
757
|
+
let index = this.findOptionIndex(val, opts);
|
|
758
|
+
return index != -1 ? opts[index] : null;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
onFilterInputChange(event) {
|
|
762
|
+
let inputValue = event.target.value;
|
|
763
|
+
if (inputValue && inputValue.length) {
|
|
764
|
+
this._filterValue = inputValue;
|
|
765
|
+
this.activateFilter();
|
|
766
|
+
}
|
|
767
|
+
else {
|
|
768
|
+
this._filterValue = null;
|
|
769
|
+
this.optionsToDisplay = this.options;
|
|
770
|
+
}
|
|
771
|
+
this.virtualScroll && this.scroller.scrollToIndex(0);
|
|
772
|
+
this.optionsChanged = true;
|
|
773
|
+
this.onFilter.emit({ originalEvent: event, filter: this._filterValue });
|
|
774
|
+
}
|
|
775
|
+
activateFilter() {
|
|
776
|
+
let searchFields = (this.filterBy || this.optionLabel || 'label').split(',');
|
|
777
|
+
if (this.options && this.options.length) {
|
|
778
|
+
if (this.group) {
|
|
779
|
+
let filteredGroups = [];
|
|
780
|
+
for (let optgroup of this.options) {
|
|
781
|
+
let filteredSubOptions = this.filterService.filter(this.getOptionGroupChildren(optgroup), searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);
|
|
782
|
+
if (filteredSubOptions && filteredSubOptions.length) {
|
|
783
|
+
filteredGroups.push({ ...optgroup, ...{ [this.optionGroupChildren]: filteredSubOptions } });
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
this.optionsToDisplay = filteredGroups;
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
this.optionsToDisplay = this.filterService.filter(this.options, searchFields, this.filterValue, this.filterMatchMode, this.filterLocale);
|
|
790
|
+
}
|
|
791
|
+
this.optionsChanged = true;
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
applyFocus() {
|
|
795
|
+
if (this.editable)
|
|
796
|
+
DomHandler.findSingle(this.el.nativeElement, '.p-dropdown-label.p-inputtext').focus();
|
|
797
|
+
else
|
|
798
|
+
DomHandler.findSingle(this.el.nativeElement, 'input[readonly]').focus();
|
|
799
|
+
}
|
|
800
|
+
focus() {
|
|
801
|
+
this.applyFocus();
|
|
802
|
+
}
|
|
803
|
+
clear(event) {
|
|
804
|
+
this.value = null;
|
|
805
|
+
this.onModelChange(this.value);
|
|
806
|
+
this.onChange.emit({
|
|
807
|
+
originalEvent: event,
|
|
808
|
+
value: this.value
|
|
809
|
+
});
|
|
810
|
+
this.updateSelectedOption(this.value);
|
|
811
|
+
this.updateEditableLabel();
|
|
812
|
+
this.onClear.emit(event);
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
Dropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Dropdown, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i3.FilterService }, { token: i3.ParallelUIAngularConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
816
|
+
Dropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Dropdown, selector: "p-dropdown", inputs: { scrollHeight: "scrollHeight", filter: "filter", name: "name", style: "style", panelStyle: "panelStyle", styleClass: "styleClass", panelStyleClass: "panelStyleClass", readonly: "readonly", required: "required", editable: "editable", appendTo: "appendTo", tabindex: "tabindex", placeholder: "placeholder", filterPlaceholder: "filterPlaceholder", filterLocale: "filterLocale", inputId: "inputId", selectId: "selectId", dataKey: "dataKey", filterBy: "filterBy", autofocus: "autofocus", resetFilterOnHide: "resetFilterOnHide", dropdownIcon: "dropdownIcon", optionLabel: "optionLabel", optionValue: "optionValue", optionDisabled: "optionDisabled", optionGroupLabel: "optionGroupLabel", optionGroupChildren: "optionGroupChildren", autoDisplayFirst: "autoDisplayFirst", group: "group", showClear: "showClear", emptyFilterMessage: "emptyFilterMessage", emptyMessage: "emptyMessage", lazy: "lazy", virtualScroll: "virtualScroll", virtualScrollItemSize: "virtualScrollItemSize", virtualScrollOptions: "virtualScrollOptions", overlayOptions: "overlayOptions", ariaFilterLabel: "ariaFilterLabel", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", filterMatchMode: "filterMatchMode", maxlength: "maxlength", tooltip: "tooltip", tooltipPosition: "tooltipPosition", tooltipPositionStyle: "tooltipPositionStyle", tooltipStyleClass: "tooltipStyleClass", autofocusFilter: "autofocusFilter", overlayDirection: "overlayDirection", disabled: "disabled", itemSize: "itemSize", autoZIndex: "autoZIndex", baseZIndex: "baseZIndex", showTransitionOptions: "showTransitionOptions", hideTransitionOptions: "hideTransitionOptions", options: "options", filterValue: "filterValue" }, outputs: { onChange: "onChange", onFilter: "onFilter", onFocus: "onFocus", onBlur: "onBlur", onClick: "onClick", onShow: "onShow", onHide: "onHide", onClear: "onClear", onLazyLoad: "onLazyLoad" }, host: { properties: { "class.p-inputwrapper-filled": "filled", "class.p-inputwrapper-focus": "focused || overlayVisible" }, classAttribute: "p-element p-inputwrapper" }, providers: [DROPDOWN_VALUE_ACCESSOR], queries: [{ propertyName: "templates", predicate: QiusTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "filterViewChild", first: true, predicate: ["filter"], descendants: true }, { propertyName: "accessibleViewChild", first: true, predicate: ["in"], descendants: true }, { propertyName: "editableInputViewChild", first: true, predicate: ["editableInput"], descendants: true }, { propertyName: "itemsViewChild", first: true, predicate: ["items"], descendants: true }, { propertyName: "scroller", first: true, predicate: ["scroller"], descendants: true }, { propertyName: "overlayViewChild", first: true, predicate: ["overlay"], descendants: true }], ngImport: i0, template: `
|
|
817
|
+
<div
|
|
818
|
+
#container
|
|
819
|
+
[ngClass]="{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }"
|
|
820
|
+
(click)="onMouseclick($event)"
|
|
821
|
+
[ngStyle]="style"
|
|
822
|
+
[class]="styleClass"
|
|
823
|
+
>
|
|
824
|
+
<div class="p-hidden-accessible">
|
|
825
|
+
<input
|
|
826
|
+
#in
|
|
827
|
+
[attr.id]="inputId"
|
|
828
|
+
type="text"
|
|
829
|
+
readonly
|
|
830
|
+
(focus)="onInputFocus($event)"
|
|
831
|
+
aria-haspopup="listbox"
|
|
832
|
+
[attr.placeholder]="placeholder"
|
|
833
|
+
aria-haspopup="listbox"
|
|
834
|
+
[attr.aria-label]="ariaLabel"
|
|
835
|
+
[attr.aria-expanded]="false"
|
|
836
|
+
[attr.aria-labelledby]="ariaLabelledBy"
|
|
837
|
+
(blur)="onInputBlur($event)"
|
|
838
|
+
(keydown)="onKeydown($event, true)"
|
|
839
|
+
[disabled]="disabled"
|
|
840
|
+
[attr.tabindex]="tabindex"
|
|
841
|
+
pAutoFocus
|
|
842
|
+
[autofocus]="autofocus"
|
|
843
|
+
[attr.aria-activedescendant]="overlayVisible ? labelId : null"
|
|
844
|
+
role="combobox"
|
|
845
|
+
/>
|
|
846
|
+
</div>
|
|
847
|
+
<span
|
|
848
|
+
[attr.id]="labelId"
|
|
849
|
+
[ngClass]="{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }"
|
|
850
|
+
*ngIf="!editable && label != null"
|
|
851
|
+
[pTooltip]="tooltip"
|
|
852
|
+
[tooltipPosition]="tooltipPosition"
|
|
853
|
+
[positionStyle]="tooltipPositionStyle"
|
|
854
|
+
[tooltipStyleClass]="tooltipStyleClass"
|
|
855
|
+
>
|
|
856
|
+
<ng-container *ngIf="!selectedItemTemplate">{{ label || 'empty' }}</ng-container>
|
|
857
|
+
<ng-container *ngTemplateOutlet="selectedItemTemplate; context: { $implicit: selectedOption }"></ng-container>
|
|
858
|
+
</span>
|
|
859
|
+
<span [ngClass]="{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }" *ngIf="!editable && label == null">{{ placeholder || 'empty' }}</span>
|
|
860
|
+
<input
|
|
861
|
+
#editableInput
|
|
862
|
+
type="text"
|
|
863
|
+
[attr.maxlength]="maxlength"
|
|
864
|
+
class="p-dropdown-label p-inputtext"
|
|
865
|
+
*ngIf="editable"
|
|
866
|
+
[disabled]="disabled"
|
|
867
|
+
[attr.placeholder]="placeholder"
|
|
868
|
+
aria-haspopup="listbox"
|
|
869
|
+
[attr.aria-expanded]="overlayVisible"
|
|
870
|
+
(input)="onEditableInputChange($event)"
|
|
871
|
+
(focus)="onEditableInputFocus($event)"
|
|
872
|
+
(blur)="onInputBlur($event)"
|
|
873
|
+
/>
|
|
874
|
+
|
|
875
|
+
<ng-container *ngIf="isVisibleClearIcon">
|
|
876
|
+
<TimesIcon [styleClass]="'p-dropdown-clear-icon'" (click)="clear($event)" *ngIf="!clearIconTemplate" />
|
|
877
|
+
<span class="p-dropdown-clear-icon" (click)="clear($event)" *ngIf="clearIconTemplate">
|
|
878
|
+
<ng-template *ngTemplateOutlet="clearIconTemplate"></ng-template>
|
|
879
|
+
</span>
|
|
880
|
+
</ng-container>
|
|
881
|
+
|
|
882
|
+
|
|
883
|
+
<div class="p-dropdown-trigger" role="button" aria-label="dropdown trigger" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible">
|
|
884
|
+
<ng-container *ngIf="!dropdownIconTemplate">
|
|
885
|
+
<span class="p-dropdown-trigger-icon" *ngIf="dropdownIcon" [ngClass]="dropdownIcon"></span>
|
|
886
|
+
<ChevronDownIcon *ngIf="!dropdownIcon" [styleClass]="'p-dropdown-trigger-icon'" />
|
|
887
|
+
</ng-container>
|
|
888
|
+
<span *ngIf="dropdownIconTemplate" class="p-dropdown-trigger-icon">
|
|
889
|
+
<ng-template *ngTemplateOutlet="dropdownIconTemplate"></ng-template>
|
|
890
|
+
</span>
|
|
891
|
+
</div>
|
|
892
|
+
|
|
893
|
+
<p-overlay
|
|
894
|
+
#overlay
|
|
895
|
+
[(visible)]="overlayVisible"
|
|
896
|
+
[options]="overlayOptions"
|
|
897
|
+
[target]="'@parent'"
|
|
898
|
+
[appendTo]="appendTo"
|
|
899
|
+
[autoZIndex]="autoZIndex"
|
|
900
|
+
[baseZIndex]="baseZIndex"
|
|
901
|
+
[showTransitionOptions]="showTransitionOptions"
|
|
902
|
+
[hideTransitionOptions]="hideTransitionOptions"
|
|
903
|
+
(onAnimationStart)="onOverlayAnimationStart($event)"
|
|
904
|
+
(onHide)="hide()"
|
|
905
|
+
>
|
|
906
|
+
<ng-template pTemplate="content">
|
|
907
|
+
<div [ngClass]="'p-dropdown-panel p-component'" [ngStyle]="panelStyle" [class]="panelStyleClass">
|
|
908
|
+
<ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
|
|
909
|
+
<div class="p-dropdown-header" *ngIf="filter" (click)="$event.stopPropagation()">
|
|
910
|
+
<ng-container *ngIf="filterTemplate; else builtInFilterElement">
|
|
911
|
+
<ng-container *ngTemplateOutlet="filterTemplate; context: { options: filterOptions }"></ng-container>
|
|
912
|
+
</ng-container>
|
|
913
|
+
<ng-template #builtInFilterElement>
|
|
914
|
+
<div class="p-dropdown-filter-container">
|
|
915
|
+
<input
|
|
916
|
+
#filter
|
|
917
|
+
type="text"
|
|
918
|
+
autocomplete="off"
|
|
919
|
+
[value]="filterValue || ''"
|
|
920
|
+
class="p-dropdown-filter p-inputtext p-component"
|
|
921
|
+
[attr.placeholder]="filterPlaceholder"
|
|
922
|
+
(keydown.enter)="$event.preventDefault()"
|
|
923
|
+
(keydown)="onKeydown($event, false)"
|
|
924
|
+
(input)="onFilterInputChange($event)"
|
|
925
|
+
[attr.aria-label]="ariaFilterLabel"
|
|
926
|
+
[attr.aria-activedescendant]="overlayVisible ? 'p-highlighted-option' : labelId"
|
|
927
|
+
/>
|
|
928
|
+
<SearchIcon *ngIf="!filterIconTemplate" [styleClass]="'p-dropdown-filter-icon'" />
|
|
929
|
+
<span *ngIf="filterIconTemplate" class="p-dropdown-filter-icon">
|
|
930
|
+
<ng-template *ngTemplateOutlet="filterIconTemplate"></ng-template>
|
|
931
|
+
</span>
|
|
932
|
+
</div>
|
|
933
|
+
</ng-template>
|
|
934
|
+
</div>
|
|
935
|
+
<div class="p-dropdown-items-wrapper" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
|
|
936
|
+
<p-scroller
|
|
937
|
+
*ngIf="virtualScroll"
|
|
938
|
+
#scroller
|
|
939
|
+
[items]="optionsToDisplay"
|
|
940
|
+
[style]="{ height: scrollHeight }"
|
|
941
|
+
[itemSize]="virtualScrollItemSize || _itemSize"
|
|
942
|
+
[autoSize]="true"
|
|
943
|
+
[lazy]="lazy"
|
|
944
|
+
(onLazyLoad)="onLazyLoad.emit($event)"
|
|
945
|
+
[options]="virtualScrollOptions"
|
|
946
|
+
>
|
|
947
|
+
<ng-template pTemplate="content" let-items let-scrollerOptions="options">
|
|
948
|
+
<ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
|
|
949
|
+
</ng-template>
|
|
950
|
+
<ng-container *ngIf="loaderTemplate">
|
|
951
|
+
<ng-template pTemplate="loader" let-scrollerOptions="options">
|
|
952
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: { options: scrollerOptions }"></ng-container>
|
|
953
|
+
</ng-template>
|
|
954
|
+
</ng-container>
|
|
955
|
+
</p-scroller>
|
|
956
|
+
<ng-container *ngIf="!virtualScroll">
|
|
957
|
+
<ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: optionsToDisplay, options: {} }"></ng-container>
|
|
958
|
+
</ng-container>
|
|
959
|
+
|
|
960
|
+
<ng-template #buildInItems let-items let-scrollerOptions="options">
|
|
961
|
+
<ul #items [attr.id]="listId" class="p-dropdown-items" [ngClass]="scrollerOptions.contentStyleClass" [style]="scrollerOptions.contentStyle" role="listbox">
|
|
962
|
+
<ng-container *ngIf="group">
|
|
963
|
+
<ng-template ngFor let-optgroup [ngForOf]="items">
|
|
964
|
+
<li class="p-dropdown-item-group" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
965
|
+
<span *ngIf="!groupTemplate">{{ getOptionGroupLabel(optgroup) || 'empty' }}</span>
|
|
966
|
+
<ng-container *ngTemplateOutlet="groupTemplate; context: { $implicit: optgroup }"></ng-container>
|
|
967
|
+
</li>
|
|
968
|
+
<ng-container *ngTemplateOutlet="itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }"></ng-container>
|
|
969
|
+
</ng-template>
|
|
970
|
+
</ng-container>
|
|
971
|
+
<ng-container *ngIf="!group">
|
|
972
|
+
<ng-container *ngTemplateOutlet="itemslist; context: { $implicit: items, selectedOption: selectedOption }"></ng-container>
|
|
973
|
+
</ng-container>
|
|
974
|
+
<ng-template #itemslist let-options let-selectedOption="selectedOption">
|
|
975
|
+
<ng-template ngFor let-option let-i="index" [ngForOf]="options">
|
|
976
|
+
<p-dropdownItem
|
|
977
|
+
[option]="option"
|
|
978
|
+
[selected]="selectedOption == option"
|
|
979
|
+
[label]="getOptionLabel(option)"
|
|
980
|
+
[disabled]="isOptionDisabled(option)"
|
|
981
|
+
(onClick)="onItemClick($event)"
|
|
982
|
+
[template]="itemTemplate"
|
|
983
|
+
></p-dropdownItem>
|
|
984
|
+
</ng-template>
|
|
985
|
+
</ng-template>
|
|
986
|
+
<li *ngIf="filterValue && isEmpty()" class="p-dropdown-empty-message" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
987
|
+
<ng-container *ngIf="!emptyFilterTemplate && !emptyTemplate; else emptyFilter">
|
|
988
|
+
{{ emptyFilterMessageLabel }}
|
|
989
|
+
</ng-container>
|
|
990
|
+
<ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || emptyTemplate"></ng-container>
|
|
991
|
+
</li>
|
|
992
|
+
<li *ngIf="!filterValue && isEmpty()" class="p-dropdown-empty-message" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
993
|
+
<ng-container *ngIf="!emptyTemplate; else empty">
|
|
994
|
+
{{ emptyMessageLabel }}
|
|
995
|
+
</ng-container>
|
|
996
|
+
<ng-container #empty *ngTemplateOutlet="emptyTemplate"></ng-container>
|
|
997
|
+
</li>
|
|
998
|
+
</ul>
|
|
999
|
+
</ng-template>
|
|
1000
|
+
</div>
|
|
1001
|
+
<ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
|
|
1002
|
+
</div>
|
|
1003
|
+
</ng-template>
|
|
1004
|
+
</p-overlay>
|
|
1005
|
+
</div>
|
|
1006
|
+
`, isInline: true, styles: [".p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;visibility:hidden}input.p-dropdown-label{cursor:default}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(function () { return i4.Overlay; }), selector: "p-overlay", inputs: ["visible", "mode", "style", "styleClass", "contentStyle", "contentStyleClass", "target", "appendTo", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "listener", "responsive", "options"], outputs: ["visibleChange", "onBeforeShow", "onShow", "onBeforeHide", "onHide", "onAnimationStart", "onAnimationDone"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.QiusTemplate; }), selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.Tooltip; }), selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "component", type: i0.forwardRef(function () { return i6.Scroller; }), selector: "p-scroller", inputs: ["id", "style", "styleClass", "tabindex", "items", "itemSize", "scrollHeight", "scrollWidth", "orientation", "step", "delay", "resizeDelay", "appendOnly", "inline", "lazy", "disabled", "loaderDisabled", "columns", "showSpacer", "showLoader", "numToleratedItems", "loading", "autoSize", "trackBy", "options"], outputs: ["onLazyLoad", "onScroll", "onScrollIndexChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i7.AutoFocus; }), selector: "[pAutoFocus]", inputs: ["autofocus"] }, { kind: "component", type: i0.forwardRef(function () { return TimesIcon; }), selector: "TimesIcon" }, { kind: "component", type: i0.forwardRef(function () { return ChevronDownIcon; }), selector: "ChevronDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchIcon; }), selector: "SearchIcon" }, { kind: "component", type: i0.forwardRef(function () { return DropdownItem; }), selector: "p-dropdownItem", inputs: ["option", "selected", "label", "disabled", "visible", "itemSize", "template"], outputs: ["onClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1007
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Dropdown, decorators: [{
|
|
1008
|
+
type: Component,
|
|
1009
|
+
args: [{ selector: 'p-dropdown', template: `
|
|
1010
|
+
<div
|
|
1011
|
+
#container
|
|
1012
|
+
[ngClass]="{ 'p-dropdown p-component': true, 'p-disabled': disabled, 'p-dropdown-open': overlayVisible, 'p-focus': focused, 'p-dropdown-clearable': showClear && !disabled }"
|
|
1013
|
+
(click)="onMouseclick($event)"
|
|
1014
|
+
[ngStyle]="style"
|
|
1015
|
+
[class]="styleClass"
|
|
1016
|
+
>
|
|
1017
|
+
<div class="p-hidden-accessible">
|
|
1018
|
+
<input
|
|
1019
|
+
#in
|
|
1020
|
+
[attr.id]="inputId"
|
|
1021
|
+
type="text"
|
|
1022
|
+
readonly
|
|
1023
|
+
(focus)="onInputFocus($event)"
|
|
1024
|
+
aria-haspopup="listbox"
|
|
1025
|
+
[attr.placeholder]="placeholder"
|
|
1026
|
+
aria-haspopup="listbox"
|
|
1027
|
+
[attr.aria-label]="ariaLabel"
|
|
1028
|
+
[attr.aria-expanded]="false"
|
|
1029
|
+
[attr.aria-labelledby]="ariaLabelledBy"
|
|
1030
|
+
(blur)="onInputBlur($event)"
|
|
1031
|
+
(keydown)="onKeydown($event, true)"
|
|
1032
|
+
[disabled]="disabled"
|
|
1033
|
+
[attr.tabindex]="tabindex"
|
|
1034
|
+
pAutoFocus
|
|
1035
|
+
[autofocus]="autofocus"
|
|
1036
|
+
[attr.aria-activedescendant]="overlayVisible ? labelId : null"
|
|
1037
|
+
role="combobox"
|
|
1038
|
+
/>
|
|
1039
|
+
</div>
|
|
1040
|
+
<span
|
|
1041
|
+
[attr.id]="labelId"
|
|
1042
|
+
[ngClass]="{ 'p-dropdown-label p-inputtext': true, 'p-dropdown-label-empty': label == null || label.length === 0 }"
|
|
1043
|
+
*ngIf="!editable && label != null"
|
|
1044
|
+
[pTooltip]="tooltip"
|
|
1045
|
+
[tooltipPosition]="tooltipPosition"
|
|
1046
|
+
[positionStyle]="tooltipPositionStyle"
|
|
1047
|
+
[tooltipStyleClass]="tooltipStyleClass"
|
|
1048
|
+
>
|
|
1049
|
+
<ng-container *ngIf="!selectedItemTemplate">{{ label || 'empty' }}</ng-container>
|
|
1050
|
+
<ng-container *ngTemplateOutlet="selectedItemTemplate; context: { $implicit: selectedOption }"></ng-container>
|
|
1051
|
+
</span>
|
|
1052
|
+
<span [ngClass]="{ 'p-dropdown-label p-inputtext p-placeholder': true, 'p-dropdown-label-empty': placeholder == null || placeholder.length === 0 }" *ngIf="!editable && label == null">{{ placeholder || 'empty' }}</span>
|
|
1053
|
+
<input
|
|
1054
|
+
#editableInput
|
|
1055
|
+
type="text"
|
|
1056
|
+
[attr.maxlength]="maxlength"
|
|
1057
|
+
class="p-dropdown-label p-inputtext"
|
|
1058
|
+
*ngIf="editable"
|
|
1059
|
+
[disabled]="disabled"
|
|
1060
|
+
[attr.placeholder]="placeholder"
|
|
1061
|
+
aria-haspopup="listbox"
|
|
1062
|
+
[attr.aria-expanded]="overlayVisible"
|
|
1063
|
+
(input)="onEditableInputChange($event)"
|
|
1064
|
+
(focus)="onEditableInputFocus($event)"
|
|
1065
|
+
(blur)="onInputBlur($event)"
|
|
1066
|
+
/>
|
|
1067
|
+
|
|
1068
|
+
<ng-container *ngIf="isVisibleClearIcon">
|
|
1069
|
+
<TimesIcon [styleClass]="'p-dropdown-clear-icon'" (click)="clear($event)" *ngIf="!clearIconTemplate" />
|
|
1070
|
+
<span class="p-dropdown-clear-icon" (click)="clear($event)" *ngIf="clearIconTemplate">
|
|
1071
|
+
<ng-template *ngTemplateOutlet="clearIconTemplate"></ng-template>
|
|
1072
|
+
</span>
|
|
1073
|
+
</ng-container>
|
|
1074
|
+
|
|
1075
|
+
|
|
1076
|
+
<div class="p-dropdown-trigger" role="button" aria-label="dropdown trigger" aria-haspopup="listbox" [attr.aria-expanded]="overlayVisible">
|
|
1077
|
+
<ng-container *ngIf="!dropdownIconTemplate">
|
|
1078
|
+
<span class="p-dropdown-trigger-icon" *ngIf="dropdownIcon" [ngClass]="dropdownIcon"></span>
|
|
1079
|
+
<ChevronDownIcon *ngIf="!dropdownIcon" [styleClass]="'p-dropdown-trigger-icon'" />
|
|
1080
|
+
</ng-container>
|
|
1081
|
+
<span *ngIf="dropdownIconTemplate" class="p-dropdown-trigger-icon">
|
|
1082
|
+
<ng-template *ngTemplateOutlet="dropdownIconTemplate"></ng-template>
|
|
1083
|
+
</span>
|
|
1084
|
+
</div>
|
|
1085
|
+
|
|
1086
|
+
<p-overlay
|
|
1087
|
+
#overlay
|
|
1088
|
+
[(visible)]="overlayVisible"
|
|
1089
|
+
[options]="overlayOptions"
|
|
1090
|
+
[target]="'@parent'"
|
|
1091
|
+
[appendTo]="appendTo"
|
|
1092
|
+
[autoZIndex]="autoZIndex"
|
|
1093
|
+
[baseZIndex]="baseZIndex"
|
|
1094
|
+
[showTransitionOptions]="showTransitionOptions"
|
|
1095
|
+
[hideTransitionOptions]="hideTransitionOptions"
|
|
1096
|
+
(onAnimationStart)="onOverlayAnimationStart($event)"
|
|
1097
|
+
(onHide)="hide()"
|
|
1098
|
+
>
|
|
1099
|
+
<ng-template pTemplate="content">
|
|
1100
|
+
<div [ngClass]="'p-dropdown-panel p-component'" [ngStyle]="panelStyle" [class]="panelStyleClass">
|
|
1101
|
+
<ng-container *ngTemplateOutlet="headerTemplate"></ng-container>
|
|
1102
|
+
<div class="p-dropdown-header" *ngIf="filter" (click)="$event.stopPropagation()">
|
|
1103
|
+
<ng-container *ngIf="filterTemplate; else builtInFilterElement">
|
|
1104
|
+
<ng-container *ngTemplateOutlet="filterTemplate; context: { options: filterOptions }"></ng-container>
|
|
1105
|
+
</ng-container>
|
|
1106
|
+
<ng-template #builtInFilterElement>
|
|
1107
|
+
<div class="p-dropdown-filter-container">
|
|
1108
|
+
<input
|
|
1109
|
+
#filter
|
|
1110
|
+
type="text"
|
|
1111
|
+
autocomplete="off"
|
|
1112
|
+
[value]="filterValue || ''"
|
|
1113
|
+
class="p-dropdown-filter p-inputtext p-component"
|
|
1114
|
+
[attr.placeholder]="filterPlaceholder"
|
|
1115
|
+
(keydown.enter)="$event.preventDefault()"
|
|
1116
|
+
(keydown)="onKeydown($event, false)"
|
|
1117
|
+
(input)="onFilterInputChange($event)"
|
|
1118
|
+
[attr.aria-label]="ariaFilterLabel"
|
|
1119
|
+
[attr.aria-activedescendant]="overlayVisible ? 'p-highlighted-option' : labelId"
|
|
1120
|
+
/>
|
|
1121
|
+
<SearchIcon *ngIf="!filterIconTemplate" [styleClass]="'p-dropdown-filter-icon'" />
|
|
1122
|
+
<span *ngIf="filterIconTemplate" class="p-dropdown-filter-icon">
|
|
1123
|
+
<ng-template *ngTemplateOutlet="filterIconTemplate"></ng-template>
|
|
1124
|
+
</span>
|
|
1125
|
+
</div>
|
|
1126
|
+
</ng-template>
|
|
1127
|
+
</div>
|
|
1128
|
+
<div class="p-dropdown-items-wrapper" [style.max-height]="virtualScroll ? 'auto' : scrollHeight || 'auto'">
|
|
1129
|
+
<p-scroller
|
|
1130
|
+
*ngIf="virtualScroll"
|
|
1131
|
+
#scroller
|
|
1132
|
+
[items]="optionsToDisplay"
|
|
1133
|
+
[style]="{ height: scrollHeight }"
|
|
1134
|
+
[itemSize]="virtualScrollItemSize || _itemSize"
|
|
1135
|
+
[autoSize]="true"
|
|
1136
|
+
[lazy]="lazy"
|
|
1137
|
+
(onLazyLoad)="onLazyLoad.emit($event)"
|
|
1138
|
+
[options]="virtualScrollOptions"
|
|
1139
|
+
>
|
|
1140
|
+
<ng-template pTemplate="content" let-items let-scrollerOptions="options">
|
|
1141
|
+
<ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: items, options: scrollerOptions }"></ng-container>
|
|
1142
|
+
</ng-template>
|
|
1143
|
+
<ng-container *ngIf="loaderTemplate">
|
|
1144
|
+
<ng-template pTemplate="loader" let-scrollerOptions="options">
|
|
1145
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: { options: scrollerOptions }"></ng-container>
|
|
1146
|
+
</ng-template>
|
|
1147
|
+
</ng-container>
|
|
1148
|
+
</p-scroller>
|
|
1149
|
+
<ng-container *ngIf="!virtualScroll">
|
|
1150
|
+
<ng-container *ngTemplateOutlet="buildInItems; context: { $implicit: optionsToDisplay, options: {} }"></ng-container>
|
|
1151
|
+
</ng-container>
|
|
1152
|
+
|
|
1153
|
+
<ng-template #buildInItems let-items let-scrollerOptions="options">
|
|
1154
|
+
<ul #items [attr.id]="listId" class="p-dropdown-items" [ngClass]="scrollerOptions.contentStyleClass" [style]="scrollerOptions.contentStyle" role="listbox">
|
|
1155
|
+
<ng-container *ngIf="group">
|
|
1156
|
+
<ng-template ngFor let-optgroup [ngForOf]="items">
|
|
1157
|
+
<li class="p-dropdown-item-group" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
1158
|
+
<span *ngIf="!groupTemplate">{{ getOptionGroupLabel(optgroup) || 'empty' }}</span>
|
|
1159
|
+
<ng-container *ngTemplateOutlet="groupTemplate; context: { $implicit: optgroup }"></ng-container>
|
|
1160
|
+
</li>
|
|
1161
|
+
<ng-container *ngTemplateOutlet="itemslist; context: { $implicit: getOptionGroupChildren(optgroup), selectedOption: selectedOption }"></ng-container>
|
|
1162
|
+
</ng-template>
|
|
1163
|
+
</ng-container>
|
|
1164
|
+
<ng-container *ngIf="!group">
|
|
1165
|
+
<ng-container *ngTemplateOutlet="itemslist; context: { $implicit: items, selectedOption: selectedOption }"></ng-container>
|
|
1166
|
+
</ng-container>
|
|
1167
|
+
<ng-template #itemslist let-options let-selectedOption="selectedOption">
|
|
1168
|
+
<ng-template ngFor let-option let-i="index" [ngForOf]="options">
|
|
1169
|
+
<p-dropdownItem
|
|
1170
|
+
[option]="option"
|
|
1171
|
+
[selected]="selectedOption == option"
|
|
1172
|
+
[label]="getOptionLabel(option)"
|
|
1173
|
+
[disabled]="isOptionDisabled(option)"
|
|
1174
|
+
(onClick)="onItemClick($event)"
|
|
1175
|
+
[template]="itemTemplate"
|
|
1176
|
+
></p-dropdownItem>
|
|
1177
|
+
</ng-template>
|
|
1178
|
+
</ng-template>
|
|
1179
|
+
<li *ngIf="filterValue && isEmpty()" class="p-dropdown-empty-message" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
1180
|
+
<ng-container *ngIf="!emptyFilterTemplate && !emptyTemplate; else emptyFilter">
|
|
1181
|
+
{{ emptyFilterMessageLabel }}
|
|
1182
|
+
</ng-container>
|
|
1183
|
+
<ng-container #emptyFilter *ngTemplateOutlet="emptyFilterTemplate || emptyTemplate"></ng-container>
|
|
1184
|
+
</li>
|
|
1185
|
+
<li *ngIf="!filterValue && isEmpty()" class="p-dropdown-empty-message" [ngStyle]="{ height: scrollerOptions.itemSize + 'px' }">
|
|
1186
|
+
<ng-container *ngIf="!emptyTemplate; else empty">
|
|
1187
|
+
{{ emptyMessageLabel }}
|
|
1188
|
+
</ng-container>
|
|
1189
|
+
<ng-container #empty *ngTemplateOutlet="emptyTemplate"></ng-container>
|
|
1190
|
+
</li>
|
|
1191
|
+
</ul>
|
|
1192
|
+
</ng-template>
|
|
1193
|
+
</div>
|
|
1194
|
+
<ng-container *ngTemplateOutlet="footerTemplate"></ng-container>
|
|
1195
|
+
</div>
|
|
1196
|
+
</ng-template>
|
|
1197
|
+
</p-overlay>
|
|
1198
|
+
</div>
|
|
1199
|
+
`, host: {
|
|
1200
|
+
class: 'p-element p-inputwrapper',
|
|
1201
|
+
'[class.p-inputwrapper-filled]': 'filled',
|
|
1202
|
+
'[class.p-inputwrapper-focus]': 'focused || overlayVisible'
|
|
1203
|
+
}, providers: [DROPDOWN_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".p-dropdown{display:inline-flex;cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.p-dropdown-clear-icon{position:absolute;top:50%;margin-top:-.5rem}.p-dropdown-trigger{display:flex;align-items:center;justify-content:center;flex-shrink:0}.p-dropdown-label{display:block;white-space:nowrap;overflow:hidden;flex:1 1 auto;width:1%;text-overflow:ellipsis;cursor:pointer}.p-dropdown-label-empty{overflow:hidden;visibility:hidden}input.p-dropdown-label{cursor:default}.p-dropdown-items-wrapper{overflow:auto}.p-dropdown-item{cursor:pointer;font-weight:400;white-space:nowrap;position:relative;overflow:hidden}.p-dropdown-items{margin:0;padding:0;list-style-type:none}.p-dropdown-filter{width:100%}.p-dropdown-filter-container{position:relative}.p-dropdown-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-dropdown{display:flex}.p-fluid .p-dropdown .p-dropdown-label{width:1%}\n"] }]
|
|
1204
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i3.FilterService }, { type: i3.ParallelUIAngularConfig }]; }, propDecorators: { scrollHeight: [{
|
|
1205
|
+
type: Input
|
|
1206
|
+
}], filter: [{
|
|
1207
|
+
type: Input
|
|
1208
|
+
}], name: [{
|
|
1209
|
+
type: Input
|
|
1210
|
+
}], style: [{
|
|
1211
|
+
type: Input
|
|
1212
|
+
}], panelStyle: [{
|
|
1213
|
+
type: Input
|
|
1214
|
+
}], styleClass: [{
|
|
1215
|
+
type: Input
|
|
1216
|
+
}], panelStyleClass: [{
|
|
1217
|
+
type: Input
|
|
1218
|
+
}], readonly: [{
|
|
1219
|
+
type: Input
|
|
1220
|
+
}], required: [{
|
|
1221
|
+
type: Input
|
|
1222
|
+
}], editable: [{
|
|
1223
|
+
type: Input
|
|
1224
|
+
}], appendTo: [{
|
|
1225
|
+
type: Input
|
|
1226
|
+
}], tabindex: [{
|
|
1227
|
+
type: Input
|
|
1228
|
+
}], placeholder: [{
|
|
1229
|
+
type: Input
|
|
1230
|
+
}], filterPlaceholder: [{
|
|
1231
|
+
type: Input
|
|
1232
|
+
}], filterLocale: [{
|
|
1233
|
+
type: Input
|
|
1234
|
+
}], inputId: [{
|
|
1235
|
+
type: Input
|
|
1236
|
+
}], selectId: [{
|
|
1237
|
+
type: Input
|
|
1238
|
+
}], dataKey: [{
|
|
1239
|
+
type: Input
|
|
1240
|
+
}], filterBy: [{
|
|
1241
|
+
type: Input
|
|
1242
|
+
}], autofocus: [{
|
|
1243
|
+
type: Input
|
|
1244
|
+
}], resetFilterOnHide: [{
|
|
1245
|
+
type: Input
|
|
1246
|
+
}], dropdownIcon: [{
|
|
1247
|
+
type: Input
|
|
1248
|
+
}], optionLabel: [{
|
|
1249
|
+
type: Input
|
|
1250
|
+
}], optionValue: [{
|
|
1251
|
+
type: Input
|
|
1252
|
+
}], optionDisabled: [{
|
|
1253
|
+
type: Input
|
|
1254
|
+
}], optionGroupLabel: [{
|
|
1255
|
+
type: Input
|
|
1256
|
+
}], optionGroupChildren: [{
|
|
1257
|
+
type: Input
|
|
1258
|
+
}], autoDisplayFirst: [{
|
|
1259
|
+
type: Input
|
|
1260
|
+
}], group: [{
|
|
1261
|
+
type: Input
|
|
1262
|
+
}], showClear: [{
|
|
1263
|
+
type: Input
|
|
1264
|
+
}], emptyFilterMessage: [{
|
|
1265
|
+
type: Input
|
|
1266
|
+
}], emptyMessage: [{
|
|
1267
|
+
type: Input
|
|
1268
|
+
}], lazy: [{
|
|
1269
|
+
type: Input
|
|
1270
|
+
}], virtualScroll: [{
|
|
1271
|
+
type: Input
|
|
1272
|
+
}], virtualScrollItemSize: [{
|
|
1273
|
+
type: Input
|
|
1274
|
+
}], virtualScrollOptions: [{
|
|
1275
|
+
type: Input
|
|
1276
|
+
}], overlayOptions: [{
|
|
1277
|
+
type: Input
|
|
1278
|
+
}], ariaFilterLabel: [{
|
|
1279
|
+
type: Input
|
|
1280
|
+
}], ariaLabel: [{
|
|
1281
|
+
type: Input
|
|
1282
|
+
}], ariaLabelledBy: [{
|
|
1283
|
+
type: Input
|
|
1284
|
+
}], filterMatchMode: [{
|
|
1285
|
+
type: Input
|
|
1286
|
+
}], maxlength: [{
|
|
1287
|
+
type: Input
|
|
1288
|
+
}], tooltip: [{
|
|
1289
|
+
type: Input
|
|
1290
|
+
}], tooltipPosition: [{
|
|
1291
|
+
type: Input
|
|
1292
|
+
}], tooltipPositionStyle: [{
|
|
1293
|
+
type: Input
|
|
1294
|
+
}], tooltipStyleClass: [{
|
|
1295
|
+
type: Input
|
|
1296
|
+
}], autofocusFilter: [{
|
|
1297
|
+
type: Input
|
|
1298
|
+
}], overlayDirection: [{
|
|
1299
|
+
type: Input
|
|
1300
|
+
}], onChange: [{
|
|
1301
|
+
type: Output
|
|
1302
|
+
}], onFilter: [{
|
|
1303
|
+
type: Output
|
|
1304
|
+
}], onFocus: [{
|
|
1305
|
+
type: Output
|
|
1306
|
+
}], onBlur: [{
|
|
1307
|
+
type: Output
|
|
1308
|
+
}], onClick: [{
|
|
1309
|
+
type: Output
|
|
1310
|
+
}], onShow: [{
|
|
1311
|
+
type: Output
|
|
1312
|
+
}], onHide: [{
|
|
1313
|
+
type: Output
|
|
1314
|
+
}], onClear: [{
|
|
1315
|
+
type: Output
|
|
1316
|
+
}], onLazyLoad: [{
|
|
1317
|
+
type: Output
|
|
1318
|
+
}], containerViewChild: [{
|
|
1319
|
+
type: ViewChild,
|
|
1320
|
+
args: ['container']
|
|
1321
|
+
}], filterViewChild: [{
|
|
1322
|
+
type: ViewChild,
|
|
1323
|
+
args: ['filter']
|
|
1324
|
+
}], accessibleViewChild: [{
|
|
1325
|
+
type: ViewChild,
|
|
1326
|
+
args: ['in']
|
|
1327
|
+
}], editableInputViewChild: [{
|
|
1328
|
+
type: ViewChild,
|
|
1329
|
+
args: ['editableInput']
|
|
1330
|
+
}], itemsViewChild: [{
|
|
1331
|
+
type: ViewChild,
|
|
1332
|
+
args: ['items']
|
|
1333
|
+
}], scroller: [{
|
|
1334
|
+
type: ViewChild,
|
|
1335
|
+
args: ['scroller']
|
|
1336
|
+
}], overlayViewChild: [{
|
|
1337
|
+
type: ViewChild,
|
|
1338
|
+
args: ['overlay']
|
|
1339
|
+
}], templates: [{
|
|
1340
|
+
type: ContentChildren,
|
|
1341
|
+
args: [QiusTemplate]
|
|
1342
|
+
}], disabled: [{
|
|
1343
|
+
type: Input
|
|
1344
|
+
}], itemSize: [{
|
|
1345
|
+
type: Input
|
|
1346
|
+
}], autoZIndex: [{
|
|
1347
|
+
type: Input
|
|
1348
|
+
}], baseZIndex: [{
|
|
1349
|
+
type: Input
|
|
1350
|
+
}], showTransitionOptions: [{
|
|
1351
|
+
type: Input
|
|
1352
|
+
}], hideTransitionOptions: [{
|
|
1353
|
+
type: Input
|
|
1354
|
+
}], options: [{
|
|
1355
|
+
type: Input
|
|
1356
|
+
}], filterValue: [{
|
|
1357
|
+
type: Input
|
|
1358
|
+
}] } });
|
|
1359
|
+
export class DropdownModule {
|
|
1360
|
+
}
|
|
1361
|
+
DropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1362
|
+
DropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: DropdownModule, declarations: [Dropdown, DropdownItem], imports: [CommonModule, OverlayModule, SharedModule, TooltipModule, RippleModule, ScrollerModule, AutoFocusModule, TimesIcon, ChevronDownIcon, SearchIcon], exports: [Dropdown, OverlayModule, SharedModule, ScrollerModule] });
|
|
1363
|
+
DropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropdownModule, imports: [CommonModule, OverlayModule, SharedModule, TooltipModule, RippleModule, ScrollerModule, AutoFocusModule, TimesIcon, ChevronDownIcon, SearchIcon, OverlayModule, SharedModule, ScrollerModule] });
|
|
1364
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DropdownModule, decorators: [{
|
|
1365
|
+
type: NgModule,
|
|
1366
|
+
args: [{
|
|
1367
|
+
imports: [CommonModule, OverlayModule, SharedModule, TooltipModule, RippleModule, ScrollerModule, AutoFocusModule, TimesIcon, ChevronDownIcon, SearchIcon],
|
|
1368
|
+
exports: [Dropdown, OverlayModule, SharedModule, ScrollerModule],
|
|
1369
|
+
declarations: [Dropdown, DropdownItem]
|
|
1370
|
+
}]
|
|
1371
|
+
}] });
|
|
1372
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFJSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxRQUFRLEVBR1IsTUFBTSxFQUlOLFNBQVMsRUFDVCxpQkFBaUIsRUFFcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBMEQsWUFBWSxFQUFjLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxSyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JFLE9BQU8sRUFBVyxhQUFhLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFZLGNBQWMsRUFBbUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDNUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7QUFFOUUsTUFBTSxDQUFDLE1BQU0sdUJB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LFlBQVksRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7aUJBQ3pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ01vZHVsZSxcbiAgICBOZ1pvbmUsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgUmVuZGVyZXIyLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBWaWV3UmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmlsdGVyU2VydmljZSwgT3ZlcmxheU9wdGlvbnMsIFBhcmFsbGVsVUlBbmd1bGFyQ29uZmlnLCBRaXVzVGVtcGxhdGUsIFNlbGVjdEl0ZW0sIFNoYXJlZE1vZHVsZSwgVHJhbnNsYXRpb25LZXlzIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvYXBpJztcbmltcG9ydCB7IEF1dG9Gb2N1c01vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2F1dG9mb2N1cyc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvZG9tJztcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9vdmVybGF5JztcbmltcG9ydCB7IFJpcHBsZU1vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL3JpcHBsZSc7XG5pbXBvcnQgeyBTY3JvbGxlciwgU2Nyb2xsZXJNb2R1bGUsIFNjcm9sbGVyT3B0aW9ucyB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL3Njcm9sbGVyJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci90b29sdGlwJztcbmltcG9ydCB7IE9iamVjdFV0aWxzLCBVbmlxdWVDb21wb25lbnRJZCB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRpbWVzSWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL3RpbWVzJztcbmltcG9ydCB7IENoZXZyb25Eb3duSWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL2NoZXZyb25kb3duJztcbmltcG9ydCB7IFNlYXJjaEljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9zZWFyY2gnO1xuXG5leHBvcnQgY29uc3QgRFJPUERPV05fVkFMVUVfQUNDRVNTT1I6IGFueSA9IHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEcm9wZG93biksXG4gICAgbXVsdGk6IHRydWVcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25GaWx0ZXJPcHRpb25zIHtcbiAgICBmaWx0ZXI/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gICAgcmVzZXQ/OiAoKSA9PiB2b2lkO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtZHJvcGRvd25JdGVtJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bGlcbiAgICAgICAgICAgIChjbGljayk9XCJvbk9wdGlvbkNsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyBoZWlnaHQ6IGl0ZW1TaXplICsgJ3B4JyB9XCJcbiAgICAgICAgICAgIFtpZF09XCJzZWxlY3RlZCA/ICdwLWhpZ2hsaWdodGVkLW9wdGlvbicgOiAnJ1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWRyb3Bkb3duLWl0ZW0nOiB0cnVlLCAncC1oaWdobGlnaHQnOiBzZWxlY3RlZCwgJ3AtZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGVtcGxhdGVcIj57eyBsYWJlbCA/PyAnZW1wdHknIH19PC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9saT5cbiAgICBgLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkl0ZW0ge1xuICAgIEBJbnB1dCgpIG9wdGlvbjogU2VsZWN0SXRlbTtcblxuICAgIEBJbnB1dCgpIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIF9sYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGl0ZW1TaXplOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBPdXRwdXQoKSBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIG9uT3B0aW9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMub25DbGljay5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvblxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1kcm9wZG93bicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgI2NvbnRhaW5lclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncC1kcm9wZG93biBwLWNvbXBvbmVudCc6IHRydWUsICdwLWRpc2FibGVkJzogZGlzYWJsZWQsICdwLWRyb3Bkb3duLW9wZW4nOiBvdmVybGF5VmlzaWJsZSwgJ3AtZm9jdXMnOiBmb2N1c2VkLCAncC1kcm9wZG93bi1jbGVhcmFibGUnOiBzaG93Q2xlYXIgJiYgIWRpc2FibGVkIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTW91c2VjbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtaGlkZGVuLWFjY2Vzc2libGVcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgI2luXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlucHV0SWRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50LCB0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtYWN0aXZlZGVzY2VuZGFudF09XCJvdmVybGF5VmlzaWJsZSA/IGxhYmVsSWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImxhYmVsSWRcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtZHJvcGRvd24tbGFiZWwgcC1pbnB1dHRleHQnOiB0cnVlLCAncC1kcm9wZG93bi1sYWJlbC1lbXB0eSc6IGxhYmVsID09IG51bGwgfHwgbGFiZWwubGVuZ3RoID09PSAwIH1cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWVkaXRhYmxlICYmIGxhYmVsICE9IG51bGxcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCJ0b29sdGlwXCJcbiAgICAgICAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgW3Bvc2l0aW9uU3R5bGVdPVwidG9vbHRpcFBvc2l0aW9uU3R5bGVcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwU3R5bGVDbGFzc109XCJ0b29sdGlwU3R5bGVDbGFzc1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3RlZEl0ZW1UZW1wbGF0ZVwiPnt7IGxhYmVsIHx8ICdlbXB0eScgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VsZWN0ZWRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBzZWxlY3RlZE9wdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBbbmdDbGFzc109XCJ7ICdwLWRyb3Bkb3duLWxhYmVsIHAtaW5wdXR0ZXh0IHAtcGxhY2Vob2xkZXInOiB0cnVlLCAncC1kcm9wZG93bi1sYWJlbC1lbXB0eSc6IHBsYWNlaG9sZGVyID09IG51bGwgfHwgcGxhY2Vob2xkZXIubGVuZ3RoID09PSAwIH1cIiAqbmdJZj1cIiFlZGl0YWJsZSAmJiBsYWJlbCA9PSBudWxsXCI+e3sgcGxhY2Vob2xkZXIgfHwgJ2VtcHR5JyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICNlZGl0YWJsZUlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1sYWJlbCBwLWlucHV0dGV4dFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlZGl0YWJsZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3ZlcmxheVZpc2libGVcIlxuICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkVkaXRhYmxlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uRWRpdGFibGVJbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChibHVyKT1cIm9uSW5wdXRCbHVyKCRldmVudClcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzVmlzaWJsZUNsZWFySWNvblwiPlxuICAgICAgICAgICAgICAgIDxUaW1lc0ljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtZHJvcGRvd24tY2xlYXItaWNvbidcIiAoY2xpY2spPVwiY2xlYXIoJGV2ZW50KVwiICpuZ0lmPVwiIWNsZWFySWNvblRlbXBsYXRlXCIgLz5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZHJvcGRvd24tY2xlYXItaWNvblwiIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCIgKm5nSWY9XCJjbGVhckljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbGVhckljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgIFxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1kcm9wZG93bi10cmlnZ2VyXCIgcm9sZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJkcm9wZG93biB0cmlnZ2VyXCIgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm92ZXJsYXlWaXNpYmxlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkcm9wZG93bkljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZHJvcGRvd24tdHJpZ2dlci1pY29uXCIgKm5nSWY9XCJkcm9wZG93bkljb25cIiBbbmdDbGFzc109XCJkcm9wZG93bkljb25cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxDaGV2cm9uRG93bkljb24gKm5nSWY9XCIhZHJvcGRvd25JY29uXCIgW3N0eWxlQ2xhc3NdPVwiJ3AtZHJvcGRvd24tdHJpZ2dlci1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkcm9wZG93bkljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1kcm9wZG93bi10cmlnZ2VyLWljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25JY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cC1vdmVybGF5XG4gICAgICAgICAgICAgICAgI292ZXJsYXlcbiAgICAgICAgICAgICAgICBbKHZpc2libGUpXT1cIm92ZXJsYXlWaXNpYmxlXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJvdmVybGF5T3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgW3RhcmdldF09XCInQHBhcmVudCdcIlxuICAgICAgICAgICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgICAgICAgICAgW2F1dG9aSW5kZXhdPVwiYXV0b1pJbmRleFwiXG4gICAgICAgICAgICAgICAgW2Jhc2VaSW5kZXhdPVwiYmFzZVpJbmRleFwiXG4gICAgICAgICAgICAgICAgW3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCJzaG93VHJhbnNpdGlvbk9wdGlvbnNcIlxuICAgICAgICAgICAgICAgIFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwiaGlkZVRyYW5zaXRpb25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAob25BbmltYXRpb25TdGFydCk9XCJvbk92ZXJsYXlBbmltYXRpb25TdGFydCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAob25IaWRlKT1cImhpZGUoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIncC1kcm9wZG93bi1wYW5lbCBwLWNvbXBvbmVudCdcIiBbbmdTdHlsZV09XCJwYW5lbFN0eWxlXCIgW2NsYXNzXT1cInBhbmVsU3R5bGVDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1kcm9wZG93bi1oZWFkZXJcIiAqbmdJZj1cImZpbHRlclwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmlsdGVyVGVtcGxhdGU7IGVsc2UgYnVpbHRJbkZpbHRlckVsZW1lbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlclRlbXBsYXRlOyBjb250ZXh0OiB7IG9wdGlvbnM6IGZpbHRlck9wdGlvbnMgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbHRJbkZpbHRlckVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWRyb3Bkb3duLWZpbHRlci1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNmaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmlsdGVyVmFsdWUgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1kcm9wZG93bi1maWx0ZXIgcC1pbnB1dHRleHQgcC1jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25GaWx0ZXJJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFGaWx0ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIm92ZXJsYXlWaXNpYmxlID8gJ3AtaGlnaGxpZ2h0ZWQtb3B0aW9uJyA6IGxhYmVsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uICpuZ0lmPVwiIWZpbHRlckljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWRyb3Bkb3duLWZpbHRlci1pY29uJ1wiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZpbHRlckljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1kcm9wZG93bi1maWx0ZXItaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImZpbHRlckljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWRyb3Bkb3duLWl0ZW1zLXdyYXBwZXJcIiBbc3R5bGUubWF4LWhlaWdodF09XCJ2aXJ0dWFsU2Nyb2xsID8gJ2F1dG8nIDogc2Nyb2xsSGVpZ2h0IHx8ICdhdXRvJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXNjcm9sbGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidmlydHVhbFNjcm9sbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzY3JvbGxlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwib3B0aW9uc1RvRGlzcGxheVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZV09XCJ7IGhlaWdodDogc2Nyb2xsSGVpZ2h0IH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXRlbVNpemVdPVwidmlydHVhbFNjcm9sbEl0ZW1TaXplIHx8IF9pdGVtU2l6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdXRvU2l6ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhenldPVwibGF6eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkxhenlMb2FkKT1cIm9uTGF6eUxvYWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwidmlydHVhbFNjcm9sbE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIiBsZXQtaXRlbXMgbGV0LXNjcm9sbGVyT3B0aW9ucz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidWlsZEluSXRlbXM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcywgb3B0aW9uczogc2Nyb2xsZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibG9hZGVyXCIgbGV0LXNjcm9sbGVyT3B0aW9ucz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgb3B0aW9uczogc2Nyb2xsZXJPcHRpb25zIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1zY3JvbGxlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXZpcnR1YWxTY3JvbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1aWxkSW5JdGVtczsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbnNUb0Rpc3BsYXksIG9wdGlvbnM6IHt9IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbGRJbkl0ZW1zIGxldC1pdGVtcyBsZXQtc2Nyb2xsZXJPcHRpb25zPVwib3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgI2l0ZW1zIFthdHRyLmlkXT1cImxpc3RJZFwiIGNsYXNzPVwicC1kcm9wZG93bi1pdGVtc1wiIFtuZ0NsYXNzXT1cInNjcm9sbGVyT3B0aW9ucy5jb250ZW50U3R5bGVDbGFzc1wiIFtzdHlsZV09XCJzY3JvbGxlck9wdGlvbnMuY29udGVudFN0eWxlXCIgcm9sZT1cImxpc3Rib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtb3B0Z3JvdXAgW25nRm9yT2ZdPVwiaXRlbXNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicC1kcm9wZG93bi1pdGVtLWdyb3VwXCIgW25nU3R5bGVdPVwieyBoZWlnaHQ6IHNjcm9sbGVyT3B0aW9ucy5pdGVtU2l6ZSArICdweCcgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZ3JvdXBUZW1wbGF0ZVwiPnt7IGdldE9wdGlvbkdyb3VwTGFiZWwob3B0Z3JvdXApIHx8ICdlbXB0eScgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ3JvdXBUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGdyb3VwIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1zbGlzdDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGdldE9wdGlvbkdyb3VwQ2hpbGRyZW4ob3B0Z3JvdXApLCBzZWxlY3RlZE9wdGlvbjogc2VsZWN0ZWRPcHRpb24gfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbXNsaXN0OyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbXMsIHNlbGVjdGVkT3B0aW9uOiBzZWxlY3RlZE9wdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXRlbXNsaXN0IGxldC1vcHRpb25zIGxldC1zZWxlY3RlZE9wdGlvbj1cInNlbGVjdGVkT3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1vcHRpb24gbGV0LWk9XCJpbmRleFwiIFtuZ0Zvck9mXT1cIm9wdGlvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd25JdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uXT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWRPcHRpb24gPT0gb3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJnZXRPcHRpb25MYWJlbChvcHRpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc09wdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvcC1kcm9wZG93bkl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nSWY9XCJmaWx0ZXJWYWx1ZSAmJiBpc0VtcHR5KClcIiBjbGFzcz1cInAtZHJvcGRvd24tZW1wdHktbWVzc2FnZVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxlck9wdGlvbnMuaXRlbVNpemUgKyAncHgnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWVtcHR5RmlsdGVyVGVtcGxhdGUgJiYgIWVtcHR5VGVtcGxhdGU7IGVsc2UgZW1wdHlGaWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW1wdHlGaWx0ZXJNZXNzYWdlTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNlbXB0eUZpbHRlciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5RmlsdGVyVGVtcGxhdGUgfHwgZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cIiFmaWx0ZXJWYWx1ZSAmJiBpc0VtcHR5KClcIiBjbGFzcz1cInAtZHJvcGRvd24tZW1wdHktbWVzc2FnZVwiIFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBzY3JvbGxlck9wdGlvbnMuaXRlbVNpemUgKyAncHgnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWVtcHR5VGVtcGxhdGU7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZW1wdHlNZXNzYWdlTGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICNlbXB0eSAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3Atb3ZlcmxheT5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcblxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLWVsZW1lbnQgcC1pbnB1dHdyYXBwZXInLFxuICAgICAgICAnW2NsYXNzLnAtaW5wdXR3cmFwcGVyLWZpbGxlZF0nOiAnZmlsbGVkJyxcbiAgICAgICAgJ1tjbGFzcy5wLWlucHV0d3JhcHBlci1mb2N1c10nOiAnZm9jdXNlZCB8fCBvdmVybGF5VmlzaWJsZSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW0RST1BET1dOX1ZBTFVFX0FDQ0VTU09SXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0OiBzdHJpbmcgPSAnMjAwcHgnO1xuXG4gICAgQElucHV0KCkgZmlsdGVyOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc3R5bGU6IGFueTtcblxuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGU6IGFueTtcblxuICAgIEBJbnB1dCgpIHN0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHBhbmVsU3R5bGVDbGFzczogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgYXBwZW5kVG86IGFueTtcblxuICAgIEBJbnB1dCgpIHRhYmluZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZmlsdGVyUGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGZpbHRlckxvY2FsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgaW5wdXRJZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc2VsZWN0SWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGRhdGFLZXk6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGZpbHRlckJ5OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBhdXRvZm9jdXM6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSByZXNldEZpbHRlck9uSGlkZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZHJvcGRvd25JY29uOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBvcHRpb25MYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgb3B0aW9uVmFsdWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG9wdGlvbkRpc2FibGVkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBvcHRpb25Hcm91cExhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBvcHRpb25Hcm91cENoaWxkcmVuOiBzdHJpbmcgPSAnaXRlbXMnO1xuXG4gICAgQElucHV0KCkgYXV0b0Rpc3BsYXlGaXJzdDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBncm91cDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHNob3dDbGVhcjogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGVtcHR5RmlsdGVyTWVzc2FnZTogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBlbXB0eU1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgdmlydHVhbFNjcm9sbDogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGxJdGVtU2l6ZTogbnVtYmVyO1xuXG4gICAgQElucHV0KCkgdmlydHVhbFNjcm9sbE9wdGlvbnM6IFNjcm9sbGVyT3B0aW9ucztcblxuICAgIEBJbnB1dCgpIG92ZXJsYXlPcHRpb25zOiBPdmVybGF5T3B0aW9ucztcblxuICAgIEBJbnB1dCgpIGFyaWFGaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBhcmlhTGFiZWxsZWRCeTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZmlsdGVyTWF0Y2hNb2RlOiBzdHJpbmcgPSAnY29udGFpbnMnO1xuXG4gICAgQElucHV0KCkgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0JztcblxuICAgIEBJbnB1dCgpIHRvb2x0aXBQb3NpdGlvblN0eWxlOiBzdHJpbmcgPSAnYWJzb2x1dGUnO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcFN0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGF1dG9mb2N1c0ZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBvdmVybGF5RGlyZWN0aW9uOiBzdHJpbmcgPSAnZW5kJztcblxuICAgIEBPdXRwdXQoKSBvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25GaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uQmx1cjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25TaG93OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbkhpZGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uTGF6eUxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyVmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsdGVyJykgZmlsdGVyVmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnaW4nKSBhY2Nlc3NpYmxlVmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnZWRpdGFibGVJbnB1dCcpIGVkaXRhYmxlSW5wdXRWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdpdGVtcycpIGl0ZW1zVmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnc2Nyb2xsZXInKSBzY3JvbGxlcjogU2Nyb2xsZXI7XG5cbiAgICBAVmlld0NoaWxkKCdvdmVybGF5Jykgb3ZlcmxheVZpZXdDaGlsZDogT3ZlcmxheTtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oUWl1c1RlbXBsYXRlKSB0ZW1wbGF0ZXM6IFF1ZXJ5TGlzdDxhbnk+O1xuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBzZXQgZGlzYWJsZWQoX2Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgICAgIGlmIChfZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5vdmVybGF5VmlzaWJsZSkgdGhpcy5oaWRlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IF9kaXNhYmxlZDtcbiAgICAgICAgaWYgKCEodGhpcy5jZCBhcyBWaWV3UmVmKS5kZXN0cm95ZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogQGRlcHJlY2F0ZWQgKi9cbiAgICBfaXRlbVNpemU6IG51bWJlcjtcbiAgICBASW5wdXQoKSBnZXQgaXRlbVNpemUoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1TaXplO1xuICAgIH1cbiAgICBzZXQgaXRlbVNpemUodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5faXRlbVNpemUgPSB2YWw7XG4gICAgICAgIGNvbnNvbGUud2FybignVGhlIGl0ZW1TaXplIHByb3BlcnR5IGlzIGRlcHJlY2F0ZWQsIHVzZSB2aXJ0dWFsU2Nyb2xsSXRlbVNpemUgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICAvKiBAZGVwcmVjYXRlZCAqL1xuICAgIF9hdXRvWkluZGV4OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGdldCBhdXRvWkluZGV4KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b1pJbmRleDtcbiAgICB9XG4gICAgc2V0IGF1dG9aSW5kZXgodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2F1dG9aSW5kZXggPSB2YWw7XG4gICAgICAgIGNvbnNvbGUud2FybignVGhlIGF1dG9aSW5kZXggcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MTQuMi4wLCB1c2Ugb3ZlcmxheU9wdGlvbnMgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICAvKiBAZGVwcmVjYXRlZCAqL1xuICAgIF9iYXNlWkluZGV4OiBudW1iZXI7XG4gICAgQElucHV0KCkgZ2V0IGJhc2VaSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Jhc2VaSW5kZXg7XG4gICAgfVxuICAgIHNldCBiYXNlWkluZGV4KHZhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX2Jhc2VaSW5kZXggPSB2YWw7XG4gICAgICAgIGNvbnNvbGUud2FybignVGhlIGJhc2VaSW5kZXggcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MTQuMi4wLCB1c2Ugb3ZlcmxheU9wdGlvbnMgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICAvKiBAZGVwcmVjYXRlZCAqL1xuICAgIF9zaG93VHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcbiAgICBASW5wdXQoKSBnZXQgc2hvd1RyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93VHJhbnNpdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBzaG93VHJhbnNpdGlvbk9wdGlvbnModmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2hvd1RyYW5zaXRpb25PcHRpb25zID0gdmFsO1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBzaG93VHJhbnNpdGlvbk9wdGlvbnMgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MTQuMi4wLCB1c2Ugb3ZlcmxheU9wdGlvbnMgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICAvKiBAZGVwcmVjYXRlZCAqL1xuICAgIF9oaWRlVHJhbnNpdGlvbk9wdGlvbnM6IHN0cmluZztcbiAgICBASW5wdXQoKSBnZXQgaGlkZVRyYW5zaXRpb25PcHRpb25zKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlVHJhbnNpdGlvbk9wdGlvbnM7XG4gICAgfVxuICAgIHNldCBoaWRlVHJhbnNpdGlvbk9wdGlvbnModmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faGlkZVRyYW5zaXRpb25PcHRpb25zID0gdmFsO1xuICAgICAgICBjb25zb2xlLndhcm4oJ1RoZSBoaWRlVHJhbnNpdGlvbk9wdGlvbnMgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBzaW5jZSB2MTQuMi4wLCB1c2Ugb3ZlcmxheU9wdGlvbnMgcHJvcGVydHkgaW5zdGVhZC4nKTtcbiAgICB9XG5cbiAgICBpdGVtc1dyYXBwZXI6IEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZ3JvdXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGxvYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgc2VsZWN0ZWRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBoZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZm9vdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBlbXB0eUZpbHRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGRyb3Bkb3duSWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY2xlYXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBmaWx0ZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBmaWx0ZXJPcHRpb25zOiBEcm9wZG93bkZpbHRlck9wdGlvbnM7XG5cbiAgICBzZWxlY3RlZE9wdGlvbjogYW55O1xuXG4gICAgX29wdGlvbnM6IGFueVtdO1xuXG4gICAgdmFsdWU6IGFueTtcblxuICAgIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgICBvbk1vZGVsVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7fTtcblxuICAgIG9wdGlvbnNUb0Rpc3BsYXk6IGFueVtdO1xuXG4gICAgaG92ZXI6IGJvb2xlYW47XG5cbiAgICBmb2N1c2VkOiBib29sZWFuO1xuXG4gICAgb3ZlcmxheVZpc2libGU6IGJvb2xlYW47XG5cbiAgICBvcHRpb25zQ2hhbmdlZDogYm9vbGVhbjtcblxuICAgIHBhbmVsOiBIVE1MRGl2RWxlbWVudDtcblxuICAgIGRpbWVuc2lvbnNVcGRhdGVkOiBib29sZWFuO1xuXG4gICAgaG92ZXJlZEl0ZW06IGFueTtcblxuICAgIHNlbGVjdGVkT3B0aW9uVXBkYXRlZDogYm9vbGVhbjtcblxuICAgIF9maWx0ZXJWYWx1ZTogc3RyaW5nO1xuXG4gICAgc2VhcmNoVmFsdWU6IHN0cmluZztcblxuICAgIHNlYXJjaEluZGV4OiBudW1iZXI7XG5cbiAgICBzZWFyY2hUaW1lb3V0OiBhbnk7XG5cbiAgICBwcmV2aW91c1NlYXJjaENoYXI6IHN0cmluZztcblxuICAgIGN1cnJlbnRTZWFyY2hDaGFyOiBzdHJpbmc7XG5cbiAgICBwcmV2ZW50TW9kZWxUb3VjaGVkOiBib29sZWFuO1xuXG4gICAgaWQ6IHN0cmluZyA9IFVuaXF1ZUNvbXBvbmVudElkKCk7XG5cbiAgICBsYWJlbElkOiBzdHJpbmc7XG5cbiAgICBsaXN0SWQ6IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHB1YmxpYyBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyB6b25lOiBOZ1pvbmUsIHB1YmxpYyBmaWx0ZXJTZXJ2aWNlOiBGaWx0ZXJTZXJ2aWNlLCBwdWJsaWMgY29uZmlnOiBQYXJhbGxlbFVJQW5ndWxhckNvbmZpZykge31cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2l0ZW0nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnc2VsZWN0ZWRJdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaGVhZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZm9vdGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZW1wdHlmaWx0ZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVtcHR5RmlsdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5JzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbXB0eVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdncm91cCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbG9hZGVyJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZXJUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZHJvcGRvd25pY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wZG93bkljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnY2xlYXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGVhckljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnZmlsdGVyaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zVG9EaXNwbGF5ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKG51bGwpO1xuICAgICAgICB0aGlzLmxhYmVsSWQgPSB0aGlzLmlkICsgJ19sYWJlbCc7XG4gICAgICAgIHRoaXMubGlzdElkID0gdGhpcy5pZCArICdfbGlzdCc7XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyQnkpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICh2YWx1ZSkgPT4gdGhpcy5vbkZpbHRlcklucHV0Q2hhbmdlKHZhbHVlKSxcbiAgICAgICAgICAgICAgICByZXNldDogKCkgPT4gdGhpcy5yZXNldEZpbHRlcigpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IG9wdGlvbnMoKTogYW55W10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG5cbiAgICBzZXQgb3B0aW9ucyh2YWw6IGFueVtdKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB2YWw7XG4gICAgICAgIHRoaXMub3B0aW9uc1RvRGlzcGxheSA9IHRoaXMuX29wdGlvbnM7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy52YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMuZmluZE9wdGlvbih0aGlzLnZhbHVlLCB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkpO1xuICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRPcHRpb24gJiYgT2JqZWN0VXRpbHMuaXNOb3RFbXB0eSh0aGlzLnZhbHVlKSAmJiAhdGhpcy5lZGl0YWJsZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5fZmlsdGVyVmFsdWUgJiYgdGhpcy5fZmlsdGVyVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgZmlsdGVyVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclZhbHVlO1xuICAgIH1cblxuICAgIHNldCBmaWx0ZXJWYWx1ZSh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9maWx0ZXJWYWx1ZSA9IHZhbDtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZUZpbHRlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRWRpdGFibGVMYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zZWxlY3RlZE9wdGlvbiA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnNlbGVjdGVkT3B0aW9uLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZ2V0T3B0aW9uTGFiZWwodGhpcy5zZWxlY3RlZE9wdGlvbikgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBlbXB0eU1lc3NhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbXB0eU1lc3NhZ2UgfHwgdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkVNUFRZX01FU1NBR0UpO1xuICAgIH1cblxuICAgIGdldCBlbXB0eUZpbHRlck1lc3NhZ2VMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5lbXB0eUZpbHRlck1lc3NhZ2UgfHwgdGhpcy5jb25maWcuZ2V0VHJhbnNsYXRpb24oVHJhbnNsYXRpb25LZXlzLkVNUFRZX0ZJTFRFUl9NRVNTQUdFKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gISF0aGlzLnZhbHVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUgIT0gbnVsbCB8fCB0aGlzLnZhbHVlICE9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBnZXQgaXNWaXNpYmxlQ2xlYXJJY29uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSAhPSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMuc2hvd0NsZWFyICYmICF0aGlzLmRpc2FibGVkO1xuICAgIH1cblxuICAgIHVwZGF0ZUVkaXRhYmxlTGFiZWwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlSW5wdXRWaWV3Q2hpbGQgJiYgdGhpcy5lZGl0YWJsZUlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdGFibGVJbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZ2V0T3B0aW9uTGFiZWwodGhpcy5zZWxlY3RlZE9wdGlvbikgOiB0aGlzLnZhbHVlIHx8ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0T3B0aW9uTGFiZWwob3B0aW9uOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uTGFiZWwgPyBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKG9wdGlvbiwgdGhpcy5vcHRpb25MYWJlbCkgOiBvcHRpb24gJiYgb3B0aW9uLmxhYmVsICE9PSB1bmRlZmluZWQgPyBvcHRpb24ubGFiZWwgOiBvcHRpb247XG4gICAgfVxuXG4gICAgZ2V0T3B0aW9uVmFsdWUob3B0aW9uOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uVmFsdWUgPyBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKG9wdGlvbiwgdGhpcy5vcHRpb25WYWx1ZSkgOiAhdGhpcy5vcHRpb25MYWJlbCAmJiBvcHRpb24gJiYgb3B0aW9uLnZhbHVlICE9PSB1bmRlZmluZWQgPyBvcHRpb24udmFsdWUgOiBvcHRpb247XG4gICAgfVxuXG4gICAgaXNPcHRpb25EaXNhYmxlZChvcHRpb246IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25EaXNhYmxlZCA/IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEob3B0aW9uLCB0aGlzLm9wdGlvbkRpc2FibGVkKSA6IG9wdGlvbiAmJiBvcHRpb24uZGlzYWJsZWQgIT09IHVuZGVmaW5lZCA/IG9wdGlvbi5kaXNhYmxlZCA6IGZhbHNlO1xuICAgIH1cblxuICAgIGdldE9wdGlvbkdyb3VwTGFiZWwob3B0aW9uR3JvdXA6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25Hcm91cExhYmVsID8gT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShvcHRpb25Hcm91cCwgdGhpcy5vcHRpb25Hcm91cExhYmVsKSA6IG9wdGlvbkdyb3VwICYmIG9wdGlvbkdyb3VwLmxhYmVsICE9PSB1bmRlZmluZWQgPyBvcHRpb25Hcm91cC5sYWJlbCA6IG9wdGlvbkdyb3VwO1xuICAgIH1cblxuICAgIGdldE9wdGlvbkdyb3VwQ2hpbGRyZW4ob3B0aW9uR3JvdXA6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25Hcm91cENoaWxkcmVuID8gT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShvcHRpb25Hcm91cCwgdGhpcy5vcHRpb25Hcm91cENoaWxkcmVuKSA6IG9wdGlvbkdyb3VwLml0ZW1zO1xuICAgIH1cblxuICAgIG9uSXRlbUNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IGV2ZW50Lm9wdGlvbjtcblxuICAgICAgICBpZiAoIXRoaXMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oZXZlbnQub3JpZ2luYWxFdmVudCwgb3B0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuYWNjZXNzaWJsZVZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIH0sIDEpO1xuICAgIH1cblxuICAgIHNlbGVjdEl0ZW0oZXZlbnQsIG9wdGlvbikge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbiAhPSBvcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRPcHRpb25WYWx1ZShvcHRpb24pO1xuXG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVkaXRhYmxlTGFiZWwoKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zQ2hhbmdlZCAmJiB0aGlzLm92ZXJsYXlWaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaWV3Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVZpZXdDaGlsZC5hbGlnbk92ZXJsYXkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblVwZGF0ZWQgJiYgdGhpcy5pdGVtc1dyYXBwZXIpIHtcbiAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBEb21IYW5kbGVyLmZpbmRTaW5nbGUodGhpcy5vdmVybGF5Vmlld0NoaWxkLm92ZXJsYXlWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCwgJ2xpLnAtaGlnaGxpZ2h0Jyk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICAgICAgRG9tSGFuZGxlci5zY3JvbGxJblZpZXcodGhpcy5pdGVtc1dyYXBwZXIsIHNlbGVjdGVkSXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVXBkYXRlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5yZXNldEZpbHRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVFZGl0YWJsZUxhYmVsKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVzZXRGaWx0ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclZhbHVlID0gbnVsbDtcblxuICAgICAgICBpZiAodGhpcy5maWx0ZXJWaWV3Q2hpbGQgJiYgdGhpcy5maWx0ZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vcHRpb25zVG9EaXNwbGF5ID0gdGhpcy5vcHRpb25zO1xuICAgIH1cblxuICAgIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKHZhbDogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLmZpbmRPcHRpb24odmFsLCB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkpO1xuXG4gICAgICAgIGlmICh0aGlzLmF1dG9EaXNwbGF5Rmlyc3QgJiYgIXRoaXMucGxhY2Vob2xkZXIgJiYgIXRoaXMuc2VsZWN0ZWRPcHRpb24gJiYgdGhpcy5vcHRpb25zVG9EaXNwbGF5ICYmIHRoaXMub3B0aW9uc1RvRGlzcGxheS5sZW5ndGggJiYgIXRoaXMuZWRpdGFibGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9uc1RvRGlzcGxheVswXS5pdGVtc1swXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9uc1RvRGlzcGxheVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldE9wdGlvblZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb24pO1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblVwZGF0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZSh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHZhbDtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbk1vdXNlY2xpY2soZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSB8fCB0aGlzLmlzSW5wdXRDbGljayhldmVudCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25DbGljay5lbWl0KGV2ZW50KTtcblxuICAgICAgICB0aGlzLmFjY2Vzc2libGVWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMub3ZlcmxheVZpc2libGUpIHRoaXMuaGlkZSgpO1xuICAgICAgICBlbHNlIHRoaXMuc2hvdygpO1xuXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIGlzSW5wdXRDbGljayhldmVudCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gRG9tSGFuZGxlci5oYXNDbGFzcyhldmVudC50YXJnZXQsICdwLWRyb3Bkb3duLWNsZWFyLWljb24nKSB8fCBldmVudC50YXJnZXQuaXNTYW1lTm9kZSh0aGlzLmFjY2Vzc2libGVWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkgfHwgKHRoaXMuZWRpdGFibGVJbnB1dFZpZXdDaGlsZCAmJiBldmVudC50YXJnZXQuaXNTYW1lTm9kZSh0aGlzLmVkaXRhYmxlSW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkpO1xuICAgIH1cblxuICAgIGlzRW1wdHkoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5vcHRpb25zVG9EaXNwbGF5IHx8ICh0aGlzLm9wdGlvbnNUb0Rpc3BsYXkgJiYgdGhpcy5vcHRpb25zVG9EaXNwbGF5Lmxlbmd0aCA9PT0gMCk7XG4gICAgfVxuXG4gICAgb25FZGl0YWJsZUlucHV0Rm9jdXMoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbkVkaXRhYmxlSW5wdXRDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbih0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzaG93KCkge1xuICAgICAgICB0aGlzLm92ZXJsYXlWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbk92ZXJsYXlBbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICd2aXNpYmxlJykge1xuICAgICAgICAgICAgdGhpcy5pdGVtc1dyYXBwZXIgPSBEb21IYW5kbGVyLmZpbmRTaW5nbGUodGhpcy5vdmVybGF5Vmlld0NoaWxkLm92ZXJsYXlWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCwgdGhpcy52aXJ0dWFsU2Nyb2xsID8gJy5wLXNjcm9sbGVyJyA6ICcucC1kcm9wZG93bi1pdGVtcy13cmFwcGVyJyk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGwgJiYgdGhpcy5zY3JvbGxlci5zZXRDb250ZW50RWwodGhpcy5pdGVtc1ZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmlydHVhbFNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZmluZE9wdGlvbkluZGV4KHRoaXMuZ2V0T3B0aW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbiksIHRoaXMub3B0aW9uc1RvRGlzcGxheSkgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbGVyLnNjcm9sbFRvSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRMaXN0SXRlbSA9IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLml0ZW1zV3JhcHBlciwgJy5wLWRyb3Bkb3duLWl0ZW0ucC1oaWdobGlnaHQnKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRMaXN0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbS5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnbmVhcmVzdCcsIGlubGluZTogJ2NlbnRlcicgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZpZXdDaGlsZCAmJiB0aGlzLmZpbHRlclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2ZW50TW9kZWxUb3VjaGVkID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmF1dG9mb2N1c0ZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uU2hvdy5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zV3JhcHBlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm9uTW9kZWxUb3VjaGVkKCk7XG4gICAgICAgICAgICB0aGlzLm9uSGlkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhpZGUoKSB7XG4gICAgICAgIHRoaXMub3ZlcmxheVZpc2libGUgPSBmYWxzZTtcblxuICAgICAgICBpZiAodGhpcy5maWx0ZXIgJiYgdGhpcy5yZXNldEZpbHRlck9uSGlkZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldEZpbHRlcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvbklucHV0Rm9jdXMoZXZlbnQpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vbkZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcblxuICAgICAgICBpZiAoIXRoaXMucHJldmVudE1vZGVsVG91Y2hlZCkge1xuICAgICAgICAgICAgdGhpcy5vbk1vZGVsVG91Y2hlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJldmVudE1vZGVsVG91Y2hlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIGZpbmRQcmV2RW5hYmxlZE9wdGlvbihpbmRleCkge1xuICAgICAgICBsZXQgcHJldkVuYWJsZWRPcHRpb247XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9uc1RvRGlzcGxheSAmJiB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5kZXggLSAxOyAwIDw9IGk7IGktLSkge1xuICAgICAgICAgICAgICAgIGxldCBvcHRpb24gPSB0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZFbmFibGVkT3B0aW9uID0gb3B0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghcHJldkVuYWJsZWRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5vcHRpb25zVG9EaXNwbGF5Lmxlbmd0aCAtIDE7IGkgPj0gaW5kZXg7IGktLSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgb3B0aW9uID0gdGhpcy5vcHRpb25zVG9EaXNwbGF5W2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkKG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldkVuYWJsZWRPcHRpb24gPSBvcHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwcmV2RW5hYmxlZE9wdGlvbjtcbiAgICB9XG5cbiAgICBmaW5kTmV4dEVuYWJsZWRPcHRpb24oaW5kZXgpIHtcbiAgICAgICAgbGV0IG5leHRFbmFibGVkT3B0aW9uO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnNUb0Rpc3BsYXkgJiYgdGhpcy5vcHRpb25zVG9EaXNwbGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluZGV4ICsgMTsgaSA8IHRoaXMub3B0aW9uc1RvRGlzcGxheS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBvcHRpb24gPSB0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbaV07XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG5leHRFbmFibGVkT3B0aW9uID0gb3B0aW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghbmV4dEVuYWJsZWRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbiA9IHRoaXMub3B0aW9uc1RvRGlzcGxheVtpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZChvcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFbmFibGVkT3B0aW9uID0gb3B0aW9uO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbmV4dEVuYWJsZWRPcHRpb247XG4gICAgfVxuXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBzZWFyY2g6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgIXRoaXMub3B0aW9uc1RvRGlzcGxheSB8fCB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkubGVuZ3RoID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LndoaWNoKSB7XG4gICAgICAgICAgICAvL2Rvd25cbiAgICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLm92ZXJsYXlWaXNpYmxlICYmIGV2ZW50LmFsdEtleSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZmluZE9wdGlvbkdyb3VwSW5kZXgodGhpcy5nZXRPcHRpb25WYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9uKSwgdGhpcy5vcHRpb25zVG9EaXNwbGF5KSA6IC0xO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5leHRJdGVtSW5kZXggPSBzZWxlY3RlZEl0ZW1JbmRleC5pdGVtSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXRlbUluZGV4IDwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHRoaXMub3B0aW9uc1RvRGlzcGxheVtzZWxlY3RlZEl0ZW1JbmRleC5ncm91cEluZGV4XSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHRoaXMub3B0aW9uc1RvRGlzcGxheVtzZWxlY3RlZEl0ZW1JbmRleC5ncm91cEluZGV4XSlbbmV4dEl0ZW1JbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbc2VsZWN0ZWRJdGVtSW5kZXguZ3JvdXBJbmRleCArIDFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHRoaXMub3B0aW9uc1RvRGlzcGxheVtzZWxlY3RlZEl0ZW1JbmRleC5ncm91cEluZGV4ICsgMV0pWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9uc1RvRGlzcGxheSAmJiB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oZXZlbnQsIHRoaXMuZ2V0T3B0aW9uR3JvdXBDaGlsZHJlbih0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbMF0pWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VsZWN0ZWRJdGVtSW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5maW5kT3B0aW9uSW5kZXgodGhpcy5nZXRPcHRpb25WYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9uKSwgdGhpcy5vcHRpb25zVG9EaXNwbGF5KSA6IC0xO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG5leHRFbmFibGVkT3B0aW9uID0gdGhpcy5maW5kTmV4dEVuYWJsZWRPcHRpb24oc2VsZWN0ZWRJdGVtSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRFbmFibGVkT3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGV2ZW50LCBuZXh0RW5hYmxlZE9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAvL3VwXG4gICAgICAgICAgICBjYXNlIDM4OlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLmZpbmRPcHRpb25Hcm91cEluZGV4KHRoaXMuZ2V0T3B0aW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbiksIHRoaXMub3B0aW9uc1RvRGlzcGxheSkgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkSXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZJdGVtSW5kZXggPSBzZWxlY3RlZEl0ZW1JbmRleC5pdGVtSW5kZXggLSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByZXZJdGVtSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHRoaXMub3B0aW9uc1RvRGlzcGxheVtzZWxlY3RlZEl0ZW1JbmRleC5ncm91cEluZGV4XSlbcHJldkl0ZW1JbmRleF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25VcGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJldkl0ZW1JbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcHJldkdyb3VwID0gdGhpcy5vcHRpb25zVG9EaXNwbGF5W3NlbGVjdGVkSXRlbUluZGV4Lmdyb3VwSW5kZXggLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJldkdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHByZXZHcm91cClbdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKHByZXZHcm91cCkubGVuZ3RoIC0gMV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVXBkYXRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbUluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZmluZE9wdGlvbkluZGV4KHRoaXMuZ2V0T3B0aW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbiksIHRoaXMub3B0aW9uc1RvRGlzcGxheSkgOiAtMTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZFbmFibGVkT3B0aW9uID0gdGhpcy5maW5kUHJldkVuYWJsZWRPcHRpb24oc2VsZWN0ZWRJdGVtSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldkVuYWJsZWRPcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgcHJldkVuYWJsZWRPcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblVwZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy9zcGFjZVxuICAgICAgICAgICAgY2FzZSAzMjpcbiAgICAgICAgICAgICAgICBpZiAoc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5vdmVybGF5VmlzaWJsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAvL2VudGVyXG4gICAgICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm92ZXJsYXlWaXNpYmxlICYmICghdGhpcy5maWx0ZXIgfHwgKHRoaXMub3B0aW9uc1RvRGlzcGxheSAmJiB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkubGVuZ3RoID4gMCkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMub3ZlcmxheVZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy9lc2NhcGUgYW5kIHRhYlxuICAgICAgICAgICAgY2FzZSAyNzpcbiAgICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgLy9zZWFyY2ggaXRlbSBiYXNlZCBvbiBrZXlib2FyZCBpbnB1dFxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAoc2VhcmNoICYmICFldmVudC5tZXRhS2V5ICYmIGV2ZW50LndoaWNoICE9PSAxNykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2VhcmNoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLnNlYXJjaFRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNlYXJjaFRpbWVvdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2hhciA9IGV2ZW50LmtleTtcbiAgICAgICAgdGhpcy5wcmV2aW91c1NlYXJjaENoYXIgPSB0aGlzLmN1cnJlbnRTZWFyY2hDaGFyO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZWFyY2hDaGFyID0gY2hhcjtcblxuICAgICAgICBpZiAodGhpcy5wcmV2aW91c1NlYXJjaENoYXIgPT09IHRoaXMuY3VycmVudFNlYXJjaENoYXIpIHRoaXMuc2VhcmNoVmFsdWUgPSB0aGlzLmN1cnJlbnRTZWFyY2hDaGFyO1xuICAgICAgICBlbHNlIHRoaXMuc2VhcmNoVmFsdWUgPSB0aGlzLnNlYXJjaFZhbHVlID8gdGhpcy5zZWFyY2hWYWx1ZSArIGNoYXIgOiBjaGFyO1xuXG4gICAgICAgIGxldCBuZXdPcHRpb247XG4gICAgICAgIGlmICh0aGlzLmdyb3VwKSB7XG4gICAgICAgICAgICBsZXQgc2VhcmNoSW5kZXggPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5maW5kT3B0aW9uR3JvdXBJbmRleCh0aGlzLmdldE9wdGlvblZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb24pLCB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkpIDogeyBncm91cEluZGV4OiAwLCBpdGVtSW5kZXg6IDAgfTtcbiAgICAgICAgICAgIG5ld09wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uV2l0aGluR3JvdXAoc2VhcmNoSW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHNlYXJjaEluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuZmluZE9wdGlvbkluZGV4KHRoaXMuZ2V0T3B0aW9uVmFsdWUodGhpcy5zZWxlY3RlZE9wdGlvbiksIHRoaXMub3B0aW9uc1RvRGlzcGxheSkgOiAtMTtcbiAgICAgICAgICAgIG5ld09wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uKCsrc2VhcmNoSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld09wdGlvbiAmJiAhdGhpcy5pc09wdGlvbkRpc2FibGVkKG5ld09wdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0SXRlbShldmVudCwgbmV3T3B0aW9uKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25VcGRhdGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VhcmNoVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hWYWx1ZSA9IG51bGw7XG4gICAgICAgIH0sIDI1MCk7XG4gICAgfVxuXG4gICAgc2VhcmNoT3B0aW9uKGluZGV4KSB7XG4gICAgICAgIGxldCBvcHRpb247XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgICAgIG9wdGlvbiA9IHRoaXMuc2VhcmNoT3B0aW9uSW5SYW5nZShpbmRleCwgdGhpcy5vcHRpb25zVG9EaXNwbGF5Lmxlbmd0aCk7XG5cbiAgICAgICAgICAgIGlmICghb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uID0gdGhpcy5zZWFyY2hPcHRpb25JblJhbmdlKDAsIGluZGV4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb247XG4gICAgfVxuXG4gICAgc2VhcmNoT3B0aW9uSW5SYW5nZShzdGFydCwgZW5kKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IGVuZDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgb3B0ID0gdGhpcy5vcHRpb25zVG9EaXNwbGF5W2ldO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3B0aW9uTGFiZWwob3B0KVxuICAgICAgICAgICAgICAgICAgICAudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpXG4gICAgICAgICAgICAgICAgICAgIC5zdGFydHNXaXRoKCh0aGlzLnNlYXJjaFZhbHVlIGFzIGFueSkudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpKSAmJlxuICAgICAgICAgICAgICAgICF0aGlzLmlzT3B0aW9uRGlzYWJsZWQob3B0KVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHNlYXJjaE9wdGlvbldpdGhpbkdyb3VwKGluZGV4KSB7XG4gICAgICAgIGxldCBvcHRpb247XG5cbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBpbmRleC5ncm91cEluZGV4OyBpIDwgdGhpcy5vcHRpb25zVG9EaXNwbGF5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IGluZGV4Lmdyb3VwSW5kZXggPT09IGkgPyBpbmRleC5pdGVtSW5kZXggKyAxIDogMDsgaiA8IHRoaXMuZ2V0T3B0aW9uR3JvdXBDaGlsZHJlbih0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbaV0pLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBvcHQgPSB0aGlzLmdldE9wdGlvbkdyb3VwQ2hpbGRyZW4odGhpcy5vcHRpb25zVG9EaXNwbGF5W2ldKVtqXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRPcHRpb25MYWJlbChvcHQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRvTG9jYWxlTG93ZXJDYXNlKHRoaXMuZmlsdGVyTG9jYWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdGFydHNXaXRoKCh0aGlzLnNlYXJjaFZhbHVlIGFzIGFueSkudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuaXNPcHRpb25EaXNhYmxlZChvcHQpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFvcHRpb24pIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBpbmRleC5ncm91cEluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCAoaW5kZXguZ3JvdXBJbmRleCA9PT0gaSA/IGluZGV4Lml0ZW1JbmRleCA6IHRoaXMuZ2V0T3B0aW9uR3JvdXBDaGlsZHJlbih0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbaV0pLmxlbmd0aCk7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdCA9IHRoaXMuZ2V0T3B0aW9uR3JvdXBDaGlsZHJlbih0aGlzLm9wdGlvbnNUb0Rpc3BsYXlbaV0pW2pdO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0T3B0aW9uTGFiZWwob3B0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdGFydHNXaXRoKCh0aGlzLnNlYXJjaFZhbHVlIGFzIGFueSkudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmlzT3B0aW9uRGlzYWJsZWQob3B0KVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGZpbmRPcHRpb25JbmRleCh2YWw6IGFueSwgb3B0czogYW55W10pOiBudW1iZXIge1xuICAgICAgICBsZXQgaW5kZXg6IG51bWJlciA9IC0xO1xuICAgICAgICBpZiAob3B0cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh2YWwgPT0gbnVsbCAmJiB0aGlzLmdldE9wdGlvblZhbHVlKG9wdHNbaV0pID09IG51bGwpIHx8IE9iamVjdFV0aWxzLmVxdWFscyh2YWwsIHRoaXMuZ2V0T3B0aW9uVmFsdWUob3B0c1tpXSksIHRoaXMuZGF0YUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuXG4gICAgZmluZE9wdGlvbkdyb3VwSW5kZXgodmFsOiBhbnksIG9wdHM6IGFueVtdKTogYW55IHtcbiAgICAgICAgbGV0IGdyb3VwSW5kZXgsIGl0ZW1JbmRleDtcblxuICAgICAgICBpZiAob3B0cykge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBvcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgaXRlbUluZGV4ID0gdGhpcy5maW5kT3B0aW9uSW5kZXgodmFsLCB0aGlzLmdldE9wdGlvbkdyb3VwQ2hpbGRyZW4ob3B0c1tpXSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGdyb3VwSW5kZXg6IGdyb3VwSW5kZXgsIGl0ZW1JbmRleDogaXRlbUluZGV4IH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kT3B0aW9uKHZhbDogYW55LCBvcHRzOiBhbnlbXSwgaW5Hcm91cD86IGJvb2xlYW4pOiBTZWxlY3RJdGVtIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JvdXAgJiYgIWluR3JvdXApIHtcbiAgICAgICAgICAgIGxldCBvcHQ6IFNlbGVjdEl0ZW07XG4gICAgICAgICAgICBpZiAob3B0cyAmJiBvcHRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IG9wdGdyb3VwIG9mIG9wdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0ID0gdGhpcy5maW5kT3B0aW9uKHZhbCwgdGhpcy5nZXRPcHRpb25Hcm91cENoaWxkcmVuKG9wdGdyb3VwKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG9wdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBpbmRleDogbnVtYmVyID0gdGhpcy5maW5kT3B0aW9uSW5kZXgodmFsLCBvcHRzKTtcbiAgICAgICAgICAgIHJldHVybiBpbmRleCAhPSAtMSA/IG9wdHNbaW5kZXhdIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRmlsdGVySW5wdXRDaGFuZ2UoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgbGV0IGlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgICAgIGlmIChpbnB1dFZhbHVlICYmIGlucHV0VmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJWYWx1ZSA9IGlucHV0VmFsdWU7XG4gICAgICAgICAgICB0aGlzLmFjdGl2YXRlRmlsdGVyKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXJWYWx1ZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkgPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGwgJiYgdGhpcy5zY3JvbGxlci5zY3JvbGxUb0luZGV4KDApO1xuXG4gICAgICAgIHRoaXMub3B0aW9uc0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9uRmlsdGVyLmVtaXQoeyBvcmlnaW5hbEV2ZW50OiBldmVudCwgZmlsdGVyOiB0aGlzLl9maWx0ZXJWYWx1ZSB9KTtcbiAgICB9XG5cbiAgICBhY3RpdmF0ZUZpbHRlcigpIHtcbiAgICAgICAgbGV0IHNlYXJjaEZpZWxkczogc3RyaW5nW10gPSAodGhpcy5maWx0ZXJCeSB8fCB0aGlzLm9wdGlvbkxhYmVsIHx8ICdsYWJlbCcpLnNwbGl0KCcsJyk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ncm91cCkge1xuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJlZEdyb3VwcyA9IFtdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IG9wdGdyb3VwIG9mIHRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyZWRTdWJPcHRpb25zID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcih0aGlzLmdldE9wdGlvbkdyb3VwQ2hpbGRyZW4ob3B0Z3JvdXApLCBzZWFyY2hGaWVsZHMsIHRoaXMuZmlsdGVyVmFsdWUsIHRoaXMuZmlsdGVyTWF0Y2hNb2RlLCB0aGlzLmZpbHRlckxvY2FsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJlZFN1Yk9wdGlvbnMgJiYgZmlsdGVyZWRTdWJPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyZWRHcm91cHMucHVzaCh7IC4uLm9wdGdyb3VwLCAuLi57IFt0aGlzLm9wdGlvbkdyb3VwQ2hpbGRyZW5dOiBmaWx0ZXJlZFN1Yk9wdGlvbnMgfSB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9uc1RvRGlzcGxheSA9IGZpbHRlcmVkR3JvdXBzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wdGlvbnNUb0Rpc3BsYXkgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKHRoaXMub3B0aW9ucywgc2VhcmNoRmllbGRzLCB0aGlzLmZpbHRlclZhbHVlLCB0aGlzLmZpbHRlck1hdGNoTW9kZSwgdGhpcy5maWx0ZXJMb2NhbGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnNDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5Rm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRhYmxlKSBEb21IYW5kbGVyLmZpbmRTaW5nbGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnLnAtZHJvcGRvd24tbGFiZWwucC1pbnB1dHRleHQnKS5mb2N1cygpO1xuICAgICAgICBlbHNlIERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdpbnB1dFtyZWFkb25seV0nKS5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFwcGx5Rm9jdXMoKTtcbiAgICB9XG5cbiAgICBjbGVhcihldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWVcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24odGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudXBkYXRlRWRpdGFibGVMYWJlbCgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXIuZW1pdChldmVudCk7XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIFNoYXJlZE1vZHVsZSwgVG9vbHRpcE1vZHVsZSwgUmlwcGxlTW9kdWxlLCBTY3JvbGxlck1vZHVsZSwgQXV0b0ZvY3VzTW9kdWxlLCBUaW1lc0ljb24sIENoZXZyb25Eb3duSWNvbiwgU2VhcmNoSWNvbl0sXG4gICAgZXhwb3J0czogW0Ryb3Bkb3duLCBPdmVybGF5TW9kdWxlLCBTaGFyZWRNb2R1bGUsIFNjcm9sbGVyTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtEcm9wZG93biwgRHJvcGRvd25JdGVtXVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bk1vZHVsZSB7fVxuIl19
|