@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,1268 @@
|
|
|
1
|
+
import { NgModule, Component, Input, Output, ContentChildren, EventEmitter, ViewChild, ChangeDetectionStrategy, ViewEncapsulation, Inject, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
3
|
+
import { ButtonModule } from '@qius.solutions/parallel-ui-angular/button';
|
|
4
|
+
import { SharedModule, QiusTemplate } from '@qius.solutions/parallel-ui-angular/api';
|
|
5
|
+
import { DomHandler } from '@qius.solutions/parallel-ui-angular/dom';
|
|
6
|
+
import { RippleModule } from '@qius.solutions/parallel-ui-angular/ripple';
|
|
7
|
+
import { DragDropModule, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';
|
|
8
|
+
import { ObjectUtils, UniqueComponentId } from '@qius.solutions/parallel-ui-angular/utils';
|
|
9
|
+
import { AngleDoubleDownIcon } from '@qius.solutions/parallel-ui-angular/icons/angledoubledown';
|
|
10
|
+
import { AngleDoubleLeftIcon } from '@qius.solutions/parallel-ui-angular/icons/angledoubleleft';
|
|
11
|
+
import { AngleDoubleRightIcon } from '@qius.solutions/parallel-ui-angular/icons/angledoubleright';
|
|
12
|
+
import { AngleDoubleUpIcon } from '@qius.solutions/parallel-ui-angular/icons/angledoubleup';
|
|
13
|
+
import { AngleDownIcon } from '@qius.solutions/parallel-ui-angular/icons/angledown';
|
|
14
|
+
import { AngleLeftIcon } from '@qius.solutions/parallel-ui-angular/icons/angleleft';
|
|
15
|
+
import { AngleRightIcon } from '@qius.solutions/parallel-ui-angular/icons/angleright';
|
|
16
|
+
import { AngleUpIcon } from '@qius.solutions/parallel-ui-angular/icons/angleup';
|
|
17
|
+
import { SearchIcon } from '@qius.solutions/parallel-ui-angular/icons/search';
|
|
18
|
+
import { HomeIcon } from '@qius.solutions/parallel-ui-angular/icons/home';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "@qius.solutions/parallel-ui-angular/api";
|
|
21
|
+
import * as i2 from "@angular/common";
|
|
22
|
+
import * as i3 from "@qius.solutions/parallel-ui-angular/button";
|
|
23
|
+
import * as i4 from "@qius.solutions/parallel-ui-angular/ripple";
|
|
24
|
+
import * as i5 from "@angular/cdk/drag-drop";
|
|
25
|
+
export class PickList {
|
|
26
|
+
constructor(document, platformId, renderer, el, cd, filterService) {
|
|
27
|
+
this.document = document;
|
|
28
|
+
this.platformId = platformId;
|
|
29
|
+
this.renderer = renderer;
|
|
30
|
+
this.el = el;
|
|
31
|
+
this.cd = cd;
|
|
32
|
+
this.filterService = filterService;
|
|
33
|
+
this.trackBy = (index, item) => item;
|
|
34
|
+
this.showSourceFilter = true;
|
|
35
|
+
this.showTargetFilter = true;
|
|
36
|
+
this.metaKeySelection = true;
|
|
37
|
+
this.dragdrop = false;
|
|
38
|
+
this.showSourceControls = true;
|
|
39
|
+
this.showTargetControls = true;
|
|
40
|
+
this.disabled = false;
|
|
41
|
+
this.filterMatchMode = 'contains';
|
|
42
|
+
this.keepSelection = false;
|
|
43
|
+
this.onMoveToSource = new EventEmitter();
|
|
44
|
+
this.onMoveAllToSource = new EventEmitter();
|
|
45
|
+
this.onMoveAllToTarget = new EventEmitter();
|
|
46
|
+
this.onMoveToTarget = new EventEmitter();
|
|
47
|
+
this.onSourceReorder = new EventEmitter();
|
|
48
|
+
this.onTargetReorder = new EventEmitter();
|
|
49
|
+
this.onSourceSelect = new EventEmitter();
|
|
50
|
+
this.onTargetSelect = new EventEmitter();
|
|
51
|
+
this.onSourceFilter = new EventEmitter();
|
|
52
|
+
this.onTargetFilter = new EventEmitter();
|
|
53
|
+
this._breakpoint = '960px';
|
|
54
|
+
this.selectedItemsSource = [];
|
|
55
|
+
this.selectedItemsTarget = [];
|
|
56
|
+
this.id = UniqueComponentId();
|
|
57
|
+
this.SOURCE_LIST = -1;
|
|
58
|
+
this.TARGET_LIST = 1;
|
|
59
|
+
this.window = this.document.defaultView;
|
|
60
|
+
}
|
|
61
|
+
get breakpoint() {
|
|
62
|
+
return this._breakpoint;
|
|
63
|
+
}
|
|
64
|
+
set breakpoint(value) {
|
|
65
|
+
if (value !== this._breakpoint) {
|
|
66
|
+
this._breakpoint = value;
|
|
67
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
68
|
+
this.destroyMedia();
|
|
69
|
+
this.initMedia();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
ngOnInit() {
|
|
74
|
+
if (this.responsive) {
|
|
75
|
+
this.createStyle();
|
|
76
|
+
this.initMedia();
|
|
77
|
+
}
|
|
78
|
+
if (this.filterBy) {
|
|
79
|
+
this.sourceFilterOptions = {
|
|
80
|
+
filter: (value) => this.filterSource(value),
|
|
81
|
+
reset: () => this.resetSourceFilter()
|
|
82
|
+
};
|
|
83
|
+
this.targetFilterOptions = {
|
|
84
|
+
filter: (value) => this.filterTarget(value),
|
|
85
|
+
reset: () => this.resetTargetFilter()
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
ngAfterContentInit() {
|
|
90
|
+
this.templates.forEach((item) => {
|
|
91
|
+
switch (item.getType()) {
|
|
92
|
+
case 'item':
|
|
93
|
+
this.itemTemplate = item.template;
|
|
94
|
+
break;
|
|
95
|
+
case 'sourceHeader':
|
|
96
|
+
this.sourceHeaderTemplate = item.template;
|
|
97
|
+
break;
|
|
98
|
+
case 'targetHeader':
|
|
99
|
+
this.targetHeaderTemplate = item.template;
|
|
100
|
+
break;
|
|
101
|
+
case 'sourceFilter':
|
|
102
|
+
this.sourceFilterTemplate = item.template;
|
|
103
|
+
break;
|
|
104
|
+
case 'targetFilter':
|
|
105
|
+
this.targetFilterTemplate = item.template;
|
|
106
|
+
break;
|
|
107
|
+
case 'emptymessagesource':
|
|
108
|
+
this.emptyMessageSourceTemplate = item.template;
|
|
109
|
+
break;
|
|
110
|
+
case 'emptyfiltermessagesource':
|
|
111
|
+
this.emptyFilterMessageSourceTemplate = item.template;
|
|
112
|
+
break;
|
|
113
|
+
case 'emptymessagetarget':
|
|
114
|
+
this.emptyMessageTargetTemplate = item.template;
|
|
115
|
+
break;
|
|
116
|
+
case 'emptyfiltermessagetarget':
|
|
117
|
+
this.emptyFilterMessageTargetTemplate = item.template;
|
|
118
|
+
break;
|
|
119
|
+
case 'moveupicon':
|
|
120
|
+
this.moveUpIconTemplate = item.template;
|
|
121
|
+
break;
|
|
122
|
+
case 'movetopicon':
|
|
123
|
+
this.moveTopIconTemplate = item.template;
|
|
124
|
+
break;
|
|
125
|
+
case 'movedownicon':
|
|
126
|
+
this.moveDownIconTemplate = item.template;
|
|
127
|
+
break;
|
|
128
|
+
case 'movebottomicon':
|
|
129
|
+
this.moveBottomIconTemplate = item.template;
|
|
130
|
+
break;
|
|
131
|
+
case 'movetotargeticon':
|
|
132
|
+
this.moveToTargetIconTemplate = item.template;
|
|
133
|
+
break;
|
|
134
|
+
case 'movealltotargeticon':
|
|
135
|
+
this.moveAllToTargetIconTemplate = item.template;
|
|
136
|
+
break;
|
|
137
|
+
case 'movetosourceicon':
|
|
138
|
+
this.moveToSourceIconTemplate = item.template;
|
|
139
|
+
break;
|
|
140
|
+
case 'movealltosourceicon':
|
|
141
|
+
this.moveAllToSourceIconTemplate = item.template;
|
|
142
|
+
break;
|
|
143
|
+
case 'targetfiltericon':
|
|
144
|
+
this.targetFilterIconTemplate = item.template;
|
|
145
|
+
break;
|
|
146
|
+
case 'sourcefiltericon':
|
|
147
|
+
this.sourceFilterIconTemplate = item.template;
|
|
148
|
+
break;
|
|
149
|
+
default:
|
|
150
|
+
this.itemTemplate = item.template;
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
ngAfterViewChecked() {
|
|
156
|
+
if (this.movedUp || this.movedDown) {
|
|
157
|
+
let listItems = DomHandler.find(this.reorderedListElement, 'li.p-highlight');
|
|
158
|
+
let listItem;
|
|
159
|
+
if (this.movedUp)
|
|
160
|
+
listItem = listItems[0];
|
|
161
|
+
else
|
|
162
|
+
listItem = listItems[listItems.length - 1];
|
|
163
|
+
DomHandler.scrollInView(this.reorderedListElement, listItem);
|
|
164
|
+
this.movedUp = false;
|
|
165
|
+
this.movedDown = false;
|
|
166
|
+
this.reorderedListElement = null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
onItemClick(event, item, selectedItems, callback) {
|
|
170
|
+
if (this.disabled) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
let index = this.findIndexInSelection(item, selectedItems);
|
|
174
|
+
let selected = index != -1;
|
|
175
|
+
let metaSelection = this.itemTouched ? false : this.metaKeySelection;
|
|
176
|
+
if (metaSelection) {
|
|
177
|
+
let metaKey = event.metaKey || event.ctrlKey || event.shiftKey;
|
|
178
|
+
if (selected && metaKey) {
|
|
179
|
+
selectedItems.splice(index, 1);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
if (!metaKey) {
|
|
183
|
+
selectedItems.length = 0;
|
|
184
|
+
}
|
|
185
|
+
selectedItems.push(item);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
if (selected)
|
|
190
|
+
selectedItems.splice(index, 1);
|
|
191
|
+
else
|
|
192
|
+
selectedItems.push(item);
|
|
193
|
+
}
|
|
194
|
+
callback.emit({ originalEvent: event, items: selectedItems });
|
|
195
|
+
this.itemTouched = false;
|
|
196
|
+
}
|
|
197
|
+
onSourceItemDblClick() {
|
|
198
|
+
if (this.disabled) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
this.moveRight();
|
|
202
|
+
}
|
|
203
|
+
onTargetItemDblClick() {
|
|
204
|
+
if (this.disabled) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
this.moveLeft();
|
|
208
|
+
}
|
|
209
|
+
onFilter(event, listType) {
|
|
210
|
+
let query = event.target.value;
|
|
211
|
+
if (listType === this.SOURCE_LIST)
|
|
212
|
+
this.filterSource(query);
|
|
213
|
+
else if (listType === this.TARGET_LIST)
|
|
214
|
+
this.filterTarget(query);
|
|
215
|
+
}
|
|
216
|
+
filterSource(value = '') {
|
|
217
|
+
this.filterValueSource = value.trim().toLocaleLowerCase(this.filterLocale);
|
|
218
|
+
this.filter(this.source, this.SOURCE_LIST);
|
|
219
|
+
}
|
|
220
|
+
filterTarget(value = '') {
|
|
221
|
+
this.filterValueTarget = value.trim().toLocaleLowerCase(this.filterLocale);
|
|
222
|
+
this.filter(this.target, this.TARGET_LIST);
|
|
223
|
+
}
|
|
224
|
+
filter(data, listType) {
|
|
225
|
+
let searchFields = this.filterBy.split(',');
|
|
226
|
+
if (listType === this.SOURCE_LIST) {
|
|
227
|
+
this.visibleOptionsSource = this.filterService.filter(data, searchFields, this.filterValueSource, this.filterMatchMode, this.filterLocale);
|
|
228
|
+
this.onSourceFilter.emit({ query: this.filterValueSource, value: this.visibleOptionsSource });
|
|
229
|
+
}
|
|
230
|
+
else if (listType === this.TARGET_LIST) {
|
|
231
|
+
this.visibleOptionsTarget = this.filterService.filter(data, searchFields, this.filterValueTarget, this.filterMatchMode, this.filterLocale);
|
|
232
|
+
this.onTargetFilter.emit({ query: this.filterValueTarget, value: this.visibleOptionsTarget });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
isItemVisible(item, listType) {
|
|
236
|
+
if (listType == this.SOURCE_LIST)
|
|
237
|
+
return this.isVisibleInList(this.visibleOptionsSource, item, this.filterValueSource);
|
|
238
|
+
else
|
|
239
|
+
return this.isVisibleInList(this.visibleOptionsTarget, item, this.filterValueTarget);
|
|
240
|
+
}
|
|
241
|
+
isEmpty(listType) {
|
|
242
|
+
if (listType == this.SOURCE_LIST)
|
|
243
|
+
return this.filterValueSource ? !this.visibleOptionsSource || this.visibleOptionsSource.length === 0 : !this.source || this.source.length === 0;
|
|
244
|
+
else
|
|
245
|
+
return this.filterValueTarget ? !this.visibleOptionsTarget || this.visibleOptionsTarget.length === 0 : !this.target || this.target.length === 0;
|
|
246
|
+
}
|
|
247
|
+
isVisibleInList(data, item, filterValue) {
|
|
248
|
+
if (filterValue && filterValue.trim().length) {
|
|
249
|
+
for (let i = 0; i < data.length; i++) {
|
|
250
|
+
if (item == data[i]) {
|
|
251
|
+
return true;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
else {
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
onItemTouchEnd() {
|
|
260
|
+
if (this.disabled) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
this.itemTouched = true;
|
|
264
|
+
}
|
|
265
|
+
sortByIndexInList(items, list) {
|
|
266
|
+
return items.sort((item1, item2) => ObjectUtils.findIndexInList(item1, list) - ObjectUtils.findIndexInList(item2, list));
|
|
267
|
+
}
|
|
268
|
+
moveUp(listElement, list, selectedItems, callback, listType) {
|
|
269
|
+
if (selectedItems && selectedItems.length) {
|
|
270
|
+
selectedItems = this.sortByIndexInList(selectedItems, list);
|
|
271
|
+
for (let i = 0; i < selectedItems.length; i++) {
|
|
272
|
+
let selectedItem = selectedItems[i];
|
|
273
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
|
|
274
|
+
if (selectedItemIndex != 0) {
|
|
275
|
+
let movedItem = list[selectedItemIndex];
|
|
276
|
+
let temp = list[selectedItemIndex - 1];
|
|
277
|
+
list[selectedItemIndex - 1] = movedItem;
|
|
278
|
+
list[selectedItemIndex] = temp;
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
break;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
|
|
285
|
+
this.filter(list, listType);
|
|
286
|
+
this.movedUp = true;
|
|
287
|
+
this.reorderedListElement = listElement;
|
|
288
|
+
callback.emit({ items: selectedItems });
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
moveTop(listElement, list, selectedItems, callback, listType) {
|
|
292
|
+
if (selectedItems && selectedItems.length) {
|
|
293
|
+
selectedItems = this.sortByIndexInList(selectedItems, list);
|
|
294
|
+
for (let i = 0; i < selectedItems.length; i++) {
|
|
295
|
+
let selectedItem = selectedItems[i];
|
|
296
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
|
|
297
|
+
if (selectedItemIndex != 0) {
|
|
298
|
+
let movedItem = list.splice(selectedItemIndex, 1)[0];
|
|
299
|
+
list.unshift(movedItem);
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
break;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
|
|
306
|
+
this.filter(list, listType);
|
|
307
|
+
listElement.scrollTop = 0;
|
|
308
|
+
callback.emit({ items: selectedItems });
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
moveDown(listElement, list, selectedItems, callback, listType) {
|
|
312
|
+
if (selectedItems && selectedItems.length) {
|
|
313
|
+
selectedItems = this.sortByIndexInList(selectedItems, list);
|
|
314
|
+
for (let i = selectedItems.length - 1; i >= 0; i--) {
|
|
315
|
+
let selectedItem = selectedItems[i];
|
|
316
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
|
|
317
|
+
if (selectedItemIndex != list.length - 1) {
|
|
318
|
+
let movedItem = list[selectedItemIndex];
|
|
319
|
+
let temp = list[selectedItemIndex + 1];
|
|
320
|
+
list[selectedItemIndex + 1] = movedItem;
|
|
321
|
+
list[selectedItemIndex] = temp;
|
|
322
|
+
}
|
|
323
|
+
else {
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
|
|
328
|
+
this.filter(list, listType);
|
|
329
|
+
this.movedDown = true;
|
|
330
|
+
this.reorderedListElement = listElement;
|
|
331
|
+
callback.emit({ items: selectedItems });
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
moveBottom(listElement, list, selectedItems, callback, listType) {
|
|
335
|
+
if (selectedItems && selectedItems.length) {
|
|
336
|
+
selectedItems = this.sortByIndexInList(selectedItems, list);
|
|
337
|
+
for (let i = selectedItems.length - 1; i >= 0; i--) {
|
|
338
|
+
let selectedItem = selectedItems[i];
|
|
339
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(selectedItem, list);
|
|
340
|
+
if (selectedItemIndex != list.length - 1) {
|
|
341
|
+
let movedItem = list.splice(selectedItemIndex, 1)[0];
|
|
342
|
+
list.push(movedItem);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (this.dragdrop && ((this.filterValueSource && listType === this.SOURCE_LIST) || (this.filterValueTarget && listType === this.TARGET_LIST)))
|
|
349
|
+
this.filter(list, listType);
|
|
350
|
+
listElement.scrollTop = listElement.scrollHeight;
|
|
351
|
+
callback.emit({ items: selectedItems });
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
moveRight() {
|
|
355
|
+
if (this.selectedItemsSource && this.selectedItemsSource.length) {
|
|
356
|
+
for (let i = 0; i < this.selectedItemsSource.length; i++) {
|
|
357
|
+
let selectedItem = this.selectedItemsSource[i];
|
|
358
|
+
if (ObjectUtils.findIndexInList(selectedItem, this.target) == -1) {
|
|
359
|
+
this.target.push(this.source.splice(ObjectUtils.findIndexInList(selectedItem, this.source), 1)[0]);
|
|
360
|
+
if (this.visibleOptionsSource)
|
|
361
|
+
this.visibleOptionsSource.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsSource), 1);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
this.onMoveToTarget.emit({
|
|
365
|
+
items: this.selectedItemsSource
|
|
366
|
+
});
|
|
367
|
+
if (this.keepSelection) {
|
|
368
|
+
this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];
|
|
369
|
+
}
|
|
370
|
+
this.selectedItemsSource = [];
|
|
371
|
+
if (this.filterValueTarget) {
|
|
372
|
+
this.filter(this.target, this.TARGET_LIST);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
moveAllRight() {
|
|
377
|
+
if (this.source) {
|
|
378
|
+
let movedItems = [];
|
|
379
|
+
for (let i = 0; i < this.source.length; i++) {
|
|
380
|
+
if (this.isItemVisible(this.source[i], this.SOURCE_LIST)) {
|
|
381
|
+
let removedItem = this.source.splice(i, 1)[0];
|
|
382
|
+
this.target.push(removedItem);
|
|
383
|
+
movedItems.push(removedItem);
|
|
384
|
+
i--;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
this.onMoveAllToTarget.emit({
|
|
388
|
+
items: movedItems
|
|
389
|
+
});
|
|
390
|
+
if (this.keepSelection) {
|
|
391
|
+
this.selectedItemsTarget = [...this.selectedItemsTarget, ...this.selectedItemsSource];
|
|
392
|
+
}
|
|
393
|
+
this.selectedItemsSource = [];
|
|
394
|
+
if (this.filterValueTarget) {
|
|
395
|
+
this.filter(this.target, this.TARGET_LIST);
|
|
396
|
+
}
|
|
397
|
+
this.visibleOptionsSource = [];
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
moveLeft() {
|
|
401
|
+
if (this.selectedItemsTarget && this.selectedItemsTarget.length) {
|
|
402
|
+
for (let i = 0; i < this.selectedItemsTarget.length; i++) {
|
|
403
|
+
let selectedItem = this.selectedItemsTarget[i];
|
|
404
|
+
if (ObjectUtils.findIndexInList(selectedItem, this.source) == -1) {
|
|
405
|
+
this.source.push(this.target.splice(ObjectUtils.findIndexInList(selectedItem, this.target), 1)[0]);
|
|
406
|
+
if (this.visibleOptionsTarget)
|
|
407
|
+
this.visibleOptionsTarget.splice(ObjectUtils.findIndexInList(selectedItem, this.visibleOptionsTarget), 1)[0];
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
this.onMoveToSource.emit({
|
|
411
|
+
items: this.selectedItemsTarget
|
|
412
|
+
});
|
|
413
|
+
if (this.keepSelection) {
|
|
414
|
+
this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];
|
|
415
|
+
}
|
|
416
|
+
this.selectedItemsTarget = [];
|
|
417
|
+
if (this.filterValueSource) {
|
|
418
|
+
this.filter(this.source, this.SOURCE_LIST);
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
moveAllLeft() {
|
|
423
|
+
if (this.target) {
|
|
424
|
+
let movedItems = [];
|
|
425
|
+
for (let i = 0; i < this.target.length; i++) {
|
|
426
|
+
if (this.isItemVisible(this.target[i], this.TARGET_LIST)) {
|
|
427
|
+
let removedItem = this.target.splice(i, 1)[0];
|
|
428
|
+
this.source.push(removedItem);
|
|
429
|
+
movedItems.push(removedItem);
|
|
430
|
+
i--;
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
this.onMoveAllToSource.emit({
|
|
434
|
+
items: movedItems
|
|
435
|
+
});
|
|
436
|
+
if (this.keepSelection) {
|
|
437
|
+
this.selectedItemsSource = [...this.selectedItemsSource, ...this.selectedItemsTarget];
|
|
438
|
+
}
|
|
439
|
+
this.selectedItemsTarget = [];
|
|
440
|
+
if (this.filterValueSource) {
|
|
441
|
+
this.filter(this.source, this.SOURCE_LIST);
|
|
442
|
+
}
|
|
443
|
+
this.visibleOptionsTarget = [];
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
isSelected(item, selectedItems) {
|
|
447
|
+
return this.findIndexInSelection(item, selectedItems) != -1;
|
|
448
|
+
}
|
|
449
|
+
findIndexInSelection(item, selectedItems) {
|
|
450
|
+
return ObjectUtils.findIndexInList(item, selectedItems);
|
|
451
|
+
}
|
|
452
|
+
onDrop(event, listType) {
|
|
453
|
+
let isTransfer = event.previousContainer !== event.container;
|
|
454
|
+
let dropIndexes = this.getDropIndexes(event.previousIndex, event.currentIndex, listType, isTransfer, event.item.data);
|
|
455
|
+
if (listType === this.SOURCE_LIST) {
|
|
456
|
+
if (isTransfer) {
|
|
457
|
+
transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
|
|
458
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsTarget);
|
|
459
|
+
if (selectedItemIndex != -1) {
|
|
460
|
+
this.selectedItemsTarget.splice(selectedItemIndex, 1);
|
|
461
|
+
if (this.keepSelection) {
|
|
462
|
+
this.selectedItemsTarget.push(event.item.data);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
if (this.visibleOptionsTarget)
|
|
466
|
+
this.visibleOptionsTarget.splice(event.previousIndex, 1);
|
|
467
|
+
this.onMoveToSource.emit({ items: [event.item.data] });
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
|
|
471
|
+
this.onSourceReorder.emit({ items: [event.item.data] });
|
|
472
|
+
}
|
|
473
|
+
if (this.filterValueSource) {
|
|
474
|
+
this.filter(this.source, this.SOURCE_LIST);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
if (isTransfer) {
|
|
479
|
+
transferArrayItem(event.previousContainer.data, event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
|
|
480
|
+
let selectedItemIndex = ObjectUtils.findIndexInList(event.item.data, this.selectedItemsSource);
|
|
481
|
+
if (selectedItemIndex != -1) {
|
|
482
|
+
this.selectedItemsSource.splice(selectedItemIndex, 1);
|
|
483
|
+
if (this.keepSelection) {
|
|
484
|
+
this.selectedItemsTarget.push(event.item.data);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (this.visibleOptionsSource)
|
|
488
|
+
this.visibleOptionsSource.splice(event.previousIndex, 1);
|
|
489
|
+
this.onMoveToTarget.emit({ items: [event.item.data] });
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
moveItemInArray(event.container.data, dropIndexes.previousIndex, dropIndexes.currentIndex);
|
|
493
|
+
this.onTargetReorder.emit({ items: [event.item.data] });
|
|
494
|
+
}
|
|
495
|
+
if (this.filterValueTarget) {
|
|
496
|
+
this.filter(this.target, this.TARGET_LIST);
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
getDropIndexes(fromIndex, toIndex, droppedList, isTransfer, data) {
|
|
501
|
+
let previousIndex, currentIndex;
|
|
502
|
+
if (droppedList === this.SOURCE_LIST) {
|
|
503
|
+
previousIndex = isTransfer ? (this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex) : this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex;
|
|
504
|
+
currentIndex = this.filterValueSource ? this.findFilteredCurrentIndex(this.visibleOptionsSource, toIndex, this.source) : toIndex;
|
|
505
|
+
}
|
|
506
|
+
else {
|
|
507
|
+
previousIndex = isTransfer ? (this.filterValueSource ? ObjectUtils.findIndexInList(data, this.source) : fromIndex) : this.filterValueTarget ? ObjectUtils.findIndexInList(data, this.target) : fromIndex;
|
|
508
|
+
currentIndex = this.filterValueTarget ? this.findFilteredCurrentIndex(this.visibleOptionsTarget, toIndex, this.target) : toIndex;
|
|
509
|
+
}
|
|
510
|
+
return { previousIndex, currentIndex };
|
|
511
|
+
}
|
|
512
|
+
findFilteredCurrentIndex(visibleOptions, index, options) {
|
|
513
|
+
if (visibleOptions.length === index) {
|
|
514
|
+
let toIndex = ObjectUtils.findIndexInList(visibleOptions[index - 1], options);
|
|
515
|
+
return toIndex + 1;
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
return ObjectUtils.findIndexInList(visibleOptions[index], options);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
resetSourceFilter() {
|
|
522
|
+
this.visibleOptionsSource = null;
|
|
523
|
+
this.filterValueSource = null;
|
|
524
|
+
this.sourceFilterViewChild && (this.sourceFilterViewChild.nativeElement.value = '');
|
|
525
|
+
}
|
|
526
|
+
resetTargetFilter() {
|
|
527
|
+
this.visibleOptionsTarget = null;
|
|
528
|
+
this.filterValueTarget = null;
|
|
529
|
+
this.targetFilterViewChild && (this.targetFilterViewChild.nativeElement.value = '');
|
|
530
|
+
}
|
|
531
|
+
resetFilter() {
|
|
532
|
+
this.resetSourceFilter();
|
|
533
|
+
this.resetTargetFilter();
|
|
534
|
+
}
|
|
535
|
+
onItemKeydown(event, item, selectedItems, callback) {
|
|
536
|
+
let listItem = event.currentTarget;
|
|
537
|
+
switch (event.which) {
|
|
538
|
+
//down
|
|
539
|
+
case 40:
|
|
540
|
+
var nextItem = this.findNextItem(listItem);
|
|
541
|
+
if (nextItem) {
|
|
542
|
+
nextItem.focus();
|
|
543
|
+
}
|
|
544
|
+
event.preventDefault();
|
|
545
|
+
break;
|
|
546
|
+
//up
|
|
547
|
+
case 38:
|
|
548
|
+
var prevItem = this.findPrevItem(listItem);
|
|
549
|
+
if (prevItem) {
|
|
550
|
+
prevItem.focus();
|
|
551
|
+
}
|
|
552
|
+
event.preventDefault();
|
|
553
|
+
break;
|
|
554
|
+
//enter
|
|
555
|
+
case 13:
|
|
556
|
+
this.onItemClick(event, item, selectedItems, callback);
|
|
557
|
+
event.preventDefault();
|
|
558
|
+
break;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
findNextItem(item) {
|
|
562
|
+
let nextItem = item.nextElementSibling;
|
|
563
|
+
if (nextItem)
|
|
564
|
+
return !DomHandler.hasClass(nextItem, 'p-picklist-item') || DomHandler.isHidden(nextItem) ? this.findNextItem(nextItem) : nextItem;
|
|
565
|
+
else
|
|
566
|
+
return null;
|
|
567
|
+
}
|
|
568
|
+
findPrevItem(item) {
|
|
569
|
+
let prevItem = item.previousElementSibling;
|
|
570
|
+
if (prevItem)
|
|
571
|
+
return !DomHandler.hasClass(prevItem, 'p-picklist-item') || DomHandler.isHidden(prevItem) ? this.findPrevItem(prevItem) : prevItem;
|
|
572
|
+
else
|
|
573
|
+
return null;
|
|
574
|
+
}
|
|
575
|
+
initMedia() {
|
|
576
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
577
|
+
this.media = this.window.matchMedia(`(max-width: ${this.breakpoint})`);
|
|
578
|
+
this.viewChanged = this.media.matches;
|
|
579
|
+
this.bindMediaChangeListener();
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
destroyMedia() {
|
|
583
|
+
this.unbindMediaChangeListener();
|
|
584
|
+
}
|
|
585
|
+
bindMediaChangeListener() {
|
|
586
|
+
if (this.media && !this.mediaChangeListener) {
|
|
587
|
+
this.mediaChangeListener = this.renderer.listen(this.media, 'change', (event) => {
|
|
588
|
+
this.viewChanged = event.matches;
|
|
589
|
+
this.cd.markForCheck();
|
|
590
|
+
});
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
unbindMediaChangeListener() {
|
|
594
|
+
if (this.mediaChangeListener) {
|
|
595
|
+
this.mediaChangeListener();
|
|
596
|
+
this.mediaChangeListener = null;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
createStyle() {
|
|
600
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
601
|
+
if (!this.styleElement) {
|
|
602
|
+
this.renderer.setAttribute(this.el.nativeElement.children[0], this.id, '');
|
|
603
|
+
this.styleElement = this.renderer.createElement('style');
|
|
604
|
+
this.renderer.setAttribute(this.styleElement, 'type', 'text/css');
|
|
605
|
+
this.renderer.appendChild(this.document.head, this.styleElement);
|
|
606
|
+
let innerHTML = `
|
|
607
|
+
@media screen and (max-width: ${this.breakpoint}) {
|
|
608
|
+
.p-picklist[${this.id}] {
|
|
609
|
+
flex-direction: column;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
.p-picklist[${this.id}] .p-picklist-buttons {
|
|
613
|
+
padding: var(--content-padding);
|
|
614
|
+
flex-direction: row;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
.p-picklist[${this.id}] .p-picklist-buttons .p-button {
|
|
618
|
+
margin-right: var(--inline-spacing);
|
|
619
|
+
margin-bottom: 0;
|
|
620
|
+
}
|
|
621
|
+
|
|
622
|
+
.p-picklist[${this.id}] .p-picklist-buttons .p-button:last-child {
|
|
623
|
+
margin-right: 0;
|
|
624
|
+
}
|
|
625
|
+
}`;
|
|
626
|
+
this.renderer.setProperty(this.styleElement, 'innerHTML', innerHTML);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
sourceMoveDisabled() {
|
|
631
|
+
if (this.disabled || !this.selectedItemsSource.length) {
|
|
632
|
+
return true;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
targetMoveDisabled() {
|
|
636
|
+
if (this.disabled || !this.selectedItemsTarget.length) {
|
|
637
|
+
return true;
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
moveRightDisabled() {
|
|
641
|
+
return this.disabled || ObjectUtils.isEmpty(this.selectedItemsSource);
|
|
642
|
+
}
|
|
643
|
+
moveLeftDisabled() {
|
|
644
|
+
return this.disabled || ObjectUtils.isEmpty(this.selectedItemsTarget);
|
|
645
|
+
}
|
|
646
|
+
moveAllRightDisabled() {
|
|
647
|
+
return this.disabled || ObjectUtils.isEmpty(this.source);
|
|
648
|
+
}
|
|
649
|
+
moveAllLeftDisabled() {
|
|
650
|
+
return this.disabled || ObjectUtils.isEmpty(this.target);
|
|
651
|
+
}
|
|
652
|
+
destroyStyle() {
|
|
653
|
+
if (this.styleElement) {
|
|
654
|
+
this.renderer.removeChild(this.document.head, this.styleElement);
|
|
655
|
+
this.styleElement = null;
|
|
656
|
+
``;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
ngOnDestroy() {
|
|
660
|
+
this.destroyStyle();
|
|
661
|
+
this.destroyMedia();
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
PickList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PickList, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }], target: i0.ɵɵFactoryTarget.Component });
|
|
665
|
+
PickList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PickList, selector: "p-pickList", inputs: { source: "source", target: "target", sourceHeader: "sourceHeader", rightButtonAriaLabel: "rightButtonAriaLabel", leftButtonAriaLabel: "leftButtonAriaLabel", allRightButtonAriaLabel: "allRightButtonAriaLabel", allLeftButtonAriaLabel: "allLeftButtonAriaLabel", upButtonAriaLabel: "upButtonAriaLabel", downButtonAriaLabel: "downButtonAriaLabel", topButtonAriaLabel: "topButtonAriaLabel", bottomButtonAriaLabel: "bottomButtonAriaLabel", targetHeader: "targetHeader", responsive: "responsive", filterBy: "filterBy", filterLocale: "filterLocale", trackBy: "trackBy", sourceTrackBy: "sourceTrackBy", targetTrackBy: "targetTrackBy", showSourceFilter: "showSourceFilter", showTargetFilter: "showTargetFilter", metaKeySelection: "metaKeySelection", dragdrop: "dragdrop", style: "style", styleClass: "styleClass", sourceStyle: "sourceStyle", targetStyle: "targetStyle", showSourceControls: "showSourceControls", showTargetControls: "showTargetControls", sourceFilterPlaceholder: "sourceFilterPlaceholder", targetFilterPlaceholder: "targetFilterPlaceholder", disabled: "disabled", ariaSourceFilterLabel: "ariaSourceFilterLabel", ariaTargetFilterLabel: "ariaTargetFilterLabel", filterMatchMode: "filterMatchMode", breakpoint: "breakpoint", stripedRows: "stripedRows", keepSelection: "keepSelection" }, outputs: { onMoveToSource: "onMoveToSource", onMoveAllToSource: "onMoveAllToSource", onMoveAllToTarget: "onMoveAllToTarget", onMoveToTarget: "onMoveToTarget", onSourceReorder: "onSourceReorder", onTargetReorder: "onTargetReorder", onSourceSelect: "onSourceSelect", onTargetSelect: "onTargetSelect", onSourceFilter: "onSourceFilter", onTargetFilter: "onTargetFilter" }, host: { classAttribute: "p-element" }, queries: [{ propertyName: "templates", predicate: QiusTemplate }], viewQueries: [{ propertyName: "listViewSourceChild", first: true, predicate: ["sourcelist"], descendants: true }, { propertyName: "listViewTargetChild", first: true, predicate: ["targetlist"], descendants: true }, { propertyName: "sourceFilterViewChild", first: true, predicate: ["sourceFilter"], descendants: true }, { propertyName: "targetFilterViewChild", first: true, predicate: ["targetFilter"], descendants: true }], ngImport: i0, template: `
|
|
666
|
+
<div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup>
|
|
667
|
+
<div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls">
|
|
668
|
+
<button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
|
|
669
|
+
<AngleUpIcon *ngIf="!moveUpIconTemplate"/>
|
|
670
|
+
<ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
|
|
671
|
+
</button>
|
|
672
|
+
<button
|
|
673
|
+
type="button"
|
|
674
|
+
[attr.aria-label]="topButtonAriaLabel"
|
|
675
|
+
pButton
|
|
676
|
+
pRipple
|
|
677
|
+
class="p-button-icon-only"
|
|
678
|
+
[disabled]="sourceMoveDisabled()"
|
|
679
|
+
(click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
680
|
+
>
|
|
681
|
+
<AngleDoubleUpIcon *ngIf="!moveTopIconTemplate"/>
|
|
682
|
+
<ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
|
|
683
|
+
</button>
|
|
684
|
+
<button
|
|
685
|
+
type="button"
|
|
686
|
+
[attr.aria-label]="downButtonAriaLabel"
|
|
687
|
+
pButton
|
|
688
|
+
pRipple
|
|
689
|
+
class="p-button-icon-only"
|
|
690
|
+
[disabled]="sourceMoveDisabled()"
|
|
691
|
+
(click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
692
|
+
>
|
|
693
|
+
<AngleDownIcon *ngIf="!moveDownIconTemplate"/>
|
|
694
|
+
<ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
|
|
695
|
+
</button>
|
|
696
|
+
<button
|
|
697
|
+
type="button"
|
|
698
|
+
[attr.aria-label]="bottomButtonAriaLabel"
|
|
699
|
+
pButton
|
|
700
|
+
pRipple
|
|
701
|
+
class="p-button-icon-only"
|
|
702
|
+
[disabled]="sourceMoveDisabled()"
|
|
703
|
+
(click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
704
|
+
>
|
|
705
|
+
<AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate"/>
|
|
706
|
+
<ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
|
|
707
|
+
</button>
|
|
708
|
+
</div>
|
|
709
|
+
<div class="p-picklist-list-wrapper p-picklist-source-wrapper">
|
|
710
|
+
<div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate">
|
|
711
|
+
<div class="p-picklist-title" *ngIf="!sourceHeaderTemplate">{{ sourceHeader }}</div>
|
|
712
|
+
<ng-container *ngTemplateOutlet="sourceHeaderTemplate"></ng-container>
|
|
713
|
+
</div>
|
|
714
|
+
<div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false">
|
|
715
|
+
<ng-container *ngIf="sourceFilterTemplate; else builtInSourceElement">
|
|
716
|
+
<ng-container *ngTemplateOutlet="sourceFilterTemplate; context: { options: sourceFilterOptions }"></ng-container>
|
|
717
|
+
</ng-container>
|
|
718
|
+
<ng-template #builtInSourceElement>
|
|
719
|
+
<div class="p-picklist-filter">
|
|
720
|
+
<input
|
|
721
|
+
#sourceFilter
|
|
722
|
+
type="text"
|
|
723
|
+
role="textbox"
|
|
724
|
+
(keyup)="onFilter($event, SOURCE_LIST)"
|
|
725
|
+
class="p-picklist-filter-input p-inputtext p-component"
|
|
726
|
+
[disabled]="disabled"
|
|
727
|
+
[attr.placeholder]="sourceFilterPlaceholder"
|
|
728
|
+
[attr.aria-label]="ariaSourceFilterLabel"
|
|
729
|
+
/>
|
|
730
|
+
<SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'"/>
|
|
731
|
+
<span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate">
|
|
732
|
+
<ng-template *ngTemplateOutlet="sourceFilterIconTemplate"></ng-template>
|
|
733
|
+
</span>
|
|
734
|
+
</div>
|
|
735
|
+
</ng-template>
|
|
736
|
+
</div>
|
|
737
|
+
|
|
738
|
+
<ul #sourcelist class="p-picklist-list p-picklist-source" cdkDropList [cdkDropListData]="source" (cdkDropListDropped)="onDrop($event, SOURCE_LIST)" [ngStyle]="sourceStyle" role="listbox" aria-multiselectable="multiple">
|
|
739
|
+
<ng-template ngFor let-item [ngForOf]="source" [ngForTrackBy]="sourceTrackBy || trackBy" let-i="index" let-l="last">
|
|
740
|
+
<li
|
|
741
|
+
[ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }"
|
|
742
|
+
pRipple
|
|
743
|
+
cdkDrag
|
|
744
|
+
[cdkDragData]="item"
|
|
745
|
+
[cdkDragDisabled]="!dragdrop"
|
|
746
|
+
(click)="onItemClick($event, item, selectedItemsSource, onSourceSelect)"
|
|
747
|
+
(dblclick)="onSourceItemDblClick()"
|
|
748
|
+
(touchend)="onItemTouchEnd()"
|
|
749
|
+
(keydown)="onItemKeydown($event, item, selectedItemsSource, onSourceSelect)"
|
|
750
|
+
*ngIf="isItemVisible(item, SOURCE_LIST)"
|
|
751
|
+
tabindex="0"
|
|
752
|
+
role="option"
|
|
753
|
+
[attr.aria-selected]="isSelected(item, selectedItemsSource)"
|
|
754
|
+
>
|
|
755
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
|
|
756
|
+
</li>
|
|
757
|
+
</ng-template>
|
|
758
|
+
<ng-container *ngIf="isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)">
|
|
759
|
+
<li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate">
|
|
760
|
+
<ng-container *ngTemplateOutlet="emptyMessageSourceTemplate"></ng-container>
|
|
761
|
+
</li>
|
|
762
|
+
<li class="p-picklist-empty-message" *ngIf="filterValueSource">
|
|
763
|
+
<ng-container *ngTemplateOutlet="emptyFilterMessageSourceTemplate"></ng-container>
|
|
764
|
+
</li>
|
|
765
|
+
</ng-container>
|
|
766
|
+
</ul>
|
|
767
|
+
</div>
|
|
768
|
+
<div class="p-picklist-buttons p-picklist-transfer-buttons">
|
|
769
|
+
<button type="button" [attr.aria-label]="rightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()">
|
|
770
|
+
<ng-container *ngIf="!moveToTargetIconTemplate">
|
|
771
|
+
<AngleRightIcon *ngIf="!viewChanged"/>
|
|
772
|
+
<AngleDownIcon *ngIf="viewChanged"/>
|
|
773
|
+
</ng-container>
|
|
774
|
+
<ng-template *ngTemplateOutlet="moveToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
775
|
+
</button>
|
|
776
|
+
<button type="button" [attr.aria-label]="allRightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()">
|
|
777
|
+
<ng-container *ngIf="!moveAllToTargetIconTemplate">
|
|
778
|
+
<AngleDoubleRightIcon *ngIf="!viewChanged"/>
|
|
779
|
+
<AngleDoubleDownIcon *ngIf="viewChanged"/>
|
|
780
|
+
</ng-container>
|
|
781
|
+
<ng-template *ngTemplateOutlet="moveAllToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
782
|
+
</button>
|
|
783
|
+
<button type="button" [attr.aria-label]="leftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()">
|
|
784
|
+
<ng-container *ngIf="!moveToSourceIconTemplate">
|
|
785
|
+
<AngleLeftIcon *ngIf="!viewChanged"/>
|
|
786
|
+
<AngleUpIcon *ngIf="viewChanged"/>
|
|
787
|
+
</ng-container>
|
|
788
|
+
<ng-template *ngTemplateOutlet="moveToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
789
|
+
</button>
|
|
790
|
+
<button type="button" [attr.aria-label]="allLeftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()">
|
|
791
|
+
<ng-container *ngIf="!moveAllToSourceIconTemplate">
|
|
792
|
+
<AngleDoubleLeftIcon *ngIf="!viewChanged"/>
|
|
793
|
+
<AngleDoubleUpIcon *ngIf="viewChanged"/>
|
|
794
|
+
</ng-container>
|
|
795
|
+
<ng-template *ngTemplateOutlet="moveAllToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
796
|
+
</button>
|
|
797
|
+
</div>
|
|
798
|
+
<div class="p-picklist-list-wrapper p-picklist-target-wrapper">
|
|
799
|
+
<div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate">
|
|
800
|
+
<div class="p-picklist-title" *ngIf="!targetHeaderTemplate">{{ targetHeader }}</div>
|
|
801
|
+
<ng-container *ngTemplateOutlet="targetHeaderTemplate"></ng-container>
|
|
802
|
+
</div>
|
|
803
|
+
<div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false">
|
|
804
|
+
<ng-container *ngIf="targetFilterTemplate; else builtInTargetElement">
|
|
805
|
+
<ng-container *ngTemplateOutlet="targetFilterTemplate; context: { options: targetFilterOptions }"></ng-container>
|
|
806
|
+
</ng-container>
|
|
807
|
+
<ng-template #builtInTargetElement>
|
|
808
|
+
<div class="p-picklist-filter">
|
|
809
|
+
<input
|
|
810
|
+
#targetFilter
|
|
811
|
+
type="text"
|
|
812
|
+
role="textbox"
|
|
813
|
+
(keyup)="onFilter($event, TARGET_LIST)"
|
|
814
|
+
class="p-picklist-filter-input p-inputtext p-component"
|
|
815
|
+
[disabled]="disabled"
|
|
816
|
+
[attr.placeholder]="targetFilterPlaceholder"
|
|
817
|
+
[attr.aria-label]="ariaTargetFilterLabel"
|
|
818
|
+
/>
|
|
819
|
+
<SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'"/>
|
|
820
|
+
<span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate">
|
|
821
|
+
<ng-template *ngTemplateOutlet="targetFilterIconTemplate"></ng-template>
|
|
822
|
+
</span>
|
|
823
|
+
</div>
|
|
824
|
+
</ng-template>
|
|
825
|
+
</div>
|
|
826
|
+
<ul #targetlist class="p-picklist-list p-picklist-target" cdkDropList [cdkDropListData]="target" (cdkDropListDropped)="onDrop($event, TARGET_LIST)" [ngStyle]="targetStyle" role="listbox" aria-multiselectable="multiple">
|
|
827
|
+
<ng-template ngFor let-item [ngForOf]="target" [ngForTrackBy]="targetTrackBy || trackBy" let-i="index" let-l="last">
|
|
828
|
+
<li
|
|
829
|
+
[ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }"
|
|
830
|
+
pRipple
|
|
831
|
+
cdkDrag
|
|
832
|
+
[cdkDragData]="item"
|
|
833
|
+
[cdkDragDisabled]="!dragdrop"
|
|
834
|
+
(click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect)"
|
|
835
|
+
(dblclick)="onTargetItemDblClick()"
|
|
836
|
+
(touchend)="onItemTouchEnd()"
|
|
837
|
+
(keydown)="onItemKeydown($event, item, selectedItemsTarget, onTargetSelect)"
|
|
838
|
+
*ngIf="isItemVisible(item, TARGET_LIST)"
|
|
839
|
+
tabindex="0"
|
|
840
|
+
role="option"
|
|
841
|
+
[attr.aria-selected]="isSelected(item, selectedItemsTarget)"
|
|
842
|
+
>
|
|
843
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
|
|
844
|
+
</li>
|
|
845
|
+
</ng-template>
|
|
846
|
+
<ng-container *ngIf="isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)">
|
|
847
|
+
<li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate">
|
|
848
|
+
<ng-container *ngTemplateOutlet="emptyMessageTargetTemplate"></ng-container>
|
|
849
|
+
</li>
|
|
850
|
+
<li class="p-picklist-empty-message" *ngIf="filterValueTarget">
|
|
851
|
+
<ng-container *ngTemplateOutlet="emptyFilterMessageTargetTemplate"></ng-container>
|
|
852
|
+
</li>
|
|
853
|
+
</ng-container>
|
|
854
|
+
</ul>
|
|
855
|
+
</div>
|
|
856
|
+
<div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls">
|
|
857
|
+
<button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
|
|
858
|
+
<AngleUpIcon *ngIf="!moveUpIconTemplate"/>
|
|
859
|
+
<ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
|
|
860
|
+
</button>
|
|
861
|
+
<button
|
|
862
|
+
type="button"
|
|
863
|
+
[attr.aria-label]="topButtonAriaLabel"
|
|
864
|
+
pButton
|
|
865
|
+
pRipple
|
|
866
|
+
class="p-button-icon-only"
|
|
867
|
+
[disabled]="targetMoveDisabled()"
|
|
868
|
+
(click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
869
|
+
>
|
|
870
|
+
<AngleDoubleUpIcon *ngIf="!moveTopIconTemplate"/>
|
|
871
|
+
<ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
|
|
872
|
+
</button>
|
|
873
|
+
<button
|
|
874
|
+
type="button"
|
|
875
|
+
[attr.aria-label]="downButtonAriaLabel"
|
|
876
|
+
pButton
|
|
877
|
+
pRipple
|
|
878
|
+
class="p-button-icon-only"
|
|
879
|
+
[disabled]="targetMoveDisabled()"
|
|
880
|
+
(click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
881
|
+
>
|
|
882
|
+
<AngleDownIcon *ngIf="!moveDownIconTemplate"/>
|
|
883
|
+
<ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
|
|
884
|
+
</button>
|
|
885
|
+
<button
|
|
886
|
+
type="button"
|
|
887
|
+
[attr.aria-label]="bottomButtonAriaLabel"
|
|
888
|
+
pButton
|
|
889
|
+
pRipple
|
|
890
|
+
class="p-button-icon-only"
|
|
891
|
+
[disabled]="targetMoveDisabled()"
|
|
892
|
+
(click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
893
|
+
>
|
|
894
|
+
<AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate"/>
|
|
895
|
+
<ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
|
|
896
|
+
</button>
|
|
897
|
+
</div>
|
|
898
|
+
</div>
|
|
899
|
+
`, isInline: true, styles: [".p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;min-height:12rem}.p-picklist-item{display:block;cursor:pointer;overflow:hidden;position:relative}.p-picklist-item:not(.cdk-drag-disabled){cursor:move}.p-picklist-item.cdk-drag-placeholder{opacity:0}.p-picklist-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.p-picklist-filter{position:relative}.p-picklist-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-picklist-filter-input{width:100%}.p-picklist-list.cdk-drop-list-dragging .p-picklist-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i2.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i0.forwardRef(function () { return i3.ButtonDirective; }), selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.Ripple; }), selector: "[pRipple]" }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDropList; }), selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDropListGroup; }), selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { kind: "directive", type: i0.forwardRef(function () { return i5.CdkDrag; }), selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleDownIcon; }), selector: "AngleDoubleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleLeftIcon; }), selector: "AngleDoubleLeftIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleRightIcon; }), selector: "AngleDoubleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDoubleUpIcon; }), selector: "AngleDoubleUpIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleDownIcon; }), selector: "AngleDownIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleLeftIcon; }), selector: "AngleLeftIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleRightIcon; }), selector: "AngleRightIcon" }, { kind: "component", type: i0.forwardRef(function () { return AngleUpIcon; }), selector: "AngleUpIcon" }, { kind: "component", type: i0.forwardRef(function () { return SearchIcon; }), selector: "SearchIcon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
900
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PickList, decorators: [{
|
|
901
|
+
type: Component,
|
|
902
|
+
args: [{ selector: 'p-pickList', template: `
|
|
903
|
+
<div [class]="styleClass" [ngStyle]="style" [ngClass]="{ 'p-picklist p-component': true, 'p-picklist-striped': stripedRows }" cdkDropListGroup>
|
|
904
|
+
<div class="p-picklist-buttons p-picklist-source-controls" *ngIf="showSourceControls">
|
|
905
|
+
<button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="sourceMoveDisabled()" (click)="moveUp(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)">
|
|
906
|
+
<AngleUpIcon *ngIf="!moveUpIconTemplate"/>
|
|
907
|
+
<ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
|
|
908
|
+
</button>
|
|
909
|
+
<button
|
|
910
|
+
type="button"
|
|
911
|
+
[attr.aria-label]="topButtonAriaLabel"
|
|
912
|
+
pButton
|
|
913
|
+
pRipple
|
|
914
|
+
class="p-button-icon-only"
|
|
915
|
+
[disabled]="sourceMoveDisabled()"
|
|
916
|
+
(click)="moveTop(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
917
|
+
>
|
|
918
|
+
<AngleDoubleUpIcon *ngIf="!moveTopIconTemplate"/>
|
|
919
|
+
<ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
|
|
920
|
+
</button>
|
|
921
|
+
<button
|
|
922
|
+
type="button"
|
|
923
|
+
[attr.aria-label]="downButtonAriaLabel"
|
|
924
|
+
pButton
|
|
925
|
+
pRipple
|
|
926
|
+
class="p-button-icon-only"
|
|
927
|
+
[disabled]="sourceMoveDisabled()"
|
|
928
|
+
(click)="moveDown(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
929
|
+
>
|
|
930
|
+
<AngleDownIcon *ngIf="!moveDownIconTemplate"/>
|
|
931
|
+
<ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
|
|
932
|
+
</button>
|
|
933
|
+
<button
|
|
934
|
+
type="button"
|
|
935
|
+
[attr.aria-label]="bottomButtonAriaLabel"
|
|
936
|
+
pButton
|
|
937
|
+
pRipple
|
|
938
|
+
class="p-button-icon-only"
|
|
939
|
+
[disabled]="sourceMoveDisabled()"
|
|
940
|
+
(click)="moveBottom(sourcelist, source, selectedItemsSource, onSourceReorder, SOURCE_LIST)"
|
|
941
|
+
>
|
|
942
|
+
<AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate"/>
|
|
943
|
+
<ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
|
|
944
|
+
</button>
|
|
945
|
+
</div>
|
|
946
|
+
<div class="p-picklist-list-wrapper p-picklist-source-wrapper">
|
|
947
|
+
<div class="p-picklist-header" *ngIf="sourceHeader || sourceHeaderTemplate">
|
|
948
|
+
<div class="p-picklist-title" *ngIf="!sourceHeaderTemplate">{{ sourceHeader }}</div>
|
|
949
|
+
<ng-container *ngTemplateOutlet="sourceHeaderTemplate"></ng-container>
|
|
950
|
+
</div>
|
|
951
|
+
<div class="p-picklist-filter-container" *ngIf="filterBy && showSourceFilter !== false">
|
|
952
|
+
<ng-container *ngIf="sourceFilterTemplate; else builtInSourceElement">
|
|
953
|
+
<ng-container *ngTemplateOutlet="sourceFilterTemplate; context: { options: sourceFilterOptions }"></ng-container>
|
|
954
|
+
</ng-container>
|
|
955
|
+
<ng-template #builtInSourceElement>
|
|
956
|
+
<div class="p-picklist-filter">
|
|
957
|
+
<input
|
|
958
|
+
#sourceFilter
|
|
959
|
+
type="text"
|
|
960
|
+
role="textbox"
|
|
961
|
+
(keyup)="onFilter($event, SOURCE_LIST)"
|
|
962
|
+
class="p-picklist-filter-input p-inputtext p-component"
|
|
963
|
+
[disabled]="disabled"
|
|
964
|
+
[attr.placeholder]="sourceFilterPlaceholder"
|
|
965
|
+
[attr.aria-label]="ariaSourceFilterLabel"
|
|
966
|
+
/>
|
|
967
|
+
<SearchIcon *ngIf="!sourceFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'"/>
|
|
968
|
+
<span class="p-picklist-filter-icon" *ngIf="sourceFilterIconTemplate">
|
|
969
|
+
<ng-template *ngTemplateOutlet="sourceFilterIconTemplate"></ng-template>
|
|
970
|
+
</span>
|
|
971
|
+
</div>
|
|
972
|
+
</ng-template>
|
|
973
|
+
</div>
|
|
974
|
+
|
|
975
|
+
<ul #sourcelist class="p-picklist-list p-picklist-source" cdkDropList [cdkDropListData]="source" (cdkDropListDropped)="onDrop($event, SOURCE_LIST)" [ngStyle]="sourceStyle" role="listbox" aria-multiselectable="multiple">
|
|
976
|
+
<ng-template ngFor let-item [ngForOf]="source" [ngForTrackBy]="sourceTrackBy || trackBy" let-i="index" let-l="last">
|
|
977
|
+
<li
|
|
978
|
+
[ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsSource), 'p-disabled': disabled }"
|
|
979
|
+
pRipple
|
|
980
|
+
cdkDrag
|
|
981
|
+
[cdkDragData]="item"
|
|
982
|
+
[cdkDragDisabled]="!dragdrop"
|
|
983
|
+
(click)="onItemClick($event, item, selectedItemsSource, onSourceSelect)"
|
|
984
|
+
(dblclick)="onSourceItemDblClick()"
|
|
985
|
+
(touchend)="onItemTouchEnd()"
|
|
986
|
+
(keydown)="onItemKeydown($event, item, selectedItemsSource, onSourceSelect)"
|
|
987
|
+
*ngIf="isItemVisible(item, SOURCE_LIST)"
|
|
988
|
+
tabindex="0"
|
|
989
|
+
role="option"
|
|
990
|
+
[attr.aria-selected]="isSelected(item, selectedItemsSource)"
|
|
991
|
+
>
|
|
992
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
|
|
993
|
+
</li>
|
|
994
|
+
</ng-template>
|
|
995
|
+
<ng-container *ngIf="isEmpty(SOURCE_LIST) && (emptyMessageSourceTemplate || emptyFilterMessageSourceTemplate)">
|
|
996
|
+
<li class="p-picklist-empty-message" *ngIf="!filterValueSource || !emptyFilterMessageSourceTemplate">
|
|
997
|
+
<ng-container *ngTemplateOutlet="emptyMessageSourceTemplate"></ng-container>
|
|
998
|
+
</li>
|
|
999
|
+
<li class="p-picklist-empty-message" *ngIf="filterValueSource">
|
|
1000
|
+
<ng-container *ngTemplateOutlet="emptyFilterMessageSourceTemplate"></ng-container>
|
|
1001
|
+
</li>
|
|
1002
|
+
</ng-container>
|
|
1003
|
+
</ul>
|
|
1004
|
+
</div>
|
|
1005
|
+
<div class="p-picklist-buttons p-picklist-transfer-buttons">
|
|
1006
|
+
<button type="button" [attr.aria-label]="rightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveRightDisabled()" (click)="moveRight()">
|
|
1007
|
+
<ng-container *ngIf="!moveToTargetIconTemplate">
|
|
1008
|
+
<AngleRightIcon *ngIf="!viewChanged"/>
|
|
1009
|
+
<AngleDownIcon *ngIf="viewChanged"/>
|
|
1010
|
+
</ng-container>
|
|
1011
|
+
<ng-template *ngTemplateOutlet="moveToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
1012
|
+
</button>
|
|
1013
|
+
<button type="button" [attr.aria-label]="allRightButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllRightDisabled()" (click)="moveAllRight()">
|
|
1014
|
+
<ng-container *ngIf="!moveAllToTargetIconTemplate">
|
|
1015
|
+
<AngleDoubleRightIcon *ngIf="!viewChanged"/>
|
|
1016
|
+
<AngleDoubleDownIcon *ngIf="viewChanged"/>
|
|
1017
|
+
</ng-container>
|
|
1018
|
+
<ng-template *ngTemplateOutlet="moveAllToTargetIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
1019
|
+
</button>
|
|
1020
|
+
<button type="button" [attr.aria-label]="leftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveLeftDisabled()" (click)="moveLeft()">
|
|
1021
|
+
<ng-container *ngIf="!moveToSourceIconTemplate">
|
|
1022
|
+
<AngleLeftIcon *ngIf="!viewChanged"/>
|
|
1023
|
+
<AngleUpIcon *ngIf="viewChanged"/>
|
|
1024
|
+
</ng-container>
|
|
1025
|
+
<ng-template *ngTemplateOutlet="moveToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
1026
|
+
</button>
|
|
1027
|
+
<button type="button" [attr.aria-label]="allLeftButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="moveAllLeftDisabled()" (click)="moveAllLeft()">
|
|
1028
|
+
<ng-container *ngIf="!moveAllToSourceIconTemplate">
|
|
1029
|
+
<AngleDoubleLeftIcon *ngIf="!viewChanged"/>
|
|
1030
|
+
<AngleDoubleUpIcon *ngIf="viewChanged"/>
|
|
1031
|
+
</ng-container>
|
|
1032
|
+
<ng-template *ngTemplateOutlet="moveAllToSourceIconTemplate; context: { $implicit: viewChanged }"></ng-template>
|
|
1033
|
+
</button>
|
|
1034
|
+
</div>
|
|
1035
|
+
<div class="p-picklist-list-wrapper p-picklist-target-wrapper">
|
|
1036
|
+
<div class="p-picklist-header" *ngIf="targetHeader || targetHeaderTemplate">
|
|
1037
|
+
<div class="p-picklist-title" *ngIf="!targetHeaderTemplate">{{ targetHeader }}</div>
|
|
1038
|
+
<ng-container *ngTemplateOutlet="targetHeaderTemplate"></ng-container>
|
|
1039
|
+
</div>
|
|
1040
|
+
<div class="p-picklist-filter-container" *ngIf="filterBy && showTargetFilter !== false">
|
|
1041
|
+
<ng-container *ngIf="targetFilterTemplate; else builtInTargetElement">
|
|
1042
|
+
<ng-container *ngTemplateOutlet="targetFilterTemplate; context: { options: targetFilterOptions }"></ng-container>
|
|
1043
|
+
</ng-container>
|
|
1044
|
+
<ng-template #builtInTargetElement>
|
|
1045
|
+
<div class="p-picklist-filter">
|
|
1046
|
+
<input
|
|
1047
|
+
#targetFilter
|
|
1048
|
+
type="text"
|
|
1049
|
+
role="textbox"
|
|
1050
|
+
(keyup)="onFilter($event, TARGET_LIST)"
|
|
1051
|
+
class="p-picklist-filter-input p-inputtext p-component"
|
|
1052
|
+
[disabled]="disabled"
|
|
1053
|
+
[attr.placeholder]="targetFilterPlaceholder"
|
|
1054
|
+
[attr.aria-label]="ariaTargetFilterLabel"
|
|
1055
|
+
/>
|
|
1056
|
+
<SearchIcon *ngIf="!targetFilterIconTemplate" [styleClass]="'p-picklist-filter-icon'"/>
|
|
1057
|
+
<span class="p-picklist-filter-icon" *ngIf="targetFilterIconTemplate">
|
|
1058
|
+
<ng-template *ngTemplateOutlet="targetFilterIconTemplate"></ng-template>
|
|
1059
|
+
</span>
|
|
1060
|
+
</div>
|
|
1061
|
+
</ng-template>
|
|
1062
|
+
</div>
|
|
1063
|
+
<ul #targetlist class="p-picklist-list p-picklist-target" cdkDropList [cdkDropListData]="target" (cdkDropListDropped)="onDrop($event, TARGET_LIST)" [ngStyle]="targetStyle" role="listbox" aria-multiselectable="multiple">
|
|
1064
|
+
<ng-template ngFor let-item [ngForOf]="target" [ngForTrackBy]="targetTrackBy || trackBy" let-i="index" let-l="last">
|
|
1065
|
+
<li
|
|
1066
|
+
[ngClass]="{ 'p-picklist-item': true, 'p-highlight': isSelected(item, selectedItemsTarget), 'p-disabled': disabled }"
|
|
1067
|
+
pRipple
|
|
1068
|
+
cdkDrag
|
|
1069
|
+
[cdkDragData]="item"
|
|
1070
|
+
[cdkDragDisabled]="!dragdrop"
|
|
1071
|
+
(click)="onItemClick($event, item, selectedItemsTarget, onTargetSelect)"
|
|
1072
|
+
(dblclick)="onTargetItemDblClick()"
|
|
1073
|
+
(touchend)="onItemTouchEnd()"
|
|
1074
|
+
(keydown)="onItemKeydown($event, item, selectedItemsTarget, onTargetSelect)"
|
|
1075
|
+
*ngIf="isItemVisible(item, TARGET_LIST)"
|
|
1076
|
+
tabindex="0"
|
|
1077
|
+
role="option"
|
|
1078
|
+
[attr.aria-selected]="isSelected(item, selectedItemsTarget)"
|
|
1079
|
+
>
|
|
1080
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, index: i }"></ng-container>
|
|
1081
|
+
</li>
|
|
1082
|
+
</ng-template>
|
|
1083
|
+
<ng-container *ngIf="isEmpty(TARGET_LIST) && (emptyMessageTargetTemplate || emptyFilterMessageTargetTemplate)">
|
|
1084
|
+
<li class="p-picklist-empty-message" *ngIf="!filterValueTarget || !emptyFilterMessageTargetTemplate">
|
|
1085
|
+
<ng-container *ngTemplateOutlet="emptyMessageTargetTemplate"></ng-container>
|
|
1086
|
+
</li>
|
|
1087
|
+
<li class="p-picklist-empty-message" *ngIf="filterValueTarget">
|
|
1088
|
+
<ng-container *ngTemplateOutlet="emptyFilterMessageTargetTemplate"></ng-container>
|
|
1089
|
+
</li>
|
|
1090
|
+
</ng-container>
|
|
1091
|
+
</ul>
|
|
1092
|
+
</div>
|
|
1093
|
+
<div class="p-picklist-buttons p-picklist-target-controls" *ngIf="showTargetControls">
|
|
1094
|
+
<button type="button" [attr.aria-label]="upButtonAriaLabel" pButton pRipple class="p-button-icon-only" [disabled]="targetMoveDisabled()" (click)="moveUp(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)">
|
|
1095
|
+
<AngleUpIcon *ngIf="!moveUpIconTemplate"/>
|
|
1096
|
+
<ng-template *ngTemplateOutlet="moveUpIconTemplate"></ng-template>
|
|
1097
|
+
</button>
|
|
1098
|
+
<button
|
|
1099
|
+
type="button"
|
|
1100
|
+
[attr.aria-label]="topButtonAriaLabel"
|
|
1101
|
+
pButton
|
|
1102
|
+
pRipple
|
|
1103
|
+
class="p-button-icon-only"
|
|
1104
|
+
[disabled]="targetMoveDisabled()"
|
|
1105
|
+
(click)="moveTop(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
1106
|
+
>
|
|
1107
|
+
<AngleDoubleUpIcon *ngIf="!moveTopIconTemplate"/>
|
|
1108
|
+
<ng-template *ngTemplateOutlet="moveTopIconTemplate"></ng-template>
|
|
1109
|
+
</button>
|
|
1110
|
+
<button
|
|
1111
|
+
type="button"
|
|
1112
|
+
[attr.aria-label]="downButtonAriaLabel"
|
|
1113
|
+
pButton
|
|
1114
|
+
pRipple
|
|
1115
|
+
class="p-button-icon-only"
|
|
1116
|
+
[disabled]="targetMoveDisabled()"
|
|
1117
|
+
(click)="moveDown(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
1118
|
+
>
|
|
1119
|
+
<AngleDownIcon *ngIf="!moveDownIconTemplate"/>
|
|
1120
|
+
<ng-template *ngTemplateOutlet="moveDownIconTemplate"></ng-template>
|
|
1121
|
+
</button>
|
|
1122
|
+
<button
|
|
1123
|
+
type="button"
|
|
1124
|
+
[attr.aria-label]="bottomButtonAriaLabel"
|
|
1125
|
+
pButton
|
|
1126
|
+
pRipple
|
|
1127
|
+
class="p-button-icon-only"
|
|
1128
|
+
[disabled]="targetMoveDisabled()"
|
|
1129
|
+
(click)="moveBottom(targetlist, target, selectedItemsTarget, onTargetReorder, TARGET_LIST)"
|
|
1130
|
+
>
|
|
1131
|
+
<AngleDoubleDownIcon *ngIf="!moveBottomIconTemplate"/>
|
|
1132
|
+
<ng-template *ngTemplateOutlet="moveBottomIconTemplate"></ng-template>
|
|
1133
|
+
</button>
|
|
1134
|
+
</div>
|
|
1135
|
+
</div>
|
|
1136
|
+
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
1137
|
+
class: 'p-element'
|
|
1138
|
+
}, styles: [".p-picklist{display:flex}.p-picklist-buttons{display:flex;flex-direction:column;justify-content:center}.p-picklist-list-wrapper{flex:1 1 50%}.p-picklist-list{list-style-type:none;margin:0;padding:0;overflow:auto;min-height:12rem}.p-picklist-item{display:block;cursor:pointer;overflow:hidden;position:relative}.p-picklist-item:not(.cdk-drag-disabled){cursor:move}.p-picklist-item.cdk-drag-placeholder{opacity:0}.p-picklist-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.p-picklist-filter{position:relative}.p-picklist-filter-icon{position:absolute;top:50%;margin-top:-.5rem}.p-picklist-filter-input{width:100%}.p-picklist-list.cdk-drop-list-dragging .p-picklist-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"] }]
|
|
1139
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
1140
|
+
type: Inject,
|
|
1141
|
+
args: [DOCUMENT]
|
|
1142
|
+
}] }, { type: undefined, decorators: [{
|
|
1143
|
+
type: Inject,
|
|
1144
|
+
args: [PLATFORM_ID]
|
|
1145
|
+
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }]; }, propDecorators: { source: [{
|
|
1146
|
+
type: Input
|
|
1147
|
+
}], target: [{
|
|
1148
|
+
type: Input
|
|
1149
|
+
}], sourceHeader: [{
|
|
1150
|
+
type: Input
|
|
1151
|
+
}], rightButtonAriaLabel: [{
|
|
1152
|
+
type: Input
|
|
1153
|
+
}], leftButtonAriaLabel: [{
|
|
1154
|
+
type: Input
|
|
1155
|
+
}], allRightButtonAriaLabel: [{
|
|
1156
|
+
type: Input
|
|
1157
|
+
}], allLeftButtonAriaLabel: [{
|
|
1158
|
+
type: Input
|
|
1159
|
+
}], upButtonAriaLabel: [{
|
|
1160
|
+
type: Input
|
|
1161
|
+
}], downButtonAriaLabel: [{
|
|
1162
|
+
type: Input
|
|
1163
|
+
}], topButtonAriaLabel: [{
|
|
1164
|
+
type: Input
|
|
1165
|
+
}], bottomButtonAriaLabel: [{
|
|
1166
|
+
type: Input
|
|
1167
|
+
}], targetHeader: [{
|
|
1168
|
+
type: Input
|
|
1169
|
+
}], responsive: [{
|
|
1170
|
+
type: Input
|
|
1171
|
+
}], filterBy: [{
|
|
1172
|
+
type: Input
|
|
1173
|
+
}], filterLocale: [{
|
|
1174
|
+
type: Input
|
|
1175
|
+
}], trackBy: [{
|
|
1176
|
+
type: Input
|
|
1177
|
+
}], sourceTrackBy: [{
|
|
1178
|
+
type: Input
|
|
1179
|
+
}], targetTrackBy: [{
|
|
1180
|
+
type: Input
|
|
1181
|
+
}], showSourceFilter: [{
|
|
1182
|
+
type: Input
|
|
1183
|
+
}], showTargetFilter: [{
|
|
1184
|
+
type: Input
|
|
1185
|
+
}], metaKeySelection: [{
|
|
1186
|
+
type: Input
|
|
1187
|
+
}], dragdrop: [{
|
|
1188
|
+
type: Input
|
|
1189
|
+
}], style: [{
|
|
1190
|
+
type: Input
|
|
1191
|
+
}], styleClass: [{
|
|
1192
|
+
type: Input
|
|
1193
|
+
}], sourceStyle: [{
|
|
1194
|
+
type: Input
|
|
1195
|
+
}], targetStyle: [{
|
|
1196
|
+
type: Input
|
|
1197
|
+
}], showSourceControls: [{
|
|
1198
|
+
type: Input
|
|
1199
|
+
}], showTargetControls: [{
|
|
1200
|
+
type: Input
|
|
1201
|
+
}], sourceFilterPlaceholder: [{
|
|
1202
|
+
type: Input
|
|
1203
|
+
}], targetFilterPlaceholder: [{
|
|
1204
|
+
type: Input
|
|
1205
|
+
}], disabled: [{
|
|
1206
|
+
type: Input
|
|
1207
|
+
}], ariaSourceFilterLabel: [{
|
|
1208
|
+
type: Input
|
|
1209
|
+
}], ariaTargetFilterLabel: [{
|
|
1210
|
+
type: Input
|
|
1211
|
+
}], filterMatchMode: [{
|
|
1212
|
+
type: Input
|
|
1213
|
+
}], breakpoint: [{
|
|
1214
|
+
type: Input
|
|
1215
|
+
}], stripedRows: [{
|
|
1216
|
+
type: Input
|
|
1217
|
+
}], keepSelection: [{
|
|
1218
|
+
type: Input
|
|
1219
|
+
}], onMoveToSource: [{
|
|
1220
|
+
type: Output
|
|
1221
|
+
}], onMoveAllToSource: [{
|
|
1222
|
+
type: Output
|
|
1223
|
+
}], onMoveAllToTarget: [{
|
|
1224
|
+
type: Output
|
|
1225
|
+
}], onMoveToTarget: [{
|
|
1226
|
+
type: Output
|
|
1227
|
+
}], onSourceReorder: [{
|
|
1228
|
+
type: Output
|
|
1229
|
+
}], onTargetReorder: [{
|
|
1230
|
+
type: Output
|
|
1231
|
+
}], onSourceSelect: [{
|
|
1232
|
+
type: Output
|
|
1233
|
+
}], onTargetSelect: [{
|
|
1234
|
+
type: Output
|
|
1235
|
+
}], onSourceFilter: [{
|
|
1236
|
+
type: Output
|
|
1237
|
+
}], onTargetFilter: [{
|
|
1238
|
+
type: Output
|
|
1239
|
+
}], listViewSourceChild: [{
|
|
1240
|
+
type: ViewChild,
|
|
1241
|
+
args: ['sourcelist']
|
|
1242
|
+
}], listViewTargetChild: [{
|
|
1243
|
+
type: ViewChild,
|
|
1244
|
+
args: ['targetlist']
|
|
1245
|
+
}], sourceFilterViewChild: [{
|
|
1246
|
+
type: ViewChild,
|
|
1247
|
+
args: ['sourceFilter']
|
|
1248
|
+
}], targetFilterViewChild: [{
|
|
1249
|
+
type: ViewChild,
|
|
1250
|
+
args: ['targetFilter']
|
|
1251
|
+
}], templates: [{
|
|
1252
|
+
type: ContentChildren,
|
|
1253
|
+
args: [QiusTemplate]
|
|
1254
|
+
}] } });
|
|
1255
|
+
export class PickListModule {
|
|
1256
|
+
}
|
|
1257
|
+
PickListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PickListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1258
|
+
PickListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: PickListModule, declarations: [PickList], imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon], exports: [PickList, SharedModule, DragDropModule] });
|
|
1259
|
+
PickListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PickListModule, imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon, SharedModule, DragDropModule] });
|
|
1260
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PickListModule, decorators: [{
|
|
1261
|
+
type: NgModule,
|
|
1262
|
+
args: [{
|
|
1263
|
+
imports: [CommonModule, ButtonModule, SharedModule, RippleModule, DragDropModule, AngleDoubleDownIcon, AngleDoubleLeftIcon, AngleDoubleRightIcon, AngleDoubleUpIcon, AngleDownIcon, AngleLeftIcon, AngleRightIcon, AngleUpIcon, SearchIcon, HomeIcon],
|
|
1264
|
+
exports: [PickList, SharedModule, DragDropModule],
|
|
1265
|
+
declarations: [PickList]
|
|
1266
|
+
}]
|
|
1267
|
+
}] });
|
|
1268
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcGlja2xpc3QvcGlja2xpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFFBQVEsRUFDUixTQUFTLEVBSVQsS0FBSyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBR2YsWUFBWSxFQUNaLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBR2pCLE1BQU0sRUFDTixXQUFXLEVBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQWlCLE1BQU0seUNBQXlDLENBQUM7QUFDcEcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRSxPQUFPLEVBQWUsY0FBYyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxN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TixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDO29CQUNyUCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQztvQkFDakQsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTmdNb2R1bGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgUXVlcnlMaXN0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIEluamVjdCxcbiAgICBQTEFURk9STV9JRFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2J1dHRvbic7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUsIFFpdXNUZW1wbGF0ZSwgRmlsdGVyU2VydmljZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvZG9tJztcbmltcG9ydCB7IFJpcHBsZU1vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL3JpcHBsZSc7XG5pbXBvcnQgeyBDZGtEcmFnRHJvcCwgRHJhZ0Ryb3BNb2R1bGUsIG1vdmVJdGVtSW5BcnJheSwgdHJhbnNmZXJBcnJheUl0ZW0gfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IE9iamVjdFV0aWxzLCBVbmlxdWVDb21wb25lbnRJZCB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IEFuZ2xlRG91YmxlRG93bkljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9hbmdsZWRvdWJsZWRvd24nO1xuaW1wb3J0IHsgQW5nbGVEb3VibGVMZWZ0SWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL2FuZ2xlZG91YmxlbGVmdCc7XG5pbXBvcnQgeyBBbmdsZURvdWJsZVJpZ2h0SWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL2FuZ2xlZG91YmxlcmlnaHQnO1xuaW1wb3J0IHsgQW5nbGVEb3VibGVVcEljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9hbmdsZWRvdWJsZXVwJztcbmltcG9ydCB7IEFuZ2xlRG93bkljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9hbmdsZWRvd24nO1xuaW1wb3J0IHsgQW5nbGVMZWZ0SWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL2FuZ2xlbGVmdCc7XG5pbXBvcnQgeyBBbmdsZVJpZ2h0SWNvbiB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2ljb25zL2FuZ2xlcmlnaHQnO1xuaW1wb3J0IHsgQW5nbGVVcEljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9hbmdsZXVwJztcbmltcG9ydCB7IFNlYXJjaEljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9zZWFyY2gnO1xuaW1wb3J0IHsgSG9tZUljb24gfSBmcm9tICdAcWl1cy5zb2x1dGlvbnMvcGFyYWxsZWwtdWktYW5ndWxhci9pY29ucy9ob21lJztcblxuZXhwb3J0IGludGVyZmFjZSBQaWNrTGlzdEZpbHRlck9wdGlvbnMge1xuICAgIGZpbHRlcj86ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcbiAgICByZXNldD86ICgpID0+IHZvaWQ7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncC1waWNrTGlzdCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwic3R5bGVDbGFzc1wiIFtuZ1N0eWxlXT1cInN0eWxlXCIgW25nQ2xhc3NdPVwieyAncC1waWNrbGlzdCBwLWNvbXBvbmVudCc6IHRydWUsICdwLXBpY2tsaXN0LXN0cmlwZWQnOiBzdHJpcGVkUm93cyB9XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBpY2tsaXN0LWJ1dHRvbnMgcC1waWNrbGlzdC1zb3VyY2UtY29udHJvbHNcIiAqbmdJZj1cInNob3dTb3VyY2VDb250cm9sc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwidXBCdXR0b25BcmlhTGFiZWxcIiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIiBbZGlzYWJsZWRdPVwic291cmNlTW92ZURpc2FibGVkKClcIiAoY2xpY2spPVwibW92ZVVwKHNvdXJjZWxpc3QsIHNvdXJjZSwgc2VsZWN0ZWRJdGVtc1NvdXJjZSwgb25Tb3VyY2VSZW9yZGVyLCBTT1VSQ0VfTElTVClcIj5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlVXBJY29uICpuZ0lmPVwiIW1vdmVVcEljb25UZW1wbGF0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZVVwSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvcEJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzb3VyY2VNb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlVG9wKHNvdXJjZWxpc3QsIHNvdXJjZSwgc2VsZWN0ZWRJdGVtc1NvdXJjZSwgb25Tb3VyY2VSZW9yZGVyLCBTT1VSQ0VfTElTVClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlVXBJY29uICpuZ0lmPVwiIW1vdmVUb3BJY29uVGVtcGxhdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVUb3BJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZG93bkJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzb3VyY2VNb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlRG93bihzb3VyY2VsaXN0LCBzb3VyY2UsIHNlbGVjdGVkSXRlbXNTb3VyY2UsIG9uU291cmNlUmVvcmRlciwgU09VUkNFX0xJU1QpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBbmdsZURvd25JY29uICpuZ0lmPVwiIW1vdmVEb3duSWNvblRlbXBsYXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb3ZlRG93bkljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJib3R0b21CdXR0b25BcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic291cmNlTW92ZURpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW92ZUJvdHRvbShzb3VyY2VsaXN0LCBzb3VyY2UsIHNlbGVjdGVkSXRlbXNTb3VyY2UsIG9uU291cmNlUmVvcmRlciwgU09VUkNFX0xJU1QpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxBbmdsZURvdWJsZURvd25JY29uICpuZ0lmPVwiIW1vdmVCb3R0b21JY29uVGVtcGxhdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVCb3R0b21JY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1waWNrbGlzdC1saXN0LXdyYXBwZXIgcC1waWNrbGlzdC1zb3VyY2Utd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBpY2tsaXN0LWhlYWRlclwiICpuZ0lmPVwic291cmNlSGVhZGVyIHx8IHNvdXJjZUhlYWRlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBpY2tsaXN0LXRpdGxlXCIgKm5nSWY9XCIhc291cmNlSGVhZGVyVGVtcGxhdGVcIj57eyBzb3VyY2VIZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvdXJjZUhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyLWNvbnRhaW5lclwiICpuZ0lmPVwiZmlsdGVyQnkgJiYgc2hvd1NvdXJjZUZpbHRlciAhPT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNvdXJjZUZpbHRlclRlbXBsYXRlOyBlbHNlIGJ1aWx0SW5Tb3VyY2VFbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic291cmNlRmlsdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgb3B0aW9uczogc291cmNlRmlsdGVyT3B0aW9ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J1aWx0SW5Tb3VyY2VFbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzb3VyY2VGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQsIFNPVVJDRV9MSVNUKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1waWNrbGlzdC1maWx0ZXItaW5wdXQgcC1pbnB1dHRleHQgcC1jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJzb3VyY2VGaWx0ZXJQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVNvdXJjZUZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uICpuZ0lmPVwiIXNvdXJjZUZpbHRlckljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLXBpY2tsaXN0LWZpbHRlci1pY29uJ1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyLWljb25cIiAqbmdJZj1cInNvdXJjZUZpbHRlckljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzb3VyY2VGaWx0ZXJJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPHVsICNzb3VyY2VsaXN0IGNsYXNzPVwicC1waWNrbGlzdC1saXN0IHAtcGlja2xpc3Qtc291cmNlXCIgY2RrRHJvcExpc3QgW2Nka0Ryb3BMaXN0RGF0YV09XCJzb3VyY2VcIiAoY2RrRHJvcExpc3REcm9wcGVkKT1cIm9uRHJvcCgkZXZlbnQsIFNPVVJDRV9MSVNUKVwiIFtuZ1N0eWxlXT1cInNvdXJjZVN0eWxlXCIgcm9sZT1cImxpc3Rib3hcIiBhcmlhLW11bHRpc2VsZWN0YWJsZT1cIm11bHRpcGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtaXRlbSBbbmdGb3JPZl09XCJzb3VyY2VcIiBbbmdGb3JUcmFja0J5XT1cInNvdXJjZVRyYWNrQnkgfHwgdHJhY2tCeVwiIGxldC1pPVwiaW5kZXhcIiBsZXQtbD1cImxhc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3AtcGlja2xpc3QtaXRlbSc6IHRydWUsICdwLWhpZ2hsaWdodCc6IGlzU2VsZWN0ZWQoaXRlbSwgc2VsZWN0ZWRJdGVtc1NvdXJjZSksICdwLWRpc2FibGVkJzogZGlzYWJsZWQgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2RrRHJhZ0RhdGFdPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCIhZHJhZ2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0sIHNlbGVjdGVkSXRlbXNTb3VyY2UsIG9uU291cmNlU2VsZWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uU291cmNlSXRlbURibENsaWNrKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0b3VjaGVuZCk9XCJvbkl0ZW1Ub3VjaEVuZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkl0ZW1LZXlkb3duKCRldmVudCwgaXRlbSwgc2VsZWN0ZWRJdGVtc1NvdXJjZSwgb25Tb3VyY2VTZWxlY3QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzSXRlbVZpc2libGUoaXRlbSwgU09VUkNFX0xJU1QpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChpdGVtLCBzZWxlY3RlZEl0ZW1zU291cmNlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIGluZGV4OiBpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VtcHR5KFNPVVJDRV9MSVNUKSAmJiAoZW1wdHlNZXNzYWdlU291cmNlVGVtcGxhdGUgfHwgZW1wdHlGaWx0ZXJNZXNzYWdlU291cmNlVGVtcGxhdGUpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwLXBpY2tsaXN0LWVtcHR5LW1lc3NhZ2VcIiAqbmdJZj1cIiFmaWx0ZXJWYWx1ZVNvdXJjZSB8fCAhZW1wdHlGaWx0ZXJNZXNzYWdlU291cmNlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlNZXNzYWdlU291cmNlVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwLXBpY2tsaXN0LWVtcHR5LW1lc3NhZ2VcIiAqbmdJZj1cImZpbHRlclZhbHVlU291cmNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5RmlsdGVyTWVzc2FnZVNvdXJjZVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1waWNrbGlzdC1idXR0b25zIHAtcGlja2xpc3QtdHJhbnNmZXItYnV0dG9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmlnaHRCdXR0b25BcmlhTGFiZWxcIiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIiBbZGlzYWJsZWRdPVwibW92ZVJpZ2h0RGlzYWJsZWQoKVwiIChjbGljayk9XCJtb3ZlUmlnaHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vdmVUb1RhcmdldEljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlUmlnaHRJY29uICpuZ0lmPVwiIXZpZXdDaGFuZ2VkXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG93bkljb24gKm5nSWY9XCJ2aWV3Q2hhbmdlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVUb1RhcmdldEljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZpZXdDaGFuZ2VkIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxsUmlnaHRCdXR0b25BcmlhTGFiZWxcIiBwQnV0dG9uIHBSaXBwbGUgY2xhc3M9XCJwLWJ1dHRvbi1pY29uLW9ubHlcIiBbZGlzYWJsZWRdPVwibW92ZUFsbFJpZ2h0RGlzYWJsZWQoKVwiIChjbGljayk9XCJtb3ZlQWxsUmlnaHQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vdmVBbGxUb1RhcmdldEljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlUmlnaHRJY29uICpuZ0lmPVwiIXZpZXdDaGFuZ2VkXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlRG93bkljb24gKm5nSWY9XCJ2aWV3Q2hhbmdlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVBbGxUb1RhcmdldEljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZpZXdDaGFuZ2VkIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwibGVmdEJ1dHRvbkFyaWFMYWJlbFwiIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiIFtkaXNhYmxlZF09XCJtb3ZlTGVmdERpc2FibGVkKClcIiAoY2xpY2spPVwibW92ZUxlZnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vdmVUb1NvdXJjZUljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlTGVmdEljb24gKm5nSWY9XCIhdmlld0NoYW5nZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVVcEljb24gKm5nSWY9XCJ2aWV3Q2hhbmdlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVUb1NvdXJjZUljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZpZXdDaGFuZ2VkIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxsTGVmdEJ1dHRvbkFyaWFMYWJlbFwiIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiIFtkaXNhYmxlZF09XCJtb3ZlQWxsTGVmdERpc2FibGVkKClcIiAoY2xpY2spPVwibW92ZUFsbExlZnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1vdmVBbGxUb1NvdXJjZUljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlTGVmdEljb24gKm5nSWY9XCIhdmlld0NoYW5nZWRcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3VibGVVcEljb24gKm5nSWY9XCJ2aWV3Q2hhbmdlZFwiLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVBbGxUb1NvdXJjZUljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHZpZXdDaGFuZ2VkIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1waWNrbGlzdC1saXN0LXdyYXBwZXIgcC1waWNrbGlzdC10YXJnZXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBpY2tsaXN0LWhlYWRlclwiICpuZ0lmPVwidGFyZ2V0SGVhZGVyIHx8IHRhcmdldEhlYWRlclRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLXBpY2tsaXN0LXRpdGxlXCIgKm5nSWY9XCIhdGFyZ2V0SGVhZGVyVGVtcGxhdGVcIj57eyB0YXJnZXRIZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRhcmdldEhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyLWNvbnRhaW5lclwiICpuZ0lmPVwiZmlsdGVyQnkgJiYgc2hvd1RhcmdldEZpbHRlciAhPT0gZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhcmdldEZpbHRlclRlbXBsYXRlOyBlbHNlIGJ1aWx0SW5UYXJnZXRFbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFyZ2V0RmlsdGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgb3B0aW9uczogdGFyZ2V0RmlsdGVyT3B0aW9ucyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J1aWx0SW5UYXJnZXRFbGVtZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN0YXJnZXRGaWx0ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwidGV4dGJveFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbkZpbHRlcigkZXZlbnQsIFRBUkdFVF9MSVNUKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1waWNrbGlzdC1maWx0ZXItaW5wdXQgcC1pbnB1dHRleHQgcC1jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJ0YXJnZXRGaWx0ZXJQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYVRhcmdldEZpbHRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uICpuZ0lmPVwiIXRhcmdldEZpbHRlckljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLXBpY2tsaXN0LWZpbHRlci1pY29uJ1wiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtcGlja2xpc3QtZmlsdGVyLWljb25cIiAqbmdJZj1cInRhcmdldEZpbHRlckljb25UZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YXJnZXRGaWx0ZXJJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDx1bCAjdGFyZ2V0bGlzdCBjbGFzcz1cInAtcGlja2xpc3QtbGlzdCBwLXBpY2tsaXN0LXRhcmdldFwiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwidGFyZ2V0XCIgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyb3AoJGV2ZW50LCBUQVJHRVRfTElTVClcIiBbbmdTdHlsZV09XCJ0YXJnZXRTdHlsZVwiIHJvbGU9XCJsaXN0Ym94XCIgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJtdWx0aXBsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWl0ZW0gW25nRm9yT2ZdPVwidGFyZ2V0XCIgW25nRm9yVHJhY2tCeV09XCJ0YXJnZXRUcmFja0J5IHx8IHRyYWNrQnlcIiBsZXQtaT1cImluZGV4XCIgbGV0LWw9XCJsYXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLXBpY2tsaXN0LWl0ZW0nOiB0cnVlLCAncC1oaWdobGlnaHQnOiBpc1NlbGVjdGVkKGl0ZW0sIHNlbGVjdGVkSXRlbXNUYXJnZXQpLCAncC1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWRyYWdkcm9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtLCBzZWxlY3RlZEl0ZW1zVGFyZ2V0LCBvblRhcmdldFNlbGVjdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJvblRhcmdldEl0ZW1EYmxDbGljaygpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodG91Y2hlbmQpPVwib25JdGVtVG91Y2hFbmQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25JdGVtS2V5ZG93bigkZXZlbnQsIGl0ZW0sIHNlbGVjdGVkSXRlbXNUYXJnZXQsIG9uVGFyZ2V0U2VsZWN0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc0l0ZW1WaXNpYmxlKGl0ZW0sIFRBUkdFVF9MSVNUKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQoaXRlbSwgc2VsZWN0ZWRJdGVtc1RhcmdldClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtLCBpbmRleDogaSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFbXB0eShUQVJHRVRfTElTVCkgJiYgKGVtcHR5TWVzc2FnZVRhcmdldFRlbXBsYXRlIHx8IGVtcHR5RmlsdGVyTWVzc2FnZVRhcmdldFRlbXBsYXRlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicC1waWNrbGlzdC1lbXB0eS1tZXNzYWdlXCIgKm5nSWY9XCIhZmlsdGVyVmFsdWVUYXJnZXQgfHwgIWVtcHR5RmlsdGVyTWVzc2FnZVRhcmdldFRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5TWVzc2FnZVRhcmdldFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwicC1waWNrbGlzdC1lbXB0eS1tZXNzYWdlXCIgKm5nSWY9XCJmaWx0ZXJWYWx1ZVRhcmdldFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eUZpbHRlck1lc3NhZ2VUYXJnZXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtcGlja2xpc3QtYnV0dG9ucyBwLXBpY2tsaXN0LXRhcmdldC1jb250cm9sc1wiICpuZ0lmPVwic2hvd1RhcmdldENvbnRyb2xzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ1cEJ1dHRvbkFyaWFMYWJlbFwiIHBCdXR0b24gcFJpcHBsZSBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiIFtkaXNhYmxlZF09XCJ0YXJnZXRNb3ZlRGlzYWJsZWQoKVwiIChjbGljayk9XCJtb3ZlVXAodGFyZ2V0bGlzdCwgdGFyZ2V0LCBzZWxlY3RlZEl0ZW1zVGFyZ2V0LCBvblRhcmdldFJlb3JkZXIsIFRBUkdFVF9MSVNUKVwiPlxuICAgICAgICAgICAgICAgICAgICA8QW5nbGVVcEljb24gKm5nSWY9XCIhbW92ZVVwSWNvblRlbXBsYXRlXCIvPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb3ZlVXBJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9wQnV0dG9uQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRhcmdldE1vdmVEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVUb3AodGFyZ2V0bGlzdCwgdGFyZ2V0LCBzZWxlY3RlZEl0ZW1zVGFyZ2V0LCBvblRhcmdldFJlb3JkZXIsIFRBUkdFVF9MSVNUKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8QW5nbGVEb3VibGVVcEljb24gKm5nSWY9XCIhbW92ZVRvcEljb25UZW1wbGF0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZVRvcEljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJkb3duQnV0dG9uQXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBwUmlwcGxlXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24taWNvbi1vbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRhcmdldE1vdmVEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVEb3duKHRhcmdldGxpc3QsIHRhcmdldCwgc2VsZWN0ZWRJdGVtc1RhcmdldCwgb25UYXJnZXRSZW9yZGVyLCBUQVJHRVRfTElTVClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG93bkljb24gKm5nSWY9XCIhbW92ZURvd25JY29uVGVtcGxhdGVcIi8+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cIm1vdmVEb3duSWNvblRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJvdHRvbUJ1dHRvbkFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLWljb24tb25seVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0YXJnZXRNb3ZlRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJtb3ZlQm90dG9tKHRhcmdldGxpc3QsIHRhcmdldCwgc2VsZWN0ZWRJdGVtc1RhcmdldCwgb25UYXJnZXRSZW9yZGVyLCBUQVJHRVRfTElTVClcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPEFuZ2xlRG91YmxlRG93bkljb24gKm5nSWY9XCIhbW92ZUJvdHRvbUljb25UZW1wbGF0ZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibW92ZUJvdHRvbUljb25UZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlVXJsczogWycuL3BpY2tsaXN0LmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLWVsZW1lbnQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBQaWNrTGlzdCBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBJbnB1dCgpIHNvdXJjZTogYW55W107XG5cbiAgICBASW5wdXQoKSB0YXJnZXQ6IGFueVtdO1xuXG4gICAgQElucHV0KCkgc291cmNlSGVhZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSByaWdodEJ1dHRvbkFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGVmdEJ1dHRvbkFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYWxsUmlnaHRCdXR0b25BcmlhTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGFsbExlZnRCdXR0b25BcmlhTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIHVwQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBkb3duQnV0dG9uQXJpYUxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSB0b3BCdXR0b25BcmlhTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJvdHRvbUJ1dHRvbkFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdGFyZ2V0SGVhZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSByZXNwb25zaXZlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgZmlsdGVyQnk6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGZpbHRlckxvY2FsZTogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdHJhY2tCeTogRnVuY3Rpb24gPSAoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiBpdGVtO1xuXG4gICAgQElucHV0KCkgc291cmNlVHJhY2tCeTogRnVuY3Rpb247XG5cbiAgICBASW5wdXQoKSB0YXJnZXRUcmFja0J5OiBGdW5jdGlvbjtcblxuICAgIEBJbnB1dCgpIHNob3dTb3VyY2VGaWx0ZXI6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgc2hvd1RhcmdldEZpbHRlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBASW5wdXQoKSBtZXRhS2V5U2VsZWN0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIGRyYWdkcm9wOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBzdHlsZTogYW55O1xuXG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc291cmNlU3R5bGU6IGFueTtcblxuICAgIEBJbnB1dCgpIHRhcmdldFN0eWxlOiBhbnk7XG5cbiAgICBASW5wdXQoKSBzaG93U291cmNlQ29udHJvbHM6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgQElucHV0KCkgc2hvd1RhcmdldENvbnRyb2xzOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIHNvdXJjZUZpbHRlclBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSB0YXJnZXRGaWx0ZXJQbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGFyaWFTb3VyY2VGaWx0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgYXJpYVRhcmdldEZpbHRlckxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBmaWx0ZXJNYXRjaE1vZGU6IHN0cmluZyA9ICdjb250YWlucyc7XG5cbiAgICBASW5wdXQoKSBnZXQgYnJlYWtwb2ludCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnJlYWtwb2ludDtcbiAgICB9XG5cbiAgICBzZXQgYnJlYWtwb2ludCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludCA9IHZhbHVlO1xuICAgICAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlc3Ryb3lNZWRpYSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE1lZGlhKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSBzdHJpcGVkUm93czogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIGtlZXBTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBvbk1vdmVUb1NvdXJjZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25Nb3ZlQWxsVG9Tb3VyY2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uTW92ZUFsbFRvVGFyZ2V0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvbk1vdmVUb1RhcmdldDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25Tb3VyY2VSZW9yZGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvblRhcmdldFJlb3JkZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uU291cmNlU2VsZWN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvblRhcmdldFNlbGVjdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25Tb3VyY2VGaWx0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgpIG9uVGFyZ2V0RmlsdGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBWaWV3Q2hpbGQoJ3NvdXJjZWxpc3QnKSBsaXN0Vmlld1NvdXJjZUNoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgndGFyZ2V0bGlzdCcpIGxpc3RWaWV3VGFyZ2V0Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdzb3VyY2VGaWx0ZXInKSBzb3VyY2VGaWx0ZXJWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCd0YXJnZXRGaWx0ZXInKSB0YXJnZXRGaWx0ZXJWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFFpdXNUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8YW55PjtcblxuICAgIF9icmVha3BvaW50OiBzdHJpbmcgPSAnOTYwcHgnO1xuXG4gICAgcHVibGljIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG1vdmVUb3BJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlVXBJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlRG93bkljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIG1vdmVCb3R0b21JY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlVG9UYXJnZXRJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlQWxsVG9UYXJnZXRJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlVG9Tb3VyY2VJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlQWxsVG9Tb3VyY2VJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICB0YXJnZXRGaWx0ZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBzb3VyY2VGaWx0ZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBwdWJsaWMgdmlzaWJsZU9wdGlvbnNTb3VyY2U6IGFueVtdO1xuXG4gICAgcHVibGljIHZpc2libGVPcHRpb25zVGFyZ2V0OiBhbnlbXTtcblxuICAgIHNlbGVjdGVkSXRlbXNTb3VyY2U6IGFueVtdID0gW107XG5cbiAgICBzZWxlY3RlZEl0ZW1zVGFyZ2V0OiBhbnlbXSA9IFtdO1xuXG4gICAgcmVvcmRlcmVkTGlzdEVsZW1lbnQ6IGFueTtcblxuICAgIG1vdmVkVXA6IGJvb2xlYW47XG5cbiAgICBtb3ZlZERvd246IGJvb2xlYW47XG5cbiAgICBpdGVtVG91Y2hlZDogYm9vbGVhbjtcblxuICAgIHN0eWxlRWxlbWVudDogYW55O1xuXG4gICAgaWQ6IHN0cmluZyA9IFVuaXF1ZUNvbXBvbmVudElkKCk7XG5cbiAgICBmaWx0ZXJWYWx1ZVNvdXJjZTogc3RyaW5nO1xuXG4gICAgZmlsdGVyVmFsdWVUYXJnZXQ6IHN0cmluZztcblxuICAgIGZyb21MaXN0VHlwZTogbnVtYmVyO1xuXG4gICAgZW1wdHlNZXNzYWdlU291cmNlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBlbXB0eUZpbHRlck1lc3NhZ2VTb3VyY2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGVtcHR5TWVzc2FnZVRhcmdldFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgZW1wdHlGaWx0ZXJNZXNzYWdlVGFyZ2V0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBzb3VyY2VIZWFkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHRhcmdldEhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgc291cmNlRmlsdGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICB0YXJnZXRGaWx0ZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHNvdXJjZUZpbHRlck9wdGlvbnM6IFBpY2tMaXN0RmlsdGVyT3B0aW9ucztcblxuICAgIHRhcmdldEZpbHRlck9wdGlvbnM6IFBpY2tMaXN0RmlsdGVyT3B0aW9ucztcblxuICAgIHJlYWRvbmx5IFNPVVJDRV9MSVNUID0gLTE7XG5cbiAgICByZWFkb25seSBUQVJHRVRfTElTVCA9IDE7XG5cbiAgICB3aW5kb3c6IFdpbmRvdztcblxuICAgIG1lZGlhOiBNZWRpYVF1ZXJ5TGlzdCB8IG51bGw7XG5cbiAgICB2aWV3Q2hhbmdlZDogYm9vbGVhbjtcblxuICAgIG1lZGlhQ2hhbmdlTGlzdGVuZXI6IFZvaWRGdW5jdGlvbiB8IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCwgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIGVsOiBFbGVtZW50UmVmLCBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLndpbmRvdyA9IHRoaXMuZG9jdW1lbnQuZGVmYXVsdFZpZXcgYXMgV2luZG93O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5yZXNwb25zaXZlKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVN0eWxlKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRNZWRpYSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZmlsdGVyQnkpIHtcbiAgICAgICAgICAgIHRoaXMuc291cmNlRmlsdGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICh2YWx1ZSkgPT4gdGhpcy5maWx0ZXJTb3VyY2UodmFsdWUpLFxuICAgICAgICAgICAgICAgIHJlc2V0OiAoKSA9PiB0aGlzLnJlc2V0U291cmNlRmlsdGVyKClcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMudGFyZ2V0RmlsdGVyT3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICh2YWx1ZSkgPT4gdGhpcy5maWx0ZXJUYXJnZXQodmFsdWUpLFxuICAgICAgICAgICAgICAgIHJlc2V0OiAoKSA9PiB0aGlzLnJlc2V0VGFyZ2V0RmlsdGVyKClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIHRoaXMudGVtcGxhdGVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHN3aXRjaCAoaXRlbS5nZXRUeXBlKCkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdpdGVtJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pdGVtVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3NvdXJjZUhlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc291cmNlSGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3RhcmdldEhlYWRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0SGVhZGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3NvdXJjZUZpbHRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRmlsdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3RhcmdldEZpbHRlcic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFyZ2V0RmlsdGVyVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5bWVzc2FnZXNvdXJjZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wdHlNZXNzYWdlU291cmNlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5ZmlsdGVybWVzc2FnZXNvdXJjZSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wdHlGaWx0ZXJNZXNzYWdlU291cmNlVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5bWVzc2FnZXRhcmdldCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wdHlNZXNzYWdlVGFyZ2V0VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ2VtcHR5ZmlsdGVybWVzc2FnZXRhcmdldCc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1wdHlGaWx0ZXJNZXNzYWdlVGFyZ2V0VGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmV1cGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVVcEljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbW92ZXRvcGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVUb3BJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVkb3duaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZURvd25JY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVib3R0b21pY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQm90dG9tSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZldG90YXJnZXRpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlVG9UYXJnZXRJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ21vdmVhbGx0b3RhcmdldGljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vdmVBbGxUb1RhcmdldEljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnbW92ZXRvc291cmNlaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVRvU291cmNlSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdtb3ZlYWxsdG9zb3VyY2VpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlQWxsVG9Tb3VyY2VJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGNhc2UgJ3RhcmdldGZpbHRlcmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldEZpbHRlckljb25UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnc291cmNlZmlsdGVyaWNvbic6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc291cmNlRmlsdGVySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLm1vdmVkVXAgfHwgdGhpcy5tb3ZlZERvd24pIHtcbiAgICAgICAgICAgIGxldCBsaXN0SXRlbXMgPSBEb21IYW5kbGVyLmZpbmQodGhpcy5yZW9yZGVyZWRMaXN0RWxlbWVudCwgJ2xpLnAtaGlnaGxpZ2h0Jyk7XG4gICAgICAgICAgICBsZXQgbGlzdEl0ZW07XG5cbiAgICAgICAgICAgIGlmICh0aGlzLm1vdmVkVXApIGxpc3RJdGVtID0gbGlzdEl0ZW1zWzBdO1xuICAgICAgICAgICAgZWxzZSBsaXN0SXRlbSA9IGxpc3RJdGVtc1tsaXN0SXRlbXMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICAgIERvbUhhbmRsZXIuc2Nyb2xsSW5WaWV3KHRoaXMucmVvcmRlcmVkTGlzdEVsZW1lbnQsIGxpc3RJdGVtKTtcbiAgICAgICAgICAgIHRoaXMubW92ZWRVcCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5tb3ZlZERvd24gPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMucmVvcmRlcmVkTGlzdEVsZW1lbnQgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZlbnQsIGl0ZW06IGFueSwgc2VsZWN0ZWRJdGVtczogYW55W10sIGNhbGxiYWNrOiBFdmVudEVtaXR0ZXI8YW55Pikge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5maW5kSW5kZXhJblNlbGVjdGlvbihpdGVtLCBzZWxlY3RlZEl0ZW1zKTtcbiAgICAgICAgbGV0IHNlbGVjdGVkID0gaW5kZXggIT0gLTE7XG4gICAgICAgIGxldCBtZXRhU2VsZWN0aW9uID0gdGhpcy5pdGVtVG91Y2hlZCA/IGZhbHNlIDogdGhpcy5tZXRhS2V5U2VsZWN0aW9uO1xuXG4gICAgICAgIGlmIChtZXRhU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBsZXQgbWV0YUtleSA9IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleTtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGVkICYmIG1ldGFLZXkpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICghbWV0YUtleSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZCkgc2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgICAgICAgZWxzZSBzZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICBjYWxsYmFjay5lbWl0KHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGl0ZW1zOiBzZWxlY3RlZEl0ZW1zIH0pO1xuXG4gICAgICAgIHRoaXMuaXRlbVRvdWNoZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvblNvdXJjZUl0ZW1EYmxDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW92ZVJpZ2h0KCk7XG4gICAgfVxuXG4gICAgb25UYXJnZXRJdGVtRGJsQ2xpY2soKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vdmVMZWZ0KCk7XG4gICAgfVxuXG4gICAgb25GaWx0ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGxpc3RUeXBlOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gKDxIVE1MSW5wdXRFbGVtZW50PmV2ZW50LnRhcmdldCkudmFsdWU7XG4gICAgICAgIGlmIChsaXN0VHlwZSA9PT0gdGhpcy5TT1VSQ0VfTElTVCkgdGhpcy5maWx0ZXJTb3VyY2UocXVlcnkpO1xuICAgICAgICBlbHNlIGlmIChsaXN0VHlwZSA9PT0gdGhpcy5UQVJHRVRfTElTVCkgdGhpcy5maWx0ZXJUYXJnZXQocXVlcnkpO1xuICAgIH1cblxuICAgIGZpbHRlclNvdXJjZSh2YWx1ZTogYW55ID0gJycpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSA9IHZhbHVlLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZSh0aGlzLmZpbHRlckxvY2FsZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyKHRoaXMuc291cmNlLCB0aGlzLlNPVVJDRV9MSVNUKTtcbiAgICB9XG5cbiAgICBmaWx0ZXJUYXJnZXQodmFsdWU6IGFueSA9ICcnKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgPSB2YWx1ZS50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UodGhpcy5maWx0ZXJMb2NhbGUpO1xuICAgICAgICB0aGlzLmZpbHRlcih0aGlzLnRhcmdldCwgdGhpcy5UQVJHRVRfTElTVCk7XG4gICAgfVxuXG4gICAgZmlsdGVyKGRhdGE6IGFueVtdLCBsaXN0VHlwZTogbnVtYmVyKSB7XG4gICAgICAgIGxldCBzZWFyY2hGaWVsZHMgPSB0aGlzLmZpbHRlckJ5LnNwbGl0KCcsJyk7XG5cbiAgICAgICAgaWYgKGxpc3RUeXBlID09PSB0aGlzLlNPVVJDRV9MSVNUKSB7XG4gICAgICAgICAgICB0aGlzLnZpc2libGVPcHRpb25zU291cmNlID0gdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcihkYXRhLCBzZWFyY2hGaWVsZHMsIHRoaXMuZmlsdGVyVmFsdWVTb3VyY2UsIHRoaXMuZmlsdGVyTWF0Y2hNb2RlLCB0aGlzLmZpbHRlckxvY2FsZSk7XG4gICAgICAgICAgICB0aGlzLm9uU291cmNlRmlsdGVyLmVtaXQoeyBxdWVyeTogdGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSwgdmFsdWU6IHRoaXMudmlzaWJsZU9wdGlvbnNTb3VyY2UgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAobGlzdFR5cGUgPT09IHRoaXMuVEFSR0VUX0xJU1QpIHtcbiAgICAgICAgICAgIHRoaXMudmlzaWJsZU9wdGlvbnNUYXJnZXQgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKGRhdGEsIHNlYXJjaEZpZWxkcywgdGhpcy5maWx0ZXJWYWx1ZVRhcmdldCwgdGhpcy5maWx0ZXJNYXRjaE1vZGUsIHRoaXMuZmlsdGVyTG9jYWxlKTtcbiAgICAgICAgICAgIHRoaXMub25UYXJnZXRGaWx0ZXIuZW1pdCh7IHF1ZXJ5OiB0aGlzLmZpbHRlclZhbHVlVGFyZ2V0LCB2YWx1ZTogdGhpcy52aXNpYmxlT3B0aW9uc1RhcmdldCB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSXRlbVZpc2libGUoaXRlbTogYW55LCBsaXN0VHlwZTogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIGlmIChsaXN0VHlwZSA9PSB0aGlzLlNPVVJDRV9MSVNUKSByZXR1cm4gdGhpcy5pc1Zpc2libGVJbkxpc3QodGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZSwgaXRlbSwgdGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSk7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuaXNWaXNpYmxlSW5MaXN0KHRoaXMudmlzaWJsZU9wdGlvbnNUYXJnZXQsIGl0ZW0sIHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQpO1xuICAgIH1cblxuICAgIGlzRW1wdHkobGlzdFR5cGU6IG51bWJlcikge1xuICAgICAgICBpZiAobGlzdFR5cGUgPT0gdGhpcy5TT1VSQ0VfTElTVCkgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWVTb3VyY2UgPyAhdGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZSB8fCB0aGlzLnZpc2libGVPcHRpb25zU291cmNlLmxlbmd0aCA9PT0gMCA6ICF0aGlzLnNvdXJjZSB8fCB0aGlzLnNvdXJjZS5sZW5ndGggPT09IDA7XG4gICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgPyAhdGhpcy52aXNpYmxlT3B0aW9uc1RhcmdldCB8fCB0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0Lmxlbmd0aCA9PT0gMCA6ICF0aGlzLnRhcmdldCB8fCB0aGlzLnRhcmdldC5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgaXNWaXNpYmxlSW5MaXN0KGRhdGE6IGFueVtdLCBpdGVtOiBhbnksIGZpbHRlclZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGZpbHRlclZhbHVlICYmIGZpbHRlclZhbHVlLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChpdGVtID09IGRhdGFbaV0pIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkl0ZW1Ub3VjaEVuZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXRlbVRvdWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEJ5SW5kZXhJbkxpc3QoaXRlbXM6IGFueVtdLCBsaXN0OiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zLnNvcnQoKGl0ZW0xLCBpdGVtMikgPT4gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KGl0ZW0xLCBsaXN0KSAtIE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChpdGVtMiwgbGlzdCkpO1xuICAgIH1cblxuICAgIG1vdmVVcChsaXN0RWxlbWVudCwgbGlzdCwgc2VsZWN0ZWRJdGVtcywgY2FsbGJhY2ssIGxpc3RUeXBlKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW1zICYmIHNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zb3J0QnlJbmRleEluTGlzdChzZWxlY3RlZEl0ZW1zLCBsaXN0KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0ZWRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgbGlzdCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZWRJdGVtID0gbGlzdFtzZWxlY3RlZEl0ZW1JbmRleF07XG4gICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gbGlzdFtzZWxlY3RlZEl0ZW1JbmRleCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBsaXN0W3NlbGVjdGVkSXRlbUluZGV4IC0gMV0gPSBtb3ZlZEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIGxpc3Rbc2VsZWN0ZWRJdGVtSW5kZXhdID0gdGVtcDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdkcm9wICYmICgodGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSAmJiBsaXN0VHlwZSA9PT0gdGhpcy5TT1VSQ0VfTElTVCkgfHwgKHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgJiYgbGlzdFR5cGUgPT09IHRoaXMuVEFSR0VUX0xJU1QpKSkgdGhpcy5maWx0ZXIobGlzdCwgbGlzdFR5cGUpO1xuXG4gICAgICAgICAgICB0aGlzLm1vdmVkVXAgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5yZW9yZGVyZWRMaXN0RWxlbWVudCA9IGxpc3RFbGVtZW50O1xuICAgICAgICAgICAgY2FsbGJhY2suZW1pdCh7IGl0ZW1zOiBzZWxlY3RlZEl0ZW1zIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZVRvcChsaXN0RWxlbWVudCwgbGlzdCwgc2VsZWN0ZWRJdGVtcywgY2FsbGJhY2ssIGxpc3RUeXBlKSB7XG4gICAgICAgIGlmIChzZWxlY3RlZEl0ZW1zICYmIHNlbGVjdGVkSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zb3J0QnlJbmRleEluTGlzdChzZWxlY3RlZEl0ZW1zLCBsaXN0KTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2VsZWN0ZWRJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgbGlzdCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gMCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW92ZWRJdGVtID0gbGlzdC5zcGxpY2Uoc2VsZWN0ZWRJdGVtSW5kZXgsIDEpWzBdO1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnVuc2hpZnQobW92ZWRJdGVtKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmRyYWdkcm9wICYmICgodGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSAmJiBsaXN0VHlwZSA9PT0gdGhpcy5TT1VSQ0VfTElTVCkgfHwgKHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgJiYgbGlzdFR5cGUgPT09IHRoaXMuVEFSR0VUX0xJU1QpKSkgdGhpcy5maWx0ZXIobGlzdCwgbGlzdFR5cGUpO1xuXG4gICAgICAgICAgICBsaXN0RWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICAgICAgY2FsbGJhY2suZW1pdCh7IGl0ZW1zOiBzZWxlY3RlZEl0ZW1zIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZURvd24obGlzdEVsZW1lbnQsIGxpc3QsIHNlbGVjdGVkSXRlbXMsIGNhbGxiYWNrLCBsaXN0VHlwZSkge1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc29ydEJ5SW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtcywgbGlzdCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgbGlzdCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gbGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSBsaXN0W3NlbGVjdGVkSXRlbUluZGV4XTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBsaXN0W3NlbGVjdGVkSXRlbUluZGV4ICsgMV07XG4gICAgICAgICAgICAgICAgICAgIGxpc3Rbc2VsZWN0ZWRJdGVtSW5kZXggKyAxXSA9IG1vdmVkSXRlbTtcbiAgICAgICAgICAgICAgICAgICAgbGlzdFtzZWxlY3RlZEl0ZW1JbmRleF0gPSB0ZW1wO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgKCh0aGlzLmZpbHRlclZhbHVlU291cmNlICYmIGxpc3RUeXBlID09PSB0aGlzLlNPVVJDRV9MSVNUKSB8fCAodGhpcy5maWx0ZXJWYWx1ZVRhcmdldCAmJiBsaXN0VHlwZSA9PT0gdGhpcy5UQVJHRVRfTElTVCkpKSB0aGlzLmZpbHRlcihsaXN0LCBsaXN0VHlwZSk7XG5cbiAgICAgICAgICAgIHRoaXMubW92ZWREb3duID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmVvcmRlcmVkTGlzdEVsZW1lbnQgPSBsaXN0RWxlbWVudDtcbiAgICAgICAgICAgIGNhbGxiYWNrLmVtaXQoeyBpdGVtczogc2VsZWN0ZWRJdGVtcyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVCb3R0b20obGlzdEVsZW1lbnQsIGxpc3QsIHNlbGVjdGVkSXRlbXMsIGNhbGxiYWNrLCBsaXN0VHlwZSkge1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcyAmJiBzZWxlY3RlZEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcyA9IHRoaXMuc29ydEJ5SW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtcywgbGlzdCk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gc2VsZWN0ZWRJdGVtcy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSBzZWxlY3RlZEl0ZW1zW2ldO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleDogbnVtYmVyID0gT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgbGlzdCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gbGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3ZlZEl0ZW0gPSBsaXN0LnNwbGljZShzZWxlY3RlZEl0ZW1JbmRleCwgMSlbMF07XG4gICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChtb3ZlZEl0ZW0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuZHJhZ2Ryb3AgJiYgKCh0aGlzLmZpbHRlclZhbHVlU291cmNlICYmIGxpc3RUeXBlID09PSB0aGlzLlNPVVJDRV9MSVNUKSB8fCAodGhpcy5maWx0ZXJWYWx1ZVRhcmdldCAmJiBsaXN0VHlwZSA9PT0gdGhpcy5UQVJHRVRfTElTVCkpKSB0aGlzLmZpbHRlcihsaXN0LCBsaXN0VHlwZSk7XG5cbiAgICAgICAgICAgIGxpc3RFbGVtZW50LnNjcm9sbFRvcCA9IGxpc3RFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIGNhbGxiYWNrLmVtaXQoeyBpdGVtczogc2VsZWN0ZWRJdGVtcyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVSaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZSAmJiB0aGlzLnNlbGVjdGVkSXRlbXNTb3VyY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbXNTb3VyY2VbaV07XG4gICAgICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChzZWxlY3RlZEl0ZW0sIHRoaXMudGFyZ2V0KSA9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldC5wdXNoKHRoaXMuc291cmNlLnNwbGljZShPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtLCB0aGlzLnNvdXJjZSksIDEpWzBdKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZSkgdGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZS5zcGxpY2UoT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgdGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZSksIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vbk1vdmVUb1RhcmdldC5lbWl0KHtcbiAgICAgICAgICAgICAgICBpdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zU291cmNlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldCA9IFsuLi50aGlzLnNlbGVjdGVkSXRlbXNUYXJnZXQsIC4uLnRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZV07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZSA9IFtdO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5maWx0ZXJWYWx1ZVRhcmdldCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyKHRoaXMudGFyZ2V0LCB0aGlzLlRBUkdFVF9MSVNUKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVBbGxSaWdodCgpIHtcbiAgICAgICAgaWYgKHRoaXMuc291cmNlKSB7XG4gICAgICAgICAgICBsZXQgbW92ZWRJdGVtcyA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc291cmNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNJdGVtVmlzaWJsZSh0aGlzLnNvdXJjZVtpXSwgdGhpcy5TT1VSQ0VfTElTVCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlbW92ZWRJdGVtID0gdGhpcy5zb3VyY2Uuc3BsaWNlKGksIDEpWzBdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldC5wdXNoKHJlbW92ZWRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgbW92ZWRJdGVtcy5wdXNoKHJlbW92ZWRJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgaS0tO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5vbk1vdmVBbGxUb1RhcmdldC5lbWl0KHtcbiAgICAgICAgICAgICAgICBpdGVtczogbW92ZWRJdGVtc1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmtlZXBTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNUYXJnZXQgPSBbLi4udGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0LCAuLi50aGlzLnNlbGVjdGVkSXRlbXNTb3VyY2VdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNTb3VyY2UgPSBbXTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcih0aGlzLnRhcmdldCwgdGhpcy5UQVJHRVRfTElTVCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudmlzaWJsZU9wdGlvbnNTb3VyY2UgPSBbXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVMZWZ0KCkge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0ICYmIHRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkSXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldFtpXTtcbiAgICAgICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuZmluZEluZGV4SW5MaXN0KHNlbGVjdGVkSXRlbSwgdGhpcy5zb3VyY2UpID09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc291cmNlLnB1c2godGhpcy50YXJnZXQuc3BsaWNlKE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChzZWxlY3RlZEl0ZW0sIHRoaXMudGFyZ2V0KSwgMSlbMF0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0KSB0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0LnNwbGljZShPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3Qoc2VsZWN0ZWRJdGVtLCB0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0KSwgMSlbMF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLm9uTW92ZVRvU291cmNlLmVtaXQoe1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB0aGlzLnNlbGVjdGVkSXRlbXNUYXJnZXRcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5rZWVwU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zU291cmNlID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZSwgLi4udGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0ID0gW107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZhbHVlU291cmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIodGhpcy5zb3VyY2UsIHRoaXMuU09VUkNFX0xJU1QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZUFsbExlZnQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRhcmdldCkge1xuICAgICAgICAgICAgbGV0IG1vdmVkSXRlbXMgPSBbXTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRhcmdldC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzSXRlbVZpc2libGUodGhpcy50YXJnZXRbaV0sIHRoaXMuVEFSR0VUX0xJU1QpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCByZW1vdmVkSXRlbSA9IHRoaXMudGFyZ2V0LnNwbGljZShpLCAxKVswXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zb3VyY2UucHVzaChyZW1vdmVkSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVkSXRlbXMucHVzaChyZW1vdmVkSXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGktLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMub25Nb3ZlQWxsVG9Tb3VyY2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgaXRlbXM6IG1vdmVkSXRlbXNcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5rZWVwU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zU291cmNlID0gWy4uLnRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZSwgLi4udGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0XTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0ID0gW107XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZhbHVlU291cmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIodGhpcy5zb3VyY2UsIHRoaXMuU09VUkNFX0xJU1QpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0ID0gW107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkKGl0ZW06IGFueSwgc2VsZWN0ZWRJdGVtczogYW55W10pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEluZGV4SW5TZWxlY3Rpb24oaXRlbSwgc2VsZWN0ZWRJdGVtcykgIT0gLTE7XG4gICAgfVxuXG4gICAgZmluZEluZGV4SW5TZWxlY3Rpb24oaXRlbTogYW55LCBzZWxlY3RlZEl0ZW1zOiBhbnlbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoaXRlbSwgc2VsZWN0ZWRJdGVtcyk7XG4gICAgfVxuXG4gICAgb25Ecm9wKGV2ZW50OiBDZGtEcmFnRHJvcDxzdHJpbmdbXT4sIGxpc3RUeXBlOiBudW1iZXIpIHtcbiAgICAgICAgbGV0IGlzVHJhbnNmZXIgPSBldmVudC5wcmV2aW91c0NvbnRhaW5lciAhPT0gZXZlbnQuY29udGFpbmVyO1xuICAgICAgICBsZXQgZHJvcEluZGV4ZXMgPSB0aGlzLmdldERyb3BJbmRleGVzKGV2ZW50LnByZXZpb3VzSW5kZXgsIGV2ZW50LmN1cnJlbnRJbmRleCwgbGlzdFR5cGUsIGlzVHJhbnNmZXIsIGV2ZW50Lml0ZW0uZGF0YSk7XG5cbiAgICAgICAgaWYgKGxpc3RUeXBlID09PSB0aGlzLlNPVVJDRV9MSVNUKSB7XG4gICAgICAgICAgICBpZiAoaXNUcmFuc2Zlcikge1xuICAgICAgICAgICAgICAgIHRyYW5zZmVyQXJyYXlJdGVtKGV2ZW50LnByZXZpb3VzQ29udGFpbmVyLmRhdGEsIGV2ZW50LmNvbnRhaW5lci5kYXRhLCBkcm9wSW5kZXhlcy5wcmV2aW91c0luZGV4LCBkcm9wSW5kZXhlcy5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChldmVudC5pdGVtLmRhdGEsIHRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0LnNwbGljZShzZWxlY3RlZEl0ZW1JbmRleCwgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0LnB1c2goZXZlbnQuaXRlbS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0KSB0aGlzLnZpc2libGVPcHRpb25zVGFyZ2V0LnNwbGljZShldmVudC5wcmV2aW91c0luZGV4LCAxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMub25Nb3ZlVG9Tb3VyY2UuZW1pdCh7IGl0ZW1zOiBbZXZlbnQuaXRlbS5kYXRhXSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBkcm9wSW5kZXhlcy5wcmV2aW91c0luZGV4LCBkcm9wSW5kZXhlcy5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Tb3VyY2VSZW9yZGVyLmVtaXQoeyBpdGVtczogW2V2ZW50Lml0ZW0uZGF0YV0gfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZhbHVlU291cmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIodGhpcy5zb3VyY2UsIHRoaXMuU09VUkNFX0xJU1QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzVHJhbnNmZXIpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2ZlckFycmF5SXRlbShldmVudC5wcmV2aW91c0NvbnRhaW5lci5kYXRhLCBldmVudC5jb250YWluZXIuZGF0YSwgZHJvcEluZGV4ZXMucHJldmlvdXNJbmRleCwgZHJvcEluZGV4ZXMuY3VycmVudEluZGV4KTtcblxuICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZEl0ZW1JbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChldmVudC5pdGVtLmRhdGEsIHRoaXMuc2VsZWN0ZWRJdGVtc1NvdXJjZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtSW5kZXggIT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zU291cmNlLnNwbGljZShzZWxlY3RlZEl0ZW1JbmRleCwgMSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMua2VlcFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zVGFyZ2V0LnB1c2goZXZlbnQuaXRlbS5kYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpc2libGVPcHRpb25zU291cmNlKSB0aGlzLnZpc2libGVPcHRpb25zU291cmNlLnNwbGljZShldmVudC5wcmV2aW91c0luZGV4LCAxKTtcblxuICAgICAgICAgICAgICAgIHRoaXMub25Nb3ZlVG9UYXJnZXQuZW1pdCh7IGl0ZW1zOiBbZXZlbnQuaXRlbS5kYXRhXSB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW92ZUl0ZW1JbkFycmF5KGV2ZW50LmNvbnRhaW5lci5kYXRhLCBkcm9wSW5kZXhlcy5wcmV2aW91c0luZGV4LCBkcm9wSW5kZXhlcy5jdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25UYXJnZXRSZW9yZGVyLmVtaXQoeyBpdGVtczogW2V2ZW50Lml0ZW0uZGF0YV0gfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlclZhbHVlVGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXIodGhpcy50YXJnZXQsIHRoaXMuVEFSR0VUX0xJU1QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0RHJvcEluZGV4ZXMoZnJvbUluZGV4LCB0b0luZGV4LCBkcm9wcGVkTGlzdCwgaXNUcmFuc2ZlciwgZGF0YSkge1xuICAgICAgICBsZXQgcHJldmlvdXNJbmRleCwgY3VycmVudEluZGV4O1xuXG4gICAgICAgIGlmIChkcm9wcGVkTGlzdCA9PT0gdGhpcy5TT1VSQ0VfTElTVCkge1xuICAgICAgICAgICAgcHJldmlvdXNJbmRleCA9IGlzVHJhbnNmZXIgPyAodGhpcy5maWx0ZXJWYWx1ZVRhcmdldCA/IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChkYXRhLCB0aGlzLnRhcmdldCkgOiBmcm9tSW5kZXgpIDogdGhpcy5maWx0ZXJWYWx1ZVNvdXJjZSA/IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdChkYXRhLCB0aGlzLnNvdXJjZSkgOiBmcm9tSW5kZXg7XG4gICAgICAgICAgICBjdXJyZW50SW5kZXggPSB0aGlzLmZpbHRlclZhbHVlU291cmNlID8gdGhpcy5maW5kRmlsdGVyZWRDdXJyZW50SW5kZXgodGhpcy52aXNpYmxlT3B0aW9uc1NvdXJjZSwgdG9JbmRleCwgdGhpcy5zb3VyY2UpIDogdG9JbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByZXZpb3VzSW5kZXggPSBpc1RyYW5zZmVyID8gKHRoaXMuZmlsdGVyVmFsdWVTb3VyY2UgPyBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoZGF0YSwgdGhpcy5zb3VyY2UpIDogZnJvbUluZGV4KSA6IHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgPyBPYmplY3RVdGlscy5maW5kSW5kZXhJbkxpc3QoZGF0YSwgdGhpcy50YXJnZXQpIDogZnJvbUluZGV4O1xuICAgICAgICAgICAgY3VycmVudEluZGV4ID0gdGhpcy5maWx0ZXJWYWx1ZVRhcmdldCA/IHRoaXMuZmluZEZpbHRlcmVkQ3VycmVudEluZGV4KHRoaXMudmlzaWJsZU9wdGlvbnNUYXJnZXQsIHRvSW5kZXgsIHRoaXMudGFyZ2V0KSA6IHRvSW5kZXg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBwcmV2aW91c0luZGV4LCBjdXJyZW50SW5kZXggfTtcbiAgICB9XG5cbiAgICBmaW5kRmlsdGVyZWRDdXJyZW50SW5kZXgodmlzaWJsZU9wdGlvbnMsIGluZGV4LCBvcHRpb25zKSB7XG4gICAgICAgIGlmICh2aXNpYmxlT3B0aW9ucy5sZW5ndGggPT09IGluZGV4KSB7XG4gICAgICAgICAgICBsZXQgdG9JbmRleCA9IE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh2aXNpYmxlT3B0aW9uc1tpbmRleCAtIDFdLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRvSW5kZXggKyAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmZpbmRJbmRleEluTGlzdCh2aXNpYmxlT3B0aW9uc1tpbmRleF0sIG9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVzZXRTb3VyY2VGaWx0ZXIoKSB7XG4gICAgICAgIHRoaXMudmlzaWJsZU9wdGlvbnNTb3VyY2UgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbHRlclZhbHVlU291cmNlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zb3VyY2VGaWx0ZXJWaWV3Q2hpbGQgJiYgKCg8SFRNTElucHV0RWxlbWVudD50aGlzLnNvdXJjZUZpbHRlclZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KS52YWx1ZSA9ICcnKTtcbiAgICB9XG5cbiAgICByZXNldFRhcmdldEZpbHRlcigpIHtcbiAgICAgICAgdGhpcy52aXNpYmxlT3B0aW9uc1RhcmdldCA9IG51bGw7XG4gICAgICAgIHRoaXMuZmlsdGVyVmFsdWVUYXJnZXQgPSBudWxsO1xuICAgICAgICB0aGlzLnRhcmdldEZpbHRlclZpZXdDaGlsZCAmJiAoKDxIVE1MSW5wdXRFbGVtZW50PnRoaXMudGFyZ2V0RmlsdGVyVmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpLnZhbHVlID0gJycpO1xuICAgIH1cblxuICAgIHJlc2V0RmlsdGVyKCkge1xuICAgICAgICB0aGlzLnJlc2V0U291cmNlRmlsdGVyKCk7XG4gICAgICAgIHRoaXMucmVzZXRUYXJnZXRGaWx0ZXIoKTtcbiAgICB9XG5cbiAgICBvbkl0ZW1LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBpdGVtOiBhbnksIHNlbGVjdGVkSXRlbXM6IGFueVtdLCBjYWxsYmFjazogRXZlbnRFbWl0dGVyPGFueT4pIHtcbiAgICAgICAgbGV0IGxpc3RJdGVtID0gPEhUTUxMSUVsZW1lbnQ+ZXZlbnQuY3VycmVudFRhcmdldDtcblxuICAgICAgICBzd2l0Y2ggKGV2ZW50LndoaWNoKSB7XG4gICAgICAgICAgICAvL2Rvd25cbiAgICAgICAgICAgIGNhc2UgNDA6XG4gICAgICAgICAgICAgICAgdmFyIG5leHRJdGVtID0gdGhpcy5maW5kTmV4dEl0ZW0obGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChuZXh0SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBuZXh0SXRlbS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vdXBcbiAgICAgICAgICAgIGNhc2UgMzg6XG4gICAgICAgICAgICAgICAgdmFyIHByZXZJdGVtID0gdGhpcy5maW5kUHJldkl0ZW0obGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgIGlmIChwcmV2SXRlbSkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2SXRlbS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIC8vZW50ZXJcbiAgICAgICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldmVudCwgaXRlbSwgc2VsZWN0ZWRJdGVtcywgY2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmaW5kTmV4dEl0ZW0oaXRlbSkge1xuICAgICAgICBsZXQgbmV4dEl0ZW0gPSBpdGVtLm5leHRFbGVtZW50U2libGluZztcblxuICAgICAgICBpZiAobmV4dEl0ZW0pIHJldHVybiAhRG9tSGFuZGxlci5oYXNDbGFzcyhuZXh0SXRlbSwgJ3AtcGlja2xpc3QtaXRlbScpIHx8IERvbUhhbmRsZXIuaXNIaWRkZW4obmV4dEl0ZW0pID8gdGhpcy5maW5kTmV4dEl0ZW0obmV4dEl0ZW0pIDogbmV4dEl0ZW07XG4gICAgICAgIGVsc2UgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZmluZFByZXZJdGVtKGl0ZW0pIHtcbiAgICAgICAgbGV0IHByZXZJdGVtID0gaXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuXG4gICAgICAgIGlmIChwcmV2SXRlbSkgcmV0dXJuICFEb21IYW5kbGVyLmhhc0NsYXNzKHByZXZJdGVtLCAncC1waWNrbGlzdC1pdGVtJykgfHwgRG9tSGFuZGxlci5pc0hpZGRlbihwcmV2SXRlbSkgPyB0aGlzLmZpbmRQcmV2SXRlbShwcmV2SXRlbSkgOiBwcmV2SXRlbTtcbiAgICAgICAgZWxzZSByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBpbml0TWVkaWEoKSB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhID0gdGhpcy53aW5kb3cubWF0Y2hNZWRpYShgKG1heC13aWR0aDogJHt0aGlzLmJyZWFrcG9pbnR9KWApO1xuICAgICAgICAgICAgdGhpcy52aWV3Q2hhbmdlZCA9IHRoaXMubWVkaWEubWF0Y2hlcztcbiAgICAgICAgICAgIHRoaXMuYmluZE1lZGlhQ2hhbmdlTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3lNZWRpYSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmRNZWRpYUNoYW5nZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgYmluZE1lZGlhQ2hhbmdlTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLm1lZGlhICYmICF0aGlzLm1lZGlhQ2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHRoaXMubWVkaWFDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMubWVkaWEsICdjaGFuZ2UnLCAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdDaGFuZ2VkID0gZXZlbnQubWF0Y2hlcztcbiAgICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bmJpbmRNZWRpYUNoYW5nZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5tZWRpYUNoYW5nZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhQ2hhbmdlTGlzdGVuZXIoKTtcbiAgICAgICAgICAgIHRoaXMubWVkaWFDaGFuZ2VMaXN0ZW5lciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVTdHlsZSgpIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5zdHlsZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0sIHRoaXMuaWQsICcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLnN0eWxlRWxlbWVudCwgJ3R5cGUnLCAndGV4dC9jc3MnKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgbGV0IGlubmVySFRNTCA9IGBcbiAgICAgICAgICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAke3RoaXMuYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICAgICAgLnAtcGlja2xpc3RbJHt0aGlzLmlkfV0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAucC1waWNrbGlzdFske3RoaXMuaWR9XSAucC1waWNrbGlzdC1idXR0b25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWNvbnRlbnQtcGFkZGluZyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICAgICAgICAgIC5wLXBpY2tsaXN0WyR7dGhpcy5pZH1dIC5wLXBpY2tsaXN0LWJ1dHRvbnMgLnAtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0taW5saW5lLXNwYWNpbmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAucC1waWNrbGlzdFske3RoaXMuaWR9XSAucC1waWNrbGlzdC1idXR0b25zIC5wLWJ1dHRvbjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1gO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLnN0eWxlRWxlbWVudCwgJ2lubmVySFRNTCcsIGlubmVySFRNTCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzb3VyY2VNb3ZlRGlzYWJsZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLnNlbGVjdGVkSXRlbXNTb3VyY2UubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhcmdldE1vdmVEaXNhYmxlZCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgIXRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZVJpZ2h0RGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IE9iamVjdFV0aWxzLmlzRW1wdHkodGhpcy5zZWxlY3RlZEl0ZW1zU291cmNlKTtcbiAgICB9XG5cbiAgICBtb3ZlTGVmdERpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCBPYmplY3RVdGlscy5pc0VtcHR5KHRoaXMuc2VsZWN0ZWRJdGVtc1RhcmdldCk7XG4gICAgfVxuXG4gICAgbW92ZUFsbFJpZ2h0RGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IE9iamVjdFV0aWxzLmlzRW1wdHkodGhpcy5zb3VyY2UpO1xuICAgIH1cblxuICAgIG1vdmVBbGxMZWZ0RGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IE9iamVjdFV0aWxzLmlzRW1wdHkodGhpcy50YXJnZXQpO1xuICAgIH1cblxuICAgIGRlc3Ryb3lTdHlsZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc3R5bGVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsZW1lbnQpO1xuICAgICAgICAgICAgdGhpcy5zdHlsZUVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgYGA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3R5bGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95TWVkaWEoKTtcbiAgICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQnV0dG9uTW9kdWxlLCBTaGFyZWRNb2R1bGUsIFJpcHBsZU1vZHVsZSwgRHJhZ0Ryb3BNb2R1bGUsIEFuZ2xlRG91YmxlRG93bkljb24sIEFuZ2xlRG91YmxlTGVmdEljb24sIEFuZ2xlRG91YmxlUmlnaHRJY29uLCBBbmdsZURvdWJsZVVwSWNvbiwgQW5nbGVEb3duSWNvbiwgQW5nbGVMZWZ0SWNvbiwgQW5nbGVSaWdodEljb24sIEFuZ2xlVXBJY29uLCBTZWFyY2hJY29uLCBIb21lSWNvbl0sXG4gICAgZXhwb3J0czogW1BpY2tMaXN0LCBTaGFyZWRNb2R1bGUsIERyYWdEcm9wTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtQaWNrTGlzdF1cbn0pXG5leHBvcnQgY2xhc3MgUGlja0xpc3RNb2R1bGUge31cbiJdfQ==
|