@adyen/bento-vue2 1.54.2 → 1.55.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/dist/@types/index.d.ts +20 -2
- package/dist/action-bar.js +1 -1
- package/dist/alert.js +1 -1
- package/dist/assets/accordion-item.css +1 -1
- package/dist/assets/action-bar.css +1 -1
- package/dist/assets/base-modal.css +1 -1
- package/dist/assets/button.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/copy.css +1 -1
- package/dist/assets/dashboard-section.css +1 -1
- package/dist/assets/data-grid-template.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/date-range-picker.css +1 -1
- package/dist/assets/dialog-page.css +1 -1
- package/dist/assets/dropdown-default-textbox.css +1 -1
- package/dist/assets/dropdown.css +1 -1
- package/dist/assets/file-uploader.css +1 -1
- package/dist/assets/filter-bar.css +1 -1
- package/dist/assets/focus-trap.css +1 -1
- package/dist/assets/input-field-phone-number.css +1 -1
- package/dist/assets/inspector.css +1 -1
- package/dist/assets/link.css +1 -1
- package/dist/assets/menu.css +1 -1
- package/dist/assets/modal-fullscreen.css +1 -1
- package/dist/assets/popover.css +1 -1
- package/dist/assets/popper-container.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/assets/tabs.css +1 -1
- package/dist/assets/teleport.css +1 -1
- package/dist/assets/use-cached-selected-values.css +1 -1
- package/dist/button.js +3 -3
- package/dist/card.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chunks/{action-bar.CH1Mswou.js → action-bar.DQ1JoKzt.js} +5 -5
- package/dist/chunks/{action-bar.CH1Mswou.js.map → action-bar.DQ1JoKzt.js.map} +1 -1
- package/dist/chunks/{alert.BkMKX9wD.js → alert.C5Y5RBx9.js} +2 -2
- package/dist/chunks/{alert.BkMKX9wD.js.map → alert.C5Y5RBx9.js.map} +1 -1
- package/dist/chunks/{base-modal.B4TNcOz9.js → base-modal.CEHMcrwC.js} +15 -15
- package/dist/chunks/{base-modal.B4TNcOz9.js.map → base-modal.CEHMcrwC.js.map} +1 -1
- package/dist/chunks/{button-actions-with-menu.mqNecwDb.js → button-actions-with-menu.BehknT6F.js} +4 -4
- package/dist/chunks/{button-actions-with-menu.mqNecwDb.js.map → button-actions-with-menu.BehknT6F.js.map} +1 -1
- package/dist/chunks/{button-actions.XlUhz42n.js → button-actions.C5Dp4DeK.js} +2 -2
- package/dist/chunks/{button-actions.XlUhz42n.js.map → button-actions.C5Dp4DeK.js.map} +1 -1
- package/dist/chunks/{button.D-3uUhuG.js → button.DUApwEu1.js} +2 -2
- package/dist/chunks/button.DUApwEu1.js.map +1 -0
- package/dist/chunks/{calendar.D4dMXwc0.js → calendar.C9bRwE-l.js} +2 -2
- package/dist/chunks/calendar.C9bRwE-l.js.map +1 -0
- package/dist/chunks/{card.BT04hjvV.js → card.Ba5Jqezr.js} +2 -2
- package/dist/chunks/{card.BT04hjvV.js.map → card.Ba5Jqezr.js.map} +1 -1
- package/dist/chunks/{checkbox-group.DZF4UIym.js → checkbox-group.COqNevz5.js} +4 -4
- package/dist/chunks/{checkbox-group.DZF4UIym.js.map → checkbox-group.COqNevz5.js.map} +1 -1
- package/dist/chunks/{checkbox.DloQJI-K.js → checkbox.LFeWM5p4.js} +3 -3
- package/dist/chunks/{checkbox.DloQJI-K.js.map → checkbox.LFeWM5p4.js.map} +1 -1
- package/dist/chunks/{code-snippet.eHqicJXk.js → code-snippet.Q1HB3T_K.js} +6 -6
- package/dist/chunks/{code-snippet.eHqicJXk.js.map → code-snippet.Q1HB3T_K.js.map} +1 -1
- package/dist/chunks/{controls-group.C-HKhH1m.js → controls-group.B-JUz-ir.js} +2 -2
- package/dist/chunks/{controls-group.C-HKhH1m.js.map → controls-group.B-JUz-ir.js.map} +1 -1
- package/dist/chunks/{copy.k18tXmP1.js → copy.C7gFAgeL.js} +9 -9
- package/dist/chunks/{copy.k18tXmP1.js.map → copy.C7gFAgeL.js.map} +1 -1
- package/dist/chunks/{dashboard-section.DlIwNKkx.js → dashboard-section.Cn7UfGjF.js} +47 -50
- package/dist/chunks/dashboard-section.Cn7UfGjF.js.map +1 -0
- package/dist/chunks/{dashed-underline.BbQIbZfu.js → dashed-underline.0K0Xbu6k.js} +3 -3
- package/dist/chunks/{dashed-underline.BbQIbZfu.js.map → dashed-underline.0K0Xbu6k.js.map} +1 -1
- package/dist/chunks/data-grid-template.Bm08fIsa.js +69 -0
- package/dist/chunks/data-grid-template.Bm08fIsa.js.map +1 -0
- package/dist/chunks/{data-grid.BTxmzkic.js → data-grid.C8S9cY5p.js} +1181 -1095
- package/dist/chunks/data-grid.C8S9cY5p.js.map +1 -0
- package/dist/chunks/{date-picker.Dy0k-7_1.js → date-picker.DPSJvBlj.js} +5 -5
- package/dist/chunks/{date-picker.Dy0k-7_1.js.map → date-picker.DPSJvBlj.js.map} +1 -1
- package/dist/chunks/{date-range-picker.nTv7S5oB.js → date-range-picker.B03wCOPP.js} +27 -24
- package/dist/chunks/date-range-picker.B03wCOPP.js.map +1 -0
- package/dist/chunks/{dialog-page.BfF5_hmG.js → dialog-page.C8iNK4bf.js} +2 -2
- package/dist/chunks/{dialog-page.BfF5_hmG.js.map → dialog-page.C8iNK4bf.js.map} +1 -1
- package/dist/chunks/{dropdown-default-textbox.CDTdHfTv.js → dropdown-default-textbox.AUsF-RIc.js} +18 -18
- package/dist/chunks/{dropdown-default-textbox.CDTdHfTv.js.map → dropdown-default-textbox.AUsF-RIc.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.B15dzpe3.js → dropdown-tag.DUlkje2L.js} +3 -3
- package/dist/chunks/{dropdown-tag.B15dzpe3.js.map → dropdown-tag.DUlkje2L.js.map} +1 -1
- package/dist/chunks/{dropdown.CFBycvtL.js → dropdown.DihPVajz.js} +31 -31
- package/dist/chunks/{dropdown.CFBycvtL.js.map → dropdown.DihPVajz.js.map} +1 -1
- package/dist/chunks/{empty-state.JbgxSrnv.js → empty-state.aBO3bh4N.js} +2 -2
- package/dist/chunks/{empty-state.JbgxSrnv.js.map → empty-state.aBO3bh4N.js.map} +1 -1
- package/dist/chunks/{error-message.qHRfH-8Y.js → error-message.7bsic_sK.js} +2 -2
- package/dist/chunks/{error-message.qHRfH-8Y.js.map → error-message.7bsic_sK.js.map} +1 -1
- package/dist/chunks/es6.BtaxuP0b.js.map +1 -1
- package/dist/chunks/{file-uploader.CKcv6q6S.js → file-uploader.P_s39Esv.js} +5 -5
- package/dist/chunks/{file-uploader.CKcv6q6S.js.map → file-uploader.P_s39Esv.js.map} +1 -1
- package/dist/chunks/{filter-bar.Cu4I3kJB.js → filter-bar.Djv7J4G1.js} +31 -28
- package/dist/chunks/filter-bar.Djv7J4G1.js.map +1 -0
- package/dist/chunks/{fixed-scroller.BwvXYzE6.js → fixed-scroller.C7Eug22g.js} +2 -2
- package/dist/chunks/{fixed-scroller.BwvXYzE6.js.map → fixed-scroller.C7Eug22g.js.map} +1 -1
- package/dist/chunks/{focus-trap.V3Q8H_5C.js → focus-trap.DEHn1dxN.js} +6 -6
- package/dist/chunks/{focus-trap.V3Q8H_5C.js.map → focus-trap.DEHn1dxN.js.map} +1 -1
- package/dist/chunks/{footer-actions.DYi_MR9I.js → footer-actions.CNNRHYLb.js} +3 -3
- package/dist/chunks/{footer-actions.DYi_MR9I.js.map → footer-actions.CNNRHYLb.js.map} +1 -1
- package/dist/chunks/{form-layout-title.DK1-01RH.js → form-layout-title.C9P21KnX.js} +2 -2
- package/dist/chunks/{form-layout-title.DK1-01RH.js.map → form-layout-title.C9P21KnX.js.map} +1 -1
- package/dist/chunks/{header-with-views.ugNWdbC8.js → header-with-views.siHZ-MsA.js} +13 -13
- package/dist/chunks/{header-with-views.ugNWdbC8.js.map → header-with-views.siHZ-MsA.js.map} +1 -1
- package/dist/chunks/{header.DWx6s2nt.js → header.BXGTPqZK.js} +4 -4
- package/dist/chunks/{header.DWx6s2nt.js.map → header.BXGTPqZK.js.map} +1 -1
- package/dist/chunks/i18n.BQkEbtPM.js.map +1 -1
- package/dist/chunks/{info-icon-with-popover.B4wYDzGz.js → info-icon-with-popover.CdZ1_8hG.js} +2 -2
- package/dist/chunks/{info-icon-with-popover.B4wYDzGz.js.map → info-icon-with-popover.CdZ1_8hG.js.map} +1 -1
- package/dist/chunks/{info-icon.J62KXp9I.js → info-icon.Dn0FHy-U.js} +3 -3
- package/dist/chunks/{info-icon.J62KXp9I.js.map → info-icon.Dn0FHy-U.js.map} +1 -1
- package/dist/chunks/{input-field-password.DCcG3ju1.js → input-field-password.Dz_8fr0j.js} +6 -6
- package/dist/chunks/{input-field-password.DCcG3ju1.js.map → input-field-password.Dz_8fr0j.js.map} +1 -1
- package/dist/chunks/{input-field-phone-number.BxP8LyD-.js → input-field-phone-number.CPlRrAGe.js} +8 -12
- package/dist/chunks/{input-field-phone-number.BxP8LyD-.js.map → input-field-phone-number.CPlRrAGe.js.map} +1 -1
- package/dist/chunks/{input-field.BUj99rZv.js → input-field.DcOnDLTc.js} +3 -3
- package/dist/chunks/{input-field.BUj99rZv.js.map → input-field.DcOnDLTc.js.map} +1 -1
- package/dist/chunks/{inspector.types.Cmq6sdCz.js → inspector.types.D1m792RZ.js} +3 -3
- package/dist/chunks/{inspector.types.Cmq6sdCz.js.map → inspector.types.D1m792RZ.js.map} +1 -1
- package/dist/chunks/keyboard-navigation.pB8weElW.js.map +1 -1
- package/dist/chunks/{listbox-option-tag.BHI-8rRX.js → listbox-option-tag.BSQ8bM-O.js} +2 -2
- package/dist/chunks/{listbox-option-tag.BHI-8rRX.js.map → listbox-option-tag.BSQ8bM-O.js.map} +1 -1
- package/dist/chunks/{menu.BoxhffPs.js → menu.DFatjXpw.js} +5 -6
- package/dist/chunks/menu.DFatjXpw.js.map +1 -0
- package/dist/chunks/{modal-fullscreen.E7e13pW9.js → modal-fullscreen._NBj0IXu.js} +5 -5
- package/dist/chunks/{modal-fullscreen.E7e13pW9.js.map → modal-fullscreen._NBj0IXu.js.map} +1 -1
- package/dist/chunks/{modal.n7b-ITaf.js → modal.CpZzd8fG.js} +5 -5
- package/dist/chunks/{modal.n7b-ITaf.js.map → modal.CpZzd8fG.js.map} +1 -1
- package/dist/chunks/{pagination.eAo5wz5D.js → pagination.PQCpgVVF.js} +3 -3
- package/dist/chunks/{pagination.eAo5wz5D.js.map → pagination.PQCpgVVF.js.map} +1 -1
- package/dist/chunks/{popover.C4PNSrnW.js → popover.BVLuUYSi.js} +4 -4
- package/dist/chunks/{popover.C4PNSrnW.js.map → popover.BVLuUYSi.js.map} +1 -1
- package/dist/chunks/{popper-container.DWY19wS0.js → popper-container.DieshXa8.js} +3 -3
- package/dist/chunks/{popper-container.DWY19wS0.js.map → popper-container.DieshXa8.js.map} +1 -1
- package/dist/chunks/{promo-banner.DgCKKp6o.js → promo-banner.C4jiwSeA.js} +2 -2
- package/dist/chunks/{promo-banner.DgCKKp6o.js.map → promo-banner.C4jiwSeA.js.map} +1 -1
- package/dist/chunks/{radio-group.WbbrQhEO.js → radio-group.BuKC_n23.js} +4 -4
- package/dist/chunks/{radio-group.WbbrQhEO.js.map → radio-group.BuKC_n23.js.map} +1 -1
- package/dist/chunks/{search-bar.C-DwowF7.js → search-bar.BPnYyZ9S.js} +3 -3
- package/dist/chunks/{search-bar.C-DwowF7.js.map → search-bar.BPnYyZ9S.js.map} +1 -1
- package/dist/chunks/{secondary-nav.CTeYViOR.js → secondary-nav.CDykzeRU.js} +2 -2
- package/dist/chunks/{secondary-nav.CTeYViOR.js.map → secondary-nav.CDykzeRU.js.map} +1 -1
- package/dist/chunks/{segmented-control.DGNMY2BP.js → segmented-control.CCgCeLDQ.js} +2 -2
- package/dist/chunks/{segmented-control.DGNMY2BP.js.map → segmented-control.CCgCeLDQ.js.map} +1 -1
- package/dist/chunks/{selection-card-group.BmKUEuny.js → selection-card-group.Dj9wWfmY.js} +3 -3
- package/dist/chunks/{selection-card-group.BmKUEuny.js.map → selection-card-group.Dj9wWfmY.js.map} +1 -1
- package/dist/chunks/{sidepanel.Bnw4accy.js → sidepanel.DcBdDgec.js} +10 -10
- package/dist/chunks/{sidepanel.Bnw4accy.js.map → sidepanel.DcBdDgec.js.map} +1 -1
- package/dist/chunks/{structured-list-item.Co5P9bFC.js → structured-list-item.w0GVxwQf.js} +5 -5
- package/dist/chunks/{structured-list-item.Co5P9bFC.js.map → structured-list-item.w0GVxwQf.js.map} +1 -1
- package/dist/chunks/{summary-grid.types.egM7irBt.js → summary-grid.types.DoD7Ls0O.js} +5 -5
- package/dist/chunks/{summary-grid.types.egM7irBt.js.map → summary-grid.types.DoD7Ls0O.js.map} +1 -1
- package/dist/chunks/tabs.T3A3YNdF.js +205 -0
- package/dist/chunks/tabs.T3A3YNdF.js.map +1 -0
- package/dist/chunks/{tag.CyspYb1E.js → tag.C7ATWnRW.js} +2 -2
- package/dist/chunks/{tag.CyspYb1E.js.map → tag.C7ATWnRW.js.map} +1 -1
- package/dist/chunks/{teleport.BHfrns33.js → teleport.5oodkxuB.js} +6 -6
- package/dist/chunks/teleport.5oodkxuB.js.map +1 -0
- package/dist/chunks/{textarea.CC8esIW6.js → textarea.CrPdkIGL.js} +3 -3
- package/dist/chunks/{textarea.CC8esIW6.js.map → textarea.CrPdkIGL.js.map} +1 -1
- package/dist/chunks/{timeline-item.Byorbxmc.js → timeline-item.B6XTUyr8.js} +6 -6
- package/dist/chunks/{timeline-item.Byorbxmc.js.map → timeline-item.B6XTUyr8.js.map} +1 -1
- package/dist/chunks/{toast.DqSWycRO.js → toast.CjJW9t4G.js} +2 -2
- package/dist/chunks/{toast.DqSWycRO.js.map → toast.CjJW9t4G.js.map} +1 -1
- package/dist/chunks/{toggle-button.DgSFugBP.js → toggle-button.Dj2uoRyw.js} +2 -2
- package/dist/chunks/{toggle-button.DgSFugBP.js.map → toggle-button.Dj2uoRyw.js.map} +1 -1
- package/dist/chunks/{tooltip.DOvci5lX.js → tooltip.CfER_5In.js} +2 -2
- package/dist/chunks/{tooltip.DOvci5lX.js.map → tooltip.CfER_5In.js.map} +1 -1
- package/dist/chunks/{tutorial.QwHbq1FO.js → tutorial.CTzjDY6m.js} +5 -5
- package/dist/chunks/{tutorial.QwHbq1FO.js.map → tutorial.CTzjDY6m.js.map} +1 -1
- package/dist/chunks/{use-cached-selected-values.DHpjo2tV.js → use-cached-selected-values.D6lOsd0o.js} +431 -422
- package/dist/chunks/use-cached-selected-values.D6lOsd0o.js.map +1 -0
- package/dist/code-snippet.js +1 -1
- package/dist/dashboard-template.js +1 -1
- package/dist/dashed-underline.js +1 -1
- package/dist/data-grid-template.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/date-picker.js +2 -2
- package/dist/date-range-picker.js +2 -2
- package/dist/dropdown.js +4 -4
- package/dist/empty-state.js +1 -1
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/focus-trap.js +1 -1
- package/dist/form-layout.js +1 -1
- package/dist/header-with-views.js +1 -1
- package/dist/header.js +1 -1
- package/dist/index.js +54 -54
- package/dist/info-icon.js +1 -1
- package/dist/input-field-password.js +1 -1
- package/dist/input-field-phone-number.js +1 -1
- package/dist/input-field.js +1 -1
- package/dist/inspector.js +1 -1
- package/dist/internal.js +13 -13
- package/dist/menu.js +1 -1
- package/dist/modal-fullscreen.js +1 -1
- package/dist/modal.js +2 -2
- package/dist/pagination.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/popper-container.js +1 -1
- package/dist/promo-banner.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/search-bar.js +2 -2
- package/dist/secondary-nav.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/sidepanel.js +1 -1
- package/dist/structured-list.js +1 -1
- package/dist/styles/bento-dark.css +8 -4
- package/dist/styles/bento-light.css +8 -4
- package/dist/styles/bento.css +8 -4
- package/dist/styles/legacy.css +8 -5
- package/dist/styles/styleguide.css +8 -4
- package/dist/summary-grid.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tag.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/tutorial.js +1 -1
- package/dist/web-types.json +85 -5
- package/package.json +18 -6
- package/dist/chunks/button.D-3uUhuG.js.map +0 -1
- package/dist/chunks/calendar.D4dMXwc0.js.map +0 -1
- package/dist/chunks/dashboard-section.DlIwNKkx.js.map +0 -1
- package/dist/chunks/data-grid-template.BJTWe6Ty.js +0 -69
- package/dist/chunks/data-grid-template.BJTWe6Ty.js.map +0 -1
- package/dist/chunks/data-grid.BTxmzkic.js.map +0 -1
- package/dist/chunks/date-range-picker.nTv7S5oB.js.map +0 -1
- package/dist/chunks/filter-bar.Cu4I3kJB.js.map +0 -1
- package/dist/chunks/menu.BoxhffPs.js.map +0 -1
- package/dist/chunks/tabs.C8CgvNt4.js +0 -214
- package/dist/chunks/tabs.C8CgvNt4.js.map +0 -1
- package/dist/chunks/teleport.BHfrns33.js.map +0 -1
- package/dist/chunks/use-cached-selected-values.DHpjo2tV.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.
|
|
1
|
+
{"version":3,"file":"copy.C7gFAgeL.js","sources":["../../src/components/internal/copy/copy.types.ts","../../../ui-assets/icons-16/dist/vue/copy.vue","../../src/components/internal/copy/copy.vue"],"sourcesContent":["import type { BentoButton } from '../../button';\n\nexport enum CopyTooltipState {\n DEFAULT = 'default',\n COPYING = 'copying',\n ERROR = 'error',\n}\n\ntype ButtonProps = InstanceType<typeof BentoButton>['$props'];\nexport type BentoCopyButtonProps = {\n variant?: ButtonProps['variant'];\n condensed?: ButtonProps['condensed'];\n disabled?: ButtonProps['disabled'];\n};\n","\n<template>\n <svg role=\"img\" v-bind=\"$attrs\" class=\"ui-assets-icons-16\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\"><title v-if=\"$attrs['svg-title']\">{{ $attrs['svg-title'] }}</title><path fill=\"#00112C\" d=\"M3.5 1.25C2.25736 1.25 1.25 2.25736 1.25 3.5V8.5C1.25 9.74264 2.25736 10.75 3.5 10.75H5.25V12.5C5.25 13.7426 6.25736 14.75 7.5 14.75H12.5C13.7426 14.75 14.75 13.7426 14.75 12.5V7.5C14.75 6.25736 13.7426 5.25 12.5 5.25H10.75V3.5C10.75 2.25736 9.74264 1.25 8.5 1.25H3.5ZM9.25 5.25H7.5C6.25736 5.25 5.25 6.25736 5.25 7.5V9.25H3.5C3.08579 9.25 2.75 8.91421 2.75 8.5V3.5C2.75 3.08579 3.08579 2.75 3.5 2.75H8.5C8.91421 2.75 9.25 3.08579 9.25 3.5V5.25ZM6.75 12.5V7.5C6.75 7.08579 7.08579 6.75 7.5 6.75H12.5C12.9142 6.75 13.25 7.08579 13.25 7.5V12.5C13.25 12.9142 12.9142 13.25 12.5 13.25H7.5C7.08579 13.25 6.75 12.9142 6.75 12.5Z\"/></svg>\n</template>\n<script>\n import '../css/main.css';\n\n let uuid = 0;\n\n export default {\n beforeCreate() {\n this.uuid = uuid.toString();\n uuid += 1;\n },\n };\n</script>\n","<template>\n <div class=\"b-copy\" @mouseleave=\"resetText\" @focusout=\"resetText\">\n <span v-if=\"$slots.default\" v-bento-tooltip-directive:[tooltipPosition]=\"copyText\" @click=\"onClickCopy\">\n <slot />\n </span>\n <bento-button\n v-else\n v-bento-tooltip-directive:[tooltipPosition]=\"copyText\"\n v-bind=\"button\"\n @click=\"onClickCopy\"\n >\n <template #iconLeft>\n <copy-icon :svg-title=\"svgTitle\" />\n </template>\n <template v-if=\"buttonText\" #default>\n {{ buttonText }}\n </template>\n </bento-button>\n <div v-if=\"showScreenReaderAlert\" role=\"alert\" class=\"b-copy__screen-reader-alert\">{{ t('copied') }}</div>\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref } from 'vue';\n import { BentoButton } from '@/components/button';\n import { PopperContainerPosition } from '@/components/popper-container';\n import { BentoTooltipDirective } from '@/directives';\n import { useI18n } from '@/utils/ts/i18n';\n import { BentoCopyButtonProps, CopyTooltipState } from './copy.types';\n import CopyIcon from '@adyen/ui-assets-icons-16/vue/copy';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n /**\n * An internal button component that copies text to the user's clipboard.\n *\n * @example\n * import { Copy } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { Copy },\n * template: `\n * <copy :text=\"textToCopy\" />\n * `\n * }\n */\n export default defineComponent({\n i18n: { messages },\n name: 'copy',\n components: { BentoButton, CopyIcon },\n directives: { BentoTooltipDirective },\n props: {\n /**\n * Object containing props to change the menu button appearance. Accepts the same props present in BentoButton.\n */\n button: {\n type: Object as PropType<BentoCopyButtonProps>,\n default: () =>\n ({\n variant: 'tertiary',\n } as BentoCopyButtonProps),\n },\n\n /**\n * Sets the button text of the copy button.\n */\n buttonText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Defines the string that will get copied to the clipboard\n */\n text: {\n type: String,\n required: true,\n },\n\n /**\n * Position the tooltip should take if space is available. Defaults to 'top'\n */\n tooltipPosition: {\n type: String as PropType<PopperContainerPosition>,\n default: PopperContainerPosition.TOP,\n },\n },\n setup(props) {\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const copyState = ref<CopyTooltipState>(CopyTooltipState.DEFAULT);\n\n const showScreenReaderAlert = ref(false);\n const onClickCopy = async () => {\n try {\n await navigator.clipboard.writeText(props.text);\n copyState.value = CopyTooltipState.COPYING;\n showScreenReaderAlert.value = true;\n } catch {\n copyState.value = CopyTooltipState.ERROR;\n }\n };\n\n const resetText = () => {\n copyState.value = CopyTooltipState.DEFAULT;\n showScreenReaderAlert.value = false;\n };\n\n const copyText = computed(() => {\n switch (copyState.value) {\n case CopyTooltipState.COPYING:\n return t('copied');\n case CopyTooltipState.ERROR:\n return t('copyFailed');\n case CopyTooltipState.DEFAULT:\n default:\n return t('copy');\n }\n });\n\n const svgTitle = computed(() => (props?.buttonText ? undefined : t('copy')));\n\n return {\n copyText,\n onClickCopy,\n resetText,\n showScreenReaderAlert,\n svgTitle,\n\n // Translations\n t,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./copy.scss\" />\n"],"names":["CopyTooltipState","CopyTooltipState2","uuid","_sfc_main$1","_sfc_main","defineComponent","messages","BentoButton","CopyIcon","BentoTooltipDirective","PopperContainerPosition","props","useI18n","copyState","ref","showScreenReaderAlert","onClickCopy","resetText","copyText","computed","svgTitle"],"mappings":";;;;;;;;AAEY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,QAAA,SAHQA,IAAAD,KAAA,CAAA,CAAA;ACKZ,IAAAE,IAAA;AAEA,MAAAC,IAAA;AAAA,EACA,eAAA;AACA,SAAA,OAAAD,EAAA,SAAA,GACAA,KAAA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;GCiCAE,IAAAC,EAAA;AAAA,EAAA,MAAA,EAAA,UAAAC,EAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA,EAAA,aAAAC,GAAA,UAAAC,EAAA;AAAA,EACA,YAAA,EAAA,uBAAAC,EAAA;AAAA,EACA,OAAA;AAAA;AAAA;AAAA;AAAA,IACA,QAAA;AAAA,MAIA,MAAA;AAAA,MACA,SAAA,OAAA;AAAA,QAEA,SAAA;AAAA,MACA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,YAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,MAAA;AAAA,MAKA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IACA,iBAAA;AAAA,MAKA,MAAA;AAAA,MACA,SAAAC,EAAA;AAAA,IACA;AAAA,EACA;AAAA,EACA,MAAAC,GAAA;AAEA,UAAA,EAAA,EAAA,IAAAC,EAAA,GACAC,IAAAC,EAAAd,EAAA,OAAA,GAEAe,IAAAD,EAAA,EAAA,GACAE,IAAA,YAAA;AACA,UAAA;AACA,cAAA,UAAA,UAAA,UAAAL,EAAA,IAAA,GACAE,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,MAAA,QAAA;AAEA,QAAAF,EAAA,QAAAb,EAAA;AAAA,MAAA;AAAA,IACA,GAGAiB,IAAA,MAAA;AACA,MAAAJ,EAAA,QAAAb,EAAA,SACAe,EAAA,QAAA;AAAA,IAAA,GAGAG,IAAAC,EAAA,MAAA;AACA,cAAAN,EAAA,OAAA;AAAA,QAAA,KAAAb,EAAA;AAEA,iBAAA,EAAA,QAAA;AAAA,QAAA,KAAAA,EAAA;AAEA,iBAAA,EAAA,YAAA;AAAA,QAAA,KAAAA,EAAA;AAAA,QACA;AAEA,iBAAA,EAAA,MAAA;AAAA,MAAA;AAAA,IACA,CAAA,GAGAoB,IAAAD,EAAA,MAAAR,KAAA,QAAAA,EAAA,aAAA,SAAA,EAAA,MAAA,CAAA;AAEA,WAAA;AAAA,MAAA,UAAAO;AAAA,MACA,aAAAF;AAAA,MACA,WAAAC;AAAA,MACA,uBAAAF;AAAA,MACA,UAAAK;AAAA;AAAA,MACA;AAAA,IAGA;AAAA,EACA;AAEA,CAAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { B as y } from "./header.
|
|
3
|
-
import { a as
|
|
4
|
-
import { c as
|
|
5
|
-
import { o as
|
|
6
|
-
import { u as
|
|
7
|
-
import { n as
|
|
8
|
-
import { B as
|
|
1
|
+
import { defineComponent as v, useSlots as C, ref as _, computed as n, watch as m, onUnmounted as $, onMounted as I } from "vue";
|
|
2
|
+
import { B as y } from "./header.BXGTPqZK.js";
|
|
3
|
+
import { a as R, B as x } from "./tabs.T3A3YNdF.js";
|
|
4
|
+
import { c as H } from "./index.48Mn1OCp.js";
|
|
5
|
+
import { o as P } from "./resize.Bqks3WUm.js";
|
|
6
|
+
import { u as T } from "./use-has-slot.C9lQZ6nz.js";
|
|
7
|
+
import { n as S } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
8
|
+
import { B as W } from "./divider.Cc4JFWG_.js";
|
|
9
9
|
import "../assets/dashboard-section.css";
|
|
10
|
-
const
|
|
11
|
-
...
|
|
10
|
+
const O = {}, z = /* @__PURE__ */ v({
|
|
11
|
+
...O,
|
|
12
12
|
__name: "dashboard-template",
|
|
13
13
|
props: {
|
|
14
14
|
header: null,
|
|
@@ -16,90 +16,87 @@ const D = {}, j = /* @__PURE__ */ C({
|
|
|
16
16
|
stickyTabs: { type: Boolean, default: !1 },
|
|
17
17
|
stickyFilters: { type: Boolean, default: !1 }
|
|
18
18
|
},
|
|
19
|
-
setup(
|
|
20
|
-
const t =
|
|
21
|
-
let
|
|
22
|
-
const
|
|
19
|
+
setup(i) {
|
|
20
|
+
const t = i, a = C(), s = T(a), r = _(), e = _(null), b = _(!1);
|
|
21
|
+
let l = null;
|
|
22
|
+
const c = _(0), d = n(() => e.value && t.stickyFilters), f = n(() => r.value && t.stickyTabs), k = n(() => ({
|
|
23
23
|
"b-dashboard-template__filters--sticky": t.stickyFilters,
|
|
24
|
-
"b-dashboard-template__filters--show-border":
|
|
25
|
-
})),
|
|
26
|
-
"b-dashboard-template__tabs--sticky": t.stickyTabs,
|
|
27
|
-
"b-dashboard-template__tabs--show-border": t.stickyTabs && p.value
|
|
28
|
-
})), $ = l(() => ({
|
|
24
|
+
"b-dashboard-template__filters--show-border": d.value && !f.value && b.value
|
|
25
|
+
})), B = n(() => ({
|
|
29
26
|
"b-dashboard-template__top-section--sticky": t.stickyTabs || t.stickyFilters
|
|
30
|
-
})),
|
|
31
|
-
var
|
|
32
|
-
return ((
|
|
33
|
-
}, { y:
|
|
27
|
+
})), F = n(() => Object.keys(a).filter((o) => o == null ? void 0 : o.includes("tab-"))), g = (o) => {
|
|
28
|
+
var p, h;
|
|
29
|
+
return ((h = (p = t == null ? void 0 : t.tabs.tabs) == null ? void 0 : p[o]) == null ? void 0 : h.title) ?? `Tab ${o + 1}`;
|
|
30
|
+
}, w = n(() => c.value ? { top: c.value } : void 0), { y: u } = H();
|
|
34
31
|
return m(
|
|
35
32
|
() => e.value,
|
|
36
33
|
() => {
|
|
37
|
-
!
|
|
34
|
+
!l && e.value && (l = P(e.value, () => {
|
|
38
35
|
if (e.value && f.value) {
|
|
39
36
|
const o = e.value.offsetHeight;
|
|
40
|
-
|
|
37
|
+
c.value = d.value ? o : 0;
|
|
41
38
|
}
|
|
42
39
|
}));
|
|
43
40
|
}
|
|
44
41
|
), m(
|
|
45
|
-
() =>
|
|
42
|
+
() => u.value,
|
|
46
43
|
() => {
|
|
47
|
-
var o
|
|
48
|
-
|
|
44
|
+
var o;
|
|
45
|
+
d.value && (b.value = ((o = e.value) == null ? void 0 : o.getBoundingClientRect().top) === 0);
|
|
49
46
|
}
|
|
50
|
-
),
|
|
51
|
-
|
|
52
|
-
}), { __sfc: !0, props: t, slots: a, hasSlot: s, tabsRef:
|
|
47
|
+
), $(() => {
|
|
48
|
+
l == null || l.disconnect();
|
|
49
|
+
}), { __sfc: !0, props: t, slots: a, hasSlot: s, tabsRef: r, filtersRef: e, isFiltersPinned: b, filtersElementObserver: l, tabsPosition: c, hasStickyFilters: d, hasStickyTabs: f, dashboardFiltersConditionalClasses: k, dashboardTopSectionConditionalClasses: B, tabsSlots: F, getTabTitle: g, computedTabsOptions: w, y: u, BentoHeader: y, BentoTab: x, BentoTabs: R };
|
|
53
50
|
}
|
|
54
51
|
});
|
|
55
|
-
var
|
|
52
|
+
var D = function() {
|
|
56
53
|
var t = this, a = t._self._c, s = t._self._setupProxy;
|
|
57
54
|
return a("main", { staticClass: "b-dashboard-template" }, [a(s.BentoHeader, t._b({ staticClass: "b-dashboard-template__header", attrs: { variant: "page" }, scopedSlots: t._u([s.hasSlot("infoIconTooltipContent") ? { key: "infoIconTooltipContent", fn: function() {
|
|
58
55
|
return [t._t("infoIconTooltipContent")];
|
|
59
|
-
}, proxy: !0 } : null], null, !0) }, "bento-header", t.header, !1)), a("div", { staticClass: "b-dashboard-template__top-section", class: s.dashboardTopSectionConditionalClasses }, [s.hasSlot("filters") ? a("div", { ref: "filtersRef", staticClass: "b-dashboard-template__filters", class: s.dashboardFiltersConditionalClasses, attrs: { "data-testid": "filters" } }, [t._t("filters")], 2) : t._e(), s.tabsSlots.length > 1 ? a(s.BentoTabs, { ref: "tabsRef",
|
|
56
|
+
}, proxy: !0 } : null], null, !0) }, "bento-header", t.header, !1)), a("div", { staticClass: "b-dashboard-template__top-section", class: s.dashboardTopSectionConditionalClasses }, [s.hasSlot("filters") ? a("div", { ref: "filtersRef", staticClass: "b-dashboard-template__filters", class: s.dashboardFiltersConditionalClasses, attrs: { "data-testid": "filters" } }, [t._t("filters")], 2) : t._e(), s.tabsSlots.length > 1 ? a(s.BentoTabs, { ref: "tabsRef", attrs: { "active-tab-index": t.tabs.activeTabIndex, sticky: t.stickyTabs, "sticky-options": s.computedTabsOptions, "data-testid": "tabs" } }, t._l(s.tabsSlots, function(r, e) {
|
|
60
57
|
return a(s.BentoTab, { key: `tab-${e}`, attrs: { title: s.getTabTitle(e) } }, [a("div", { staticClass: "b-dashboard-template__container b-dashboard-template__container--tabs" }, [t._t(`tab-${e + 1}`)], 2)]);
|
|
61
58
|
}), 1) : a("div", { staticClass: "b-dashboard-template__container" }, [t._t("default")], 2)], 1)], 1);
|
|
62
|
-
},
|
|
59
|
+
}, j = [], E = /* @__PURE__ */ S(
|
|
60
|
+
z,
|
|
61
|
+
D,
|
|
63
62
|
j,
|
|
64
|
-
E,
|
|
65
|
-
M,
|
|
66
63
|
!1,
|
|
67
64
|
null,
|
|
68
|
-
"
|
|
65
|
+
"075794ed"
|
|
69
66
|
);
|
|
70
|
-
const
|
|
71
|
-
...
|
|
67
|
+
const Z = E.exports, M = {}, U = /* @__PURE__ */ v({
|
|
68
|
+
...M,
|
|
72
69
|
__name: "dashboard-section",
|
|
73
70
|
props: {
|
|
74
71
|
header: null,
|
|
75
72
|
halfWidth: { type: Boolean, default: !1 }
|
|
76
73
|
},
|
|
77
|
-
setup(
|
|
78
|
-
const t =
|
|
74
|
+
setup(i) {
|
|
75
|
+
const t = i, a = C(), s = T(a), r = n(() => ({
|
|
79
76
|
"b-dashboard-section--half-width": t.halfWidth
|
|
80
77
|
}));
|
|
81
|
-
return
|
|
78
|
+
return I(() => {
|
|
82
79
|
if ((s("content-col-1") || s("content-col-2")) && t.halfWidth)
|
|
83
80
|
throw new Error("`content-col-1` and `content-col-2` cannot be used with half-width prop");
|
|
84
|
-
}), { __sfc: !0, props: t, slots: a, hasSlot: s, conditionalClasses:
|
|
81
|
+
}), { __sfc: !0, props: t, slots: a, hasSlot: s, conditionalClasses: r, BentoHeader: y, BentoDivider: W };
|
|
85
82
|
}
|
|
86
83
|
});
|
|
87
|
-
var
|
|
84
|
+
var q = function() {
|
|
88
85
|
var t = this, a = t._self._c, s = t._self._setupProxy;
|
|
89
86
|
return a("div", { staticClass: "b-dashboard-section", class: s.conditionalClasses }, [a(s.BentoHeader, t._b({ staticClass: "b-dashboard-template__header", attrs: { variant: "component" }, scopedSlots: t._u([s.hasSlot("infoIconTooltipContent") ? { key: "infoIconTooltipContent", fn: function() {
|
|
90
87
|
return [t._t("infoIconTooltipContent")];
|
|
91
88
|
}, proxy: !0 } : null], null, !0) }, "bento-header", t.header, !1)), s.hasSlot("controls") ? a("div", { staticClass: "b-dashboard-section__controls" }, [t._t("controls")], 2) : t._e(), !s.hasSlot("content-col-1") && !s.hasSlot("content-col-2") ? a("div", { staticClass: "b-dashboard-section__content" }, [t._t("default")], 2) : a("div", { staticClass: "b-dashboard-section__columns" }, [a("div", { staticClass: "b-dashboard-section__content" }, [t._t("content-col-1")], 2), a("div", { staticClass: "b-dashboard-section__content" }, [t._t("content-col-2")], 2)]), a(s.BentoDivider, { staticClass: "b-dashboard-section__divider" })], 1);
|
|
92
|
-
},
|
|
89
|
+
}, A = [], G = /* @__PURE__ */ S(
|
|
90
|
+
U,
|
|
93
91
|
q,
|
|
94
92
|
A,
|
|
95
|
-
G,
|
|
96
93
|
!1,
|
|
97
94
|
null,
|
|
98
95
|
"df6a2511"
|
|
99
96
|
);
|
|
100
|
-
const
|
|
97
|
+
const tt = G.exports;
|
|
101
98
|
export {
|
|
102
|
-
|
|
103
|
-
|
|
99
|
+
tt as a,
|
|
100
|
+
Z as d
|
|
104
101
|
};
|
|
105
|
-
//# sourceMappingURL=dashboard-section.
|
|
102
|
+
//# sourceMappingURL=dashboard-section.Cn7UfGjF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-section.Cn7UfGjF.js","sources":["../../src/templates/dashboard-template/dashboard-template.vue","../../src/templates/dashboard-template/components/dashboard-section/dashboard-section.vue"],"sourcesContent":["<template>\n <main class=\"b-dashboard-template\">\n <bento-header v-bind=\"header\" variant=\"page\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div class=\"b-dashboard-template__top-section\" :class=\"dashboardTopSectionConditionalClasses\">\n <div\n v-if=\"hasSlot('filters')\"\n ref=\"filtersRef\"\n class=\"b-dashboard-template__filters\"\n :class=\"dashboardFiltersConditionalClasses\"\n data-testid=\"filters\"\n >\n <slot name=\"filters\" />\n </div>\n\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n :sticky-options=\"computedTabsOptions\"\n data-testid=\"tabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <div class=\"b-dashboard-template__container b-dashboard-template__container--tabs\">\n <slot :name=\"`tab-${index + 1}`\" />\n </div>\n </bento-tab>\n </bento-tabs>\n <div v-else class=\"b-dashboard-template__container\">\n <slot />\n </div>\n </div>\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onUnmounted, ref, useSlots, watch } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useWindowScroll } from '@vueuse/core';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader, BentoDashboardTemplateTabs } from './dashboard-template.types';\n\n const props = defineProps({\n header: null,\n tabs: { default: undefined },\n stickyTabs: { type: Boolean, default: false },\n stickyFilters: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const tabsRef = ref<InstanceType<typeof BentoTabs>>();\n const filtersRef = ref<HTMLDivElement>(null);\n const isFiltersPinned = ref(false);\n let filtersElementObserver: ResizeObserver | null = null;\n const tabsPosition = ref(0);\n\n const hasStickyFilters = computed(() => filtersRef.value && props.stickyFilters);\n const hasStickyTabs = computed(() => tabsRef.value && props.stickyTabs);\n\n const dashboardFiltersConditionalClasses = computed(() => ({\n 'b-dashboard-template__filters--sticky': props.stickyFilters,\n 'b-dashboard-template__filters--show-border':\n hasStickyFilters.value && !hasStickyTabs.value && isFiltersPinned.value,\n }));\n\n const dashboardTopSectionConditionalClasses = computed(() => ({\n 'b-dashboard-template__top-section--sticky': props.stickyTabs || props.stickyFilters,\n }));\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const computedTabsOptions = computed(() => (tabsPosition.value ? { top: tabsPosition.value } : undefined));\n\n const { y } = useWindowScroll();\n\n watch(\n () => filtersRef.value,\n () => {\n if (!filtersElementObserver && filtersRef.value) {\n filtersElementObserver = observeSizeOfElement(filtersRef.value, () => {\n if (filtersRef.value && hasStickyTabs.value) {\n const filtersHeight = filtersRef.value.offsetHeight;\n tabsPosition.value = hasStickyFilters.value ? filtersHeight : 0;\n }\n });\n }\n }\n );\n\n watch(\n () => y.value,\n () => {\n if (hasStickyFilters.value) {\n isFiltersPinned.value = filtersRef.value?.getBoundingClientRect().top === 0;\n }\n }\n );\n\n onUnmounted(() => {\n filtersElementObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard template is a full page template used to visualize data on pages such as data dashboards and reports.\n *\n * @example\n * import { BentoDashboardTemplate, BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardTemplate, BentoDashboardSection },\n * template: `\n * <bento-dashboard-template :header=\"{ title: 'Dashboard'}\" :tabs=\"tabs: [{ title: 'Tab 1' }, { title: 'Tab 2' }]\" sticky-tabs sticky-filters>\n * <template #tab-1>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * <template #controls>\n * // Add your controls here\n * </template>\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * <template #tab-2>\n * <bento-dashboard-section :header=\"{ title: 'Section'}\">\n * // Add your content here\n * </bento-dashboard-section>\n * </template>\n * </bento-dashboard-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-template.scss\" />\n","<template>\n <div class=\"b-dashboard-section\" :class=\"conditionalClasses\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-dashboard-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('controls')\" class=\"b-dashboard-section__controls\">\n <slot name=\"controls\"></slot>\n </div>\n <div v-if=\"!hasSlot('content-col-1') && !hasSlot('content-col-2')\" class=\"b-dashboard-section__content\">\n <slot name=\"default\"></slot>\n </div>\n <div v-else class=\"b-dashboard-section__columns\">\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-1\"></slot></div>\n <div class=\"b-dashboard-section__content\"><slot name=\"content-col-2\"></slot></div>\n </div>\n <bento-divider class=\"b-dashboard-section__divider\" />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoDivider } from '@/components/divider';\n import { useHasSlot } from '@/composables';\n import type { BentoDashboardTemplateHeader } from '../../dashboard-template.types';\n\n const props = defineProps({\n header: null,\n halfWidth: { type: Boolean, default: false }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const conditionalClasses = computed(() => ({\n 'b-dashboard-section--half-width': props.halfWidth,\n }));\n\n onMounted(() => {\n if ((hasSlot('content-col-1') || hasSlot('content-col-2')) && props.halfWidth) {\n throw new Error('`content-col-1` and `content-col-2` cannot be used with half-width prop');\n }\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Dashboard section is subcomponent of Dashboard template meant to be used to create the different sections within the page.\n *\n * @example\n * import { BentoDashboardSection } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashboardSection },\n * template: `\n * <bento-dashboard-section :header=\"{ title: 'Section' }\" half-width>\n * <template #controls>\n * // Add your controls here\n * </template>\n * // You can render content with two cols\n * <template #content-col-1>\n * // Add your content here\n * </template>\n * <template #content-col-2>\n * // Add your content here\n * </template>\n * // Or you can render full width content by using default slot\n * // Add your content here\n * </bento-dashboard-section>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashboard-section.scss\" />\n"],"names":["__default__$1","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","filtersRef","isFiltersPinned","filtersElementObserver","tabsPosition","hasStickyFilters","computed","props","hasStickyTabs","dashboardFiltersConditionalClasses","dashboardTopSectionConditionalClasses","tabsSlots","el","getTabTitle","index","_b","_a","computedTabsOptions","y","useWindowScroll","watch","observeSizeOfElement","filtersHeight","onUnmounted","__default__","conditionalClasses","onMounted"],"mappings":";;;;;;;;;AA6II,MAAAA,IAAA,CAAA;;;;;;;;;;iBAtFAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,GACAC,IAAAD,EAAA,IAAA,GACAE,IAAAF,EAAA,EAAA;AACA,QAAAG,IAAA;AACA,UAAAC,IAAAJ,EAAA,CAAA,GAEAK,IAAAC,EAAA,MAAAL,EAAA,SAAAM,EAAA,aAAA,GACAC,IAAAF,EAAA,MAAAP,EAAA,SAAAQ,EAAA,UAAA,GAEAE,IAAAH,EAAA,OAAA;AAAA,MAA2D,yCAAAC,EAAA;AAAA,MACR,8CAAAF,EAAA,SAAA,CAAAG,EAAA,SAAAN,EAAA;AAAA,IAEuB,EAAA,GAG1EQ,IAAAJ,EAAA,OAAA;AAAA,MAA8D,6CAAAC,EAAA,cAAAA,EAAA;AAAA,IACa,EAAA,GAG3EI,IAAAL,EAAA,MAAA,OAAA,KAAAX,CAAA,EAAA,OAAA,CAAAiB,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;;AAAA,eAAAC,KAAAC,IAAAT,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAS,EAAAF,OAAA,gBAAAC,EAAA,UAAA,OAAAD,IAAA,CAAA;AAAA,OAEAG,IAAAX,EAAA,MAAAF,EAAA,QAAA,EAAA,KAAAA,EAAA,MAAA,IAAA,MAAA,GAEA,EAAA,GAAAc,EAAA,IAAAC,EAAA;AAEA,WAAAC;AAAA,MAAA,MAAAnB,EAAA;AAAA,MACqB,MAAA;AAEb,QAAA,CAAAE,KAAAF,EAAA,UACIE,IAAAkB,EAAApB,EAAA,OAAA,MAAA;AACI,cAAAA,EAAA,SAAAO,EAAA,OAAA;AACI,kBAAAc,IAAArB,EAAA,MAAA;AACA,YAAAG,EAAA,QAAAC,EAAA,QAAAiB,IAAA;AAAA,UAA8D;AAAA,QAClE,CAAA;AAAA,MAER;AAAA,IACJ,GAGJF;AAAA,MAAA,MAAAF,EAAA;AAAA,MACY,MAAA;;AAEJ,QAAAb,EAAA,UACIH,EAAA,UAAAc,IAAAf,EAAA,UAAA,gBAAAe,EAAA,wBAAA,SAAA;AAAA,MACJ;AAAA,IACJ,GAGJO,EAAA,MAAA;AACI,MAAApB,KAAA,QAAAA,EAAA;AAAA,IAAmC,CAAA;;;;;;;;;;;;;;;;;;qBCnCvCqB,IAAA,CAAA;;;;;;;;iBAzCA7B,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEA8B,IAAAnB,EAAA,OAAA;AAAA,MAA2C,mCAAAC,EAAA;AAAA,IACE,EAAA;AAG7C,WAAAmB,EAAA,MAAA;AACI,WAAA7B,EAAA,eAAA,KAAAA,EAAA,eAAA,MAAAU,EAAA;AACI,cAAA,IAAA,MAAA,yEAAA;AAAA,IACJ,CAAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineComponent as h, useSlots as P, ref as p, computed as m, watch as T } from "vue";
|
|
2
|
-
import { B as O } from "./popover.
|
|
2
|
+
import { B as O } from "./popover.BVLuUYSi.js";
|
|
3
3
|
import { B as x } from "./typography.J1v_SPG3.js";
|
|
4
4
|
import { u as B } from "./use-has-slot.C9lQZ6nz.js";
|
|
5
|
-
import { B as g } from "./tooltip.
|
|
5
|
+
import { B as g } from "./tooltip.CfER_5In.js";
|
|
6
6
|
import { n as I } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
7
7
|
import "../assets/dashed-underline.css";
|
|
8
8
|
const b = {}, S = /* @__PURE__ */ h({
|
|
@@ -56,4 +56,4 @@ const U = C.exports;
|
|
|
56
56
|
export {
|
|
57
57
|
U as B
|
|
58
58
|
};
|
|
59
|
-
//# sourceMappingURL=dashed-underline.
|
|
59
|
+
//# sourceMappingURL=dashed-underline.0K0Xbu6k.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashed-underline.
|
|
1
|
+
{"version":3,"file":"dashed-underline.0K0Xbu6k.js","sources":["../../src/components/dashed-underline/dashed-underline.vue"],"sourcesContent":["<template>\n <span\n ref=\"element\"\n v-bento-tooltip-directive:[tooltipPosition]=\"tooltipText\"\n class=\"b-dashed-underline\"\n tabindex=\"0\"\n @mouseenter=\"openPopover\"\n @mouseleave=\"closePopover\"\n @focus=\"infoIconOnFocus\"\n @focusout=\"infoIconOnFocusOut\"\n >\n <slot></slot>\n <bento-popover\n v-if=\"element && hasPopover\"\n :open=\"isOpen\"\n :target-element=\"element\"\n :position=\"popoverPosition\"\n role=\"tooltip\"\n fit-content\n disable-focus-trap\n >\n <slot name=\"popover-content\">\n <bento-typography>\n {{ popoverText }}\n </bento-typography>\n </slot>\n </bento-popover>\n </span>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, useSlots, watch } from 'vue';\n import { BentoPopover, type BentoPopoverPositions } from '@/components/popover';\n import {\n type BentoTooltipPosition,\n BentoTooltipDirective as vBentoTooltipDirective,\n } from '@/directives/tooltip/index';\n import { BentoTypography } from '@/components/typography';\n import { useHasSlot } from '@/composables';\n\n const CLOSING_POPOVER_DELAY_MS = 200;\n\n const props = defineProps({\n popoverText: { default: null },\n popoverPosition: { default: 'top' },\n tooltipText: { default: null },\n tooltipPosition: { default: 'top' }\n});\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const element = ref<HTMLSpanElement>(null);\n const isOpen = ref(false);\n\n const closingTimeOutId = ref();\n\n const openPopover = () => {\n isOpen.value = true;\n if (closingTimeOutId.value) {\n clearTimeout(closingTimeOutId.value);\n }\n };\n\n const closePopover = () => {\n // We want to delay closing for a couple of seconds so\n // it doesn't flicker if a user hovers over the icon and then inside the popover.\n const timeOutId = setTimeout(() => {\n isOpen.value = false;\n }, CLOSING_POPOVER_DELAY_MS);\n closingTimeOutId.value = timeOutId;\n };\n\n const infoIconOnFocus = () => {\n openPopover();\n };\n\n /**\n * Only close popover on blur if the newly focus element is not a child of this element\n * @param e - the event that contains the newly focused element\n */\n const infoIconOnFocusOut = (e: FocusEvent) => {\n if (!element.value || !(e?.relatedTarget instanceof Element) || !element.value.contains(e.relatedTarget)) {\n closePopover();\n }\n };\n\n const hasPopover = computed(() => props.popoverText || hasSlot('popover-content'));\n\n const shouldShowTooltipPopoverError = computed(() => !props.tooltipText && !hasPopover.value);\n\n watch(\n shouldShowTooltipPopoverError,\n value => {\n if (value) {\n throw new Error(\n 'BentoDashedUnderline requires either a tooltip or a popover to be configured. Check the docs for more info.'\n );\n }\n },\n { immediate: true }\n );\n</script>\n\n<script lang=\"ts\">\n /**\n * The dashed underline serves as a visual cue to indicate that additional information is available for\n * a specific word or phrase without adding an icon.\n *\n * @example\n * import { BentoDashedUnderline } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDashedUnderline },\n * template: `\n * <bento-dashed-underline>\n * annotated text\n * </bento-dashed-underline>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./dashed-underline.scss\" />\n"],"names":["__default__","CLOSING_POPOVER_DELAY_MS","slots","useSlots","hasSlot","useHasSlot","element","ref","isOpen","closingTimeOutId","openPopover","closePopover","timeOutId","infoIconOnFocus","infoIconOnFocusOut","e","hasPopover","computed","props","shouldShowTooltipPopoverError","watch","value"],"mappings":";;;;;;;AAyHI,MAAAA,IAAA,CAAA;;;;;;;;;;iBAjFAC,IAAA,KASAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAEAI,IAAAC,EAAA,IAAA,GACAC,IAAAD,EAAA,EAAA,GAEAE,IAAAF,EAAA,GAEAG,IAAA,MAAA;AACI,MAAAF,EAAA,QAAA,IACAC,EAAA,SACI,aAAAA,EAAA,KAAA;AAAA,IACJ,GAGJE,IAAA,MAAA;AAGI,YAAAC,IAAA,WAAA,MAAA;AACI,QAAAJ,EAAA,QAAA;AAAA,MAAe,GAAAP,CAAA;AAEnB,MAAAQ,EAAA,QAAAG;AAAA,IAAyB,GAG7BC,IAAA,MAAA;AACI,MAAAH,EAAA;AAAA,IAAY,GAOhBI,IAAA,CAAAC,MAAA;AACI,OAAA,CAAAT,EAAA,SAAA,GAAAS,KAAA,gBAAAA,EAAA,0BAAA,YAAA,CAAAT,EAAA,MAAA,SAAAS,EAAA,aAAA,MACIJ,EAAA;AAAA,IACJ,GAGJK,IAAAC,EAAA,MAAAC,EAAA,eAAAd,EAAA,iBAAA,CAAA,GAEAe,IAAAF,EAAA,MAAA,CAAAC,EAAA,eAAA,CAAAF,EAAA,KAAA;AAEA,WAAAI;AAAA,MAAAD;AAAA,MACI,CAAAE,MAAA;AAEI,YAAAA;AACI,gBAAA,IAAA;AAAA,YAAU;AAAA,UACN;AAAA,MAER;AAAA,MACJ,EAAA,WAAA,GAAA;AAAA,IACkB;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { defineComponent as u, useSlots as m, ref as T, computed as b, provide as v, toRef as y } from "vue";
|
|
2
|
+
import { B as C } from "./header.BXGTPqZK.js";
|
|
3
|
+
import { a as R, B as I } from "./tabs.T3A3YNdF.js";
|
|
4
|
+
import { u as S } from "./use-has-slot.C9lQZ6nz.js";
|
|
5
|
+
import { D as g } from "./data-grid-template.keys.2_AkxuNT.js";
|
|
6
|
+
import { n as h } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
7
|
+
import "../assets/data-grid-template.css";
|
|
8
|
+
const k = {}, B = /* @__PURE__ */ u({
|
|
9
|
+
...k,
|
|
10
|
+
__name: "data-grid-template",
|
|
11
|
+
props: {
|
|
12
|
+
/**
|
|
13
|
+
* The header that goes to the top of the template
|
|
14
|
+
*/
|
|
15
|
+
header: {
|
|
16
|
+
type: Object,
|
|
17
|
+
required: !0
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* All the tab properties that can be set on the inner tab components.
|
|
21
|
+
* - tabs.activeTabIndex: the currently active tab index.
|
|
22
|
+
* - tabs.tabs: an array of BentoTab props, the first item in the array will affect the `tab-1` slot and so on.
|
|
23
|
+
*/
|
|
24
|
+
tabs: {
|
|
25
|
+
type: Object,
|
|
26
|
+
default: void 0
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* Renders the tabs with a sticky positioning
|
|
30
|
+
*/
|
|
31
|
+
stickyTabs: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: !1
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
emits: ["update:tabs"],
|
|
37
|
+
setup(i, { emit: t }) {
|
|
38
|
+
const a = i, e = m(), l = S(e), o = T(null), c = b(() => {
|
|
39
|
+
var s, n;
|
|
40
|
+
return (n = (s = o.value) == null ? void 0 : s.$refs) == null ? void 0 : n.tablistwrapper;
|
|
41
|
+
}), _ = b(() => Object.keys(e).filter((s) => s == null ? void 0 : s.includes("tab-"))), p = (s) => {
|
|
42
|
+
t("update:tabs", { ...a.tabs, activeTabIndex: s });
|
|
43
|
+
}, f = (s) => {
|
|
44
|
+
var n, r;
|
|
45
|
+
return ((r = (n = a == null ? void 0 : a.tabs.tabs) == null ? void 0 : n[s]) == null ? void 0 : r.title) ?? `Tab ${s + 1}`;
|
|
46
|
+
}, d = () => ({ isDataGridTemplate: !0, stickyTabs: y(a, "stickyTabs"), tabsRef: c });
|
|
47
|
+
return v(g, d), { __sfc: !0, props: a, slots: e, hasSlot: l, emit: t, tabsRef: o, computedTabsRef: c, tabsSlots: _, emitTabs: p, getTabTitle: f, registerDatagridInDataGridTemplate: d, BentoHeader: C, BentoTab: I, BentoTabs: R };
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
var D = function() {
|
|
51
|
+
var t = this, a = t._self._c, e = t._self._setupProxy;
|
|
52
|
+
return a("main", { staticClass: "b-data-grid-template" }, [a(e.BentoHeader, t._b({ staticClass: "b-data-grid-template__header", attrs: { variant: "component" }, scopedSlots: t._u([e.hasSlot("infoIconTooltipContent") ? { key: "infoIconTooltipContent", fn: function() {
|
|
53
|
+
return [t._t("infoIconTooltipContent")];
|
|
54
|
+
}, proxy: !0 } : null], null, !0) }, "bento-header", t.header, !1)), e.hasSlot("additionalContent") ? a("div", { staticClass: "b-data-grid-template__additional-content" }, [t._t("additionalContent")], 2) : t._e(), e.tabsSlots.length > 1 ? a(e.BentoTabs, { ref: "tabsRef", attrs: { "active-tab-index": t.tabs.activeTabIndex, sticky: t.stickyTabs }, on: { "update:active-tab-index": e.emitTabs } }, t._l(e.tabsSlots, function(l, o) {
|
|
55
|
+
return a(e.BentoTab, { key: `tab-${o}`, attrs: { title: e.getTabTitle(o) } }, [t._t(`tab-${o + 1}`)], 2);
|
|
56
|
+
}), 1) : t._t("default")], 2);
|
|
57
|
+
}, E = [], G = /* @__PURE__ */ h(
|
|
58
|
+
B,
|
|
59
|
+
D,
|
|
60
|
+
E,
|
|
61
|
+
!1,
|
|
62
|
+
null,
|
|
63
|
+
"1e59d6ab"
|
|
64
|
+
);
|
|
65
|
+
const N = G.exports;
|
|
66
|
+
export {
|
|
67
|
+
N as d
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data-grid-template.Bm08fIsa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-grid-template.Bm08fIsa.js","sources":["../../src/templates/data-grid-template/data-grid-template.vue"],"sourcesContent":["<template>\n <main class=\"b-data-grid-template\">\n <bento-header v-bind=\"header\" variant=\"component\" class=\"b-data-grid-template__header\">\n <template v-if=\"hasSlot('infoIconTooltipContent')\" #infoIconTooltipContent>\n <slot name=\"infoIconTooltipContent\" />\n </template>\n </bento-header>\n <div v-if=\"hasSlot('additionalContent')\" class=\"b-data-grid-template__additional-content\">\n <slot name=\"additionalContent\" />\n </div>\n <bento-tabs\n v-if=\"tabsSlots.length > 1\"\n ref=\"tabsRef\"\n :active-tab-index=\"tabs.activeTabIndex\"\n :sticky=\"stickyTabs\"\n @update:active-tab-index=\"emitTabs\"\n >\n <bento-tab v-for=\"(_item, index) in tabsSlots\" :key=\"`tab-${index}`\" :title=\"getTabTitle(index)\">\n <slot :name=\"`tab-${index + 1}`\" />\n </bento-tab>\n </bento-tabs>\n <slot v-else />\n </main>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, PropType, provide, Ref, ref, toRef, UnwrapRef, useSlots } from 'vue';\n import { BentoHeader } from '@/components/header';\n import { BentoTab, BentoTabs } from '@/components/tabs';\n import { useHasSlot } from '@/composables';\n import { DATA_GRID_REGISTER_TEMPLATE_INJECTION_KEY } from './data-grid-template.keys';\n import type {\n BentoDataGridTemplateDataGrid,\n BentoDataGridTemplateHeader,\n BentoDataGridTemplateTabs,\n } from './data-grid-template.types';\n\n const props = defineProps({\n /**\n * The header that goes to the top of the template\n */\n header: {\n type: Object as PropType<BentoDataGridTemplateHeader>,\n required: true,\n },\n\n /**\n * All the tab properties that can be set on the inner tab components.\n * - tabs.activeTabIndex: the currently active tab index.\n * - tabs.tabs: an array of BentoTab props, the first item in the array will affect the `tab-1` slot and so on.\n */\n tabs: {\n type: Object as PropType<BentoDataGridTemplateTabs>,\n default: undefined,\n },\n\n /**\n * Renders the tabs with a sticky positioning\n */\n stickyTabs: {\n type: Boolean,\n default: false,\n },\n });\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const emit = defineEmits([\"update:tabs\"]);\n\n const tabsRef = ref(null);\n\n const computedTabsRef = computed(() => tabsRef.value?.$refs?.tablistwrapper);\n\n const tabsSlots = computed(() => Object.keys(slots).filter(el => el?.includes('tab-')));\n\n const emitTabs = (newActiveTabIndex: number) => {\n emit('update:tabs', { ...props.tabs, activeTabIndex: newActiveTabIndex });\n };\n\n const getTabTitle = (index: number) => props?.tabs.tabs?.[index]?.title ?? `Tab ${index + 1}`;\n\n const registerDatagridInDataGridTemplate: BentoDataGridTemplateDataGrid = () => {\n const isDataGridTemplate = true;\n const stickyTabs: Ref<boolean> = toRef(props, 'stickyTabs');\n const tabsRef: Ref<UnwrapRef<HTMLDivElement>> | null = computedTabsRef;\n\n // return values to the Tab component\n return { isDataGridTemplate, stickyTabs, tabsRef };\n };\n\n provide(DATA_GRID_REGISTER_TEMPLATE_INJECTION_KEY, registerDatagridInDataGridTemplate);\n</script>\n\n<script lang=\"ts\">\n /**\n * The data grid template is a restrictive, full-page data grid used to display information from a data set.\n * You can use this data grid template when your user needs a clear overview of data or a way of organizing and analyzing the data in their own way.\n * This data grid template shouldn’t be confused with the data grid.\n *\n * @example\n * import { BentoDataGridTemplate } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoDataGridTemplate },\n * template: `\n * // If you want to display multiple data grids in the same page (they will be rendered in different tabs)\n * <bento-data-grid-template>\n * <template #tab-1><bento-data-grid v-bind=\"your-data-grid-args\" title=\"Title for tab 1\"/></template>\n * <template #tab-2><bento-data-grid v-bind=\"your-data-grid-args\" title=\"Title for tab 2\"/></template>\n * </bento-data-grid-template>\n * // Alternatively, if you only want to pass one data grid to your template:\n * <bento-data-grid-template>\n * <template #default><bento-data-grid v-bind=\"your-data-grid-args\"/></template>\n * </bento-data-grid-template>\n * `\n * }\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./data-grid-template.scss\" />\n"],"names":["__default__","slots","useSlots","hasSlot","useHasSlot","tabsRef","ref","computedTabsRef","computed","_b","_a","tabsSlots","el","emitTabs","newActiveTabIndex","emit","props","getTabTitle","index","registerDatagridInDataGridTemplate","toRef","provide","DATA_GRID_REGISTER_TEMPLATE_INJECTION_KEY"],"mappings":";;;;;;;AAqHI,MAAAA,IAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBArDAC,IAAAC,EAAA,GACAC,IAAAC,EAAAH,CAAA,GAIAI,IAAAC,EAAA,IAAA,GAEAC,IAAAC,EAAA,MAAA;;AAAA,cAAAC,KAAAC,IAAAL,EAAA,UAAA,gBAAAK,EAAA,UAAA,gBAAAD,EAAA;AAAA,KAAA,GAEAE,IAAAH,EAAA,MAAA,OAAA,KAAAP,CAAA,EAAA,OAAA,CAAAW,MAAAA,KAAA,gBAAAA,EAAA,SAAA,OAAA,CAAA,GAEAC,IAAA,CAAAC,MAAA;AACI,MAAAC,EAAA,eAAA,EAAA,GAAAC,EAAA,MAAA,gBAAAF,EAAA,CAAA;AAAA,IAAwE,GAG5EG,IAAA,CAAAC,MAAA;;AAAA,eAAAT,KAAAC,IAAAM,KAAA,gBAAAA,EAAA,KAAA,SAAA,gBAAAN,EAAAQ,OAAA,gBAAAT,EAAA,UAAA,OAAAS,IAAA,CAAA;AAAA,OAEAC,IAAA,OAMI,EAAA,wBAAA,YAJAC,EAAAJ,GAAA,YAAA,GAIA,SAHAT,EAGA;AAGJ,WAAAc,EAAAC,GAAAH,CAAA;;;;;;;;;;;;;;;;;;;"}
|