@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,928 @@
|
|
|
1
|
+
import { CommonModule, DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, NgModule, Output, PLATFORM_ID, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { QiusTemplate, SharedModule } from '@qius.solutions/parallel-ui-angular/api';
|
|
4
|
+
import { DomHandler } from '@qius.solutions/parallel-ui-angular/dom';
|
|
5
|
+
import { SpinnerIcon } from '@qius.solutions/parallel-ui-angular/icons/spinner';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/common";
|
|
8
|
+
export class Scroller {
|
|
9
|
+
constructor(document, platformId, renderer, cd, zone) {
|
|
10
|
+
this.document = document;
|
|
11
|
+
this.platformId = platformId;
|
|
12
|
+
this.renderer = renderer;
|
|
13
|
+
this.cd = cd;
|
|
14
|
+
this.zone = zone;
|
|
15
|
+
this.onLazyLoad = new EventEmitter();
|
|
16
|
+
this.onScroll = new EventEmitter();
|
|
17
|
+
this.onScrollIndexChange = new EventEmitter();
|
|
18
|
+
this._tabindex = 0;
|
|
19
|
+
this._itemSize = 0;
|
|
20
|
+
this._orientation = 'vertical';
|
|
21
|
+
this._step = 0;
|
|
22
|
+
this._delay = 0;
|
|
23
|
+
this._resizeDelay = 10;
|
|
24
|
+
this._appendOnly = false;
|
|
25
|
+
this._inline = false;
|
|
26
|
+
this._lazy = false;
|
|
27
|
+
this._disabled = false;
|
|
28
|
+
this._loaderDisabled = false;
|
|
29
|
+
this._showSpacer = true;
|
|
30
|
+
this._showLoader = false;
|
|
31
|
+
this._autoSize = false;
|
|
32
|
+
this.d_loading = false;
|
|
33
|
+
this.first = 0;
|
|
34
|
+
this.last = 0;
|
|
35
|
+
this.page = 0;
|
|
36
|
+
this.isRangeChanged = false;
|
|
37
|
+
this.numItemsInViewport = 0;
|
|
38
|
+
this.lastScrollPos = 0;
|
|
39
|
+
this.lazyLoadState = {};
|
|
40
|
+
this.loaderArr = [];
|
|
41
|
+
this.spacerStyle = {};
|
|
42
|
+
this.contentStyle = {};
|
|
43
|
+
this.initialized = false;
|
|
44
|
+
}
|
|
45
|
+
get id() {
|
|
46
|
+
return this._id;
|
|
47
|
+
}
|
|
48
|
+
set id(val) {
|
|
49
|
+
this._id = val;
|
|
50
|
+
}
|
|
51
|
+
get style() {
|
|
52
|
+
return this._style;
|
|
53
|
+
}
|
|
54
|
+
set style(val) {
|
|
55
|
+
this._style = val;
|
|
56
|
+
}
|
|
57
|
+
get styleClass() {
|
|
58
|
+
return this._styleClass;
|
|
59
|
+
}
|
|
60
|
+
set styleClass(val) {
|
|
61
|
+
this._styleClass = val;
|
|
62
|
+
}
|
|
63
|
+
get tabindex() {
|
|
64
|
+
return this._tabindex;
|
|
65
|
+
}
|
|
66
|
+
set tabindex(val) {
|
|
67
|
+
this._tabindex = val;
|
|
68
|
+
}
|
|
69
|
+
get items() {
|
|
70
|
+
return this._items;
|
|
71
|
+
}
|
|
72
|
+
set items(val) {
|
|
73
|
+
this._items = val;
|
|
74
|
+
}
|
|
75
|
+
get itemSize() {
|
|
76
|
+
return this._itemSize;
|
|
77
|
+
}
|
|
78
|
+
set itemSize(val) {
|
|
79
|
+
this._itemSize = val;
|
|
80
|
+
}
|
|
81
|
+
get scrollHeight() {
|
|
82
|
+
return this._scrollHeight;
|
|
83
|
+
}
|
|
84
|
+
set scrollHeight(val) {
|
|
85
|
+
this._scrollHeight = val;
|
|
86
|
+
}
|
|
87
|
+
get scrollWidth() {
|
|
88
|
+
return this._scrollWidth;
|
|
89
|
+
}
|
|
90
|
+
set scrollWidth(val) {
|
|
91
|
+
this._scrollWidth = val;
|
|
92
|
+
}
|
|
93
|
+
get orientation() {
|
|
94
|
+
return this._orientation;
|
|
95
|
+
}
|
|
96
|
+
set orientation(val) {
|
|
97
|
+
this._orientation = val;
|
|
98
|
+
}
|
|
99
|
+
get step() {
|
|
100
|
+
return this._step;
|
|
101
|
+
}
|
|
102
|
+
set step(val) {
|
|
103
|
+
this._step = val;
|
|
104
|
+
}
|
|
105
|
+
get delay() {
|
|
106
|
+
return this._delay;
|
|
107
|
+
}
|
|
108
|
+
set delay(val) {
|
|
109
|
+
this._delay = val;
|
|
110
|
+
}
|
|
111
|
+
get resizeDelay() {
|
|
112
|
+
return this._resizeDelay;
|
|
113
|
+
}
|
|
114
|
+
set resizeDelay(val) {
|
|
115
|
+
this._resizeDelay = val;
|
|
116
|
+
}
|
|
117
|
+
get appendOnly() {
|
|
118
|
+
return this._appendOnly;
|
|
119
|
+
}
|
|
120
|
+
set appendOnly(val) {
|
|
121
|
+
this._appendOnly = val;
|
|
122
|
+
}
|
|
123
|
+
get inline() {
|
|
124
|
+
return this._inline;
|
|
125
|
+
}
|
|
126
|
+
set inline(val) {
|
|
127
|
+
this._inline = val;
|
|
128
|
+
}
|
|
129
|
+
get lazy() {
|
|
130
|
+
return this._lazy;
|
|
131
|
+
}
|
|
132
|
+
set lazy(val) {
|
|
133
|
+
this._lazy = val;
|
|
134
|
+
}
|
|
135
|
+
get disabled() {
|
|
136
|
+
return this._disabled;
|
|
137
|
+
}
|
|
138
|
+
set disabled(val) {
|
|
139
|
+
this._disabled = val;
|
|
140
|
+
}
|
|
141
|
+
get loaderDisabled() {
|
|
142
|
+
return this._loaderDisabled;
|
|
143
|
+
}
|
|
144
|
+
set loaderDisabled(val) {
|
|
145
|
+
this._loaderDisabled = val;
|
|
146
|
+
}
|
|
147
|
+
get columns() {
|
|
148
|
+
return this._columns;
|
|
149
|
+
}
|
|
150
|
+
set columns(val) {
|
|
151
|
+
this._columns = val;
|
|
152
|
+
}
|
|
153
|
+
get showSpacer() {
|
|
154
|
+
return this._showSpacer;
|
|
155
|
+
}
|
|
156
|
+
set showSpacer(val) {
|
|
157
|
+
this._showSpacer = val;
|
|
158
|
+
}
|
|
159
|
+
get showLoader() {
|
|
160
|
+
return this._showLoader;
|
|
161
|
+
}
|
|
162
|
+
set showLoader(val) {
|
|
163
|
+
this._showLoader = val;
|
|
164
|
+
}
|
|
165
|
+
get numToleratedItems() {
|
|
166
|
+
return this._numToleratedItems;
|
|
167
|
+
}
|
|
168
|
+
set numToleratedItems(val) {
|
|
169
|
+
this._numToleratedItems = val;
|
|
170
|
+
}
|
|
171
|
+
get loading() {
|
|
172
|
+
return this._loading;
|
|
173
|
+
}
|
|
174
|
+
set loading(val) {
|
|
175
|
+
this._loading = val;
|
|
176
|
+
}
|
|
177
|
+
get autoSize() {
|
|
178
|
+
return this._autoSize;
|
|
179
|
+
}
|
|
180
|
+
set autoSize(val) {
|
|
181
|
+
this._autoSize = val;
|
|
182
|
+
}
|
|
183
|
+
get trackBy() {
|
|
184
|
+
return this._trackBy;
|
|
185
|
+
}
|
|
186
|
+
set trackBy(val) {
|
|
187
|
+
this._trackBy = val;
|
|
188
|
+
}
|
|
189
|
+
get options() {
|
|
190
|
+
return this._options;
|
|
191
|
+
}
|
|
192
|
+
set options(val) {
|
|
193
|
+
this._options = val;
|
|
194
|
+
if (val && typeof val === 'object') {
|
|
195
|
+
Object.entries(val).forEach(([k, v]) => this[`_${k}`] !== v && (this[`_${k}`] = v));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
get vertical() {
|
|
199
|
+
return this._orientation === 'vertical';
|
|
200
|
+
}
|
|
201
|
+
get horizontal() {
|
|
202
|
+
return this._orientation === 'horizontal';
|
|
203
|
+
}
|
|
204
|
+
get both() {
|
|
205
|
+
return this._orientation === 'both';
|
|
206
|
+
}
|
|
207
|
+
get loadedItems() {
|
|
208
|
+
if (this._items && !this.d_loading) {
|
|
209
|
+
if (this.both)
|
|
210
|
+
return this._items.slice(this._appendOnly ? 0 : this.first.rows, this.last.rows).map((item) => (this._columns ? item : item.slice(this._appendOnly ? 0 : this.first.cols, this.last.cols)));
|
|
211
|
+
else if (this.horizontal && this._columns)
|
|
212
|
+
return this._items;
|
|
213
|
+
else
|
|
214
|
+
return this._items.slice(this._appendOnly ? 0 : this.first, this.last);
|
|
215
|
+
}
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
get loadedRows() {
|
|
219
|
+
return this.d_loading ? (this._loaderDisabled ? this.loaderArr : []) : this.loadedItems;
|
|
220
|
+
}
|
|
221
|
+
get loadedColumns() {
|
|
222
|
+
if (this._columns && (this.both || this.horizontal)) {
|
|
223
|
+
return this.d_loading && this._loaderDisabled ? (this.both ? this.loaderArr[0] : this.loaderArr) : this._columns.slice(this.both ? this.first.cols : this.first, this.both ? this.last.cols : this.last);
|
|
224
|
+
}
|
|
225
|
+
return this._columns;
|
|
226
|
+
}
|
|
227
|
+
get isPageChanged() {
|
|
228
|
+
return this._step ? this.page !== this.getPageByFirst() : true;
|
|
229
|
+
}
|
|
230
|
+
ngOnInit() {
|
|
231
|
+
this.setInitialState();
|
|
232
|
+
}
|
|
233
|
+
ngOnChanges(simpleChanges) {
|
|
234
|
+
let isLoadingChanged = false;
|
|
235
|
+
if (simpleChanges.loading) {
|
|
236
|
+
const { previousValue, currentValue } = simpleChanges.loading;
|
|
237
|
+
if (this.lazy && previousValue !== currentValue && currentValue !== this.d_loading) {
|
|
238
|
+
this.d_loading = currentValue;
|
|
239
|
+
isLoadingChanged = true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
if (simpleChanges.orientation) {
|
|
243
|
+
this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
|
|
244
|
+
}
|
|
245
|
+
if (simpleChanges.numToleratedItems) {
|
|
246
|
+
const { previousValue, currentValue } = simpleChanges.numToleratedItems;
|
|
247
|
+
if (previousValue !== currentValue && currentValue !== this.d_numToleratedItems) {
|
|
248
|
+
this.d_numToleratedItems = currentValue;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
if (simpleChanges.options) {
|
|
252
|
+
const { previousValue, currentValue } = simpleChanges.options;
|
|
253
|
+
if (this.lazy && previousValue?.loading !== currentValue?.loading && currentValue?.loading !== this.d_loading) {
|
|
254
|
+
this.d_loading = currentValue.loading;
|
|
255
|
+
isLoadingChanged = true;
|
|
256
|
+
}
|
|
257
|
+
if (previousValue?.numToleratedItems !== currentValue?.numToleratedItems && currentValue?.numToleratedItems !== this.d_numToleratedItems) {
|
|
258
|
+
this.d_numToleratedItems = currentValue.numToleratedItems;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
if (this.initialized) {
|
|
262
|
+
const isChanged = !isLoadingChanged && (simpleChanges.items?.previousValue?.length !== simpleChanges.items?.currentValue?.length || simpleChanges.itemSize || simpleChanges.scrollHeight || simpleChanges.scrollWidth);
|
|
263
|
+
if (isChanged) {
|
|
264
|
+
this.init();
|
|
265
|
+
this.calculateAutoSize();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
ngAfterContentInit() {
|
|
270
|
+
this.templates.forEach((item) => {
|
|
271
|
+
switch (item.getType()) {
|
|
272
|
+
case 'content':
|
|
273
|
+
this.contentTemplate = item.template;
|
|
274
|
+
break;
|
|
275
|
+
case 'item':
|
|
276
|
+
this.itemTemplate = item.template;
|
|
277
|
+
break;
|
|
278
|
+
case 'loader':
|
|
279
|
+
this.loaderTemplate = item.template;
|
|
280
|
+
break;
|
|
281
|
+
case 'loadericon':
|
|
282
|
+
this.loaderIconTemplate = item.template;
|
|
283
|
+
break;
|
|
284
|
+
default:
|
|
285
|
+
this.itemTemplate = item.template;
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
ngAfterViewInit() {
|
|
291
|
+
Promise.resolve().then(() => {
|
|
292
|
+
this.viewInit();
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
ngAfterViewChecked() {
|
|
296
|
+
if (!this.initialized) {
|
|
297
|
+
this.viewInit();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
ngOnDestroy() {
|
|
301
|
+
this.unbindResizeListener();
|
|
302
|
+
this.contentEl = null;
|
|
303
|
+
this.initialized = false;
|
|
304
|
+
}
|
|
305
|
+
viewInit() {
|
|
306
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
307
|
+
if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {
|
|
308
|
+
this.setInitialState();
|
|
309
|
+
this.setContentEl(this.contentEl);
|
|
310
|
+
this.init();
|
|
311
|
+
this.defaultWidth = DomHandler.getWidth(this.elementViewChild.nativeElement);
|
|
312
|
+
this.defaultHeight = DomHandler.getHeight(this.elementViewChild.nativeElement);
|
|
313
|
+
this.defaultContentWidth = DomHandler.getWidth(this.contentEl);
|
|
314
|
+
this.defaultContentHeight = DomHandler.getHeight(this.contentEl);
|
|
315
|
+
this.initialized = true;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
init() {
|
|
320
|
+
if (!this._disabled) {
|
|
321
|
+
this.setSize();
|
|
322
|
+
this.calculateOptions();
|
|
323
|
+
this.setSpacerSize();
|
|
324
|
+
this.bindResizeListener();
|
|
325
|
+
this.cd.detectChanges();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
setContentEl(el) {
|
|
329
|
+
this.contentEl = el || this.contentViewChild?.nativeElement || DomHandler.findSingle(this.elementViewChild?.nativeElement, '.p-scroller-content');
|
|
330
|
+
}
|
|
331
|
+
setInitialState() {
|
|
332
|
+
this.first = this.both ? { rows: 0, cols: 0 } : 0;
|
|
333
|
+
this.last = this.both ? { rows: 0, cols: 0 } : 0;
|
|
334
|
+
this.numItemsInViewport = this.both ? { rows: 0, cols: 0 } : 0;
|
|
335
|
+
this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
|
|
336
|
+
this.d_loading = this._loading || false;
|
|
337
|
+
this.d_numToleratedItems = this._numToleratedItems;
|
|
338
|
+
this.loaderArr = [];
|
|
339
|
+
this.spacerStyle = {};
|
|
340
|
+
this.contentStyle = {};
|
|
341
|
+
}
|
|
342
|
+
getElementRef() {
|
|
343
|
+
return this.elementViewChild;
|
|
344
|
+
}
|
|
345
|
+
getPageByFirst() {
|
|
346
|
+
return Math.floor((this.first + this.d_numToleratedItems * 4) / (this._step || 1));
|
|
347
|
+
}
|
|
348
|
+
scrollTo(options) {
|
|
349
|
+
this.lastScrollPos = this.both ? { top: 0, left: 0 } : 0;
|
|
350
|
+
this.elementViewChild?.nativeElement?.scrollTo(options);
|
|
351
|
+
}
|
|
352
|
+
scrollToIndex(index, behavior = 'auto') {
|
|
353
|
+
const { numToleratedItems } = this.calculateNumItems();
|
|
354
|
+
const contentPos = this.getContentPosition();
|
|
355
|
+
const calculateFirst = (_index = 0, _numT) => (_index <= _numT ? 0 : _index);
|
|
356
|
+
const calculateCoord = (_first, _size, _cpos) => _first * _size + _cpos;
|
|
357
|
+
const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
|
|
358
|
+
let newFirst = 0;
|
|
359
|
+
if (this.both) {
|
|
360
|
+
newFirst = { rows: calculateFirst(index[0], numToleratedItems[0]), cols: calculateFirst(index[1], numToleratedItems[1]) };
|
|
361
|
+
scrollTo(calculateCoord(newFirst.cols, this._itemSize[1], contentPos.left), calculateCoord(newFirst.rows, this._itemSize[0], contentPos.top));
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
newFirst = calculateFirst(index, numToleratedItems);
|
|
365
|
+
this.horizontal ? scrollTo(calculateCoord(newFirst, this._itemSize, contentPos.left), 0) : scrollTo(0, calculateCoord(newFirst, this._itemSize, contentPos.top));
|
|
366
|
+
}
|
|
367
|
+
this.isRangeChanged = this.first !== newFirst;
|
|
368
|
+
this.first = newFirst;
|
|
369
|
+
}
|
|
370
|
+
scrollInView(index, to, behavior = 'auto') {
|
|
371
|
+
if (to) {
|
|
372
|
+
const { first, viewport } = this.getRenderedRange();
|
|
373
|
+
const scrollTo = (left = 0, top = 0) => this.scrollTo({ left, top, behavior });
|
|
374
|
+
const isToStart = to === 'to-start';
|
|
375
|
+
const isToEnd = to === 'to-end';
|
|
376
|
+
if (isToStart) {
|
|
377
|
+
if (this.both) {
|
|
378
|
+
if (viewport.first.rows - first.rows > index[0]) {
|
|
379
|
+
scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows - 1) * this._itemSize[0]);
|
|
380
|
+
}
|
|
381
|
+
else if (viewport.first.cols - first.cols > index[1]) {
|
|
382
|
+
scrollTo((viewport.first.cols - 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
if (viewport.first - first > index) {
|
|
387
|
+
const pos = (viewport.first - 1) * this._itemSize;
|
|
388
|
+
this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
else if (isToEnd) {
|
|
393
|
+
if (this.both) {
|
|
394
|
+
if (viewport.last.rows - first.rows <= index[0] + 1) {
|
|
395
|
+
scrollTo(viewport.first.cols * this._itemSize[1], (viewport.first.rows + 1) * this._itemSize[0]);
|
|
396
|
+
}
|
|
397
|
+
else if (viewport.last.cols - first.cols <= index[1] + 1) {
|
|
398
|
+
scrollTo((viewport.first.cols + 1) * this._itemSize[1], viewport.first.rows * this._itemSize[0]);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
else {
|
|
402
|
+
if (viewport.last - first <= index + 1) {
|
|
403
|
+
const pos = (viewport.first + 1) * this._itemSize;
|
|
404
|
+
this.horizontal ? scrollTo(pos, 0) : scrollTo(0, pos);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
this.scrollToIndex(index, behavior);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
getRenderedRange() {
|
|
414
|
+
const calculateFirstInViewport = (_pos, _size) => Math.floor(_pos / (_size || _pos));
|
|
415
|
+
let firstInViewport = this.first;
|
|
416
|
+
let lastInViewport = 0;
|
|
417
|
+
if (this.elementViewChild?.nativeElement) {
|
|
418
|
+
const { scrollTop, scrollLeft } = this.elementViewChild.nativeElement;
|
|
419
|
+
if (this.both) {
|
|
420
|
+
firstInViewport = { rows: calculateFirstInViewport(scrollTop, this._itemSize[0]), cols: calculateFirstInViewport(scrollLeft, this._itemSize[1]) };
|
|
421
|
+
lastInViewport = { rows: firstInViewport.rows + this.numItemsInViewport.rows, cols: firstInViewport.cols + this.numItemsInViewport.cols };
|
|
422
|
+
}
|
|
423
|
+
else {
|
|
424
|
+
const scrollPos = this.horizontal ? scrollLeft : scrollTop;
|
|
425
|
+
firstInViewport = calculateFirstInViewport(scrollPos, this._itemSize);
|
|
426
|
+
lastInViewport = firstInViewport + this.numItemsInViewport;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
return {
|
|
430
|
+
first: this.first,
|
|
431
|
+
last: this.last,
|
|
432
|
+
viewport: {
|
|
433
|
+
first: firstInViewport,
|
|
434
|
+
last: lastInViewport
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
calculateNumItems() {
|
|
439
|
+
const contentPos = this.getContentPosition();
|
|
440
|
+
const contentWidth = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetWidth - contentPos.left : 0;
|
|
441
|
+
const contentHeight = this.elementViewChild?.nativeElement ? this.elementViewChild.nativeElement.offsetHeight - contentPos.top : 0;
|
|
442
|
+
const calculateNumItemsInViewport = (_contentSize, _itemSize) => Math.ceil(_contentSize / (_itemSize || _contentSize));
|
|
443
|
+
const calculateNumToleratedItems = (_numItems) => Math.ceil(_numItems / 2);
|
|
444
|
+
const numItemsInViewport = this.both
|
|
445
|
+
? { rows: calculateNumItemsInViewport(contentHeight, this._itemSize[0]), cols: calculateNumItemsInViewport(contentWidth, this._itemSize[1]) }
|
|
446
|
+
: calculateNumItemsInViewport(this.horizontal ? contentWidth : contentHeight, this._itemSize);
|
|
447
|
+
const numToleratedItems = this.d_numToleratedItems || (this.both ? [calculateNumToleratedItems(numItemsInViewport.rows), calculateNumToleratedItems(numItemsInViewport.cols)] : calculateNumToleratedItems(numItemsInViewport));
|
|
448
|
+
return { numItemsInViewport, numToleratedItems };
|
|
449
|
+
}
|
|
450
|
+
calculateOptions() {
|
|
451
|
+
const { numItemsInViewport, numToleratedItems } = this.calculateNumItems();
|
|
452
|
+
const calculateLast = (_first, _num, _numT, _isCols = false) => this.getLast(_first + _num + (_first < _numT ? 2 : 3) * _numT, _isCols);
|
|
453
|
+
const first = this.first;
|
|
454
|
+
const last = this.both
|
|
455
|
+
? { rows: calculateLast(this.first.rows, numItemsInViewport.rows, numToleratedItems[0]), cols: calculateLast(this.first.cols, numItemsInViewport.cols, numToleratedItems[1], true) }
|
|
456
|
+
: calculateLast(this.first, numItemsInViewport, numToleratedItems);
|
|
457
|
+
this.last = last;
|
|
458
|
+
this.numItemsInViewport = numItemsInViewport;
|
|
459
|
+
this.d_numToleratedItems = numToleratedItems;
|
|
460
|
+
if (this.showLoader) {
|
|
461
|
+
this.loaderArr = this.both ? Array.from({ length: numItemsInViewport.rows }).map(() => Array.from({ length: numItemsInViewport.cols })) : Array.from({ length: numItemsInViewport });
|
|
462
|
+
}
|
|
463
|
+
if (this._lazy) {
|
|
464
|
+
Promise.resolve().then(() => {
|
|
465
|
+
this.lazyLoadState = {
|
|
466
|
+
first: this._step ? (this.both ? { rows: 0, cols: first.cols } : 0) : first,
|
|
467
|
+
last: Math.min(this._step ? this._step : this.last, this.items.length)
|
|
468
|
+
};
|
|
469
|
+
this.handleEvents('onLazyLoad', this.lazyLoadState);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
calculateAutoSize() {
|
|
474
|
+
if (this._autoSize && !this.d_loading) {
|
|
475
|
+
Promise.resolve().then(() => {
|
|
476
|
+
if (this.contentEl) {
|
|
477
|
+
this.contentEl.style.minHeight = this.contentEl.style.minWidth = 'auto';
|
|
478
|
+
this.contentEl.style.position = 'relative';
|
|
479
|
+
this.elementViewChild.nativeElement.style.contain = 'none';
|
|
480
|
+
const [contentWidth, contentHeight] = [DomHandler.getWidth(this.contentEl), DomHandler.getHeight(this.contentEl)];
|
|
481
|
+
contentWidth !== this.defaultContentWidth && (this.elementViewChild.nativeElement.style.width = '');
|
|
482
|
+
contentHeight !== this.defaultContentHeight && (this.elementViewChild.nativeElement.style.height = '');
|
|
483
|
+
const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
|
|
484
|
+
(this.both || this.horizontal) && (this.elementViewChild.nativeElement.style.width = width < this.defaultWidth ? width + 'px' : this._scrollWidth || this.defaultWidth + 'px');
|
|
485
|
+
(this.both || this.vertical) && (this.elementViewChild.nativeElement.style.height = height < this.defaultHeight ? height + 'px' : this._scrollHeight || this.defaultHeight + 'px');
|
|
486
|
+
this.contentEl.style.minHeight = this.contentEl.style.minWidth = '';
|
|
487
|
+
this.contentEl.style.position = '';
|
|
488
|
+
this.elementViewChild.nativeElement.style.contain = '';
|
|
489
|
+
}
|
|
490
|
+
});
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
getLast(last = 0, isCols = false) {
|
|
494
|
+
return this._items ? Math.min(isCols ? (this._columns || this._items[0]).length : this._items.length, last) : 0;
|
|
495
|
+
}
|
|
496
|
+
getContentPosition() {
|
|
497
|
+
if (this.contentEl) {
|
|
498
|
+
const style = getComputedStyle(this.contentEl);
|
|
499
|
+
const left = parseFloat(style.paddingLeft) + Math.max(parseFloat(style.left) || 0, 0);
|
|
500
|
+
const right = parseFloat(style.paddingRight) + Math.max(parseFloat(style.right) || 0, 0);
|
|
501
|
+
const top = parseFloat(style.paddingTop) + Math.max(parseFloat(style.top) || 0, 0);
|
|
502
|
+
const bottom = parseFloat(style.paddingBottom) + Math.max(parseFloat(style.bottom) || 0, 0);
|
|
503
|
+
return { left, right, top, bottom, x: left + right, y: top + bottom };
|
|
504
|
+
}
|
|
505
|
+
return { left: 0, right: 0, top: 0, bottom: 0, x: 0, y: 0 };
|
|
506
|
+
}
|
|
507
|
+
setSize() {
|
|
508
|
+
if (this.elementViewChild?.nativeElement) {
|
|
509
|
+
const parentElement = this.elementViewChild.nativeElement.parentElement.parentElement;
|
|
510
|
+
const width = this._scrollWidth || `${this.elementViewChild.nativeElement.offsetWidth || parentElement.offsetWidth}px`;
|
|
511
|
+
const height = this._scrollHeight || `${this.elementViewChild.nativeElement.offsetHeight || parentElement.offsetHeight}px`;
|
|
512
|
+
const setProp = (_name, _value) => (this.elementViewChild.nativeElement.style[_name] = _value);
|
|
513
|
+
if (this.both || this.horizontal) {
|
|
514
|
+
setProp('height', height);
|
|
515
|
+
setProp('width', width);
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
setProp('height', height);
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
setSpacerSize() {
|
|
523
|
+
if (this._items) {
|
|
524
|
+
const contentPos = this.getContentPosition();
|
|
525
|
+
const setProp = (_name, _value, _size, _cpos = 0) => (this.spacerStyle = { ...this.spacerStyle, ...{ [`${_name}`]: (_value || []).length * _size + _cpos + 'px' } });
|
|
526
|
+
if (this.both) {
|
|
527
|
+
setProp('height', this._items, this._itemSize[0], contentPos.y);
|
|
528
|
+
setProp('width', this._columns || this._items[1], this._itemSize[1], contentPos.x);
|
|
529
|
+
}
|
|
530
|
+
else {
|
|
531
|
+
this.horizontal ? setProp('width', this._columns || this._items, this._itemSize, contentPos.x) : setProp('height', this._items, this._itemSize, contentPos.y);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
setContentPosition(pos) {
|
|
536
|
+
if (this.contentEl && !this._appendOnly) {
|
|
537
|
+
const first = pos ? pos.first : this.first;
|
|
538
|
+
const calculateTranslateVal = (_first, _size) => _first * _size;
|
|
539
|
+
const setTransform = (_x = 0, _y = 0) => (this.contentStyle = { ...this.contentStyle, ...{ transform: `translate3d(${_x}px, ${_y}px, 0)` } });
|
|
540
|
+
if (this.both) {
|
|
541
|
+
setTransform(calculateTranslateVal(first.cols, this._itemSize[1]), calculateTranslateVal(first.rows, this._itemSize[0]));
|
|
542
|
+
}
|
|
543
|
+
else {
|
|
544
|
+
const translateVal = calculateTranslateVal(first, this._itemSize);
|
|
545
|
+
this.horizontal ? setTransform(translateVal, 0) : setTransform(0, translateVal);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
onScrollPositionChange(event) {
|
|
550
|
+
const target = event.target;
|
|
551
|
+
const contentPos = this.getContentPosition();
|
|
552
|
+
const calculateScrollPos = (_pos, _cpos) => (_pos ? (_pos > _cpos ? _pos - _cpos : _pos) : 0);
|
|
553
|
+
const calculateCurrentIndex = (_pos, _size) => Math.floor(_pos / (_size || _pos));
|
|
554
|
+
const calculateTriggerIndex = (_currentIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
|
|
555
|
+
return _currentIndex <= _numT ? _numT : _isScrollDownOrRight ? _last - _num - _numT : _first + _numT - 1;
|
|
556
|
+
};
|
|
557
|
+
const calculateFirst = (_currentIndex, _triggerIndex, _first, _last, _num, _numT, _isScrollDownOrRight) => {
|
|
558
|
+
if (_currentIndex <= _numT)
|
|
559
|
+
return 0;
|
|
560
|
+
else
|
|
561
|
+
return Math.max(0, _isScrollDownOrRight ? (_currentIndex < _triggerIndex ? _first : _currentIndex - _numT) : _currentIndex > _triggerIndex ? _first : _currentIndex - 2 * _numT);
|
|
562
|
+
};
|
|
563
|
+
const calculateLast = (_currentIndex, _first, _last, _num, _numT, _isCols = false) => {
|
|
564
|
+
let lastValue = _first + _num + 2 * _numT;
|
|
565
|
+
if (_currentIndex >= _numT) {
|
|
566
|
+
lastValue += _numT + 1;
|
|
567
|
+
}
|
|
568
|
+
return this.getLast(lastValue, _isCols);
|
|
569
|
+
};
|
|
570
|
+
const scrollTop = calculateScrollPos(target.scrollTop, contentPos.top);
|
|
571
|
+
const scrollLeft = calculateScrollPos(target.scrollLeft, contentPos.left);
|
|
572
|
+
let newFirst = this.both ? { rows: 0, cols: 0 } : 0;
|
|
573
|
+
let newLast = this.last;
|
|
574
|
+
let isRangeChanged = false;
|
|
575
|
+
let newScrollPos = this.lastScrollPos;
|
|
576
|
+
if (this.both) {
|
|
577
|
+
const isScrollDown = this.lastScrollPos.top <= scrollTop;
|
|
578
|
+
const isScrollRight = this.lastScrollPos.left <= scrollLeft;
|
|
579
|
+
if (!this._appendOnly || (this._appendOnly && (isScrollDown || isScrollRight))) {
|
|
580
|
+
const currentIndex = { rows: calculateCurrentIndex(scrollTop, this._itemSize[0]), cols: calculateCurrentIndex(scrollLeft, this._itemSize[1]) };
|
|
581
|
+
const triggerIndex = {
|
|
582
|
+
rows: calculateTriggerIndex(currentIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
|
|
583
|
+
cols: calculateTriggerIndex(currentIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
|
|
584
|
+
};
|
|
585
|
+
newFirst = {
|
|
586
|
+
rows: calculateFirst(currentIndex.rows, triggerIndex.rows, this.first.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0], isScrollDown),
|
|
587
|
+
cols: calculateFirst(currentIndex.cols, triggerIndex.cols, this.first.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], isScrollRight)
|
|
588
|
+
};
|
|
589
|
+
newLast = {
|
|
590
|
+
rows: calculateLast(currentIndex.rows, newFirst.rows, this.last.rows, this.numItemsInViewport.rows, this.d_numToleratedItems[0]),
|
|
591
|
+
cols: calculateLast(currentIndex.cols, newFirst.cols, this.last.cols, this.numItemsInViewport.cols, this.d_numToleratedItems[1], true)
|
|
592
|
+
};
|
|
593
|
+
isRangeChanged = newFirst.rows !== this.first.rows || newLast.rows !== this.last.rows || newFirst.cols !== this.first.cols || newLast.cols !== this.last.cols || this.isRangeChanged;
|
|
594
|
+
newScrollPos = { top: scrollTop, left: scrollLeft };
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
else {
|
|
598
|
+
const scrollPos = this.horizontal ? scrollLeft : scrollTop;
|
|
599
|
+
const isScrollDownOrRight = this.lastScrollPos <= scrollPos;
|
|
600
|
+
if (!this._appendOnly || (this._appendOnly && isScrollDownOrRight)) {
|
|
601
|
+
const currentIndex = calculateCurrentIndex(scrollPos, this._itemSize);
|
|
602
|
+
const triggerIndex = calculateTriggerIndex(currentIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
|
|
603
|
+
newFirst = calculateFirst(currentIndex, triggerIndex, this.first, this.last, this.numItemsInViewport, this.d_numToleratedItems, isScrollDownOrRight);
|
|
604
|
+
newLast = calculateLast(currentIndex, newFirst, this.last, this.numItemsInViewport, this.d_numToleratedItems);
|
|
605
|
+
isRangeChanged = newFirst !== this.first || newLast !== this.last || this.isRangeChanged;
|
|
606
|
+
newScrollPos = scrollPos;
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
return {
|
|
610
|
+
first: newFirst,
|
|
611
|
+
last: newLast,
|
|
612
|
+
isRangeChanged,
|
|
613
|
+
scrollPos: newScrollPos
|
|
614
|
+
};
|
|
615
|
+
}
|
|
616
|
+
onScrollChange(event) {
|
|
617
|
+
const { first, last, isRangeChanged, scrollPos } = this.onScrollPositionChange(event);
|
|
618
|
+
if (isRangeChanged) {
|
|
619
|
+
const newState = { first, last };
|
|
620
|
+
this.setContentPosition(newState);
|
|
621
|
+
this.first = first;
|
|
622
|
+
this.last = last;
|
|
623
|
+
this.lastScrollPos = scrollPos;
|
|
624
|
+
this.handleEvents('onScrollIndexChange', newState);
|
|
625
|
+
if (this._lazy && this.isPageChanged) {
|
|
626
|
+
const lazyLoadState = {
|
|
627
|
+
first: this._step ? Math.min(this.getPageByFirst() * this._step, this.items.length - this._step) : first,
|
|
628
|
+
last: Math.min(this._step ? (this.getPageByFirst() + 1) * this._step : last, this.items.length)
|
|
629
|
+
};
|
|
630
|
+
const isLazyStateChanged = this.lazyLoadState.first !== lazyLoadState.first || this.lazyLoadState.last !== lazyLoadState.last;
|
|
631
|
+
isLazyStateChanged && this.handleEvents('onLazyLoad', lazyLoadState);
|
|
632
|
+
this.lazyLoadState = lazyLoadState;
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
onContainerScroll(event) {
|
|
637
|
+
this.handleEvents('onScroll', { originalEvent: event });
|
|
638
|
+
if (this._delay && this.isPageChanged) {
|
|
639
|
+
if (this.scrollTimeout) {
|
|
640
|
+
clearTimeout(this.scrollTimeout);
|
|
641
|
+
}
|
|
642
|
+
if (!this.d_loading && this.showLoader) {
|
|
643
|
+
const { isRangeChanged } = this.onScrollPositionChange(event);
|
|
644
|
+
const changed = isRangeChanged || (this._step ? this.isPageChanged : false);
|
|
645
|
+
if (changed) {
|
|
646
|
+
this.d_loading = true;
|
|
647
|
+
this.cd.detectChanges();
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
this.scrollTimeout = setTimeout(() => {
|
|
651
|
+
this.onScrollChange(event);
|
|
652
|
+
if (this.d_loading && this.showLoader && (!this._lazy || this._loading === undefined)) {
|
|
653
|
+
this.d_loading = false;
|
|
654
|
+
this.page = this.getPageByFirst();
|
|
655
|
+
this.cd.detectChanges();
|
|
656
|
+
}
|
|
657
|
+
}, this._delay);
|
|
658
|
+
}
|
|
659
|
+
else {
|
|
660
|
+
!this.d_loading && this.onScrollChange(event);
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
bindResizeListener() {
|
|
664
|
+
if (isPlatformBrowser(this.platformId)) {
|
|
665
|
+
if (!this.windowResizeListener) {
|
|
666
|
+
this.zone.runOutsideAngular(() => {
|
|
667
|
+
const window = this.document.defaultView;
|
|
668
|
+
const event = DomHandler.isTouchDevice() ? 'orientationchange' : 'resize';
|
|
669
|
+
this.windowResizeListener = this.renderer.listen(window, event, this.onWindowResize.bind(this));
|
|
670
|
+
});
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
unbindResizeListener() {
|
|
675
|
+
if (this.windowResizeListener) {
|
|
676
|
+
this.windowResizeListener();
|
|
677
|
+
this.windowResizeListener = null;
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
onWindowResize() {
|
|
681
|
+
if (this.resizeTimeout) {
|
|
682
|
+
clearTimeout(this.resizeTimeout);
|
|
683
|
+
}
|
|
684
|
+
this.resizeTimeout = setTimeout(() => {
|
|
685
|
+
if (DomHandler.isVisible(this.elementViewChild?.nativeElement)) {
|
|
686
|
+
const [width, height] = [DomHandler.getWidth(this.elementViewChild.nativeElement), DomHandler.getHeight(this.elementViewChild.nativeElement)];
|
|
687
|
+
const [isDiffWidth, isDiffHeight] = [width !== this.defaultWidth, height !== this.defaultHeight];
|
|
688
|
+
const reinit = this.both ? isDiffWidth || isDiffHeight : this.horizontal ? isDiffWidth : this.vertical ? isDiffHeight : false;
|
|
689
|
+
reinit &&
|
|
690
|
+
this.zone.run(() => {
|
|
691
|
+
this.d_numToleratedItems = this._numToleratedItems;
|
|
692
|
+
this.defaultWidth = width;
|
|
693
|
+
this.defaultHeight = height;
|
|
694
|
+
this.defaultContentWidth = DomHandler.getWidth(this.contentEl);
|
|
695
|
+
this.defaultContentHeight = DomHandler.getHeight(this.contentEl);
|
|
696
|
+
this.init();
|
|
697
|
+
});
|
|
698
|
+
}
|
|
699
|
+
}, this._resizeDelay);
|
|
700
|
+
}
|
|
701
|
+
handleEvents(name, params) {
|
|
702
|
+
return this.options && this.options[name] ? this.options[name](params) : this[name].emit(params);
|
|
703
|
+
}
|
|
704
|
+
getContentOptions() {
|
|
705
|
+
return {
|
|
706
|
+
contentStyleClass: `p-scroller-content ${this.d_loading ? 'p-scroller-loading' : ''}`,
|
|
707
|
+
items: this.loadedItems,
|
|
708
|
+
getItemOptions: (index) => this.getOptions(index),
|
|
709
|
+
loading: this.d_loading,
|
|
710
|
+
getLoaderOptions: (index, options) => this.getLoaderOptions(index, options),
|
|
711
|
+
itemSize: this._itemSize,
|
|
712
|
+
rows: this.loadedRows,
|
|
713
|
+
columns: this.loadedColumns,
|
|
714
|
+
spacerStyle: this.spacerStyle,
|
|
715
|
+
contentStyle: this.contentStyle,
|
|
716
|
+
vertical: this.vertical,
|
|
717
|
+
horizontal: this.horizontal,
|
|
718
|
+
both: this.both
|
|
719
|
+
};
|
|
720
|
+
}
|
|
721
|
+
getOptions(renderedIndex) {
|
|
722
|
+
const count = (this._items || []).length;
|
|
723
|
+
const index = this.both ? this.first.rows + renderedIndex : this.first + renderedIndex;
|
|
724
|
+
return {
|
|
725
|
+
index,
|
|
726
|
+
count,
|
|
727
|
+
first: index === 0,
|
|
728
|
+
last: index === count - 1,
|
|
729
|
+
even: index % 2 === 0,
|
|
730
|
+
odd: index % 2 !== 0
|
|
731
|
+
};
|
|
732
|
+
}
|
|
733
|
+
getLoaderOptions(index, extOptions) {
|
|
734
|
+
const count = this.loaderArr.length;
|
|
735
|
+
return {
|
|
736
|
+
index,
|
|
737
|
+
count,
|
|
738
|
+
first: index === 0,
|
|
739
|
+
last: index === count - 1,
|
|
740
|
+
even: index % 2 === 0,
|
|
741
|
+
odd: index % 2 !== 0,
|
|
742
|
+
...extOptions
|
|
743
|
+
};
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
Scroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Scroller, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
747
|
+
Scroller.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: Scroller, selector: "p-scroller", inputs: { id: "id", style: "style", styleClass: "styleClass", tabindex: "tabindex", items: "items", itemSize: "itemSize", scrollHeight: "scrollHeight", scrollWidth: "scrollWidth", orientation: "orientation", step: "step", delay: "delay", resizeDelay: "resizeDelay", appendOnly: "appendOnly", inline: "inline", lazy: "lazy", disabled: "disabled", loaderDisabled: "loaderDisabled", columns: "columns", showSpacer: "showSpacer", showLoader: "showLoader", numToleratedItems: "numToleratedItems", loading: "loading", autoSize: "autoSize", trackBy: "trackBy", options: "options" }, outputs: { onLazyLoad: "onLazyLoad", onScroll: "onScroll", onScrollIndexChange: "onScrollIndexChange" }, host: { classAttribute: "p-scroller-viewport p-element" }, queries: [{ propertyName: "templates", predicate: QiusTemplate }], viewQueries: [{ propertyName: "elementViewChild", first: true, predicate: ["element"], descendants: true }, { propertyName: "contentViewChild", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
748
|
+
<ng-container *ngIf="!_disabled; else disabledContainer">
|
|
749
|
+
<div
|
|
750
|
+
#element
|
|
751
|
+
[attr.id]="_id"
|
|
752
|
+
[attr.tabindex]="tabindex"
|
|
753
|
+
[ngStyle]="_style"
|
|
754
|
+
[class]="_styleClass"
|
|
755
|
+
[ngClass]="{ 'p-scroller': true, 'p-scroller-inline': inline, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal }"
|
|
756
|
+
(scroll)="onContainerScroll($event)"
|
|
757
|
+
>
|
|
758
|
+
<ng-container *ngIf="contentTemplate; else buildInContent">
|
|
759
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }"></ng-container>
|
|
760
|
+
</ng-container>
|
|
761
|
+
<ng-template #buildInContent>
|
|
762
|
+
<div #content class="p-scroller-content" [ngClass]="{ 'p-scroller-loading': d_loading }" [ngStyle]="contentStyle">
|
|
763
|
+
<ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
|
|
764
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, options: getOptions(index) }"></ng-container>
|
|
765
|
+
</ng-container>
|
|
766
|
+
</div>
|
|
767
|
+
</ng-template>
|
|
768
|
+
<div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
|
|
769
|
+
<div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{ 'p-component-overlay': !loaderTemplate }">
|
|
770
|
+
<ng-container *ngIf="loaderTemplate; else buildInLoader">
|
|
771
|
+
<ng-container *ngFor="let item of loaderArr; let index = index">
|
|
772
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: { options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }) }"></ng-container>
|
|
773
|
+
</ng-container>
|
|
774
|
+
</ng-container>
|
|
775
|
+
<ng-template #buildInLoader>
|
|
776
|
+
<ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
|
|
777
|
+
<ng-container *ngTemplateOutlet="loaderIconTemplate; context: { options: { styleClass: 'p-scroller-loading-icon' } }"></ng-container>
|
|
778
|
+
</ng-container>
|
|
779
|
+
<ng-template #buildInLoaderIcon>
|
|
780
|
+
<SpinnerIcon [styleClass]="'p-scroller-loading-icon'"/>
|
|
781
|
+
</ng-template>
|
|
782
|
+
</ng-template>
|
|
783
|
+
</div>
|
|
784
|
+
</div>
|
|
785
|
+
</ng-container>
|
|
786
|
+
<ng-template #disabledContainer>
|
|
787
|
+
<ng-content></ng-content>
|
|
788
|
+
<ng-container *ngIf="contentTemplate">
|
|
789
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }"></ng-container>
|
|
790
|
+
</ng-container>
|
|
791
|
+
</ng-template>
|
|
792
|
+
`, isInline: true, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgForOf; }), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i0.forwardRef(function () { return SpinnerIcon; }), selector: "SpinnerIcon" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
|
|
793
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: Scroller, decorators: [{
|
|
794
|
+
type: Component,
|
|
795
|
+
args: [{ selector: 'p-scroller', template: `
|
|
796
|
+
<ng-container *ngIf="!_disabled; else disabledContainer">
|
|
797
|
+
<div
|
|
798
|
+
#element
|
|
799
|
+
[attr.id]="_id"
|
|
800
|
+
[attr.tabindex]="tabindex"
|
|
801
|
+
[ngStyle]="_style"
|
|
802
|
+
[class]="_styleClass"
|
|
803
|
+
[ngClass]="{ 'p-scroller': true, 'p-scroller-inline': inline, 'p-both-scroll': both, 'p-horizontal-scroll': horizontal }"
|
|
804
|
+
(scroll)="onContainerScroll($event)"
|
|
805
|
+
>
|
|
806
|
+
<ng-container *ngIf="contentTemplate; else buildInContent">
|
|
807
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: loadedItems, options: getContentOptions() }"></ng-container>
|
|
808
|
+
</ng-container>
|
|
809
|
+
<ng-template #buildInContent>
|
|
810
|
+
<div #content class="p-scroller-content" [ngClass]="{ 'p-scroller-loading': d_loading }" [ngStyle]="contentStyle">
|
|
811
|
+
<ng-container *ngFor="let item of loadedItems; let index = index; trackBy: _trackBy || index">
|
|
812
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item, options: getOptions(index) }"></ng-container>
|
|
813
|
+
</ng-container>
|
|
814
|
+
</div>
|
|
815
|
+
</ng-template>
|
|
816
|
+
<div *ngIf="_showSpacer" class="p-scroller-spacer" [ngStyle]="spacerStyle"></div>
|
|
817
|
+
<div *ngIf="!loaderDisabled && _showLoader && d_loading" class="p-scroller-loader" [ngClass]="{ 'p-component-overlay': !loaderTemplate }">
|
|
818
|
+
<ng-container *ngIf="loaderTemplate; else buildInLoader">
|
|
819
|
+
<ng-container *ngFor="let item of loaderArr; let index = index">
|
|
820
|
+
<ng-container *ngTemplateOutlet="loaderTemplate; context: { options: getLoaderOptions(index, both && { numCols: _numItemsInViewport.cols }) }"></ng-container>
|
|
821
|
+
</ng-container>
|
|
822
|
+
</ng-container>
|
|
823
|
+
<ng-template #buildInLoader>
|
|
824
|
+
<ng-container *ngIf="loaderIconTemplate; else buildInLoaderIcon">
|
|
825
|
+
<ng-container *ngTemplateOutlet="loaderIconTemplate; context: { options: { styleClass: 'p-scroller-loading-icon' } }"></ng-container>
|
|
826
|
+
</ng-container>
|
|
827
|
+
<ng-template #buildInLoaderIcon>
|
|
828
|
+
<SpinnerIcon [styleClass]="'p-scroller-loading-icon'"/>
|
|
829
|
+
</ng-template>
|
|
830
|
+
</ng-template>
|
|
831
|
+
</div>
|
|
832
|
+
</div>
|
|
833
|
+
</ng-container>
|
|
834
|
+
<ng-template #disabledContainer>
|
|
835
|
+
<ng-content></ng-content>
|
|
836
|
+
<ng-container *ngIf="contentTemplate">
|
|
837
|
+
<ng-container *ngTemplateOutlet="contentTemplate; context: { $implicit: items, options: { rows: _items, columns: loadedColumns } }"></ng-container>
|
|
838
|
+
</ng-container>
|
|
839
|
+
</ng-template>
|
|
840
|
+
`, changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
|
|
841
|
+
class: 'p-scroller-viewport p-element'
|
|
842
|
+
}, styles: ["p-scroller{flex:1;outline:0 none}.p-scroller{position:relative;overflow:auto;contain:strict;transform:translateZ(0);will-change:scroll-position;outline:0 none}.p-scroller-content{position:absolute;top:0;left:0;min-height:100%;min-width:100%;will-change:transform}.p-scroller-spacer{position:absolute;top:0;left:0;height:1px;width:1px;transform-origin:0 0;pointer-events:none}.p-scroller-loader{position:sticky;top:0;left:0;width:100%;height:100%}.p-scroller-loader.p-component-overlay{display:flex;align-items:center;justify-content:center}.p-scroller-loading-icon{scale:2}.p-scroller-inline .p-scroller-content{position:static}\n"] }]
|
|
843
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
844
|
+
type: Inject,
|
|
845
|
+
args: [DOCUMENT]
|
|
846
|
+
}] }, { type: undefined, decorators: [{
|
|
847
|
+
type: Inject,
|
|
848
|
+
args: [PLATFORM_ID]
|
|
849
|
+
}] }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; }, propDecorators: { id: [{
|
|
850
|
+
type: Input
|
|
851
|
+
}], style: [{
|
|
852
|
+
type: Input
|
|
853
|
+
}], styleClass: [{
|
|
854
|
+
type: Input
|
|
855
|
+
}], tabindex: [{
|
|
856
|
+
type: Input
|
|
857
|
+
}], items: [{
|
|
858
|
+
type: Input
|
|
859
|
+
}], itemSize: [{
|
|
860
|
+
type: Input
|
|
861
|
+
}], scrollHeight: [{
|
|
862
|
+
type: Input
|
|
863
|
+
}], scrollWidth: [{
|
|
864
|
+
type: Input
|
|
865
|
+
}], orientation: [{
|
|
866
|
+
type: Input
|
|
867
|
+
}], step: [{
|
|
868
|
+
type: Input
|
|
869
|
+
}], delay: [{
|
|
870
|
+
type: Input
|
|
871
|
+
}], resizeDelay: [{
|
|
872
|
+
type: Input
|
|
873
|
+
}], appendOnly: [{
|
|
874
|
+
type: Input
|
|
875
|
+
}], inline: [{
|
|
876
|
+
type: Input
|
|
877
|
+
}], lazy: [{
|
|
878
|
+
type: Input
|
|
879
|
+
}], disabled: [{
|
|
880
|
+
type: Input
|
|
881
|
+
}], loaderDisabled: [{
|
|
882
|
+
type: Input
|
|
883
|
+
}], columns: [{
|
|
884
|
+
type: Input
|
|
885
|
+
}], showSpacer: [{
|
|
886
|
+
type: Input
|
|
887
|
+
}], showLoader: [{
|
|
888
|
+
type: Input
|
|
889
|
+
}], numToleratedItems: [{
|
|
890
|
+
type: Input
|
|
891
|
+
}], loading: [{
|
|
892
|
+
type: Input
|
|
893
|
+
}], autoSize: [{
|
|
894
|
+
type: Input
|
|
895
|
+
}], trackBy: [{
|
|
896
|
+
type: Input
|
|
897
|
+
}], options: [{
|
|
898
|
+
type: Input
|
|
899
|
+
}], elementViewChild: [{
|
|
900
|
+
type: ViewChild,
|
|
901
|
+
args: ['element']
|
|
902
|
+
}], contentViewChild: [{
|
|
903
|
+
type: ViewChild,
|
|
904
|
+
args: ['content']
|
|
905
|
+
}], templates: [{
|
|
906
|
+
type: ContentChildren,
|
|
907
|
+
args: [QiusTemplate]
|
|
908
|
+
}], onLazyLoad: [{
|
|
909
|
+
type: Output
|
|
910
|
+
}], onScroll: [{
|
|
911
|
+
type: Output
|
|
912
|
+
}], onScrollIndexChange: [{
|
|
913
|
+
type: Output
|
|
914
|
+
}] } });
|
|
915
|
+
export class ScrollerModule {
|
|
916
|
+
}
|
|
917
|
+
ScrollerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
918
|
+
ScrollerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, declarations: [Scroller], imports: [CommonModule, SharedModule, SpinnerIcon], exports: [Scroller, SharedModule] });
|
|
919
|
+
ScrollerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, imports: [CommonModule, SharedModule, SpinnerIcon, SharedModule] });
|
|
920
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ScrollerModule, decorators: [{
|
|
921
|
+
type: NgModule,
|
|
922
|
+
args: [{
|
|
923
|
+
imports: [CommonModule, SharedModule, SpinnerIcon],
|
|
924
|
+
exports: [Scroller, SharedModule],
|
|
925
|
+
declarations: [Scroller]
|
|
926
|
+
}]
|
|
927
|
+
}] });
|
|
928
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2Nyb2xsZXIvc2Nyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBR0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxlQUFlLEVBRWYsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsUUFBUSxFQUlSLE1BQU0sRUFDTixXQUFXLEVBS1gsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbURBQW1ELENBQUM7OztBQTJGaEYsTUFBTSxPQUFPLFFBQVE7SUEwVWpCLFlBQXNDLFFBQWtCLEVBQStCLFVBQWUsRUFBVSxRQUFtQixFQUFVLEVBQXFCLEVBQVUsSUFBWTtRQUFsSixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQStCLGVBQVUsR0FBVixVQUFVLENBQUs7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBaEo5SyxlQUFVLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbkQsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWpELHdCQUFtQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBUXRFLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFJdEIsY0FBUyxHQUFRLENBQUMsQ0FBQztRQU1uQixpQkFBWSxHQUFXLFVBQVUsQ0FBQztRQUVsQyxV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UztnQkFFVyxTQUFTO3NCQUF2QyxlQUFlO3VCQUFDLFlBQVk7Z0JBRW5CLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUcsUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxtQkFBbUI7c0JBQTVCLE1BQU07O0FBNHVCWCxNQUFNLE9BQU8sY0FBYzs7NEdBQWQsY0FBYzs2R0FBZCxjQUFjLGlCQTE2QmQsUUFBUSxhQXM2QlAsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLGFBdDZCeEMsUUFBUSxFQXU2QkcsWUFBWTs2R0FHdkIsY0FBYyxZQUpiLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUM3QixZQUFZOzRGQUd2QixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO29CQUNqQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBET0NVTUVOVCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBRaXVzVGVtcGxhdGUsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ0BxaXVzLnNvbHV0aW9ucy9wYXJhbGxlbC11aS1hbmd1bGFyL2FwaSc7XG5pbXBvcnQgeyBEb21IYW5kbGVyIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvZG9tJztcbmltcG9ydCB7IFNwaW5uZXJJY29uIH0gZnJvbSAnQHFpdXMuc29sdXRpb25zL3BhcmFsbGVsLXVpLWFuZ3VsYXIvaWNvbnMvc3Bpbm5lcic7XG5cbmV4cG9ydCB0eXBlIFNjcm9sbGVyVG9UeXBlID0gJ3RvLXN0YXJ0JyB8ICd0by1lbmQnIHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgdHlwZSBTY3JvbGxlck9yaWVudGF0aW9uVHlwZSA9ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCcgfCAnYm90aCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsZXJPcHRpb25zIHtcbiAgICBpZD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBzdHlsZT86IGFueTtcbiAgICBzdHlsZUNsYXNzPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHRhYmluZGV4PzogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGl0ZW1zPzogYW55W107XG4gICAgaXRlbVNpemU/OiBhbnk7XG4gICAgc2Nyb2xsSGVpZ2h0Pzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHNjcm9sbFdpZHRoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIG9yaWVudGF0aW9uPzogU2Nyb2xsZXJPcmllbnRhdGlvblR5cGU7XG4gICAgc3RlcD86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBkZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICByZXNpemVEZWxheT86IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBhcHBlbmRPbmx5PzogYm9vbGVhbjtcbiAgICBpbmxpbmU/OiBib29sZWFuO1xuICAgIGxhenk/OiBib29sZWFuO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBsb2FkZXJEaXNhYmxlZD86IGJvb2xlYW47XG4gICAgY29sdW1ucz86IGFueVtdIHwgdW5kZWZpbmVkO1xuICAgIHNob3dTcGFjZXI/OiBib29sZWFuO1xuICAgIHNob3dMb2FkZXI/OiBib29sZWFuO1xuICAgIG51bVRvbGVyYXRlZEl0ZW1zPzogYW55O1xuICAgIGxvYWRpbmc/OiBib29sZWFuO1xuICAgIGF1dG9TaXplPzogYm9vbGVhbjtcbiAgICB0cmFja0J5PzogYW55O1xuICAgIG9uTGF6eUxvYWQ/OiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbiAgICBvblNjcm9sbD86IEZ1bmN0aW9uIHwgdW5kZWZpbmVkO1xuICAgIG9uU2Nyb2xsSW5kZXhDaGFuZ2U/OiBGdW5jdGlvbiB8IHVuZGVmaW5lZDtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwLXNjcm9sbGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIV9kaXNhYmxlZDsgZWxzZSBkaXNhYmxlZENvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICNlbGVtZW50XG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiX2lkXCJcbiAgICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiX3N0eWxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiX3N0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Atc2Nyb2xsZXInOiB0cnVlLCAncC1zY3JvbGxlci1pbmxpbmUnOiBpbmxpbmUsICdwLWJvdGgtc2Nyb2xsJzogYm90aCwgJ3AtaG9yaXpvbnRhbC1zY3JvbGwnOiBob3Jpem9udGFsIH1cIlxuICAgICAgICAgICAgICAgIChzY3JvbGwpPVwib25Db250YWluZXJTY3JvbGwoJGV2ZW50KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZTsgZWxzZSBidWlsZEluQ29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogbG9hZGVkSXRlbXMsIG9wdGlvbnM6IGdldENvbnRlbnRPcHRpb25zKCkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbGRJbkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJwLXNjcm9sbGVyLWNvbnRlbnRcIiBbbmdDbGFzc109XCJ7ICdwLXNjcm9sbGVyLWxvYWRpbmcnOiBkX2xvYWRpbmcgfVwiIFtuZ1N0eWxlXT1cImNvbnRlbnRTdHlsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZWRJdGVtczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IF90cmFja0J5IHx8IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0sIG9wdGlvbnM6IGdldE9wdGlvbnMoaW5kZXgpIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJfc2hvd1NwYWNlclwiIGNsYXNzPVwicC1zY3JvbGxlci1zcGFjZXJcIiBbbmdTdHlsZV09XCJzcGFjZXJTdHlsZVwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGVyRGlzYWJsZWQgJiYgX3Nob3dMb2FkZXIgJiYgZF9sb2FkaW5nXCIgY2xhc3M9XCJwLXNjcm9sbGVyLWxvYWRlclwiIFtuZ0NsYXNzXT1cInsgJ3AtY29tcG9uZW50LW92ZXJsYXknOiAhbG9hZGVyVGVtcGxhdGUgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVyVGVtcGxhdGU7IGVsc2UgYnVpbGRJbkxvYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZXJBcnI7IGxldCBpbmRleCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7IG9wdGlvbnM6IGdldExvYWRlck9wdGlvbnMoaW5kZXgsIGJvdGggJiYgeyBudW1Db2xzOiBfbnVtSXRlbXNJblZpZXdwb3J0LmNvbHMgfSkgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2J1aWxkSW5Mb2FkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVySWNvblRlbXBsYXRlOyBlbHNlIGJ1aWxkSW5Mb2FkZXJJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRlckljb25UZW1wbGF0ZTsgY29udGV4dDogeyBvcHRpb25zOiB7IHN0eWxlQ2xhc3M6ICdwLXNjcm9sbGVyLWxvYWRpbmctaWNvbicgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYnVpbGRJbkxvYWRlckljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNwaW5uZXJJY29uIFtzdHlsZUNsYXNzXT1cIidwLXNjcm9sbGVyLWxvYWRpbmctaWNvbidcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Rpc2FibGVkQ29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRlbnRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtcywgb3B0aW9uczogeyByb3dzOiBfaXRlbXMsIGNvbHVtbnM6IGxvYWRlZENvbHVtbnMgfSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0eWxlVXJsczogWycuL3Njcm9sbGVyLmNzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdwLXNjcm9sbGVyLXZpZXdwb3J0IHAtZWxlbWVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGVyIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGdldCBpZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lkO1xuICAgIH1cbiAgICBzZXQgaWQodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faWQgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3R5bGU7XG4gICAgfVxuICAgIHNldCBzdHlsZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl9zdHlsZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc3R5bGVDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlQ2xhc3M7XG4gICAgfVxuICAgIHNldCBzdHlsZUNsYXNzKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlQ2xhc3MgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHRhYmluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiaW5kZXg7XG4gICAgfVxuICAgIHNldCB0YWJpbmRleCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl90YWJpbmRleCA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgaXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICB9XG4gICAgc2V0IGl0ZW1zKHZhbDogYW55W10pIHtcbiAgICAgICAgdGhpcy5faXRlbXMgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IGl0ZW1TaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbVNpemU7XG4gICAgfVxuICAgIHNldCBpdGVtU2l6ZSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl9pdGVtU2l6ZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc2Nyb2xsSGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2Nyb2xsSGVpZ2h0O1xuICAgIH1cbiAgICBzZXQgc2Nyb2xsSGVpZ2h0KHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbEhlaWdodCA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgc2Nyb2xsV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxXaWR0aDtcbiAgICB9XG4gICAgc2V0IHNjcm9sbFdpZHRoKHZhbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbFdpZHRoID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBvcmllbnRhdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uO1xuICAgIH1cbiAgICBzZXQgb3JpZW50YXRpb24odmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fb3JpZW50YXRpb24gPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHN0ZXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwO1xuICAgIH1cbiAgICBzZXQgc3RlcCh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9zdGVwID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBkZWxheSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGF5O1xuICAgIH1cbiAgICBzZXQgZGVsYXkodmFsOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fZGVsYXkgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHJlc2l6ZURlbGF5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzaXplRGVsYXk7XG4gICAgfVxuICAgIHNldCByZXNpemVEZWxheSh2YWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9yZXNpemVEZWxheSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgYXBwZW5kT25seSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZE9ubHk7XG4gICAgfVxuICAgIHNldCBhcHBlbmRPbmx5KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9hcHBlbmRPbmx5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBpbmxpbmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmU7XG4gICAgfVxuICAgIHNldCBpbmxpbmUodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lubGluZSA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgbGF6eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhenk7XG4gICAgfVxuICAgIHNldCBsYXp5KHZhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9sYXp5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBsb2FkZXJEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvYWRlckRpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgbG9hZGVyRGlzYWJsZWQodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRlckRpc2FibGVkID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBjb2x1bW5zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgICB9XG4gICAgc2V0IGNvbHVtbnModmFsOiBhbnlbXSkge1xuICAgICAgICB0aGlzLl9jb2x1bW5zID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBzaG93U3BhY2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd1NwYWNlcjtcbiAgICB9XG4gICAgc2V0IHNob3dTcGFjZXIodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Nob3dTcGFjZXIgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHNob3dMb2FkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93TG9hZGVyO1xuICAgIH1cbiAgICBzZXQgc2hvd0xvYWRlcih2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2hvd0xvYWRlciA9IHZhbDtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBnZXQgbnVtVG9sZXJhdGVkSXRlbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1Ub2xlcmF0ZWRJdGVtcztcbiAgICB9XG4gICAgc2V0IG51bVRvbGVyYXRlZEl0ZW1zKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bVRvbGVyYXRlZEl0ZW1zID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBsb2FkaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9hZGluZztcbiAgICB9XG4gICAgc2V0IGxvYWRpbmcodmFsOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IGF1dG9TaXplKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b1NpemU7XG4gICAgfVxuICAgIHNldCBhdXRvU2l6ZSh2YWw6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fYXV0b1NpemUgPSB2YWw7XG4gICAgfVxuXG4gICAgQElucHV0KCkgZ2V0IHRyYWNrQnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90cmFja0J5O1xuICAgIH1cbiAgICBzZXQgdHJhY2tCeSh2YWw6IGFueSkge1xuICAgICAgICB0aGlzLl90cmFja0J5ID0gdmFsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGdldCBvcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG4gICAgc2V0IG9wdGlvbnModmFsOiBTY3JvbGxlck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbDtcblxuICAgICAgICBpZiAodmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh2YWwpLmZvckVhY2goKFtrLCB2XSkgPT4gdGhpc1tgXyR7a31gXSAhPT0gdiAmJiAodGhpc1tgXyR7a31gXSA9IHYpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ2VsZW1lbnQnKSBlbGVtZW50Vmlld0NoaWxkOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcpIGNvbnRlbnRWaWV3Q2hpbGQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFFpdXNUZW1wbGF0ZSkgdGVtcGxhdGVzOiBRdWVyeUxpc3Q8YW55PjtcblxuICAgIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBvblNjcm9sbDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCkgb25TY3JvbGxJbmRleENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBfaWQ6IHN0cmluZztcblxuICAgIF9zdHlsZTogYW55O1xuXG4gICAgX3N0eWxlQ2xhc3M6IHN0cmluZztcblxuICAgIF90YWJpbmRleDogbnVtYmVyID0gMDtcblxuICAgIF9pdGVtczogYW55W107XG5cbiAgICBfaXRlbVNpemU6IGFueSA9IDA7XG5cbiAgICBfc2Nyb2xsSGVpZ2h0OiBzdHJpbmc7XG5cbiAgICBfc2Nyb2xsV2lkdGg6IHN0cmluZztcblxuICAgIF9vcmllbnRhdGlvbjogc3RyaW5nID0gJ3ZlcnRpY2FsJztcblxuICAgIF9zdGVwOiBudW1iZXIgPSAwO1xuXG4gICAgX2RlbGF5OiBudW1iZXIgPSAwO1xuXG4gICAgX3Jlc2l6ZURlbGF5OiBudW1iZXIgPSAxMDtcblxuICAgIF9hcHBlbmRPbmx5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfaW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbG9hZGVyRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIF9jb2x1bW5zOiBhbnlbXTtcblxuICAgIF9zaG93U3BhY2VyOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIF9zaG93TG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfbnVtVG9sZXJhdGVkSXRlbXM6IGFueTtcblxuICAgIF9sb2FkaW5nOiBib29sZWFuO1xuXG4gICAgX2F1dG9TaXplOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBfdHJhY2tCeTogYW55O1xuXG4gICAgX29wdGlvbnM6IFNjcm9sbGVyT3B0aW9ucztcblxuICAgIGRfbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZF9udW1Ub2xlcmF0ZWRJdGVtczogYW55O1xuXG4gICAgY29udGVudEVsOiBhbnk7XG5cbiAgICBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBsb2FkZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGxvYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGZpcnN0OiBhbnkgPSAwO1xuXG4gICAgbGFzdDogYW55ID0gMDtcblxuICAgIHBhZ2U6IG51bWJlciA9IDA7XG5cbiAgICBpc1JhbmdlQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgbnVtSXRlbXNJblZpZXdwb3J0OiBhbnkgPSAwO1xuXG4gICAgbGFzdFNjcm9sbFBvczogYW55ID0gMDtcblxuICAgIGxhenlMb2FkU3RhdGU6IGFueSA9IHt9O1xuXG4gICAgbG9hZGVyQXJyOiBhbnlbXSA9IFtdO1xuXG4gICAgc3BhY2VyU3R5bGU6IGFueSA9IHt9O1xuXG4gICAgY29udGVudFN0eWxlOiBhbnkgPSB7fTtcblxuICAgIHNjcm9sbFRpbWVvdXQ6IGFueTtcblxuICAgIHJlc2l6ZVRpbWVvdXQ6IGFueTtcblxuICAgIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICB3aW5kb3dSZXNpemVMaXN0ZW5lcjogVm9pZEZ1bmN0aW9uIHwgbnVsbDtcblxuICAgIGRlZmF1bHRXaWR0aDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdEhlaWdodDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdENvbnRlbnRXaWR0aDogbnVtYmVyO1xuXG4gICAgZGVmYXVsdENvbnRlbnRIZWlnaHQ6IG51bWJlcjtcblxuICAgIGdldCB2ZXJ0aWNhbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uID09PSAndmVydGljYWwnO1xuICAgIH1cblxuICAgIGdldCBob3Jpem9udGFsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJztcbiAgICB9XG5cbiAgICBnZXQgYm90aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29yaWVudGF0aW9uID09PSAnYm90aCc7XG4gICAgfVxuXG4gICAgZ2V0IGxvYWRlZEl0ZW1zKCkge1xuICAgICAgICBpZiAodGhpcy5faXRlbXMgJiYgIXRoaXMuZF9sb2FkaW5nKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSByZXR1cm4gdGhpcy5faXRlbXMuc2xpY2UodGhpcy5fYXBwZW5kT25seSA/IDAgOiB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzKS5tYXAoKGl0ZW0pID0+ICh0aGlzLl9jb2x1bW5zID8gaXRlbSA6IGl0ZW0uc2xpY2UodGhpcy5fYXBwZW5kT25seSA/IDAgOiB0aGlzLmZpcnN0LmNvbHMsIHRoaXMubGFzdC5jb2xzKSkpO1xuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy5ob3Jpem9udGFsICYmIHRoaXMuX2NvbHVtbnMpIHJldHVybiB0aGlzLl9pdGVtcztcbiAgICAgICAgICAgIGVsc2UgcmV0dXJuIHRoaXMuX2l0ZW1zLnNsaWNlKHRoaXMuX2FwcGVuZE9ubHkgPyAwIDogdGhpcy5maXJzdCwgdGhpcy5sYXN0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBnZXQgbG9hZGVkUm93cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZF9sb2FkaW5nID8gKHRoaXMuX2xvYWRlckRpc2FibGVkID8gdGhpcy5sb2FkZXJBcnIgOiBbXSkgOiB0aGlzLmxvYWRlZEl0ZW1zO1xuICAgIH1cblxuICAgIGdldCBsb2FkZWRDb2x1bW5zKCkge1xuICAgICAgICBpZiAodGhpcy5fY29sdW1ucyAmJiAodGhpcy5ib3RoIHx8IHRoaXMuaG9yaXpvbnRhbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRfbG9hZGluZyAmJiB0aGlzLl9sb2FkZXJEaXNhYmxlZCA/ICh0aGlzLmJvdGggPyB0aGlzLmxvYWRlckFyclswXSA6IHRoaXMubG9hZGVyQXJyKSA6IHRoaXMuX2NvbHVtbnMuc2xpY2UodGhpcy5ib3RoID8gdGhpcy5maXJzdC5jb2xzIDogdGhpcy5maXJzdCwgdGhpcy5ib3RoID8gdGhpcy5sYXN0LmNvbHMgOiB0aGlzLmxhc3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gICAgfVxuXG4gICAgZ2V0IGlzUGFnZUNoYW5nZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwID8gdGhpcy5wYWdlICE9PSB0aGlzLmdldFBhZ2VCeUZpcnN0KCkgOiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LCBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IGFueSwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSB6b25lOiBOZ1pvbmUpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRJbml0aWFsU3RhdGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhzaW1wbGVDaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGxldCBpc0xvYWRpbmdDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMubG9hZGluZykge1xuICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUgfSA9IHNpbXBsZUNoYW5nZXMubG9hZGluZztcblxuICAgICAgICAgICAgaWYgKHRoaXMubGF6eSAmJiBwcmV2aW91c1ZhbHVlICE9PSBjdXJyZW50VmFsdWUgJiYgY3VycmVudFZhbHVlICE9PSB0aGlzLmRfbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgICAgIGlzTG9hZGluZ0NoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMub3JpZW50YXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubGFzdFNjcm9sbFBvcyA9IHRoaXMuYm90aCA/IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMubnVtVG9sZXJhdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlIH0gPSBzaW1wbGVDaGFuZ2VzLm51bVRvbGVyYXRlZEl0ZW1zO1xuXG4gICAgICAgICAgICBpZiAocHJldmlvdXNWYWx1ZSAhPT0gY3VycmVudFZhbHVlICYmIGN1cnJlbnRWYWx1ZSAhPT0gdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMub3B0aW9ucykge1xuICAgICAgICAgICAgY29uc3QgeyBwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWUgfSA9IHNpbXBsZUNoYW5nZXMub3B0aW9ucztcblxuICAgICAgICAgICAgaWYgKHRoaXMubGF6eSAmJiBwcmV2aW91c1ZhbHVlPy5sb2FkaW5nICE9PSBjdXJyZW50VmFsdWU/LmxvYWRpbmcgJiYgY3VycmVudFZhbHVlPy5sb2FkaW5nICE9PSB0aGlzLmRfbG9hZGluZykge1xuICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gY3VycmVudFZhbHVlLmxvYWRpbmc7XG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c1ZhbHVlPy5udW1Ub2xlcmF0ZWRJdGVtcyAhPT0gY3VycmVudFZhbHVlPy5udW1Ub2xlcmF0ZWRJdGVtcyAmJiBjdXJyZW50VmFsdWU/Lm51bVRvbGVyYXRlZEl0ZW1zICE9PSB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgPSBjdXJyZW50VmFsdWUubnVtVG9sZXJhdGVkSXRlbXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgY29uc3QgaXNDaGFuZ2VkID0gIWlzTG9hZGluZ0NoYW5nZWQgJiYgKHNpbXBsZUNoYW5nZXMuaXRlbXM/LnByZXZpb3VzVmFsdWU/Lmxlbmd0aCAhPT0gc2ltcGxlQ2hhbmdlcy5pdGVtcz8uY3VycmVudFZhbHVlPy5sZW5ndGggfHwgc2ltcGxlQ2hhbmdlcy5pdGVtU2l6ZSB8fCBzaW1wbGVDaGFuZ2VzLnNjcm9sbEhlaWdodCB8fCBzaW1wbGVDaGFuZ2VzLnNjcm9sbFdpZHRoKTtcblxuICAgICAgICAgICAgaWYgKGlzQ2hhbmdlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQXV0b1NpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChpdGVtLmdldFR5cGUoKSkge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRlbnQnOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRUZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgY2FzZSAnaXRlbSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdsb2FkZXInOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRlclRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdsb2FkZXJpY29uJzpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkZXJJY29uVGVtcGxhdGUgPSBpdGVtLnRlbXBsYXRlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0KCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdJbml0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy51bmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuXG4gICAgICAgIHRoaXMuY29udGVudEVsID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIHZpZXdJbml0KCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKERvbUhhbmRsZXIuaXNWaXNpYmxlKHRoaXMuZWxlbWVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEluaXRpYWxTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29udGVudEVsKHRoaXMuY29udGVudEVsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdFdpZHRoID0gRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGVpZ2h0ID0gRG9tSGFuZGxlci5nZXRIZWlnaHQodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRlbnRXaWR0aCA9IERvbUhhbmRsZXIuZ2V0V2lkdGgodGhpcy5jb250ZW50RWwpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRlbnRIZWlnaHQgPSBEb21IYW5kbGVyLmdldEhlaWdodCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldFNpemUoKTtcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlT3B0aW9ucygpO1xuICAgICAgICAgICAgdGhpcy5zZXRTcGFjZXJTaXplKCk7XG4gICAgICAgICAgICB0aGlzLmJpbmRSZXNpemVMaXN0ZW5lcigpO1xuXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldENvbnRlbnRFbChlbD86IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuY29udGVudEVsID0gZWwgfHwgdGhpcy5jb250ZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50IHx8IERvbUhhbmRsZXIuZmluZFNpbmdsZSh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQsICcucC1zY3JvbGxlci1jb250ZW50Jyk7XG4gICAgfVxuXG4gICAgc2V0SW5pdGlhbFN0YXRlKCkge1xuICAgICAgICB0aGlzLmZpcnN0ID0gdGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmxhc3QgPSB0aGlzLmJvdGggPyB7IHJvd3M6IDAsIGNvbHM6IDAgfSA6IDA7XG4gICAgICAgIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0ID0gdGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmxhc3RTY3JvbGxQb3MgPSB0aGlzLmJvdGggPyB7IHRvcDogMCwgbGVmdDogMCB9IDogMDtcbiAgICAgICAgdGhpcy5kX2xvYWRpbmcgPSB0aGlzLl9sb2FkaW5nIHx8IGZhbHNlO1xuICAgICAgICB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgPSB0aGlzLl9udW1Ub2xlcmF0ZWRJdGVtcztcbiAgICAgICAgdGhpcy5sb2FkZXJBcnIgPSBbXTtcbiAgICAgICAgdGhpcy5zcGFjZXJTdHlsZSA9IHt9O1xuICAgICAgICB0aGlzLmNvbnRlbnRTdHlsZSA9IHt9O1xuICAgIH1cblxuICAgIGdldEVsZW1lbnRSZWYoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ7XG4gICAgfVxuXG4gICAgZ2V0UGFnZUJ5Rmlyc3QoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKCh0aGlzLmZpcnN0ICsgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zICogNCkgLyAodGhpcy5fc3RlcCB8fCAxKSk7XG4gICAgfVxuXG4gICAgc2Nyb2xsVG8ob3B0aW9uczogU2Nyb2xsVG9PcHRpb25zKSB7XG4gICAgICAgIHRoaXMubGFzdFNjcm9sbFBvcyA9IHRoaXMuYm90aCA/IHsgdG9wOiAwLCBsZWZ0OiAwIH0gOiAwO1xuICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQ/LnNjcm9sbFRvKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlciwgYmVoYXZpb3I6IFNjcm9sbEJlaGF2aW9yID0gJ2F1dG8nKSB7XG4gICAgICAgIGNvbnN0IHsgbnVtVG9sZXJhdGVkSXRlbXMgfSA9IHRoaXMuY2FsY3VsYXRlTnVtSXRlbXMoKTtcbiAgICAgICAgY29uc3QgY29udGVudFBvcyA9IHRoaXMuZ2V0Q29udGVudFBvc2l0aW9uKCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUZpcnN0ID0gKF9pbmRleCA9IDAsIF9udW1UKSA9PiAoX2luZGV4IDw9IF9udW1UID8gMCA6IF9pbmRleCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUNvb3JkID0gKF9maXJzdCwgX3NpemUsIF9jcG9zKSA9PiBfZmlyc3QgKiBfc2l6ZSArIF9jcG9zO1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IChsZWZ0ID0gMCwgdG9wID0gMCkgPT4gdGhpcy5zY3JvbGxUbyh7IGxlZnQsIHRvcCwgYmVoYXZpb3IgfSk7XG4gICAgICAgIGxldCBuZXdGaXJzdDogYW55ID0gMDtcblxuICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICBuZXdGaXJzdCA9IHsgcm93czogY2FsY3VsYXRlRmlyc3QoaW5kZXhbMF0sIG51bVRvbGVyYXRlZEl0ZW1zWzBdKSwgY29sczogY2FsY3VsYXRlRmlyc3QoaW5kZXhbMV0sIG51bVRvbGVyYXRlZEl0ZW1zWzFdKSB9O1xuICAgICAgICAgICAgc2Nyb2xsVG8oY2FsY3VsYXRlQ29vcmQobmV3Rmlyc3QuY29scywgdGhpcy5faXRlbVNpemVbMV0sIGNvbnRlbnRQb3MubGVmdCksIGNhbGN1bGF0ZUNvb3JkKG5ld0ZpcnN0LnJvd3MsIHRoaXMuX2l0ZW1TaXplWzBdLCBjb250ZW50UG9zLnRvcCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV3Rmlyc3QgPSBjYWxjdWxhdGVGaXJzdChpbmRleCwgbnVtVG9sZXJhdGVkSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsID8gc2Nyb2xsVG8oY2FsY3VsYXRlQ29vcmQobmV3Rmlyc3QsIHRoaXMuX2l0ZW1TaXplLCBjb250ZW50UG9zLmxlZnQpLCAwKSA6IHNjcm9sbFRvKDAsIGNhbGN1bGF0ZUNvb3JkKG5ld0ZpcnN0LCB0aGlzLl9pdGVtU2l6ZSwgY29udGVudFBvcy50b3ApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXNSYW5nZUNoYW5nZWQgPSB0aGlzLmZpcnN0ICE9PSBuZXdGaXJzdDtcbiAgICAgICAgdGhpcy5maXJzdCA9IG5ld0ZpcnN0O1xuICAgIH1cblxuICAgIHNjcm9sbEluVmlldyhpbmRleDogbnVtYmVyLCB0bzogU2Nyb2xsZXJUb1R5cGUsIGJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdhdXRvJykge1xuICAgICAgICBpZiAodG8pIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmlyc3QsIHZpZXdwb3J0IH0gPSB0aGlzLmdldFJlbmRlcmVkUmFuZ2UoKTtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvID0gKGxlZnQgPSAwLCB0b3AgPSAwKSA9PiB0aGlzLnNjcm9sbFRvKHsgbGVmdCwgdG9wLCBiZWhhdmlvciB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzVG9TdGFydCA9IHRvID09PSAndG8tc3RhcnQnO1xuICAgICAgICAgICAgY29uc3QgaXNUb0VuZCA9IHRvID09PSAndG8tZW5kJztcblxuICAgICAgICAgICAgaWYgKGlzVG9TdGFydCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJvdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0LmZpcnN0LnJvd3MgLSBmaXJzdC5yb3dzID4gaW5kZXhbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvKHZpZXdwb3J0LmZpcnN0LmNvbHMgKiB0aGlzLl9pdGVtU2l6ZVsxXSwgKHZpZXdwb3J0LmZpcnN0LnJvd3MgLSAxKSAqIHRoaXMuX2l0ZW1TaXplWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh2aWV3cG9ydC5maXJzdC5jb2xzIC0gZmlyc3QuY29scyA+IGluZGV4WzFdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbygodmlld3BvcnQuZmlyc3QuY29scyAtIDEpICogdGhpcy5faXRlbVNpemVbMV0sIHZpZXdwb3J0LmZpcnN0LnJvd3MgKiB0aGlzLl9pdGVtU2l6ZVswXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQuZmlyc3QgLSBmaXJzdCA+IGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3MgPSAodmlld3BvcnQuZmlyc3QgLSAxKSAqIHRoaXMuX2l0ZW1TaXplO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ob3Jpem9udGFsID8gc2Nyb2xsVG8ocG9zLCAwKSA6IHNjcm9sbFRvKDAsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzVG9FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2aWV3cG9ydC5sYXN0LnJvd3MgLSBmaXJzdC5yb3dzIDw9IGluZGV4WzBdICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG8odmlld3BvcnQuZmlyc3QuY29scyAqIHRoaXMuX2l0ZW1TaXplWzFdLCAodmlld3BvcnQuZmlyc3Qucm93cyArIDEpICogdGhpcy5faXRlbVNpemVbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpZXdwb3J0Lmxhc3QuY29scyAtIGZpcnN0LmNvbHMgPD0gaW5kZXhbMV0gKyAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUbygodmlld3BvcnQuZmlyc3QuY29scyArIDEpICogdGhpcy5faXRlbVNpemVbMV0sIHZpZXdwb3J0LmZpcnN0LnJvd3MgKiB0aGlzLl9pdGVtU2l6ZVswXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQubGFzdCAtIGZpcnN0IDw9IGluZGV4ICsgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zID0gKHZpZXdwb3J0LmZpcnN0ICsgMSkgKiB0aGlzLl9pdGVtU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbCA/IHNjcm9sbFRvKHBvcywgMCkgOiBzY3JvbGxUbygwLCBwb3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0luZGV4KGluZGV4LCBiZWhhdmlvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSZW5kZXJlZFJhbmdlKCkge1xuICAgICAgICBjb25zdCBjYWxjdWxhdGVGaXJzdEluVmlld3BvcnQgPSAoX3BvcywgX3NpemUpID0+IE1hdGguZmxvb3IoX3BvcyAvIChfc2l6ZSB8fCBfcG9zKSk7XG5cbiAgICAgICAgbGV0IGZpcnN0SW5WaWV3cG9ydCA9IHRoaXMuZmlyc3Q7XG4gICAgICAgIGxldCBsYXN0SW5WaWV3cG9ydDogYW55ID0gMDtcblxuICAgICAgICBpZiAodGhpcy5lbGVtZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgc2Nyb2xsTGVmdCB9ID0gdGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmJvdGgpIHtcbiAgICAgICAgICAgICAgICBmaXJzdEluVmlld3BvcnQgPSB7IHJvd3M6IGNhbGN1bGF0ZUZpcnN0SW5WaWV3cG9ydChzY3JvbGxUb3AsIHRoaXMuX2l0ZW1TaXplWzBdKSwgY29sczogY2FsY3VsYXRlRmlyc3RJblZpZXdwb3J0KHNjcm9sbExlZnQsIHRoaXMuX2l0ZW1TaXplWzFdKSB9O1xuICAgICAgICAgICAgICAgIGxhc3RJblZpZXdwb3J0ID0geyByb3dzOiBmaXJzdEluVmlld3BvcnQucm93cyArIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LnJvd3MsIGNvbHM6IGZpcnN0SW5WaWV3cG9ydC5jb2xzICsgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scyB9O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSB0aGlzLmhvcml6b250YWwgPyBzY3JvbGxMZWZ0IDogc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgIGZpcnN0SW5WaWV3cG9ydCA9IGNhbGN1bGF0ZUZpcnN0SW5WaWV3cG9ydChzY3JvbGxQb3MsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICBsYXN0SW5WaWV3cG9ydCA9IGZpcnN0SW5WaWV3cG9ydCArIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0LFxuICAgICAgICAgICAgbGFzdDogdGhpcy5sYXN0LFxuICAgICAgICAgICAgdmlld3BvcnQ6IHtcbiAgICAgICAgICAgICAgICBmaXJzdDogZmlyc3RJblZpZXdwb3J0LFxuICAgICAgICAgICAgICAgIGxhc3Q6IGxhc3RJblZpZXdwb3J0XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlTnVtSXRlbXMoKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRQb3MgPSB0aGlzLmdldENvbnRlbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBjb250ZW50V2lkdGggPSB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQgPyB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAtIGNvbnRlbnRQb3MubGVmdCA6IDA7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRIZWlnaHQgPSB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQgPyB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgLSBjb250ZW50UG9zLnRvcCA6IDA7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydCA9IChfY29udGVudFNpemUsIF9pdGVtU2l6ZSkgPT4gTWF0aC5jZWlsKF9jb250ZW50U2l6ZSAvIChfaXRlbVNpemUgfHwgX2NvbnRlbnRTaXplKSk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZU51bVRvbGVyYXRlZEl0ZW1zID0gKF9udW1JdGVtcykgPT4gTWF0aC5jZWlsKF9udW1JdGVtcyAvIDIpO1xuICAgICAgICBjb25zdCBudW1JdGVtc0luVmlld3BvcnQ6IGFueSA9IHRoaXMuYm90aFxuICAgICAgICAgICAgPyB7IHJvd3M6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydChjb250ZW50SGVpZ2h0LCB0aGlzLl9pdGVtU2l6ZVswXSksIGNvbHM6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydChjb250ZW50V2lkdGgsIHRoaXMuX2l0ZW1TaXplWzFdKSB9XG4gICAgICAgICAgICA6IGNhbGN1bGF0ZU51bUl0ZW1zSW5WaWV3cG9ydCh0aGlzLmhvcml6b250YWwgPyBjb250ZW50V2lkdGggOiBjb250ZW50SGVpZ2h0LCB0aGlzLl9pdGVtU2l6ZSk7XG5cbiAgICAgICAgY29uc3QgbnVtVG9sZXJhdGVkSXRlbXMgPSB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMgfHwgKHRoaXMuYm90aCA/IFtjYWxjdWxhdGVOdW1Ub2xlcmF0ZWRJdGVtcyhudW1JdGVtc0luVmlld3BvcnQucm93cyksIGNhbGN1bGF0ZU51bVRvbGVyYXRlZEl0ZW1zKG51bUl0ZW1zSW5WaWV3cG9ydC5jb2xzKV0gOiBjYWxjdWxhdGVOdW1Ub2xlcmF0ZWRJdGVtcyhudW1JdGVtc0luVmlld3BvcnQpKTtcblxuICAgICAgICByZXR1cm4geyBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgeyBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zIH0gPSB0aGlzLmNhbGN1bGF0ZU51bUl0ZW1zKCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUxhc3QgPSAoX2ZpcnN0LCBfbnVtLCBfbnVtVCwgX2lzQ29scyA9IGZhbHNlKSA9PiB0aGlzLmdldExhc3QoX2ZpcnN0ICsgX251bSArIChfZmlyc3QgPCBfbnVtVCA/IDIgOiAzKSAqIF9udW1ULCBfaXNDb2xzKTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSB0aGlzLmZpcnN0O1xuICAgICAgICBjb25zdCBsYXN0ID0gdGhpcy5ib3RoXG4gICAgICAgICAgICA/IHsgcm93czogY2FsY3VsYXRlTGFzdCh0aGlzLmZpcnN0LnJvd3MsIG51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCBudW1Ub2xlcmF0ZWRJdGVtc1swXSksIGNvbHM6IGNhbGN1bGF0ZUxhc3QodGhpcy5maXJzdC5jb2xzLCBudW1JdGVtc0luVmlld3BvcnQuY29scywgbnVtVG9sZXJhdGVkSXRlbXNbMV0sIHRydWUpIH1cbiAgICAgICAgICAgIDogY2FsY3VsYXRlTGFzdCh0aGlzLmZpcnN0LCBudW1JdGVtc0luVmlld3BvcnQsIG51bVRvbGVyYXRlZEl0ZW1zKTtcblxuICAgICAgICB0aGlzLmxhc3QgPSBsYXN0O1xuICAgICAgICB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydCA9IG51bUl0ZW1zSW5WaWV3cG9ydDtcbiAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gbnVtVG9sZXJhdGVkSXRlbXM7XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd0xvYWRlcikge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJBcnIgPSB0aGlzLmJvdGggPyBBcnJheS5mcm9tKHsgbGVuZ3RoOiBudW1JdGVtc0luVmlld3BvcnQucm93cyB9KS5tYXAoKCkgPT4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtSXRlbXNJblZpZXdwb3J0LmNvbHMgfSkpIDogQXJyYXkuZnJvbSh7IGxlbmd0aDogbnVtSXRlbXNJblZpZXdwb3J0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2xhenkpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGF6eUxvYWRTdGF0ZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmlyc3Q6IHRoaXMuX3N0ZXAgPyAodGhpcy5ib3RoID8geyByb3dzOiAwLCBjb2xzOiBmaXJzdC5jb2xzIH0gOiAwKSA6IGZpcnN0LFxuICAgICAgICAgICAgICAgICAgICBsYXN0OiBNYXRoLm1pbih0aGlzLl9zdGVwID8gdGhpcy5fc3RlcCA6IHRoaXMubGFzdCwgdGhpcy5pdGVtcy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvbkxhenlMb2FkJywgdGhpcy5sYXp5TG9hZFN0YXRlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlQXV0b1NpemUoKSB7XG4gICAgICAgIGlmICh0aGlzLl9hdXRvU2l6ZSAmJiAhdGhpcy5kX2xvYWRpbmcpIHtcbiAgICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRlbnRFbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5IZWlnaHQgPSB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5XaWR0aCA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50RWwuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zdHlsZS5jb250YWluID0gJ25vbmUnO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtjb250ZW50V2lkdGgsIGNvbnRlbnRIZWlnaHRdID0gW0RvbUhhbmRsZXIuZ2V0V2lkdGgodGhpcy5jb250ZW50RWwpLCBEb21IYW5kbGVyLmdldEhlaWdodCh0aGlzLmNvbnRlbnRFbCldO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50V2lkdGggIT09IHRoaXMuZGVmYXVsdENvbnRlbnRXaWR0aCAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSAnJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnRIZWlnaHQgIT09IHRoaXMuZGVmYXVsdENvbnRlbnRIZWlnaHQgJiYgKHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICcnKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBbd2lkdGgsIGhlaWdodF0gPSBbRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCksIERvbUhhbmRsZXIuZ2V0SGVpZ2h0KHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KV07XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmJvdGggfHwgdGhpcy5ob3Jpem9udGFsKSAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aWR0aCA8IHRoaXMuZGVmYXVsdFdpZHRoID8gd2lkdGggKyAncHgnIDogdGhpcy5fc2Nyb2xsV2lkdGggfHwgdGhpcy5kZWZhdWx0V2lkdGggKyAncHgnKTtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuYm90aCB8fCB0aGlzLnZlcnRpY2FsKSAmJiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0IDwgdGhpcy5kZWZhdWx0SGVpZ2h0ID8gaGVpZ2h0ICsgJ3B4JyA6IHRoaXMuX3Njcm9sbEhlaWdodCB8fCB0aGlzLmRlZmF1bHRIZWlnaHQgKyAncHgnKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5IZWlnaHQgPSB0aGlzLmNvbnRlbnRFbC5zdHlsZS5taW5XaWR0aCA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRFbC5zdHlsZS5wb3NpdGlvbiA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5zdHlsZS5jb250YWluID0gJyc7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRMYXN0KGxhc3QgPSAwLCBpc0NvbHMgPSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXMgPyBNYXRoLm1pbihpc0NvbHMgPyAodGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtc1swXSkubGVuZ3RoIDogdGhpcy5faXRlbXMubGVuZ3RoLCBsYXN0KSA6IDA7XG4gICAgfVxuXG4gICAgZ2V0Q29udGVudFBvc2l0aW9uKCkge1xuICAgICAgICBpZiAodGhpcy5jb250ZW50RWwpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0eWxlID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICBjb25zdCBsZWZ0ID0gcGFyc2VGbG9hdChzdHlsZS5wYWRkaW5nTGVmdCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLmxlZnQpIHx8IDAsIDApO1xuICAgICAgICAgICAgY29uc3QgcmlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdSaWdodCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLnJpZ2h0KSB8fCAwLCAwKTtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IHBhcnNlRmxvYXQoc3R5bGUucGFkZGluZ1RvcCkgKyBNYXRoLm1heChwYXJzZUZsb2F0KHN0eWxlLnRvcCkgfHwgMCwgMCk7XG4gICAgICAgICAgICBjb25zdCBib3R0b20gPSBwYXJzZUZsb2F0KHN0eWxlLnBhZGRpbmdCb3R0b20pICsgTWF0aC5tYXgocGFyc2VGbG9hdChzdHlsZS5ib3R0b20pIHx8IDAsIDApO1xuXG4gICAgICAgICAgICByZXR1cm4geyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sIHg6IGxlZnQgKyByaWdodCwgeTogdG9wICsgYm90dG9tIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4geyBsZWZ0OiAwLCByaWdodDogMCwgdG9wOiAwLCBib3R0b206IDAsIHg6IDAsIHk6IDAgfTtcbiAgICB9XG5cbiAgICBzZXRTaXplKCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLl9zY3JvbGxXaWR0aCB8fCBgJHt0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCB8fCBwYXJlbnRFbGVtZW50Lm9mZnNldFdpZHRofXB4YDtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuX3Njcm9sbEhlaWdodCB8fCBgJHt0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgcGFyZW50RWxlbWVudC5vZmZzZXRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgY29uc3Qgc2V0UHJvcCA9IChfbmFtZSwgX3ZhbHVlKSA9PiAodGhpcy5lbGVtZW50Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuc3R5bGVbX25hbWVdID0gX3ZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuYm90aCB8fCB0aGlzLmhvcml6b250YWwpIHtcbiAgICAgICAgICAgICAgICBzZXRQcm9wKCdoZWlnaHQnLCBoZWlnaHQpO1xuICAgICAgICAgICAgICAgIHNldFByb3AoJ3dpZHRoJywgd2lkdGgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRQcm9wKCdoZWlnaHQnLCBoZWlnaHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0U3BhY2VyU2l6ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBjb250ZW50UG9zID0gdGhpcy5nZXRDb250ZW50UG9zaXRpb24oKTtcbiAgICAgICAgICAgIGNvbnN0IHNldFByb3AgPSAoX25hbWUsIF92YWx1ZSwgX3NpemUsIF9jcG9zID0gMCkgPT4gKHRoaXMuc3BhY2VyU3R5bGUgPSB7IC4uLnRoaXMuc3BhY2VyU3R5bGUsIC4uLnsgW2Ake19uYW1lfWBdOiAoX3ZhbHVlIHx8IFtdKS5sZW5ndGggKiBfc2l6ZSArIF9jcG9zICsgJ3B4JyB9IH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgc2V0UHJvcCgnaGVpZ2h0JywgdGhpcy5faXRlbXMsIHRoaXMuX2l0ZW1TaXplWzBdLCBjb250ZW50UG9zLnkpO1xuICAgICAgICAgICAgICAgIHNldFByb3AoJ3dpZHRoJywgdGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtc1sxXSwgdGhpcy5faXRlbVNpemVbMV0sIGNvbnRlbnRQb3MueCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuaG9yaXpvbnRhbCA/IHNldFByb3AoJ3dpZHRoJywgdGhpcy5fY29sdW1ucyB8fCB0aGlzLl9pdGVtcywgdGhpcy5faXRlbVNpemUsIGNvbnRlbnRQb3MueCkgOiBzZXRQcm9wKCdoZWlnaHQnLCB0aGlzLl9pdGVtcywgdGhpcy5faXRlbVNpemUsIGNvbnRlbnRQb3MueSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRDb250ZW50UG9zaXRpb24ocG9zKSB7XG4gICAgICAgIGlmICh0aGlzLmNvbnRlbnRFbCAmJiAhdGhpcy5fYXBwZW5kT25seSkge1xuICAgICAgICAgICAgY29uc3QgZmlyc3QgPSBwb3MgPyBwb3MuZmlyc3QgOiB0aGlzLmZpcnN0O1xuICAgICAgICAgICAgY29uc3QgY2FsY3VsYXRlVHJhbnNsYXRlVmFsID0gKF9maXJzdCwgX3NpemUpID0+IF9maXJzdCAqIF9zaXplO1xuICAgICAgICAgICAgY29uc3Qgc2V0VHJhbnNmb3JtID0gKF94ID0gMCwgX3kgPSAwKSA9PiAodGhpcy5jb250ZW50U3R5bGUgPSB7IC4uLnRoaXMuY29udGVudFN0eWxlLCAuLi57IHRyYW5zZm9ybTogYHRyYW5zbGF0ZTNkKCR7X3h9cHgsICR7X3l9cHgsIDApYCB9IH0pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICAgICAgc2V0VHJhbnNmb3JtKGNhbGN1bGF0ZVRyYW5zbGF0ZVZhbChmaXJzdC5jb2xzLCB0aGlzLl9pdGVtU2l6ZVsxXSksIGNhbGN1bGF0ZVRyYW5zbGF0ZVZhbChmaXJzdC5yb3dzLCB0aGlzLl9pdGVtU2l6ZVswXSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVWYWwgPSBjYWxjdWxhdGVUcmFuc2xhdGVWYWwoZmlyc3QsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhvcml6b250YWwgPyBzZXRUcmFuc2Zvcm0odHJhbnNsYXRlVmFsLCAwKSA6IHNldFRyYW5zZm9ybSgwLCB0cmFuc2xhdGVWYWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TY3JvbGxQb3NpdGlvbkNoYW5nZShldmVudCkge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRQb3MgPSB0aGlzLmdldENvbnRlbnRQb3NpdGlvbigpO1xuICAgICAgICBjb25zdCBjYWxjdWxhdGVTY3JvbGxQb3MgPSAoX3BvcywgX2Nwb3MpID0+IChfcG9zID8gKF9wb3MgPiBfY3BvcyA/IF9wb3MgLSBfY3BvcyA6IF9wb3MpIDogMCk7XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUN1cnJlbnRJbmRleCA9IChfcG9zLCBfc2l6ZSkgPT4gTWF0aC5mbG9vcihfcG9zIC8gKF9zaXplIHx8IF9wb3MpKTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlVHJpZ2dlckluZGV4ID0gKF9jdXJyZW50SW5kZXgsIF9maXJzdCwgX2xhc3QsIF9udW0sIF9udW1ULCBfaXNTY3JvbGxEb3duT3JSaWdodCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIF9jdXJyZW50SW5kZXggPD0gX251bVQgPyBfbnVtVCA6IF9pc1Njcm9sbERvd25PclJpZ2h0ID8gX2xhc3QgLSBfbnVtIC0gX251bVQgOiBfZmlyc3QgKyBfbnVtVCAtIDE7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGNhbGN1bGF0ZUZpcnN0ID0gKF9jdXJyZW50SW5kZXgsIF90cmlnZ2VySW5kZXgsIF9maXJzdCwgX2xhc3QsIF9udW0sIF9udW1ULCBfaXNTY3JvbGxEb3duT3JSaWdodCkgPT4ge1xuICAgICAgICAgICAgaWYgKF9jdXJyZW50SW5kZXggPD0gX251bVQpIHJldHVybiAwO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gTWF0aC5tYXgoMCwgX2lzU2Nyb2xsRG93bk9yUmlnaHQgPyAoX2N1cnJlbnRJbmRleCA8IF90cmlnZ2VySW5kZXggPyBfZmlyc3QgOiBfY3VycmVudEluZGV4IC0gX251bVQpIDogX2N1cnJlbnRJbmRleCA+IF90cmlnZ2VySW5kZXggPyBfZmlyc3QgOiBfY3VycmVudEluZGV4IC0gMiAqIF9udW1UKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2FsY3VsYXRlTGFzdCA9IChfY3VycmVudEluZGV4LCBfZmlyc3QsIF9sYXN0LCBfbnVtLCBfbnVtVCwgX2lzQ29scyA9IGZhbHNlKSA9PiB7XG4gICAgICAgICAgICBsZXQgbGFzdFZhbHVlID0gX2ZpcnN0ICsgX251bSArIDIgKiBfbnVtVDtcblxuICAgICAgICAgICAgaWYgKF9jdXJyZW50SW5kZXggPj0gX251bVQpIHtcbiAgICAgICAgICAgICAgICBsYXN0VmFsdWUgKz0gX251bVQgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRMYXN0KGxhc3RWYWx1ZSwgX2lzQ29scyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gY2FsY3VsYXRlU2Nyb2xsUG9zKHRhcmdldC5zY3JvbGxUb3AsIGNvbnRlbnRQb3MudG9wKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGNhbGN1bGF0ZVNjcm9sbFBvcyh0YXJnZXQuc2Nyb2xsTGVmdCwgY29udGVudFBvcy5sZWZ0KTtcblxuICAgICAgICBsZXQgbmV3Rmlyc3QgPSB0aGlzLmJvdGggPyB7IHJvd3M6IDAsIGNvbHM6IDAgfSA6IDA7XG4gICAgICAgIGxldCBuZXdMYXN0ID0gdGhpcy5sYXN0O1xuICAgICAgICBsZXQgaXNSYW5nZUNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgbGV0IG5ld1Njcm9sbFBvcyA9IHRoaXMubGFzdFNjcm9sbFBvcztcblxuICAgICAgICBpZiAodGhpcy5ib3RoKSB7XG4gICAgICAgICAgICBjb25zdCBpc1Njcm9sbERvd24gPSB0aGlzLmxhc3RTY3JvbGxQb3MudG9wIDw9IHNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IGlzU2Nyb2xsUmlnaHQgPSB0aGlzLmxhc3RTY3JvbGxQb3MubGVmdCA8PSBzY3JvbGxMZWZ0O1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2FwcGVuZE9ubHkgfHwgKHRoaXMuX2FwcGVuZE9ubHkgJiYgKGlzU2Nyb2xsRG93biB8fCBpc1Njcm9sbFJpZ2h0KSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB7IHJvd3M6IGNhbGN1bGF0ZUN1cnJlbnRJbmRleChzY3JvbGxUb3AsIHRoaXMuX2l0ZW1TaXplWzBdKSwgY29sczogY2FsY3VsYXRlQ3VycmVudEluZGV4KHNjcm9sbExlZnQsIHRoaXMuX2l0ZW1TaXplWzFdKSB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRyaWdnZXJJbmRleCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlVHJpZ2dlckluZGV4KGN1cnJlbnRJbmRleC5yb3dzLCB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMF0sIGlzU2Nyb2xsRG93biksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZVRyaWdnZXJJbmRleChjdXJyZW50SW5kZXguY29scywgdGhpcy5maXJzdC5jb2xzLCB0aGlzLmxhc3QuY29scywgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scywgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zWzFdLCBpc1Njcm9sbFJpZ2h0KVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBuZXdGaXJzdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlRmlyc3QoY3VycmVudEluZGV4LnJvd3MsIHRyaWdnZXJJbmRleC5yb3dzLCB0aGlzLmZpcnN0LnJvd3MsIHRoaXMubGFzdC5yb3dzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5yb3dzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMF0sIGlzU2Nyb2xsRG93biksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZUZpcnN0KGN1cnJlbnRJbmRleC5jb2xzLCB0cmlnZ2VySW5kZXguY29scywgdGhpcy5maXJzdC5jb2xzLCB0aGlzLmxhc3QuY29scywgdGhpcy5udW1JdGVtc0luVmlld3BvcnQuY29scywgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zWzFdLCBpc1Njcm9sbFJpZ2h0KVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgbmV3TGFzdCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogY2FsY3VsYXRlTGFzdChjdXJyZW50SW5kZXgucm93cywgbmV3Rmlyc3Qucm93cywgdGhpcy5sYXN0LnJvd3MsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LnJvd3MsIHRoaXMuZF9udW1Ub2xlcmF0ZWRJdGVtc1swXSksXG4gICAgICAgICAgICAgICAgICAgIGNvbHM6IGNhbGN1bGF0ZUxhc3QoY3VycmVudEluZGV4LmNvbHMsIG5ld0ZpcnN0LmNvbHMsIHRoaXMubGFzdC5jb2xzLCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydC5jb2xzLCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXNbMV0sIHRydWUpXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlzUmFuZ2VDaGFuZ2VkID0gbmV3Rmlyc3Qucm93cyAhPT0gdGhpcy5maXJzdC5yb3dzIHx8IG5ld0xhc3Qucm93cyAhPT0gdGhpcy5sYXN0LnJvd3MgfHwgbmV3Rmlyc3QuY29scyAhPT0gdGhpcy5maXJzdC5jb2xzIHx8IG5ld0xhc3QuY29scyAhPT0gdGhpcy5sYXN0LmNvbHMgfHwgdGhpcy5pc1JhbmdlQ2hhbmdlZDtcbiAgICAgICAgICAgICAgICBuZXdTY3JvbGxQb3MgPSB7IHRvcDogc2Nyb2xsVG9wLCBsZWZ0OiBzY3JvbGxMZWZ0IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxQb3MgPSB0aGlzLmhvcml6b250YWwgPyBzY3JvbGxMZWZ0IDogc2Nyb2xsVG9wO1xuICAgICAgICAgICAgY29uc3QgaXNTY3JvbGxEb3duT3JSaWdodCA9IHRoaXMubGFzdFNjcm9sbFBvcyA8PSBzY3JvbGxQb3M7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5fYXBwZW5kT25seSB8fCAodGhpcy5fYXBwZW5kT25seSAmJiBpc1Njcm9sbERvd25PclJpZ2h0KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IGNhbGN1bGF0ZUN1cnJlbnRJbmRleChzY3JvbGxQb3MsIHRoaXMuX2l0ZW1TaXplKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0cmlnZ2VySW5kZXggPSBjYWxjdWxhdGVUcmlnZ2VySW5kZXgoY3VycmVudEluZGV4LCB0aGlzLmZpcnN0LCB0aGlzLmxhc3QsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMsIGlzU2Nyb2xsRG93bk9yUmlnaHQpO1xuXG4gICAgICAgICAgICAgICAgbmV3Rmlyc3QgPSBjYWxjdWxhdGVGaXJzdChjdXJyZW50SW5kZXgsIHRyaWdnZXJJbmRleCwgdGhpcy5maXJzdCwgdGhpcy5sYXN0LCB0aGlzLm51bUl0ZW1zSW5WaWV3cG9ydCwgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zLCBpc1Njcm9sbERvd25PclJpZ2h0KTtcbiAgICAgICAgICAgICAgICBuZXdMYXN0ID0gY2FsY3VsYXRlTGFzdChjdXJyZW50SW5kZXgsIG5ld0ZpcnN0LCB0aGlzLmxhc3QsIHRoaXMubnVtSXRlbXNJblZpZXdwb3J0LCB0aGlzLmRfbnVtVG9sZXJhdGVkSXRlbXMpO1xuICAgICAgICAgICAgICAgIGlzUmFuZ2VDaGFuZ2VkID0gbmV3Rmlyc3QgIT09IHRoaXMuZmlyc3QgfHwgbmV3TGFzdCAhPT0gdGhpcy5sYXN0IHx8IHRoaXMuaXNSYW5nZUNoYW5nZWQ7XG4gICAgICAgICAgICAgICAgbmV3U2Nyb2xsUG9zID0gc2Nyb2xsUG9zO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpcnN0OiBuZXdGaXJzdCxcbiAgICAgICAgICAgIGxhc3Q6IG5ld0xhc3QsXG4gICAgICAgICAgICBpc1JhbmdlQ2hhbmdlZCxcbiAgICAgICAgICAgIHNjcm9sbFBvczogbmV3U2Nyb2xsUG9zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgb25TY3JvbGxDaGFuZ2UoZXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBmaXJzdCwgbGFzdCwgaXNSYW5nZUNoYW5nZWQsIHNjcm9sbFBvcyB9ID0gdGhpcy5vblNjcm9sbFBvc2l0aW9uQ2hhbmdlKGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNSYW5nZUNoYW5nZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1N0YXRlID0geyBmaXJzdCwgbGFzdCB9O1xuXG4gICAgICAgICAgICB0aGlzLnNldENvbnRlbnRQb3NpdGlvbihuZXdTdGF0ZSk7XG5cbiAgICAgICAgICAgIHRoaXMuZmlyc3QgPSBmaXJzdDtcbiAgICAgICAgICAgIHRoaXMubGFzdCA9IGxhc3Q7XG4gICAgICAgICAgICB0aGlzLmxhc3RTY3JvbGxQb3MgPSBzY3JvbGxQb3M7XG5cbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvblNjcm9sbEluZGV4Q2hhbmdlJywgbmV3U3RhdGUpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fbGF6eSAmJiB0aGlzLmlzUGFnZUNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsYXp5TG9hZFN0YXRlID0ge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdDogdGhpcy5fc3RlcCA/IE1hdGgubWluKHRoaXMuZ2V0UGFnZUJ5Rmlyc3QoKSAqIHRoaXMuX3N0ZXAsIHRoaXMuaXRlbXMubGVuZ3RoIC0gdGhpcy5fc3RlcCkgOiBmaXJzdCxcbiAgICAgICAgICAgICAgICAgICAgbGFzdDogTWF0aC5taW4odGhpcy5fc3RlcCA/ICh0aGlzLmdldFBhZ2VCeUZpcnN0KCkgKyAxKSAqIHRoaXMuX3N0ZXAgOiBsYXN0LCB0aGlzLml0ZW1zLmxlbmd0aClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTGF6eVN0YXRlQ2hhbmdlZCA9IHRoaXMubGF6eUxvYWRTdGF0ZS5maXJzdCAhPT0gbGF6eUxvYWRTdGF0ZS5maXJzdCB8fCB0aGlzLmxhenlMb2FkU3RhdGUubGFzdCAhPT0gbGF6eUxvYWRTdGF0ZS5sYXN0O1xuXG4gICAgICAgICAgICAgICAgaXNMYXp5U3RhdGVDaGFuZ2VkICYmIHRoaXMuaGFuZGxlRXZlbnRzKCdvbkxhenlMb2FkJywgbGF6eUxvYWRTdGF0ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXp5TG9hZFN0YXRlID0gbGF6eUxvYWRTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ29udGFpbmVyU2Nyb2xsKGV2ZW50KSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKCdvblNjcm9sbCcsIHsgb3JpZ2luYWxFdmVudDogZXZlbnQgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2RlbGF5ICYmIHRoaXMuaXNQYWdlQ2hhbmdlZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsVGltZW91dCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXRoaXMuZF9sb2FkaW5nICYmIHRoaXMuc2hvd0xvYWRlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgaXNSYW5nZUNoYW5nZWQgfSA9IHRoaXMub25TY3JvbGxQb3NpdGlvbkNoYW5nZShldmVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hhbmdlZCA9IGlzUmFuZ2VDaGFuZ2VkIHx8ICh0aGlzLl9zdGVwID8gdGhpcy5pc1BhZ2VDaGFuZ2VkIDogZmFsc2UpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kX2xvYWRpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vblNjcm9sbENoYW5nZShldmVudCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kX2xvYWRpbmcgJiYgdGhpcy5zaG93TG9hZGVyICYmICghdGhpcy5fbGF6eSB8fCB0aGlzLl9sb2FkaW5nID09PSB1bmRlZmluZWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZF9sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFnZSA9IHRoaXMuZ2V0UGFnZUJ5Rmlyc3QoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdGhpcy5fZGVsYXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgIXRoaXMuZF9sb2FkaW5nICYmIHRoaXMub25TY3JvbGxDaGFuZ2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYmluZFJlc2l6ZUxpc3RlbmVyKCkge1xuICAgICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2luZG93ID0gdGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBXaW5kb3c7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gRG9tSGFuZGxlci5pc1RvdWNoRGV2aWNlKCkgPyAnb3JpZW50YXRpb25jaGFuZ2UnIDogJ3Jlc2l6ZSc7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMud2luZG93UmVzaXplTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csIGV2ZW50LCB0aGlzLm9uV2luZG93UmVzaXplLmJpbmQodGhpcykpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgdW5iaW5kUmVzaXplTGlzdGVuZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyKCk7XG4gICAgICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZUxpc3RlbmVyID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uV2luZG93UmVzaXplKCkge1xuICAgICAgICBpZiAodGhpcy5yZXNpemVUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZXNpemVUaW1lb3V0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVzaXplVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKERvbUhhbmRsZXIuaXNWaXNpYmxlKHRoaXMuZWxlbWVudFZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbd2lkdGgsIGhlaWdodF0gPSBbRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmVsZW1lbnRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCksIERvbUhhbmRsZXIuZ2V0SGVpZ2h0KHRoaXMuZWxlbWVudFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50KV07XG4gICAgICAgICAgICAgICAgY29uc3QgW2lzRGlmZldpZHRoLCBpc0RpZmZIZWlnaHRdID0gW3dpZHRoICE9PSB0aGlzLmRlZmF1bHRXaWR0aCwgaGVpZ2h0ICE9PSB0aGlzLmRlZmF1bHRIZWlnaHRdO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlaW5pdCA9IHRoaXMuYm90aCA/IGlzRGlmZldpZHRoIHx8IGlzRGlmZkhlaWdodCA6IHRoaXMuaG9yaXpvbnRhbCA/IGlzRGlmZldpZHRoIDogdGhpcy52ZXJ0aWNhbCA/IGlzRGlmZkhlaWdodCA6IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgcmVpbml0ICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kX251bVRvbGVyYXRlZEl0ZW1zID0gdGhpcy5fbnVtVG9sZXJhdGVkSXRlbXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRXaWR0aCA9IHdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0SGVpZ2h0ID0gaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGVudFdpZHRoID0gRG9tSGFuZGxlci5nZXRXaWR0aCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZW50SGVpZ2h0ID0gRG9tSGFuZGxlci5nZXRIZWlnaHQodGhpcy5jb250ZW50RWwpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHRoaXMuX3Jlc2l6ZURlbGF5KTtcbiAgICB9XG5cbiAgICBoYW5kbGVFdmVudHMobmFtZSwgcGFyYW1zKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zW25hbWVdID8gdGhpcy5vcHRpb25zW25hbWVdKHBhcmFtcykgOiB0aGlzW25hbWVdLmVtaXQocGFyYW1zKTtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50T3B0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZUNsYXNzOiBgcC1zY3JvbGxlci1jb250ZW50ICR7dGhpcy5kX2xvYWRpbmcgPyAncC1zY3JvbGxlci1sb2FkaW5nJyA6ICcnfWAsXG4gICAgICAgICAgICBpdGVtczogdGhpcy5sb2FkZWRJdGVtcyxcbiAgICAgICAgICAgIGdldEl0ZW1PcHRpb25zOiAoaW5kZXgpID0+IHRoaXMuZ2V0T3B0aW9ucyhpbmRleCksXG4gICAgICAgICAgICBsb2FkaW5nOiB0aGlzLmRfbG9hZGluZyxcbiAgICAgICAgICAgIGdldExvYWRlck9wdGlvbnM6IChpbmRleCwgb3B0aW9ucz8pID0+IHRoaXMuZ2V0TG9hZGVyT3B0aW9ucyhpbmRleCwgb3B0aW9ucyksXG4gICAgICAgICAgICBpdGVtU2l6ZTogdGhpcy5faXRlbVNpemUsXG4gICAgICAgICAgICByb3dzOiB0aGlzLmxvYWRlZFJvd3MsXG4gICAgICAgICAgICBjb2x1bW5zOiB0aGlzLmxvYWRlZENvbHVtbnMsXG4gICAgICAgICAgICBzcGFjZXJTdHlsZTogdGhpcy5zcGFjZXJTdHlsZSxcbiAgICAgICAgICAgIGNvbnRlbnRTdHlsZTogdGhpcy5jb250ZW50U3R5bGUsXG4gICAgICAgICAgICB2ZXJ0aWNhbDogdGhpcy52ZXJ0aWNhbCxcbiAgICAgICAgICAgIGhvcml6b250YWw6IHRoaXMuaG9yaXpvbnRhbCxcbiAgICAgICAgICAgIGJvdGg6IHRoaXMuYm90aFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldE9wdGlvbnMocmVuZGVyZWRJbmRleCkge1xuICAgICAgICBjb25zdCBjb3VudCA9ICh0aGlzLl9pdGVtcyB8fCBbXSkubGVuZ3RoO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuYm90aCA/IHRoaXMuZmlyc3Qucm93cyArIHJlbmRlcmVkSW5kZXggOiB0aGlzLmZpcnN0ICsgcmVuZGVyZWRJbmRleDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICBjb3VudCxcbiAgICAgICAgICAgIGZpcnN0OiBpbmRleCA9PT0gMCxcbiAgICAgICAgICAgIGxhc3Q6IGluZGV4ID09PSBjb3VudCAtIDEsXG4gICAgICAgICAgICBldmVuOiBpbmRleCAlIDIgPT09IDAsXG4gICAgICAgICAgICBvZGQ6IGluZGV4ICUgMiAhPT0gMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldExvYWRlck9wdGlvbnMoaW5kZXgsIGV4dE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLmxvYWRlckFyci5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgY291bnQsXG4gICAgICAgICAgICBmaXJzdDogaW5kZXggPT09IDAsXG4gICAgICAgICAgICBsYXN0OiBpbmRleCA9PT0gY291bnQgLSAxLFxuICAgICAgICAgICAgZXZlbjogaW5kZXggJSAyID09PSAwLFxuICAgICAgICAgICAgb2RkOiBpbmRleCAlIDIgIT09IDAsXG4gICAgICAgICAgICAuLi5leHRPcHRpb25zXG4gICAgICAgIH07XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNoYXJlZE1vZHVsZSwgU3Bpbm5lckljb25dLFxuICAgIGV4cG9ydHM6IFtTY3JvbGxlciwgU2hhcmVkTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtTY3JvbGxlcl1cbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsZXJNb2R1bGUge31cbiJdfQ==
|