primeng 18.0.0 → 18.0.2-patch.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.d.ts +7 -7
- package/autocomplete/autocomplete.d.ts +21 -8
- package/badge/badge.d.ts +1 -3
- package/basecomponent/basecomponent.d.ts +2 -5
- package/blockui/blockui.d.ts +10 -5
- package/breadcrumb/breadcrumb.d.ts +9 -6
- package/button/button.d.ts +10 -4
- package/calendar/calendar.d.ts +29 -15
- package/card/card.d.ts +12 -5
- package/carousel/carousel.d.ts +10 -4
- package/cascadeselect/cascadeselect.d.ts +18 -8
- package/checkbox/checkbox.d.ts +8 -4
- package/chip/chip.d.ts +9 -7
- package/chips/chips.d.ts +237 -0
- package/chips/chips.interface.d.ts +66 -0
- package/chips/index.d.ts +5 -0
- package/chips/public_api.d.ts +2 -0
- package/chips/style/chipsstyle.d.ts +69 -0
- package/confirmdialog/confirmdialog.d.ts +14 -5
- package/confirmpopup/confirmpopup.d.ts +11 -5
- package/contextmenu/contextmenu.d.ts +10 -6
- package/datepicker/datepicker.d.ts +113 -33
- package/dialog/dialog.d.ts +15 -4
- package/divider/divider.d.ts +1 -1
- package/dock/dock.d.ts +7 -4
- package/drawer/drawer.d.ts +18 -10
- package/dropdown/dropdown.d.ts +4 -3
- package/dynamicdialog/dynamicdialog.d.ts +1 -0
- package/editor/editor.d.ts +7 -3
- package/esm2022/accordion/accordion.mjs +58 -43
- package/esm2022/autocomplete/autocomplete.mjs +153 -92
- package/esm2022/badge/badge.mjs +39 -32
- package/esm2022/basecomponent/basecomponent.mjs +3 -26
- package/esm2022/blockui/blockui.mjs +38 -18
- package/esm2022/breadcrumb/breadcrumb.mjs +50 -32
- package/esm2022/button/button.mjs +55 -28
- package/esm2022/calendar/calendar.mjs +207 -143
- package/esm2022/card/card.mjs +96 -46
- package/esm2022/carousel/carousel.mjs +74 -42
- package/esm2022/cascadeselect/cascadeselect.mjs +100 -62
- package/esm2022/checkbox/checkbox.mjs +32 -14
- package/esm2022/chip/chip.mjs +117 -96
- package/esm2022/chips/chips.interface.mjs +2 -0
- package/esm2022/chips/chips.mjs +827 -0
- package/esm2022/chips/primeng-chips.mjs +5 -0
- package/esm2022/chips/public_api.mjs +3 -0
- package/esm2022/chips/style/chipsstyle.mjs +175 -0
- package/esm2022/confirmdialog/confirmdialog.mjs +96 -57
- package/esm2022/confirmpopup/confirmpopup.mjs +57 -29
- package/esm2022/contextmenu/contextmenu.mjs +51 -20
- package/esm2022/datepicker/datepicker.mjs +198 -156
- package/esm2022/dialog/dialog.mjs +98 -52
- package/esm2022/divider/divider.mjs +2 -4
- package/esm2022/dock/dock.mjs +31 -13
- package/esm2022/drawer/drawer.mjs +112 -70
- package/esm2022/dropdown/dropdown.mjs +13 -5
- package/esm2022/dynamicdialog/dynamicdialog-config.mjs +13 -13
- package/esm2022/dynamicdialog/dynamicdialog.mjs +9 -5
- package/esm2022/editor/editor.mjs +27 -11
- package/esm2022/fieldset/fieldset.mjs +61 -33
- package/esm2022/fileupload/fileupload.mjs +139 -89
- package/esm2022/galleria/galleria.mjs +18 -9
- package/esm2022/image/image.mjs +113 -66
- package/esm2022/imagecompare/imagecompare.mjs +31 -11
- package/esm2022/inplace/inplace.mjs +49 -24
- package/esm2022/inputmask/inputmask.mjs +30 -14
- package/esm2022/inputmask/style/inputmaskstyle.mjs +2 -2
- package/esm2022/inputnumber/inputnumber.mjs +55 -47
- package/esm2022/inputotp/inputotp.mjs +30 -11
- package/esm2022/listbox/listbox.mjs +137 -78
- package/esm2022/megamenu/megamenu.mjs +105 -59
- package/esm2022/menu/menu.mjs +26 -26
- package/esm2022/menubar/menubar.mjs +70 -35
- package/esm2022/message/message.mjs +50 -26
- package/esm2022/messages/messages.mjs +13 -4
- package/esm2022/metergroup/metergroup.mjs +63 -31
- package/esm2022/multiselect/multiselect.mjs +247 -156
- package/esm2022/orderlist/orderlist.mjs +125 -70
- package/esm2022/organizationchart/organizationchart.mjs +30 -14
- package/esm2022/overlay/overlay.mjs +27 -7
- package/esm2022/overlaypanel/overlaypanel.mjs +33 -10
- package/esm2022/paginator/paginator.mjs +92 -60
- package/esm2022/panel/panel.mjs +160 -100
- package/esm2022/panelmenu/panelmenu.mjs +55 -32
- package/esm2022/password/password.mjs +88 -49
- package/esm2022/picklist/picklist.mjs +363 -259
- package/esm2022/popover/popover.mjs +29 -12
- package/esm2022/progressbar/progressbar.mjs +27 -9
- package/esm2022/rating/rating.mjs +46 -22
- package/esm2022/scroller/scroller.mjs +47 -37
- package/esm2022/scrollpanel/scrollpanel.mjs +28 -9
- package/esm2022/scrolltop/scrolltop.mjs +17 -10
- package/esm2022/select/select.mjs +198 -119
- package/esm2022/selectbutton/selectbutton.mjs +26 -11
- package/esm2022/sidebar/sidebar.mjs +82 -60
- package/esm2022/speeddial/speeddial.mjs +54 -29
- package/esm2022/splitbutton/splitbutton.mjs +41 -18
- package/esm2022/splitter/splitter.mjs +5 -5
- package/esm2022/stepper/stepper.mjs +27 -13
- package/esm2022/table/table.mjs +107 -96
- package/esm2022/tabmenu/tabmenu.mjs +54 -27
- package/esm2022/tabs/tablist.mjs +28 -20
- package/esm2022/tabview/tabview.mjs +106 -54
- package/esm2022/tag/tag.mjs +68 -44
- package/esm2022/tieredmenu/tieredmenu.mjs +44 -21
- package/esm2022/timeline/timeline.mjs +41 -17
- package/esm2022/toast/toast.mjs +31 -9
- package/esm2022/togglebutton/togglebutton.mjs +45 -30
- package/esm2022/toggleswitch/toggleswitch.mjs +28 -9
- package/esm2022/toolbar/toolbar.mjs +47 -21
- package/esm2022/tooltip/tooltip.mjs +35 -70
- package/esm2022/tree/tree.mjs +114 -97
- package/esm2022/treeselect/treeselect.mjs +156 -89
- package/esm2022/treetable/treetable.mjs +31 -12
- package/esm2022/usestyle/usestyle.mjs +2 -2
- package/fesm2022/primeng-accordion.mjs +59 -44
- package/fesm2022/primeng-accordion.mjs.map +1 -1
- package/fesm2022/primeng-animateonscroll.mjs +1 -1
- package/fesm2022/primeng-api.mjs +1 -1
- package/fesm2022/primeng-autocomplete.mjs +152 -91
- package/fesm2022/primeng-autocomplete.mjs.map +1 -1
- package/fesm2022/primeng-avatar.mjs +1 -1
- package/fesm2022/primeng-avatargroup.mjs +1 -1
- package/fesm2022/primeng-badge.mjs +40 -33
- package/fesm2022/primeng-badge.mjs.map +1 -1
- package/fesm2022/primeng-basecomponent.mjs +2 -25
- package/fesm2022/primeng-basecomponent.mjs.map +1 -1
- package/fesm2022/primeng-blockui.mjs +37 -17
- package/fesm2022/primeng-blockui.mjs.map +1 -1
- package/fesm2022/primeng-breadcrumb.mjs +49 -31
- package/fesm2022/primeng-breadcrumb.mjs.map +1 -1
- package/fesm2022/primeng-button.mjs +54 -27
- package/fesm2022/primeng-button.mjs.map +1 -1
- package/fesm2022/primeng-buttongroup.mjs +1 -1
- package/fesm2022/primeng-calendar.mjs +207 -143
- package/fesm2022/primeng-calendar.mjs.map +1 -1
- package/fesm2022/primeng-card.mjs +95 -45
- package/fesm2022/primeng-card.mjs.map +1 -1
- package/fesm2022/primeng-carousel.mjs +73 -41
- package/fesm2022/primeng-carousel.mjs.map +1 -1
- package/fesm2022/primeng-cascadeselect.mjs +99 -61
- package/fesm2022/primeng-cascadeselect.mjs.map +1 -1
- package/fesm2022/primeng-chart.mjs +1 -1
- package/fesm2022/primeng-checkbox.mjs +31 -13
- package/fesm2022/primeng-checkbox.mjs.map +1 -1
- package/fesm2022/primeng-chip.mjs +116 -95
- package/fesm2022/primeng-chip.mjs.map +1 -1
- package/fesm2022/primeng-chips.mjs +1006 -0
- package/fesm2022/primeng-chips.mjs.map +1 -0
- package/fesm2022/primeng-colorpicker.mjs +1 -1
- package/fesm2022/primeng-confirmdialog.mjs +95 -56
- package/fesm2022/primeng-confirmdialog.mjs.map +1 -1
- package/fesm2022/primeng-confirmpopup.mjs +57 -29
- package/fesm2022/primeng-confirmpopup.mjs.map +1 -1
- package/fesm2022/primeng-contextmenu.mjs +50 -19
- package/fesm2022/primeng-contextmenu.mjs.map +1 -1
- package/fesm2022/primeng-dataview.mjs +2 -2
- package/fesm2022/primeng-datepicker.mjs +198 -156
- package/fesm2022/primeng-datepicker.mjs.map +1 -1
- package/fesm2022/primeng-defer.mjs +1 -1
- package/fesm2022/primeng-dialog.mjs +97 -51
- package/fesm2022/primeng-dialog.mjs.map +1 -1
- package/fesm2022/primeng-divider.mjs +2 -4
- package/fesm2022/primeng-divider.mjs.map +1 -1
- package/fesm2022/primeng-dock.mjs +30 -12
- package/fesm2022/primeng-dock.mjs.map +1 -1
- package/fesm2022/primeng-dragdrop.mjs +1 -1
- package/fesm2022/primeng-drawer.mjs +111 -69
- package/fesm2022/primeng-drawer.mjs.map +1 -1
- package/fesm2022/primeng-dropdown.mjs +12 -4
- package/fesm2022/primeng-dropdown.mjs.map +1 -1
- package/fesm2022/primeng-dynamicdialog.mjs +21 -17
- package/fesm2022/primeng-dynamicdialog.mjs.map +1 -1
- package/fesm2022/primeng-editor.mjs +26 -10
- package/fesm2022/primeng-editor.mjs.map +1 -1
- package/fesm2022/primeng-fieldset.mjs +61 -33
- package/fesm2022/primeng-fieldset.mjs.map +1 -1
- package/fesm2022/primeng-fileupload.mjs +138 -88
- package/fesm2022/primeng-fileupload.mjs.map +1 -1
- package/fesm2022/primeng-floatlabel.mjs +1 -1
- package/fesm2022/primeng-fluid.mjs +1 -1
- package/fesm2022/primeng-galleria.mjs +17 -8
- package/fesm2022/primeng-galleria.mjs.map +1 -1
- package/fesm2022/primeng-iconfield.mjs +1 -1
- package/fesm2022/primeng-icons-baseicon.mjs +1 -1
- package/fesm2022/primeng-iftalabel.mjs +1 -1
- package/fesm2022/primeng-image.mjs +112 -65
- package/fesm2022/primeng-image.mjs.map +1 -1
- package/fesm2022/primeng-imagecompare.mjs +30 -10
- package/fesm2022/primeng-imagecompare.mjs.map +1 -1
- package/fesm2022/primeng-inplace.mjs +48 -23
- package/fesm2022/primeng-inplace.mjs.map +1 -1
- package/fesm2022/primeng-inputgroupaddon.mjs +1 -1
- package/fesm2022/primeng-inputicon.mjs +1 -1
- package/fesm2022/primeng-inputmask.mjs +30 -14
- package/fesm2022/primeng-inputmask.mjs.map +1 -1
- package/fesm2022/primeng-inputnumber.mjs +54 -46
- package/fesm2022/primeng-inputnumber.mjs.map +1 -1
- package/fesm2022/primeng-inputotp.mjs +29 -10
- package/fesm2022/primeng-inputotp.mjs.map +1 -1
- package/fesm2022/primeng-inputswitch.mjs +1 -1
- package/fesm2022/primeng-inputtext.mjs +1 -1
- package/fesm2022/primeng-inputtextarea.mjs +1 -1
- package/fesm2022/primeng-keyfilter.mjs +1 -1
- package/fesm2022/primeng-knob.mjs +1 -1
- package/fesm2022/primeng-listbox.mjs +136 -77
- package/fesm2022/primeng-listbox.mjs.map +1 -1
- package/fesm2022/primeng-megamenu.mjs +104 -58
- package/fesm2022/primeng-megamenu.mjs.map +1 -1
- package/fesm2022/primeng-menu.mjs +26 -26
- package/fesm2022/primeng-menu.mjs.map +1 -1
- package/fesm2022/primeng-menubar.mjs +69 -34
- package/fesm2022/primeng-menubar.mjs.map +1 -1
- package/fesm2022/primeng-message.mjs +49 -25
- package/fesm2022/primeng-message.mjs.map +1 -1
- package/fesm2022/primeng-messages.mjs +12 -3
- package/fesm2022/primeng-messages.mjs.map +1 -1
- package/fesm2022/primeng-metergroup.mjs +62 -30
- package/fesm2022/primeng-metergroup.mjs.map +1 -1
- package/fesm2022/primeng-multiselect.mjs +246 -155
- package/fesm2022/primeng-multiselect.mjs.map +1 -1
- package/fesm2022/primeng-orderlist.mjs +124 -69
- package/fesm2022/primeng-orderlist.mjs.map +1 -1
- package/fesm2022/primeng-organizationchart.mjs +30 -14
- package/fesm2022/primeng-organizationchart.mjs.map +1 -1
- package/fesm2022/primeng-overlay.mjs +26 -6
- package/fesm2022/primeng-overlay.mjs.map +1 -1
- package/fesm2022/primeng-overlaybadge.mjs +1 -1
- package/fesm2022/primeng-overlaypanel.mjs +33 -10
- package/fesm2022/primeng-overlaypanel.mjs.map +1 -1
- package/fesm2022/primeng-paginator.mjs +91 -59
- package/fesm2022/primeng-paginator.mjs.map +1 -1
- package/fesm2022/primeng-panel.mjs +160 -100
- package/fesm2022/primeng-panel.mjs.map +1 -1
- package/fesm2022/primeng-panelmenu.mjs +55 -32
- package/fesm2022/primeng-panelmenu.mjs.map +1 -1
- package/fesm2022/primeng-password.mjs +87 -48
- package/fesm2022/primeng-password.mjs.map +1 -1
- package/fesm2022/primeng-picklist.mjs +362 -258
- package/fesm2022/primeng-picklist.mjs.map +1 -1
- package/fesm2022/primeng-popover.mjs +29 -12
- package/fesm2022/primeng-popover.mjs.map +1 -1
- package/fesm2022/primeng-progressbar.mjs +26 -8
- package/fesm2022/primeng-progressbar.mjs.map +1 -1
- package/fesm2022/primeng-progressspinner.mjs +1 -1
- package/fesm2022/primeng-radiobutton.mjs +1 -1
- package/fesm2022/primeng-rating.mjs +45 -21
- package/fesm2022/primeng-rating.mjs.map +1 -1
- package/fesm2022/primeng-scroller.mjs +46 -36
- package/fesm2022/primeng-scroller.mjs.map +1 -1
- package/fesm2022/primeng-scrollpanel.mjs +27 -8
- package/fesm2022/primeng-scrollpanel.mjs.map +1 -1
- package/fesm2022/primeng-scrolltop.mjs +17 -10
- package/fesm2022/primeng-scrolltop.mjs.map +1 -1
- package/fesm2022/primeng-select.mjs +197 -118
- package/fesm2022/primeng-select.mjs.map +1 -1
- package/fesm2022/primeng-selectbutton.mjs +25 -10
- package/fesm2022/primeng-selectbutton.mjs.map +1 -1
- package/fesm2022/primeng-sidebar.mjs +81 -59
- package/fesm2022/primeng-sidebar.mjs.map +1 -1
- package/fesm2022/primeng-skeleton.mjs +1 -1
- package/fesm2022/primeng-slider.mjs +1 -1
- package/fesm2022/primeng-speeddial.mjs +53 -28
- package/fesm2022/primeng-speeddial.mjs.map +1 -1
- package/fesm2022/primeng-splitbutton.mjs +40 -17
- package/fesm2022/primeng-splitbutton.mjs.map +1 -1
- package/fesm2022/primeng-splitter.mjs +6 -6
- package/fesm2022/primeng-splitter.mjs.map +1 -1
- package/fesm2022/primeng-stepper.mjs +27 -13
- package/fesm2022/primeng-stepper.mjs.map +1 -1
- package/fesm2022/primeng-steps.mjs +1 -1
- package/fesm2022/primeng-styleclass.mjs +1 -1
- package/fesm2022/primeng-table.mjs +107 -96
- package/fesm2022/primeng-table.mjs.map +1 -1
- package/fesm2022/primeng-tabmenu.mjs +53 -26
- package/fesm2022/primeng-tabmenu.mjs.map +1 -1
- package/fesm2022/primeng-tabs.mjs +27 -19
- package/fesm2022/primeng-tabs.mjs.map +1 -1
- package/fesm2022/primeng-tabview.mjs +106 -54
- package/fesm2022/primeng-tabview.mjs.map +1 -1
- package/fesm2022/primeng-tag.mjs +67 -43
- package/fesm2022/primeng-tag.mjs.map +1 -1
- package/fesm2022/primeng-terminal.mjs +1 -1
- package/fesm2022/primeng-textarea.mjs +1 -1
- package/fesm2022/primeng-tieredmenu.mjs +43 -20
- package/fesm2022/primeng-tieredmenu.mjs.map +1 -1
- package/fesm2022/primeng-timeline.mjs +40 -16
- package/fesm2022/primeng-timeline.mjs.map +1 -1
- package/fesm2022/primeng-toast.mjs +31 -9
- package/fesm2022/primeng-toast.mjs.map +1 -1
- package/fesm2022/primeng-togglebutton.mjs +44 -29
- package/fesm2022/primeng-togglebutton.mjs.map +1 -1
- package/fesm2022/primeng-toggleswitch.mjs +27 -8
- package/fesm2022/primeng-toggleswitch.mjs.map +1 -1
- package/fesm2022/primeng-toolbar.mjs +46 -20
- package/fesm2022/primeng-toolbar.mjs.map +1 -1
- package/fesm2022/primeng-tooltip.mjs +35 -70
- package/fesm2022/primeng-tooltip.mjs.map +1 -1
- package/fesm2022/primeng-tree.mjs +114 -97
- package/fesm2022/primeng-tree.mjs.map +1 -1
- package/fesm2022/primeng-treeselect.mjs +155 -88
- package/fesm2022/primeng-treeselect.mjs.map +1 -1
- package/fesm2022/primeng-treetable.mjs +30 -11
- package/fesm2022/primeng-treetable.mjs.map +1 -1
- package/fesm2022/primeng-usestyle.mjs +1 -1
- package/fesm2022/primeng-usestyle.mjs.map +1 -1
- package/fieldset/fieldset.d.ts +12 -6
- package/fileupload/fileupload.d.ts +19 -8
- package/galleria/galleria.d.ts +3 -2
- package/image/image.d.ts +18 -7
- package/imagecompare/imagecompare.d.ts +7 -2
- package/inplace/inplace.d.ts +12 -6
- package/inputmask/inputmask.d.ts +8 -4
- package/inputnumber/inputnumber.d.ts +11 -6
- package/inputotp/inputotp.d.ts +7 -2
- package/listbox/listbox.d.ts +17 -4
- package/megamenu/megamenu.d.ts +16 -7
- package/menu/menu.d.ts +6 -6
- package/menubar/menubar.d.ts +13 -6
- package/message/message.d.ts +10 -4
- package/messages/messages.d.ts +4 -3
- package/metergroup/metergroup.d.ts +11 -3
- package/multiselect/multiselect.d.ts +36 -17
- package/orderlist/orderlist.d.ts +23 -11
- package/organizationchart/organizationchart.d.ts +6 -4
- package/overlay/overlay.d.ts +6 -3
- package/overlaypanel/overlaypanel.d.ts +6 -3
- package/package.json +171 -165
- package/paginator/paginator.d.ts +15 -8
- package/panel/panel.d.ts +14 -5
- package/panelmenu/panelmenu.d.ts +8 -4
- package/password/password.d.ts +15 -7
- package/picklist/picklist.d.ts +23 -3
- package/popover/popover.d.ts +8 -5
- package/progressbar/progressbar.d.ts +7 -3
- package/rating/rating.d.ts +11 -5
- package/scroller/scroller.d.ts +9 -4
- package/scrollpanel/scrollpanel.d.ts +7 -3
- package/scrolltop/scrolltop.d.ts +7 -4
- package/select/select.d.ts +31 -13
- package/selectbutton/selectbutton.d.ts +7 -3
- package/sidebar/sidebar.d.ts +9 -2
- package/speeddial/speeddial.d.ts +9 -4
- package/splitbutton/splitbutton.d.ts +9 -5
- package/splitter/splitter.d.ts +4 -4
- package/stepper/stepper.d.ts +8 -3
- package/table/table.d.ts +2 -2
- package/tabmenu/tabmenu.d.ts +12 -7
- package/tabs/tablist.d.ts +6 -2
- package/tabview/tabview.d.ts +16 -7
- package/tag/tag.d.ts +8 -9
- package/tieredmenu/tieredmenu.d.ts +10 -6
- package/timeline/timeline.d.ts +7 -2
- package/toast/toast.d.ts +7 -3
- package/togglebutton/togglebutton.d.ts +8 -3
- package/toggleswitch/toggleswitch.d.ts +6 -2
- package/toolbar/toolbar.d.ts +9 -4
- package/tooltip/tooltip.d.ts +2 -1
- package/tree/tree.d.ts +23 -10
- package/treeselect/treeselect.d.ts +26 -12
- package/treetable/treetable.d.ts +7 -5
@@ -0,0 +1,827 @@
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, NgModule, Output, ViewChild, ViewEncapsulation, booleanAttribute, forwardRef, inject, numberAttribute } from '@angular/core';
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
4
|
+
import { PrimeTemplate, SharedModule } from 'primeng/api';
|
5
|
+
import { AutoFocusModule } from 'primeng/autofocus';
|
6
|
+
import { TimesIcon } from 'primeng/icons/times';
|
7
|
+
import { TimesCircleIcon } from 'primeng/icons/timescircle';
|
8
|
+
import { InputTextModule } from 'primeng/inputtext';
|
9
|
+
import { UniqueComponentId } from 'primeng/utils';
|
10
|
+
import { ChipsStyle } from './style/chipsstyle';
|
11
|
+
import { BaseComponent } from 'primeng/basecomponent';
|
12
|
+
import { ChipModule } from 'primeng/chip';
|
13
|
+
import * as i0 from "@angular/core";
|
14
|
+
import * as i1 from "primeng/config";
|
15
|
+
import * as i2 from "@angular/common";
|
16
|
+
import * as i3 from "primeng/autofocus";
|
17
|
+
import * as i4 from "primeng/chip";
|
18
|
+
const _c0 = ["inputtext"];
|
19
|
+
const _c1 = ["container"];
|
20
|
+
const _c2 = (a0, a1, a2, a3) => ({ "p-inputchips p-component p-input-wrapper": true, "p-disabled": a0, "p-focus": a1, "p-inputwrapper-filled": a2, "p-inputwrapper-focus": a3 });
|
21
|
+
const _c3 = a0 => ({ "p-chips-clearable": a0 });
|
22
|
+
const _c4 = a0 => ({ "p-inputchips-chip-item": true, "p-focus": a0 });
|
23
|
+
const _c5 = a0 => ({ $implicit: a0 });
|
24
|
+
const _c6 = a0 => ({ removeItem: a0 });
|
25
|
+
function Chips_li_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
|
26
|
+
i0.ɵɵelementContainer(0);
|
27
|
+
} }
|
28
|
+
function Chips_li_3_p_chip_3_ng_container_1_Template(rf, ctx) { if (rf & 1) {
|
29
|
+
i0.ɵɵelementContainer(0);
|
30
|
+
} }
|
31
|
+
function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_TimesCircleIcon_1_Template(rf, ctx) { if (rf & 1) {
|
32
|
+
const _r7 = i0.ɵɵgetCurrentView();
|
33
|
+
i0.ɵɵelementStart(0, "TimesCircleIcon", 16);
|
34
|
+
i0.ɵɵlistener("click", function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_TimesCircleIcon_1_Template_TimesCircleIcon_click_0_listener($event) { i0.ɵɵrestoreView(_r7); const i_r6 = i0.ɵɵnextContext(4).index; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.removeItem($event, i_r6)); });
|
35
|
+
i0.ɵɵelementEnd();
|
36
|
+
} if (rf & 2) {
|
37
|
+
i0.ɵɵproperty("styleClass", "p-chips-token-icon");
|
38
|
+
i0.ɵɵattribute("data-pc-section", "removeTokenIcon")("aria-hidden", true);
|
39
|
+
} }
|
40
|
+
function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_1_ng_template_0_Template(rf, ctx) { }
|
41
|
+
function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
42
|
+
i0.ɵɵtemplate(0, Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
43
|
+
} }
|
44
|
+
function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_Template(rf, ctx) { if (rf & 1) {
|
45
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
46
|
+
i0.ɵɵelementStart(0, "span", 17);
|
47
|
+
i0.ɵɵlistener("click", function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_Template_span_click_0_listener($event) { i0.ɵɵrestoreView(_r8); const i_r6 = i0.ɵɵnextContext(4).index; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.removeItem($event, i_r6)); });
|
48
|
+
i0.ɵɵtemplate(1, Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_1_Template, 1, 0, null, 11);
|
49
|
+
i0.ɵɵelementEnd();
|
50
|
+
} if (rf & 2) {
|
51
|
+
const ctx_r3 = i0.ɵɵnextContext(5);
|
52
|
+
i0.ɵɵattribute("data-pc-section", "removeTokenIcon")("aria-hidden", true);
|
53
|
+
i0.ɵɵadvance();
|
54
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.removeTokenIconTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(4, _c6, ctx_r3.removeItem.bind(ctx_r3)));
|
55
|
+
} }
|
56
|
+
function Chips_li_3_p_chip_3_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
57
|
+
i0.ɵɵelementContainerStart(0);
|
58
|
+
i0.ɵɵtemplate(1, Chips_li_3_p_chip_3_ng_template_2_ng_container_0_TimesCircleIcon_1_Template, 1, 3, "TimesCircleIcon", 14)(2, Chips_li_3_p_chip_3_ng_template_2_ng_container_0_span_2_Template, 2, 6, "span", 15);
|
59
|
+
i0.ɵɵelementContainerEnd();
|
60
|
+
} if (rf & 2) {
|
61
|
+
const ctx_r3 = i0.ɵɵnextContext(4);
|
62
|
+
i0.ɵɵadvance();
|
63
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.removeTokenIconTemplate);
|
64
|
+
i0.ɵɵadvance();
|
65
|
+
i0.ɵɵproperty("ngIf", ctx_r3.removeTokenIconTemplate);
|
66
|
+
} }
|
67
|
+
function Chips_li_3_p_chip_3_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
68
|
+
i0.ɵɵtemplate(0, Chips_li_3_p_chip_3_ng_template_2_ng_container_0_Template, 3, 2, "ng-container", 9);
|
69
|
+
} if (rf & 2) {
|
70
|
+
const ctx_r3 = i0.ɵɵnextContext(3);
|
71
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.disabled);
|
72
|
+
} }
|
73
|
+
function Chips_li_3_p_chip_3_Template(rf, ctx) { if (rf & 1) {
|
74
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
75
|
+
i0.ɵɵelementStart(0, "p-chip", 13);
|
76
|
+
i0.ɵɵlistener("onRemove", function Chips_li_3_p_chip_3_Template_p_chip_onRemove_0_listener($event) { i0.ɵɵrestoreView(_r5); const i_r6 = i0.ɵɵnextContext().index; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.removeItem($event, i_r6)); });
|
77
|
+
i0.ɵɵtemplate(1, Chips_li_3_p_chip_3_ng_container_1_Template, 1, 0, "ng-container", 11)(2, Chips_li_3_p_chip_3_ng_template_2_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
|
78
|
+
i0.ɵɵelementEnd();
|
79
|
+
} if (rf & 2) {
|
80
|
+
const item_r3 = i0.ɵɵnextContext().$implicit;
|
81
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
82
|
+
i0.ɵɵproperty("label", ctx_r3.field ? ctx_r3.resolveFieldData(item_r3, ctx_r3.field) : item_r3)("removeIcon", ctx_r3.chipIcon);
|
83
|
+
i0.ɵɵadvance();
|
84
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(4, _c5, item_r3));
|
85
|
+
} }
|
86
|
+
function Chips_li_3_Template(rf, ctx) { if (rf & 1) {
|
87
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
88
|
+
i0.ɵɵelementStart(0, "li", 10, 2);
|
89
|
+
i0.ɵɵlistener("click", function Chips_li_3_Template_li_click_0_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemClick($event, item_r3)); })("contextmenu", function Chips_li_3_Template_li_contextmenu_0_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onItemContextMenu($event, item_r3)); });
|
90
|
+
i0.ɵɵtemplate(2, Chips_li_3_ng_container_2_Template, 1, 0, "ng-container", 11)(3, Chips_li_3_p_chip_3_Template, 4, 6, "p-chip", 12);
|
91
|
+
i0.ɵɵelementEnd();
|
92
|
+
} if (rf & 2) {
|
93
|
+
const item_r3 = ctx.$implicit;
|
94
|
+
const i_r6 = ctx.index;
|
95
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
96
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c4, ctx_r3.focusedIndex === i_r6));
|
97
|
+
i0.ɵɵattribute("id", ctx_r3.id + "_chips_item_" + i_r6)("ariaLabel", item_r3)("aria-selected", true)("aria-setsize", ctx_r3.value.length)("aria-posinset", i_r6 + 1)("data-p-focused", ctx_r3.focusedIndex === i_r6)("data-pc-section", "token");
|
98
|
+
i0.ɵɵadvance(2);
|
99
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.itemTemplate)("ngTemplateOutletContext", i0.ɵɵpureFunction1(13, _c5, item_r3));
|
100
|
+
i0.ɵɵadvance();
|
101
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.itemTemplate);
|
102
|
+
} }
|
103
|
+
function Chips_li_7_TimesIcon_1_Template(rf, ctx) { if (rf & 1) {
|
104
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
105
|
+
i0.ɵɵelementStart(0, "TimesIcon", 16);
|
106
|
+
i0.ɵɵlistener("click", function Chips_li_7_TimesIcon_1_Template_TimesIcon_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.clear()); });
|
107
|
+
i0.ɵɵelementEnd();
|
108
|
+
} if (rf & 2) {
|
109
|
+
i0.ɵɵproperty("styleClass", "p-chips-clear-icon");
|
110
|
+
} }
|
111
|
+
function Chips_li_7_span_2_1_ng_template_0_Template(rf, ctx) { }
|
112
|
+
function Chips_li_7_span_2_1_Template(rf, ctx) { if (rf & 1) {
|
113
|
+
i0.ɵɵtemplate(0, Chips_li_7_span_2_1_ng_template_0_Template, 0, 0, "ng-template");
|
114
|
+
} }
|
115
|
+
function Chips_li_7_span_2_Template(rf, ctx) { if (rf & 1) {
|
116
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
117
|
+
i0.ɵɵelementStart(0, "span", 19);
|
118
|
+
i0.ɵɵlistener("click", function Chips_li_7_span_2_Template_span_click_0_listener() { i0.ɵɵrestoreView(_r10); const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.clear()); });
|
119
|
+
i0.ɵɵtemplate(1, Chips_li_7_span_2_1_Template, 1, 0, null, 20);
|
120
|
+
i0.ɵɵelementEnd();
|
121
|
+
} if (rf & 2) {
|
122
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
123
|
+
i0.ɵɵadvance();
|
124
|
+
i0.ɵɵproperty("ngTemplateOutlet", ctx_r3.clearIconTemplate);
|
125
|
+
} }
|
126
|
+
function Chips_li_7_Template(rf, ctx) { if (rf & 1) {
|
127
|
+
i0.ɵɵelementStart(0, "li");
|
128
|
+
i0.ɵɵtemplate(1, Chips_li_7_TimesIcon_1_Template, 1, 1, "TimesIcon", 14)(2, Chips_li_7_span_2_Template, 2, 1, "span", 18);
|
129
|
+
i0.ɵɵelementEnd();
|
130
|
+
} if (rf & 2) {
|
131
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
132
|
+
i0.ɵɵadvance();
|
133
|
+
i0.ɵɵproperty("ngIf", !ctx_r3.clearIconTemplate);
|
134
|
+
i0.ɵɵadvance();
|
135
|
+
i0.ɵɵproperty("ngIf", ctx_r3.clearIconTemplate);
|
136
|
+
} }
|
137
|
+
export const CHIPS_VALUE_ACCESSOR = {
|
138
|
+
provide: NG_VALUE_ACCESSOR,
|
139
|
+
useExisting: forwardRef(() => Chips),
|
140
|
+
multi: true
|
141
|
+
};
|
142
|
+
/**
|
143
|
+
* Chips groups a collection of contents in tabs.
|
144
|
+
* @group Components
|
145
|
+
*/
|
146
|
+
export class Chips extends BaseComponent {
|
147
|
+
el;
|
148
|
+
cd;
|
149
|
+
config;
|
150
|
+
/**
|
151
|
+
* Inline style of the element.
|
152
|
+
* @group Props
|
153
|
+
*/
|
154
|
+
style;
|
155
|
+
/**
|
156
|
+
* Style class of the element.
|
157
|
+
* @group Props
|
158
|
+
*/
|
159
|
+
styleClass;
|
160
|
+
/**
|
161
|
+
* When present, it specifies that the element should be disabled.
|
162
|
+
* @group Props
|
163
|
+
*/
|
164
|
+
disabled;
|
165
|
+
/**
|
166
|
+
* Name of the property to display on a chip.
|
167
|
+
* @group Props
|
168
|
+
*/
|
169
|
+
field;
|
170
|
+
/**
|
171
|
+
* Advisory information to display on input.
|
172
|
+
* @group Props
|
173
|
+
*/
|
174
|
+
placeholder;
|
175
|
+
/**
|
176
|
+
* Maximum number of entries allowed.
|
177
|
+
* @group Props
|
178
|
+
*/
|
179
|
+
max;
|
180
|
+
/**
|
181
|
+
* Maximum length of a chip.
|
182
|
+
* @group Props
|
183
|
+
*/
|
184
|
+
maxLength;
|
185
|
+
/**
|
186
|
+
* Defines a string that labels the input for accessibility.
|
187
|
+
* @group Props
|
188
|
+
*/
|
189
|
+
ariaLabel;
|
190
|
+
/**
|
191
|
+
* Establishes relationships between the component and label(s) where its value should be one or more element IDs.
|
192
|
+
* @group Props
|
193
|
+
*/
|
194
|
+
ariaLabelledBy;
|
195
|
+
/**
|
196
|
+
* Index of the element in tabbing order.
|
197
|
+
* @group Props
|
198
|
+
*/
|
199
|
+
tabindex;
|
200
|
+
/**
|
201
|
+
* Identifier of the focus input to match a label defined for the component.
|
202
|
+
* @group Props
|
203
|
+
*/
|
204
|
+
inputId;
|
205
|
+
/**
|
206
|
+
* Whether to allow duplicate values or not.
|
207
|
+
* @group Props
|
208
|
+
*/
|
209
|
+
allowDuplicate = true;
|
210
|
+
/**
|
211
|
+
* Defines whether duplication check should be case-sensitive
|
212
|
+
* @group Props
|
213
|
+
*/
|
214
|
+
caseSensitiveDuplication = true;
|
215
|
+
/**
|
216
|
+
* Inline style of the input field.
|
217
|
+
* @group Props
|
218
|
+
*/
|
219
|
+
inputStyle;
|
220
|
+
/**
|
221
|
+
* Style class of the input field.
|
222
|
+
* @group Props
|
223
|
+
*/
|
224
|
+
inputStyleClass;
|
225
|
+
/**
|
226
|
+
* Icon to display in chip remove action..
|
227
|
+
* @group Props
|
228
|
+
*/
|
229
|
+
chipIcon;
|
230
|
+
/**
|
231
|
+
* Whether to add an item on tab key press.
|
232
|
+
* @group Props
|
233
|
+
*/
|
234
|
+
addOnTab;
|
235
|
+
/**
|
236
|
+
* Whether to add an item when the input loses focus.
|
237
|
+
* @group Props
|
238
|
+
*/
|
239
|
+
addOnBlur;
|
240
|
+
/**
|
241
|
+
* Separator char to add an item when pressed in addition to the enter key.
|
242
|
+
* @group Props
|
243
|
+
*/
|
244
|
+
separator;
|
245
|
+
/**
|
246
|
+
* When enabled, a clear icon is displayed to clear the value.
|
247
|
+
* @group Props
|
248
|
+
*/
|
249
|
+
showClear = false;
|
250
|
+
/**
|
251
|
+
* When present, it specifies that the component should automatically get focus on load.
|
252
|
+
* @group Props
|
253
|
+
*/
|
254
|
+
autofocus;
|
255
|
+
/**
|
256
|
+
* Specifies the input variant of the component.
|
257
|
+
* @group Props
|
258
|
+
*/
|
259
|
+
variant = 'outlined';
|
260
|
+
/**
|
261
|
+
* Callback to invoke on chip add.
|
262
|
+
* @param {ChipsAddEvent} event - Custom chip add event.
|
263
|
+
* @group Emits
|
264
|
+
*/
|
265
|
+
onAdd = new EventEmitter();
|
266
|
+
/**
|
267
|
+
* Callback to invoke on chip remove.
|
268
|
+
* @param {ChipsRemoveEvent} event - Custom chip remove event.
|
269
|
+
* @group Emits
|
270
|
+
*/
|
271
|
+
onRemove = new EventEmitter();
|
272
|
+
/**
|
273
|
+
* Callback to invoke on focus of input field.
|
274
|
+
* @param {Event} event - Browser event.
|
275
|
+
* @group Emits
|
276
|
+
*/
|
277
|
+
onFocus = new EventEmitter();
|
278
|
+
/**
|
279
|
+
* Callback to invoke on blur of input field.
|
280
|
+
* @param {Event} event - Browser event.
|
281
|
+
* @group Emits
|
282
|
+
*/
|
283
|
+
onBlur = new EventEmitter();
|
284
|
+
/**
|
285
|
+
* Callback to invoke on chip clicked.
|
286
|
+
* @param {ChipsClickEvent} event - Custom chip click event.
|
287
|
+
* @group Emits
|
288
|
+
*/
|
289
|
+
onChipClick = new EventEmitter();
|
290
|
+
/**
|
291
|
+
* Callback to invoke on chip contextmenu.
|
292
|
+
* @param {ChipsClickEvent} event - Custom chip contextmenu event.
|
293
|
+
* @group Emits
|
294
|
+
*/
|
295
|
+
onChipContextMenu = new EventEmitter();
|
296
|
+
/**
|
297
|
+
* Callback to invoke on clear token clicked.
|
298
|
+
* @group Emits
|
299
|
+
*/
|
300
|
+
onClear = new EventEmitter();
|
301
|
+
inputViewChild;
|
302
|
+
containerViewChild;
|
303
|
+
templates;
|
304
|
+
itemTemplate;
|
305
|
+
removeTokenIconTemplate;
|
306
|
+
clearIconTemplate;
|
307
|
+
value;
|
308
|
+
onModelChange = () => { };
|
309
|
+
onModelTouched = () => { };
|
310
|
+
valueChanged;
|
311
|
+
id = UniqueComponentId();
|
312
|
+
focused;
|
313
|
+
focusedIndex;
|
314
|
+
filled;
|
315
|
+
_componentStyle = inject(ChipsStyle);
|
316
|
+
get focusedOptionId() {
|
317
|
+
return this.focusedIndex !== null ? `${this.id}_chips_item_${this.focusedIndex}` : null;
|
318
|
+
}
|
319
|
+
get isMaxedOut() {
|
320
|
+
return this.max && this.value && this.max === this.value.length;
|
321
|
+
}
|
322
|
+
constructor(el, cd, config) {
|
323
|
+
super();
|
324
|
+
this.el = el;
|
325
|
+
this.cd = cd;
|
326
|
+
this.config = config;
|
327
|
+
console.log('Deprecated since v18. Use AutoComplete component instead with its typeahead property.');
|
328
|
+
}
|
329
|
+
ngAfterContentInit() {
|
330
|
+
this.templates.forEach((item) => {
|
331
|
+
switch (item.getType()) {
|
332
|
+
case 'item':
|
333
|
+
this.itemTemplate = item.template;
|
334
|
+
break;
|
335
|
+
case 'removetokenicon':
|
336
|
+
this.removeTokenIconTemplate = item.template;
|
337
|
+
break;
|
338
|
+
case 'clearicon':
|
339
|
+
this.clearIconTemplate = item.template;
|
340
|
+
break;
|
341
|
+
default:
|
342
|
+
this.itemTemplate = item.template;
|
343
|
+
break;
|
344
|
+
}
|
345
|
+
});
|
346
|
+
this.updateFilledState();
|
347
|
+
}
|
348
|
+
onWrapperClick() {
|
349
|
+
this.inputViewChild?.nativeElement.focus();
|
350
|
+
}
|
351
|
+
onContainerFocus() {
|
352
|
+
this.focused = true;
|
353
|
+
}
|
354
|
+
onContainerBlur() {
|
355
|
+
this.focusedIndex = -1;
|
356
|
+
this.focused = false;
|
357
|
+
}
|
358
|
+
onContainerKeyDown(event) {
|
359
|
+
switch (event.code) {
|
360
|
+
case 'ArrowLeft':
|
361
|
+
this.onArrowLeftKeyOn();
|
362
|
+
break;
|
363
|
+
case 'ArrowRight':
|
364
|
+
this.onArrowRightKeyOn();
|
365
|
+
break;
|
366
|
+
case 'Backspace':
|
367
|
+
this.onBackspaceKeyOn(event);
|
368
|
+
break;
|
369
|
+
case 'Space':
|
370
|
+
if (this.focusedIndex !== null && this.value && this.value.length > 0) {
|
371
|
+
this.onItemClick(event, this.value[this.focusedIndex]);
|
372
|
+
}
|
373
|
+
break;
|
374
|
+
default:
|
375
|
+
break;
|
376
|
+
}
|
377
|
+
}
|
378
|
+
onArrowLeftKeyOn() {
|
379
|
+
if (this.inputViewChild.nativeElement.value.length === 0 && this.value && this.value.length > 0) {
|
380
|
+
this.focusedIndex = this.focusedIndex === null ? this.value.length - 1 : this.focusedIndex - 1;
|
381
|
+
if (this.focusedIndex < 0)
|
382
|
+
this.focusedIndex = 0;
|
383
|
+
}
|
384
|
+
}
|
385
|
+
onArrowRightKeyOn() {
|
386
|
+
if (this.inputViewChild.nativeElement.value.length === 0 && this.value && this.value.length > 0) {
|
387
|
+
if (this.focusedIndex === this.value.length - 1) {
|
388
|
+
this.focusedIndex = null;
|
389
|
+
this.inputViewChild?.nativeElement.focus();
|
390
|
+
}
|
391
|
+
else {
|
392
|
+
this.focusedIndex++;
|
393
|
+
}
|
394
|
+
}
|
395
|
+
}
|
396
|
+
onBackspaceKeyOn(event) {
|
397
|
+
if (this.focusedIndex !== null) {
|
398
|
+
this.removeItem(event, this.focusedIndex);
|
399
|
+
}
|
400
|
+
}
|
401
|
+
onInput() {
|
402
|
+
this.updateFilledState();
|
403
|
+
this.focusedIndex = null;
|
404
|
+
}
|
405
|
+
onPaste(event) {
|
406
|
+
if (!this.disabled) {
|
407
|
+
if (this.separator) {
|
408
|
+
const pastedData = (event.clipboardData || this.document.defaultView['clipboardData']).getData('Text');
|
409
|
+
pastedData.split(this.separator).forEach((val) => {
|
410
|
+
this.addItem(event, val, true);
|
411
|
+
});
|
412
|
+
this.inputViewChild.nativeElement.value = '';
|
413
|
+
}
|
414
|
+
this.updateFilledState();
|
415
|
+
}
|
416
|
+
}
|
417
|
+
updateFilledState() {
|
418
|
+
if (!this.value || this.value.length === 0) {
|
419
|
+
this.filled = this.inputViewChild && this.inputViewChild.nativeElement && this.inputViewChild.nativeElement.value != '';
|
420
|
+
}
|
421
|
+
else {
|
422
|
+
this.filled = true;
|
423
|
+
}
|
424
|
+
}
|
425
|
+
onItemClick(event, item) {
|
426
|
+
this.onChipClick.emit({
|
427
|
+
originalEvent: event,
|
428
|
+
value: item
|
429
|
+
});
|
430
|
+
}
|
431
|
+
onItemContextMenu(event, item) {
|
432
|
+
this.onChipContextMenu.emit({
|
433
|
+
originalEvent: event,
|
434
|
+
value: item
|
435
|
+
});
|
436
|
+
}
|
437
|
+
writeValue(value) {
|
438
|
+
this.value = value;
|
439
|
+
this.updateMaxedOut();
|
440
|
+
this.updateFilledState();
|
441
|
+
this.cd.markForCheck();
|
442
|
+
}
|
443
|
+
registerOnChange(fn) {
|
444
|
+
this.onModelChange = fn;
|
445
|
+
}
|
446
|
+
registerOnTouched(fn) {
|
447
|
+
this.onModelTouched = fn;
|
448
|
+
}
|
449
|
+
setDisabledState(val) {
|
450
|
+
this.disabled = val;
|
451
|
+
this.cd.markForCheck();
|
452
|
+
}
|
453
|
+
resolveFieldData(data, field) {
|
454
|
+
if (data && field) {
|
455
|
+
if (field.indexOf('.') == -1) {
|
456
|
+
return data[field];
|
457
|
+
}
|
458
|
+
else {
|
459
|
+
let fields = field.split('.');
|
460
|
+
let value = data;
|
461
|
+
for (var i = 0, len = fields.length; i < len; ++i) {
|
462
|
+
value = value[fields[i]];
|
463
|
+
}
|
464
|
+
return value;
|
465
|
+
}
|
466
|
+
}
|
467
|
+
else {
|
468
|
+
return null;
|
469
|
+
}
|
470
|
+
}
|
471
|
+
onInputFocus(event) {
|
472
|
+
this.focused = true;
|
473
|
+
this.focusedIndex = null;
|
474
|
+
this.onFocus.emit(event);
|
475
|
+
}
|
476
|
+
onInputBlur(event) {
|
477
|
+
this.focused = false;
|
478
|
+
this.focusedIndex = null;
|
479
|
+
if (this.addOnBlur && this.inputViewChild.nativeElement.value) {
|
480
|
+
this.addItem(event, this.inputViewChild.nativeElement.value, false);
|
481
|
+
}
|
482
|
+
this.onModelTouched();
|
483
|
+
this.onBlur.emit(event);
|
484
|
+
}
|
485
|
+
removeItem(event, index) {
|
486
|
+
if (this.disabled) {
|
487
|
+
return;
|
488
|
+
}
|
489
|
+
let removedItem = this.value[index];
|
490
|
+
this.value = this.value.filter((val, i) => i != index);
|
491
|
+
this.focusedIndex = null;
|
492
|
+
this.inputViewChild.nativeElement.focus();
|
493
|
+
this.onModelChange(this.value);
|
494
|
+
this.onRemove.emit({
|
495
|
+
originalEvent: event,
|
496
|
+
value: removedItem
|
497
|
+
});
|
498
|
+
this.updateFilledState();
|
499
|
+
this.updateMaxedOut();
|
500
|
+
}
|
501
|
+
addItem(event, item, preventDefault) {
|
502
|
+
this.value = this.value || [];
|
503
|
+
if (item && item.trim().length) {
|
504
|
+
const newItemIsDuplicate = this.caseSensitiveDuplication ? this.value.includes(item) : this.value.some((val) => val.toLowerCase() === item.toLowerCase());
|
505
|
+
if ((this.allowDuplicate || !newItemIsDuplicate) && !this.isMaxedOut) {
|
506
|
+
this.value = [...this.value, item];
|
507
|
+
this.onModelChange(this.value);
|
508
|
+
this.onAdd.emit({
|
509
|
+
originalEvent: event,
|
510
|
+
value: item
|
511
|
+
});
|
512
|
+
}
|
513
|
+
}
|
514
|
+
this.updateFilledState();
|
515
|
+
this.updateMaxedOut();
|
516
|
+
this.inputViewChild.nativeElement.value = '';
|
517
|
+
if (preventDefault) {
|
518
|
+
event.preventDefault();
|
519
|
+
}
|
520
|
+
}
|
521
|
+
/**
|
522
|
+
* Callback to invoke on filter reset.
|
523
|
+
* @group Method
|
524
|
+
*/
|
525
|
+
clear() {
|
526
|
+
this.value = null;
|
527
|
+
this.updateFilledState();
|
528
|
+
this.onModelChange(this.value);
|
529
|
+
this.updateMaxedOut();
|
530
|
+
this.onClear.emit();
|
531
|
+
}
|
532
|
+
onKeyDown(event) {
|
533
|
+
const inputValue = event.target.value;
|
534
|
+
switch (event.code) {
|
535
|
+
case 'Backspace':
|
536
|
+
if (inputValue.length === 0 && this.value && this.value.length > 0) {
|
537
|
+
if (this.focusedIndex !== null) {
|
538
|
+
this.removeItem(event, this.focusedIndex);
|
539
|
+
}
|
540
|
+
else
|
541
|
+
this.removeItem(event, this.value.length - 1);
|
542
|
+
}
|
543
|
+
break;
|
544
|
+
case 'Enter':
|
545
|
+
case 'NumpadEnter':
|
546
|
+
if (inputValue && inputValue.trim().length && !this.isMaxedOut) {
|
547
|
+
this.addItem(event, inputValue, true);
|
548
|
+
}
|
549
|
+
break;
|
550
|
+
case 'Tab':
|
551
|
+
if (this.addOnTab && inputValue && inputValue.trim().length && !this.isMaxedOut) {
|
552
|
+
this.addItem(event, inputValue, true);
|
553
|
+
event.preventDefault();
|
554
|
+
}
|
555
|
+
break;
|
556
|
+
case 'ArrowLeft':
|
557
|
+
if (inputValue.length === 0 && this.value && this.value.length > 0) {
|
558
|
+
this.containerViewChild?.nativeElement.focus();
|
559
|
+
}
|
560
|
+
break;
|
561
|
+
case 'ArrowRight':
|
562
|
+
event.stopPropagation();
|
563
|
+
break;
|
564
|
+
default:
|
565
|
+
if (this.separator) {
|
566
|
+
if (this.separator === event.key || event.key.match(this.separator)) {
|
567
|
+
this.addItem(event, inputValue, true);
|
568
|
+
}
|
569
|
+
}
|
570
|
+
break;
|
571
|
+
}
|
572
|
+
}
|
573
|
+
updateMaxedOut() {
|
574
|
+
if (this.inputViewChild && this.inputViewChild.nativeElement) {
|
575
|
+
if (this.isMaxedOut) {
|
576
|
+
// Calling `blur` is necessary because firefox does not call `onfocus` events
|
577
|
+
// for disabled inputs, unlike chromium browsers.
|
578
|
+
this.inputViewChild.nativeElement.blur();
|
579
|
+
this.inputViewChild.nativeElement.disabled = true;
|
580
|
+
}
|
581
|
+
else {
|
582
|
+
if (this.disabled) {
|
583
|
+
this.inputViewChild.nativeElement.blur();
|
584
|
+
}
|
585
|
+
this.inputViewChild.nativeElement.disabled = this.disabled || false;
|
586
|
+
}
|
587
|
+
}
|
588
|
+
}
|
589
|
+
static ɵfac = function Chips_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || Chips)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.PrimeNG)); };
|
590
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Chips, selectors: [["p-chips"]], contentQueries: function Chips_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
|
591
|
+
i0.ɵɵcontentQuery(dirIndex, PrimeTemplate, 4);
|
592
|
+
} if (rf & 2) {
|
593
|
+
let _t;
|
594
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.templates = _t);
|
595
|
+
} }, viewQuery: function Chips_Query(rf, ctx) { if (rf & 1) {
|
596
|
+
i0.ɵɵviewQuery(_c0, 5);
|
597
|
+
i0.ɵɵviewQuery(_c1, 5);
|
598
|
+
} if (rf & 2) {
|
599
|
+
let _t;
|
600
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputViewChild = _t.first);
|
601
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.containerViewChild = _t.first);
|
602
|
+
} }, hostAttrs: [1, "p-element", "p-inputwrapper"], hostVars: 6, hostBindings: function Chips_HostBindings(rf, ctx) { if (rf & 2) {
|
603
|
+
i0.ɵɵclassProp("p-inputwrapper-filled", ctx.filled)("p-inputwrapper-focus", ctx.focused)("p-chips-clearable", ctx.showClear);
|
604
|
+
} }, inputs: { style: "style", styleClass: "styleClass", disabled: [2, "disabled", "disabled", booleanAttribute], field: "field", placeholder: "placeholder", max: [2, "max", "max", numberAttribute], maxLength: "maxLength", ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", tabindex: [2, "tabindex", "tabindex", numberAttribute], inputId: "inputId", allowDuplicate: [2, "allowDuplicate", "allowDuplicate", booleanAttribute], caseSensitiveDuplication: [2, "caseSensitiveDuplication", "caseSensitiveDuplication", booleanAttribute], inputStyle: "inputStyle", inputStyleClass: "inputStyleClass", chipIcon: "chipIcon", addOnTab: [2, "addOnTab", "addOnTab", booleanAttribute], addOnBlur: [2, "addOnBlur", "addOnBlur", booleanAttribute], separator: "separator", showClear: [2, "showClear", "showClear", booleanAttribute], autofocus: [2, "autofocus", "autofocus", booleanAttribute], variant: "variant" }, outputs: { onAdd: "onAdd", onRemove: "onRemove", onFocus: "onFocus", onBlur: "onBlur", onChipClick: "onChipClick", onChipContextMenu: "onChipContextMenu", onClear: "onClear" }, standalone: true, features: [i0.ɵɵProvidersFeature([CHIPS_VALUE_ACCESSOR, ChipsStyle]), i0.ɵɵInputTransformsFeature, i0.ɵɵInheritDefinitionFeature, i0.ɵɵStandaloneFeature], decls: 8, vars: 31, consts: [["container", ""], ["inputtext", ""], ["token", ""], ["removeicon", ""], [3, "ngClass", "ngStyle"], ["tabindex", "-1", "role", "listbox", 1, "p-inputchips-input", 3, "click", "focus", "blur", "keydown"], ["role", "option", 3, "ngClass", "click", "contextmenu", 4, "ngFor", "ngForOf"], ["role", "option", 1, "p-inputchips-input-item", 3, "ngClass"], ["type", "text", "pAutoFocus", "", 1, "test", 3, "keydown", "input", "paste", "focus", "blur", "disabled", "ngStyle", "autofocus"], [4, "ngIf"], ["role", "option", 3, "click", "contextmenu", "ngClass"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["class", "p-inputchips-chip", "removable", "", 3, "label", "removeIcon", "onRemove", 4, "ngIf"], ["removable", "", 1, "p-inputchips-chip", 3, "onRemove", "label", "removeIcon"], [3, "styleClass", "click", 4, "ngIf"], ["class", "p-chips-token-icon", 3, "click", 4, "ngIf"], [3, "click", "styleClass"], [1, "p-chips-token-icon", 3, "click"], ["class", "p-chips-clear-icon", 3, "click", 4, "ngIf"], [1, "p-chips-clear-icon", 3, "click"], [4, "ngTemplateOutlet"]], template: function Chips_Template(rf, ctx) { if (rf & 1) {
|
605
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
606
|
+
i0.ɵɵelementStart(0, "div", 4)(1, "ul", 5, 0);
|
607
|
+
i0.ɵɵlistener("click", function Chips_Template_ul_click_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onWrapperClick()); })("focus", function Chips_Template_ul_focus_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onContainerFocus()); })("blur", function Chips_Template_ul_blur_1_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onContainerBlur()); })("keydown", function Chips_Template_ul_keydown_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onContainerKeyDown($event)); });
|
608
|
+
i0.ɵɵtemplate(3, Chips_li_3_Template, 4, 15, "li", 6);
|
609
|
+
i0.ɵɵelementStart(4, "li", 7)(5, "input", 8, 1);
|
610
|
+
i0.ɵɵlistener("keydown", function Chips_Template_input_keydown_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onKeyDown($event)); })("input", function Chips_Template_input_input_5_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInput()); })("paste", function Chips_Template_input_paste_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onPaste($event)); })("focus", function Chips_Template_input_focus_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputFocus($event)); })("blur", function Chips_Template_input_blur_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onInputBlur($event)); });
|
611
|
+
i0.ɵɵelementEnd()();
|
612
|
+
i0.ɵɵtemplate(7, Chips_li_7_Template, 3, 2, "li", 9);
|
613
|
+
i0.ɵɵelementEnd()();
|
614
|
+
} if (rf & 2) {
|
615
|
+
i0.ɵɵclassMap(ctx.styleClass);
|
616
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(24, _c2, ctx.disabled, ctx.focused, ctx.value && ctx.value.length || (ctx.inputViewChild == null ? null : ctx.inputViewChild.nativeElement.value) && (ctx.inputViewChild == null ? null : ctx.inputViewChild.nativeElement.value.length), ctx.focused))("ngStyle", ctx.style);
|
617
|
+
i0.ɵɵattribute("data-pc-name", "chips")("data-pc-section", "root");
|
618
|
+
i0.ɵɵadvance();
|
619
|
+
i0.ɵɵattribute("aria-labelledby", ctx.ariaLabelledBy)("aria-label", ctx.ariaLabel)("aria-activedescendant", ctx.focused ? ctx.focusedOptionId : undefined)("aria-orientation", "horizontal")("data-pc-section", "container");
|
620
|
+
i0.ɵɵadvance(2);
|
621
|
+
i0.ɵɵproperty("ngForOf", ctx.value);
|
622
|
+
i0.ɵɵadvance();
|
623
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(29, _c3, ctx.showClear && !ctx.disabled));
|
624
|
+
i0.ɵɵattribute("data-pc-section", "inputToken");
|
625
|
+
i0.ɵɵadvance();
|
626
|
+
i0.ɵɵclassMap(ctx.inputStyleClass);
|
627
|
+
i0.ɵɵproperty("disabled", ctx.disabled || ctx.isMaxedOut)("ngStyle", ctx.inputStyle)("autofocus", ctx.autofocus);
|
628
|
+
i0.ɵɵattribute("id", ctx.inputId)("maxlength", ctx.maxLength)("placeholder", ctx.value && ctx.value.length ? null : ctx.placeholder)("tabindex", ctx.tabindex);
|
629
|
+
i0.ɵɵadvance(2);
|
630
|
+
i0.ɵɵproperty("ngIf", ctx.value != null && ctx.filled && !ctx.disabled && ctx.showClear);
|
631
|
+
} }, dependencies: [CommonModule, i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgTemplateOutlet, i2.NgStyle, InputTextModule, SharedModule, AutoFocusModule, i3.AutoFocus, TimesCircleIcon, TimesIcon, ChipModule, i4.Chip], encapsulation: 2, changeDetection: 0 });
|
632
|
+
}
|
633
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(Chips, [{
|
634
|
+
type: Component,
|
635
|
+
args: [{
|
636
|
+
selector: 'p-chips',
|
637
|
+
standalone: true,
|
638
|
+
imports: [CommonModule, InputTextModule, SharedModule, AutoFocusModule, TimesCircleIcon, TimesIcon, ChipModule],
|
639
|
+
template: `
|
640
|
+
<div
|
641
|
+
[ngClass]="{
|
642
|
+
'p-inputchips p-component p-input-wrapper': true,
|
643
|
+
'p-disabled': disabled,
|
644
|
+
'p-focus': focused,
|
645
|
+
'p-inputwrapper-filled': (value && value.length) || (this.inputViewChild?.nativeElement.value && this.inputViewChild?.nativeElement.value.length),
|
646
|
+
'p-inputwrapper-focus': focused
|
647
|
+
}"
|
648
|
+
[ngStyle]="style"
|
649
|
+
[class]="styleClass"
|
650
|
+
[attr.data-pc-name]="'chips'"
|
651
|
+
[attr.data-pc-section]="'root'"
|
652
|
+
>
|
653
|
+
<ul
|
654
|
+
#container
|
655
|
+
class="p-inputchips-input"
|
656
|
+
tabindex="-1"
|
657
|
+
role="listbox"
|
658
|
+
[attr.aria-labelledby]="ariaLabelledBy"
|
659
|
+
[attr.aria-label]="ariaLabel"
|
660
|
+
[attr.aria-activedescendant]="focused ? focusedOptionId : undefined"
|
661
|
+
[attr.aria-orientation]="'horizontal'"
|
662
|
+
(click)="onWrapperClick()"
|
663
|
+
(focus)="onContainerFocus()"
|
664
|
+
(blur)="onContainerBlur()"
|
665
|
+
(keydown)="onContainerKeyDown($event)"
|
666
|
+
[attr.data-pc-section]="'container'"
|
667
|
+
>
|
668
|
+
<li
|
669
|
+
#token
|
670
|
+
*ngFor="let item of value; let i = index"
|
671
|
+
[attr.id]="id + '_chips_item_' + i"
|
672
|
+
role="option"
|
673
|
+
[attr.ariaLabel]="item"
|
674
|
+
[attr.aria-selected]="true"
|
675
|
+
[attr.aria-setsize]="value.length"
|
676
|
+
[attr.aria-posinset]="i + 1"
|
677
|
+
[attr.data-p-focused]="focusedIndex === i"
|
678
|
+
[ngClass]="{ 'p-inputchips-chip-item': true, 'p-focus': focusedIndex === i }"
|
679
|
+
(click)="onItemClick($event, item)"
|
680
|
+
(contextmenu)="onItemContextMenu($event, item)"
|
681
|
+
[attr.data-pc-section]="'token'"
|
682
|
+
>
|
683
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
|
684
|
+
<p-chip *ngIf="!itemTemplate" class="p-inputchips-chip" [label]="field ? resolveFieldData(item, field) : item" [removeIcon]="chipIcon" removable (onRemove)="removeItem($event, i)">
|
685
|
+
<ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }"></ng-container>
|
686
|
+
<ng-template #removeicon>
|
687
|
+
<ng-container *ngIf="!disabled">
|
688
|
+
<TimesCircleIcon [styleClass]="'p-chips-token-icon'" *ngIf="!removeTokenIconTemplate" (click)="removeItem($event, i)" [attr.data-pc-section]="'removeTokenIcon'" [attr.aria-hidden]="true" />
|
689
|
+
<span *ngIf="removeTokenIconTemplate" class="p-chips-token-icon" (click)="removeItem($event, i)" [attr.data-pc-section]="'removeTokenIcon'" [attr.aria-hidden]="true">
|
690
|
+
<ng-template *ngTemplateOutlet="removeTokenIconTemplate; context: { removeItem: removeItem.bind(this) }"></ng-template>
|
691
|
+
</span>
|
692
|
+
</ng-container>
|
693
|
+
</ng-template>
|
694
|
+
</p-chip>
|
695
|
+
</li>
|
696
|
+
<li class="p-inputchips-input-item" [ngClass]="{ 'p-chips-clearable': showClear && !disabled }" [attr.data-pc-section]="'inputToken'" role="option">
|
697
|
+
<input
|
698
|
+
#inputtext
|
699
|
+
type="text"
|
700
|
+
[attr.id]="inputId"
|
701
|
+
[attr.maxlength]="maxLength"
|
702
|
+
[attr.placeholder]="value && value.length ? null : placeholder"
|
703
|
+
[attr.tabindex]="tabindex"
|
704
|
+
(keydown)="onKeyDown($event)"
|
705
|
+
(input)="onInput()"
|
706
|
+
(paste)="onPaste($event)"
|
707
|
+
(focus)="onInputFocus($event)"
|
708
|
+
(blur)="onInputBlur($event)"
|
709
|
+
[disabled]="disabled || isMaxedOut"
|
710
|
+
[ngStyle]="inputStyle"
|
711
|
+
[class]="inputStyleClass"
|
712
|
+
pAutoFocus
|
713
|
+
[autofocus]="autofocus"
|
714
|
+
class="test"
|
715
|
+
/>
|
716
|
+
</li>
|
717
|
+
<li *ngIf="value != null && filled && !disabled && showClear">
|
718
|
+
<TimesIcon *ngIf="!clearIconTemplate" [styleClass]="'p-chips-clear-icon'" (click)="clear()" />
|
719
|
+
<span *ngIf="clearIconTemplate" class="p-chips-clear-icon" (click)="clear()">
|
720
|
+
<ng-template *ngTemplateOutlet="clearIconTemplate"></ng-template>
|
721
|
+
</span>
|
722
|
+
</li>
|
723
|
+
</ul>
|
724
|
+
</div>
|
725
|
+
`,
|
726
|
+
host: {
|
727
|
+
class: 'p-element p-inputwrapper',
|
728
|
+
'[class.p-inputwrapper-filled]': 'filled',
|
729
|
+
'[class.p-inputwrapper-focus]': 'focused',
|
730
|
+
'[class.p-chips-clearable]': 'showClear'
|
731
|
+
},
|
732
|
+
providers: [CHIPS_VALUE_ACCESSOR, ChipsStyle],
|
733
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
734
|
+
encapsulation: ViewEncapsulation.None
|
735
|
+
}]
|
736
|
+
}], () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.PrimeNG }], { style: [{
|
737
|
+
type: Input
|
738
|
+
}], styleClass: [{
|
739
|
+
type: Input
|
740
|
+
}], disabled: [{
|
741
|
+
type: Input,
|
742
|
+
args: [{ transform: booleanAttribute }]
|
743
|
+
}], field: [{
|
744
|
+
type: Input
|
745
|
+
}], placeholder: [{
|
746
|
+
type: Input
|
747
|
+
}], max: [{
|
748
|
+
type: Input,
|
749
|
+
args: [{ transform: numberAttribute }]
|
750
|
+
}], maxLength: [{
|
751
|
+
type: Input
|
752
|
+
}], ariaLabel: [{
|
753
|
+
type: Input
|
754
|
+
}], ariaLabelledBy: [{
|
755
|
+
type: Input
|
756
|
+
}], tabindex: [{
|
757
|
+
type: Input,
|
758
|
+
args: [{ transform: numberAttribute }]
|
759
|
+
}], inputId: [{
|
760
|
+
type: Input
|
761
|
+
}], allowDuplicate: [{
|
762
|
+
type: Input,
|
763
|
+
args: [{ transform: booleanAttribute }]
|
764
|
+
}], caseSensitiveDuplication: [{
|
765
|
+
type: Input,
|
766
|
+
args: [{ transform: booleanAttribute }]
|
767
|
+
}], inputStyle: [{
|
768
|
+
type: Input
|
769
|
+
}], inputStyleClass: [{
|
770
|
+
type: Input
|
771
|
+
}], chipIcon: [{
|
772
|
+
type: Input
|
773
|
+
}], addOnTab: [{
|
774
|
+
type: Input,
|
775
|
+
args: [{ transform: booleanAttribute }]
|
776
|
+
}], addOnBlur: [{
|
777
|
+
type: Input,
|
778
|
+
args: [{ transform: booleanAttribute }]
|
779
|
+
}], separator: [{
|
780
|
+
type: Input
|
781
|
+
}], showClear: [{
|
782
|
+
type: Input,
|
783
|
+
args: [{ transform: booleanAttribute }]
|
784
|
+
}], autofocus: [{
|
785
|
+
type: Input,
|
786
|
+
args: [{ transform: booleanAttribute }]
|
787
|
+
}], variant: [{
|
788
|
+
type: Input
|
789
|
+
}], onAdd: [{
|
790
|
+
type: Output
|
791
|
+
}], onRemove: [{
|
792
|
+
type: Output
|
793
|
+
}], onFocus: [{
|
794
|
+
type: Output
|
795
|
+
}], onBlur: [{
|
796
|
+
type: Output
|
797
|
+
}], onChipClick: [{
|
798
|
+
type: Output
|
799
|
+
}], onChipContextMenu: [{
|
800
|
+
type: Output
|
801
|
+
}], onClear: [{
|
802
|
+
type: Output
|
803
|
+
}], inputViewChild: [{
|
804
|
+
type: ViewChild,
|
805
|
+
args: ['inputtext']
|
806
|
+
}], containerViewChild: [{
|
807
|
+
type: ViewChild,
|
808
|
+
args: ['container']
|
809
|
+
}], templates: [{
|
810
|
+
type: ContentChildren,
|
811
|
+
args: [PrimeTemplate]
|
812
|
+
}] }); })();
|
813
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(Chips, { className: "Chips" }); })();
|
814
|
+
export class ChipsModule {
|
815
|
+
static ɵfac = function ChipsModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ChipsModule)(); };
|
816
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: ChipsModule });
|
817
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [Chips, SharedModule, SharedModule] });
|
818
|
+
}
|
819
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChipsModule, [{
|
820
|
+
type: NgModule,
|
821
|
+
args: [{
|
822
|
+
imports: [Chips, SharedModule],
|
823
|
+
exports: [Chips, SharedModule]
|
824
|
+
}]
|
825
|
+
}], null, null); })();
|
826
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(ChipsModule, { imports: [Chips, SharedModule], exports: [Chips, SharedModule] }); })();
|
827
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2hpcHMvY2hpcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLE1BQU0sRUFDTixlQUFlLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7SUEyRHRCLHdCQUE0Rjs7O0lBRXhGLHdCQUE0Rjs7OztJQUdwRiwyQ0FBNkw7SUFBdkcsK1FBQVMsK0JBQXFCLEtBQUM7SUFBckgsaUJBQTZMOztJQUE1SyxpREFBbUM7Ozs7O0lBRWhELHVIQUF5Rzs7OztJQUQ3Ryxn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a0JBQWhCLE1BQU07WUFFaUIsY0FBYztrQkFBckMsU0FBUzttQkFBQyxXQUFXO1lBRUUsa0JBQWtCO2tCQUF6QyxTQUFTO21CQUFDLFdBQVc7WUFFVSxTQUFTO2tCQUF4QyxlQUFlO21CQUFDLGFBQWE7O2tGQTdKckIsS0FBSztBQTZmbEIsTUFBTSxPQUFPLFdBQVc7cUdBQVgsV0FBVzs0REFBWCxXQUFXO2dFQUhWLEtBQUssRUFBRSxZQUFZLEVBQ1osWUFBWTs7aUZBRXBCLFdBQVc7Y0FKdkIsUUFBUTtlQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUM7YUFDakM7O3dGQUNZLFdBQVcsY0E3ZlgsS0FBSyxFQTBmRyxZQUFZLGFBMWZwQixLQUFLLEVBMmZHLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBmb3J3YXJkUmVmLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQcmltZVRlbXBsYXRlLCBTaGFyZWRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBBdXRvRm9jdXNNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9mb2N1cyc7XG5pbXBvcnQgeyBUaW1lc0ljb24gfSBmcm9tICdwcmltZW5nL2ljb25zL3RpbWVzJztcbmltcG9ydCB7IFRpbWVzQ2lyY2xlSWNvbiB9IGZyb20gJ3ByaW1lbmcvaWNvbnMvdGltZXNjaXJjbGUnO1xuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICdwcmltZW5nL3RzLWhlbHBlcnMnO1xuaW1wb3J0IHsgVW5pcXVlQ29tcG9uZW50SWQgfSBmcm9tICdwcmltZW5nL3V0aWxzJztcbmltcG9ydCB7IENoaXBzQWRkRXZlbnQsIENoaXBzQ2xpY2tFdmVudCwgQ2hpcHNDb250ZXh0TWVudUV2ZW50LCBDaGlwc1JlbW92ZUV2ZW50IH0gZnJvbSAnLi9jaGlwcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJpbWVORyB9IGZyb20gJ3ByaW1lbmcvY29uZmlnJztcbmltcG9ydCB7IENoaXBzU3R5bGUgfSBmcm9tICcuL3N0eWxlL2NoaXBzc3R5bGUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ3ByaW1lbmcvYmFzZWNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGlwJztcblxuZXhwb3J0IGNvbnN0IENISVBTX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hpcHMpLFxuICAgIG11bHRpOiB0cnVlXG59O1xuLyoqXG4gKiBDaGlwcyBncm91cHMgYSBjb2xsZWN0aW9uIG9mIGNvbnRlbnRzIGluIHRhYnMuXG4gKiBAZ3JvdXAgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3AtY2hpcHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW5wdXRUZXh0TW9kdWxlLCBTaGFyZWRNb2R1bGUsIEF1dG9Gb2N1c01vZHVsZSwgVGltZXNDaXJjbGVJY29uLCBUaW1lc0ljb24sIENoaXBNb2R1bGVdLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAncC1pbnB1dGNoaXBzIHAtY29tcG9uZW50IHAtaW5wdXQtd3JhcHBlcic6IHRydWUsXG4gICAgICAgICAgICAgICAgJ3AtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAncC1mb2N1cyc6IGZvY3VzZWQsXG4gICAgICAgICAgICAgICAgJ3AtaW5wdXR3cmFwcGVyLWZpbGxlZCc6ICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGgpIHx8ICh0aGlzLmlucHV0Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LnZhbHVlICYmIHRoaXMuaW5wdXRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoKSxcbiAgICAgICAgICAgICAgICAncC1pbnB1dHdyYXBwZXItZm9jdXMnOiBmb2N1c2VkXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJzdHlsZUNsYXNzXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtbmFtZV09XCInY2hpcHMnXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncm9vdCdcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICAjY29udGFpbmVyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWlucHV0Y2hpcHMtaW5wdXRcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiZm9jdXNlZCA/IGZvY3VzZWRPcHRpb25JZCA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1vcmllbnRhdGlvbl09XCInaG9yaXpvbnRhbCdcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbldyYXBwZXJDbGljaygpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25Db250YWluZXJGb2N1cygpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJvbkNvbnRhaW5lckJsdXIoKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25Db250YWluZXJLZXlEb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCInY29udGFpbmVyJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICN0b2tlblxuICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB2YWx1ZTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImlkICsgJ19jaGlwc19pdGVtXycgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWFMYWJlbF09XCJpdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cInZhbHVlLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXAtZm9jdXNlZF09XCJmb2N1c2VkSW5kZXggPT09IGlcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdwLWlucHV0Y2hpcHMtY2hpcC1pdGVtJzogdHJ1ZSwgJ3AtZm9jdXMnOiBmb2N1c2VkSW5kZXggPT09IGkgfVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cIm9uSXRlbUNvbnRleHRNZW51KCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3Rva2VuJ1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoaXAgKm5nSWY9XCIhaXRlbVRlbXBsYXRlXCIgY2xhc3M9XCJwLWlucHV0Y2hpcHMtY2hpcFwiIFtsYWJlbF09XCJmaWVsZCA/IHJlc29sdmVGaWVsZERhdGEoaXRlbSwgZmllbGQpIDogaXRlbVwiIFtyZW1vdmVJY29uXT1cImNoaXBJY29uXCIgcmVtb3ZhYmxlIChvblJlbW92ZSk9XCJyZW1vdmVJdGVtKCRldmVudCwgaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVtb3ZlaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUaW1lc0NpcmNsZUljb24gW3N0eWxlQ2xhc3NdPVwiJ3AtY2hpcHMtdG9rZW4taWNvbidcIiAqbmdJZj1cIiFyZW1vdmVUb2tlbkljb25UZW1wbGF0ZVwiIChjbGljayk9XCJyZW1vdmVJdGVtKCRldmVudCwgaSlcIiBbYXR0ci5kYXRhLXBjLXNlY3Rpb25dPVwiJ3JlbW92ZVRva2VuSWNvbidcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyZW1vdmVUb2tlbkljb25UZW1wbGF0ZVwiIGNsYXNzPVwicC1jaGlwcy10b2tlbi1pY29uXCIgKGNsaWNrKT1cInJlbW92ZUl0ZW0oJGV2ZW50LCBpKVwiIFthdHRyLmRhdGEtcGMtc2VjdGlvbl09XCIncmVtb3ZlVG9rZW5JY29uJ1wiIFthdHRyLmFyaWEtaGlkZGVuXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cInJlbW92ZVRva2VuSWNvblRlbXBsYXRlOyBjb250ZXh0OiB7IHJlbW92ZUl0ZW06IHJlbW92ZUl0ZW0uYmluZCh0aGlzKSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9wLWNoaXA+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJwLWlucHV0Y2hpcHMtaW5wdXQtaXRlbVwiIFtuZ0NsYXNzXT1cInsgJ3AtY2hpcHMtY2xlYXJhYmxlJzogc2hvd0NsZWFyICYmICFkaXNhYmxlZCB9XCIgW2F0dHIuZGF0YS1wYy1zZWN0aW9uXT1cIidpbnB1dFRva2VuJ1wiIHJvbGU9XCJvcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAjaW5wdXR0ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpbnB1dElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwidmFsdWUgJiYgdmFsdWUubGVuZ3RoID8gbnVsbCA6IHBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHBhc3RlKT1cIm9uUGFzdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXNNYXhlZE91dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJpbnB1dFN0eWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJpbnB1dFN0eWxlQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcEF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDxsaSAqbmdJZj1cInZhbHVlICE9IG51bGwgJiYgZmlsbGVkICYmICFkaXNhYmxlZCAmJiBzaG93Q2xlYXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPFRpbWVzSWNvbiAqbmdJZj1cIiFjbGVhckljb25UZW1wbGF0ZVwiIFtzdHlsZUNsYXNzXT1cIidwLWNoaXBzLWNsZWFyLWljb24nXCIgKGNsaWNrKT1cImNsZWFyKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNsZWFySWNvblRlbXBsYXRlXCIgY2xhc3M9XCJwLWNoaXBzLWNsZWFyLWljb25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xlYXJJY29uVGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgIDwvZGl2PlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3AtZWxlbWVudCBwLWlucHV0d3JhcHBlcicsXG4gICAgICAgICdbY2xhc3MucC1pbnB1dHdyYXBwZXItZmlsbGVkXSc6ICdmaWxsZWQnLFxuICAgICAgICAnW2NsYXNzLnAtaW5wdXR3cmFwcGVyLWZvY3VzXSc6ICdmb2N1c2VkJyxcbiAgICAgICAgJ1tjbGFzcy5wLWNoaXBzLWNsZWFyYWJsZV0nOiAnc2hvd0NsZWFyJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbQ0hJUFNfVkFMVUVfQUNDRVNTT1IsIENoaXBzU3R5bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgQ2hpcHMgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgZWxlbWVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogV2hlbiBwcmVzZW50LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgZWxlbWVudCBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIHByb3BlcnR5IHRvIGRpc3BsYXkgb24gYSBjaGlwLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGZpZWxkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogQWR2aXNvcnkgaW5mb3JtYXRpb24gdG8gZGlzcGxheSBvbiBpbnB1dC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIE1heGltdW0gbnVtYmVyIG9mIGVudHJpZXMgYWxsb3dlZC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBtYXg6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGxlbmd0aCBvZiBhIGNoaXAuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIHN0cmluZyB0aGF0IGxhYmVscyB0aGUgaW5wdXQgZm9yIGFjY2Vzc2liaWxpdHkuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogRXN0YWJsaXNoZXMgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIHRoZSBjb21wb25lbnQgYW5kIGxhYmVsKHMpIHdoZXJlIGl0cyB2YWx1ZSBzaG91bGQgYmUgb25lIG9yIG1vcmUgZWxlbWVudCBJRHMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgYXJpYUxhYmVsbGVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBJbmRleCBvZiB0aGUgZWxlbWVudCBpbiB0YWJiaW5nIG9yZGVyLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHRhYmluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciBvZiB0aGUgZm9jdXMgaW5wdXQgdG8gbWF0Y2ggYSBsYWJlbCBkZWZpbmVkIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGlucHV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGFsbG93IGR1cGxpY2F0ZSB2YWx1ZXMgb3Igbm90LlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBhbGxvd0R1cGxpY2F0ZTogYm9vbGVhbiA9IHRydWU7XG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIGR1cGxpY2F0aW9uIGNoZWNrIHNob3VsZCBiZSBjYXNlLXNlbnNpdGl2ZVxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjYXNlU2Vuc2l0aXZlRHVwbGljYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIElubGluZSBzdHlsZSBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaW5wdXRTdHlsZTogeyBba2xhc3M6IHN0cmluZ106IGFueSB9IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTdHlsZSBjbGFzcyBvZiB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgaW5wdXRTdHlsZUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgLyoqXG4gICAgICogSWNvbiB0byBkaXNwbGF5IGluIGNoaXAgcmVtb3ZlIGFjdGlvbi4uXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KCkgY2hpcEljb246IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGFkZCBhbiBpdGVtIG9uIHRhYiBrZXkgcHJlc3MuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFkZE9uVGFiOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYWRkIGFuIGl0ZW0gd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGFkZE9uQmx1cjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTZXBhcmF0b3IgY2hhciB0byBhZGQgYW4gaXRlbSB3aGVuIHByZXNzZWQgaW4gYWRkaXRpb24gdG8gdGhlIGVudGVyIGtleS5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzZXBhcmF0b3I6IHN0cmluZyB8IFJlZ0V4cCB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBXaGVuIGVuYWJsZWQsIGEgY2xlYXIgaWNvbiBpcyBkaXNwbGF5ZWQgdG8gY2xlYXIgdGhlIHZhbHVlLlxuICAgICAqIEBncm91cCBQcm9wc1xuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Q2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBXaGVuIHByZXNlbnQsIGl0IHNwZWNpZmllcyB0aGF0IHRoZSBjb21wb25lbnQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgZ2V0IGZvY3VzIG9uIGxvYWQuXG4gICAgICogQGdyb3VwIFByb3BzXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGF1dG9mb2N1czogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBTcGVjaWZpZXMgdGhlIGlucHV0IHZhcmlhbnQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBAZ3JvdXAgUHJvcHNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2YXJpYW50OiAnZmlsbGVkJyB8ICdvdXRsaW5lZCcgPSAnb3V0bGluZWQnO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBjaGlwIGFkZC5cbiAgICAgKiBAcGFyYW0ge0NoaXBzQWRkRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIGNoaXAgYWRkIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkFkZDogRXZlbnRFbWl0dGVyPENoaXBzQWRkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwc0FkZEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBjaGlwIHJlbW92ZS5cbiAgICAgKiBAcGFyYW0ge0NoaXBzUmVtb3ZlRXZlbnR9IGV2ZW50IC0gQ3VzdG9tIGNoaXAgcmVtb3ZlIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvblJlbW92ZTogRXZlbnRFbWl0dGVyPENoaXBzUmVtb3ZlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwc1JlbW92ZUV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBmb2N1cyBvZiBpbnB1dCBmaWVsZC5cbiAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudCAtIEJyb3dzZXIgZXZlbnQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICAgIC8qKlxuICAgICAqIENhbGxiYWNrIHRvIGludm9rZSBvbiBibHVyIG9mIGlucHV0IGZpZWxkLlxuICAgICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IC0gQnJvd3NlciBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25CbHVyOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugb24gY2hpcCBjbGlja2VkLlxuICAgICAqIEBwYXJhbSB7Q2hpcHNDbGlja0V2ZW50fSBldmVudCAtIEN1c3RvbSBjaGlwIGNsaWNrIGV2ZW50LlxuICAgICAqIEBncm91cCBFbWl0c1xuICAgICAqL1xuICAgIEBPdXRwdXQoKSBvbkNoaXBDbGljazogRXZlbnRFbWl0dGVyPENoaXBzQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENoaXBzQ2xpY2tFdmVudD4oKTtcbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugb24gY2hpcCBjb250ZXh0bWVudS5cbiAgICAgKiBAcGFyYW0ge0NoaXBzQ2xpY2tFdmVudH0gZXZlbnQgLSBDdXN0b20gY2hpcCBjb250ZXh0bWVudSBldmVudC5cbiAgICAgKiBAZ3JvdXAgRW1pdHNcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25DaGlwQ29udGV4dE1lbnU6IEV2ZW50RW1pdHRlcjxDaGlwc0NvbnRleHRNZW51RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGlwc0NvbnRleHRNZW51RXZlbnQ+KCk7XG4gICAgLyoqXG4gICAgICogQ2FsbGJhY2sgdG8gaW52b2tlIG9uIGNsZWFyIHRva2VuIGNsaWNrZWQuXG4gICAgICogQGdyb3VwIEVtaXRzXG4gICAgICovXG4gICAgQE91dHB1dCgpIG9uQ2xlYXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dHRleHQnKSBpbnB1dFZpZXdDaGlsZCE6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXJWaWV3Q2hpbGQhOiBFbGVtZW50UmVmO1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihQcmltZVRlbXBsYXRlKSB0ZW1wbGF0ZXMhOiBRdWVyeUxpc3Q8YW55PjtcblxuICAgIHB1YmxpYyBpdGVtVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgcmVtb3ZlVG9rZW5JY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgY2xlYXJJY29uVGVtcGxhdGU6IE51bGxhYmxlPFRlbXBsYXRlUmVmPGFueT4+O1xuXG4gICAgdmFsdWU6IGFueTtcblxuICAgIG9uTW9kZWxDaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4ge307XG5cbiAgICBvbk1vZGVsVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7fTtcblxuICAgIHZhbHVlQ2hhbmdlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBpZCA9IFVuaXF1ZUNvbXBvbmVudElkKCk7XG5cbiAgICBmb2N1c2VkOiBOdWxsYWJsZTxib29sZWFuPjtcblxuICAgIGZvY3VzZWRJbmRleDogTnVsbGFibGU8bnVtYmVyPjtcblxuICAgIGZpbGxlZDogTnVsbGFibGU8Ym9vbGVhbj47XG5cbiAgICBfY29tcG9uZW50U3R5bGUgPSBpbmplY3QoQ2hpcHNTdHlsZSk7XG5cbiAgICBnZXQgZm9jdXNlZE9wdGlvbklkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkSW5kZXggIT09IG51bGwgPyBgJHt0aGlzLmlkfV9jaGlwc19pdGVtXyR7dGhpcy5mb2N1c2VkSW5kZXh9YCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGlzTWF4ZWRPdXQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1heCAmJiB0aGlzLnZhbHVlICYmIHRoaXMubWF4ID09PSB0aGlzLnZhbHVlLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwdWJsaWMgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwdWJsaWMgY29uZmlnOiBQcmltZU5HXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdEZXByZWNhdGVkIHNpbmNlIHYxOC4gVXNlIEF1dG9Db21wbGV0ZSBjb21wb25lbnQgaW5zdGVhZCB3aXRoIGl0cyB0eXBlYWhlYWQgcHJvcGVydHkuJyk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLnRlbXBsYXRlcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBzd2l0Y2ggKGl0ZW0uZ2V0VHlwZSgpKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnaXRlbSc6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXRlbVRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdyZW1vdmV0b2tlbmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVRva2VuSWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBjYXNlICdjbGVhcmljb24nOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFySWNvblRlbXBsYXRlID0gaXRlbS50ZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1UZW1wbGF0ZSA9IGl0ZW0udGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG4gICAgfVxuXG4gICAgb25XcmFwcGVyQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuaW5wdXRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvbkNvbnRhaW5lckZvY3VzKCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ29udGFpbmVyQmx1cigpIHtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXggPSAtMTtcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Db250YWluZXJLZXlEb3duKGV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0JzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uQXJyb3dMZWZ0S2V5T24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnQXJyb3dSaWdodCc6XG4gICAgICAgICAgICAgICAgdGhpcy5vbkFycm93UmlnaHRLZXlPbigpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdCYWNrc3BhY2UnOlxuICAgICAgICAgICAgICAgIHRoaXMub25CYWNrc3BhY2VLZXlPbihldmVudCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1NwYWNlJzpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkSW5kZXggIT09IG51bGwgJiYgdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldmVudCwgdGhpcy52YWx1ZVt0aGlzLmZvY3VzZWRJbmRleF0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dMZWZ0S2V5T24oKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoID09PSAwICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuZm9jdXNlZEluZGV4ID09PSBudWxsID8gdGhpcy52YWx1ZS5sZW5ndGggLSAxIDogdGhpcy5mb2N1c2VkSW5kZXggLSAxO1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEluZGV4IDwgMCkgdGhpcy5mb2N1c2VkSW5kZXggPSAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd1JpZ2h0S2V5T24oKSB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQudmFsdWUubGVuZ3RoID09PSAwICYmIHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5mb2N1c2VkSW5kZXggPT09IHRoaXMudmFsdWUubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Vmlld0NoaWxkPy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNlZEluZGV4Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJhY2tzcGFjZUtleU9uKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGV2ZW50LCB0aGlzLmZvY3VzZWRJbmRleCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMuZm9jdXNlZEluZGV4ID0gbnVsbDtcbiAgICB9XG5cbiAgICBvblBhc3RlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXN0ZWREYXRhOiBzdHJpbmcgPSAoZXZlbnQuY2xpcGJvYXJkRGF0YSB8fCAodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldyBhcyBhbnkpWydjbGlwYm9hcmREYXRhJ10pLmdldERhdGEoJ1RleHQnKTtcbiAgICAgICAgICAgICAgICBwYXN0ZWREYXRhLnNwbGl0KHRoaXMuc2VwYXJhdG9yKS5mb3JFYWNoKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZXZlbnQsIHZhbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUZpbGxlZFN0YXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuZmlsbGVkID0gdGhpcy5pbnB1dFZpZXdDaGlsZCAmJiB0aGlzLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnZhbHVlICE9ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5maWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoaXBDbGljay5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ29udGV4dE1lbnUoZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoaXBDb250ZXh0TWVudS5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVNYXhlZE91dCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKHZhbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdmFsO1xuICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cblxuICAgIHJlc29sdmVGaWVsZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKGRhdGEgJiYgZmllbGQpIHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YVtmaWVsZF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBmaWVsZHM6IHN0cmluZ1tdID0gZmllbGQuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBkYXRhO1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBmaWVsZHMubGVuZ3RoOyBpIDwgbGVuOyArK2kpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZVtmaWVsZHNbaV1dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSW5wdXRGb2N1cyhldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IG51bGw7XG4gICAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbklucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCkge1xuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXggPSBudWxsO1xuICAgICAgICBpZiAodGhpcy5hZGRPbkJsdXIgJiYgdGhpcy5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZXZlbnQsIHRoaXMuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC52YWx1ZSwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25Nb2RlbFRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5vbkJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShldmVudDogRXZlbnQsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCByZW1vdmVkSXRlbSA9IHRoaXMudmFsdWVbaW5kZXhdO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS5maWx0ZXIoKHZhbDogYW55LCBpOiBudW1iZXIpID0+IGkgIT0gaW5kZXgpO1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5vblJlbW92ZS5lbWl0KHtcbiAgICAgICAgICAgIG9yaWdpbmFsRXZlbnQ6IGV2ZW50LFxuICAgICAgICAgICAgdmFsdWU6IHJlbW92ZWRJdGVtXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMudXBkYXRlTWF4ZWRPdXQoKTtcbiAgICB9XG5cbiAgICBhZGRJdGVtKGV2ZW50OiBFdmVudCwgaXRlbTogc3RyaW5nLCBwcmV2ZW50RGVmYXVsdDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZSB8fCBbXTtcblxuICAgICAgICBpZiAoaXRlbSAmJiBpdGVtLnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0l0ZW1Jc0R1cGxpY2F0ZSA9IHRoaXMuY2FzZVNlbnNpdGl2ZUR1cGxpY2F0aW9uID8gdGhpcy52YWx1ZS5pbmNsdWRlcyhpdGVtKSA6IHRoaXMudmFsdWUuc29tZSgodmFsKSA9PiB2YWwudG9Mb3dlckNhc2UoKSA9PT0gaXRlbS50b0xvd2VyQ2FzZSgpKTtcblxuICAgICAgICAgICAgaWYgKCh0aGlzLmFsbG93RHVwbGljYXRlIHx8ICFuZXdJdGVtSXNEdXBsaWNhdGUpICYmICF0aGlzLmlzTWF4ZWRPdXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIGl0ZW1dO1xuICAgICAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQWRkLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEV2ZW50OiBldmVudCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVNYXhlZE91dCgpO1xuICAgICAgICB0aGlzLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcblxuICAgICAgICBpZiAocHJldmVudERlZmF1bHQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxsYmFjayB0byBpbnZva2Ugb24gZmlsdGVyIHJlc2V0LlxuICAgICAqIEBncm91cCBNZXRob2RcbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy51cGRhdGVNYXhlZE91dCgpO1xuICAgICAgICB0aGlzLm9uQ2xlYXIuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudCkge1xuICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xuICAgICAgICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXRWYWx1ZS5sZW5ndGggPT09IDAgJiYgdGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9jdXNlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUl0ZW0oZXZlbnQsIHRoaXMuZm9jdXNlZEluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHRoaXMucmVtb3ZlSXRlbShldmVudCwgdGhpcy52YWx1ZS5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgY2FzZSAnTnVtcGFkRW50ZXInOlxuICAgICAgICAgICAgICAgIGlmIChpbnB1dFZhbHVlICYmIGlucHV0VmFsdWUudHJpbSgpLmxlbmd0aCAmJiAhdGhpcy5pc01heGVkT3V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbShldmVudCwgaW5wdXRWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYWRkT25UYWIgJiYgaW5wdXRWYWx1ZSAmJiBpbnB1dFZhbHVlLnRyaW0oKS5sZW5ndGggJiYgIXRoaXMuaXNNYXhlZE91dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZEl0ZW0oZXZlbnQsIGlucHV0VmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIGlmIChpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lclZpZXdDaGlsZD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zZXBhcmF0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc2VwYXJhdG9yID09PSBldmVudC5rZXkgfHwgZXZlbnQua2V5Lm1hdGNoKHRoaXMuc2VwYXJhdG9yKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRJdGVtKGV2ZW50LCBpbnB1dFZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlTWF4ZWRPdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0Vmlld0NoaWxkICYmIHRoaXMuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNNYXhlZE91dCkge1xuICAgICAgICAgICAgICAgIC8vIENhbGxpbmcgYGJsdXJgIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGZpcmVmb3ggZG9lcyBub3QgY2FsbCBgb25mb2N1c2AgZXZlbnRzXG4gICAgICAgICAgICAgICAgLy8gZm9yIGRpc2FibGVkIGlucHV0cywgdW5saWtlIGNocm9taXVtIGJyb3dzZXJzLlxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRWaWV3Q2hpbGQubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dFZpZXdDaGlsZC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0Vmlld0NoaWxkLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDaGlwcywgU2hhcmVkTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbQ2hpcHMsIFNoYXJlZE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgQ2hpcHNNb2R1bGUge31cbiJdfQ==
|