@adyen/bento-vue3 1.52.0 → 1.54.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/components.d.ts +2 -0
- package/dist/@types/index.d.ts +2123 -2028
- package/dist/action-bar.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-actions.css +1 -1
- package/dist/assets/calendar.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/checkbox.css +1 -1
- package/dist/assets/dashed-underline.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/dialog-page.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/header-with-views.css +1 -0
- package/dist/assets/input-field-password.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/pagination.css +1 -1
- package/dist/assets/payment-method.css +1 -1
- package/dist/assets/popover.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/assets/summary-grid.css +1 -0
- package/dist/assets/tabs.css +1 -1
- package/dist/assets/textarea.css +1 -1
- package/dist/assets/use-cached-selected-values.css +1 -1
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chunks/{action-bar.eo5EXYmg.js → action-bar.CUDi5Po7.js} +5 -5
- package/dist/chunks/{action-bar.eo5EXYmg.js.map → action-bar.CUDi5Po7.js.map} +1 -1
- package/dist/chunks/{base-modal.BlC6TZNz.js → base-modal.BegK8cPb.js} +4 -4
- package/dist/chunks/{base-modal.BlC6TZNz.js.map → base-modal.BegK8cPb.js.map} +1 -1
- package/dist/chunks/bin.CA6UQCNZ.js +37 -0
- package/dist/chunks/bin.CA6UQCNZ.js.map +1 -0
- package/dist/chunks/{button-actions-with-menu.DQaq1bkf.js → button-actions-with-menu.CcoKss9T.js} +5 -5
- package/dist/chunks/{button-actions-with-menu.DQaq1bkf.js.map → button-actions-with-menu.CcoKss9T.js.map} +1 -1
- package/dist/chunks/{button-actions.BvGAE7sw.js → button-actions.CdlXZ29B.js} +59 -117
- package/dist/chunks/{button-actions.BvGAE7sw.js.map → button-actions.CdlXZ29B.js.map} +1 -1
- package/dist/chunks/{calendar.D2X834TU.js → calendar.BRsV4rkQ.js} +72 -72
- package/dist/chunks/{calendar.D2X834TU.js.map → calendar.BRsV4rkQ.js.map} +1 -1
- package/dist/chunks/{card.IrL_Fw-f.js → card.C5bSqYsB.js} +2 -2
- package/dist/chunks/{card.IrL_Fw-f.js.map → card.C5bSqYsB.js.map} +1 -1
- package/dist/chunks/{checkbox-group.BVJfN48k.js → checkbox-group.EPDS2n3a.js} +4 -4
- package/dist/chunks/{checkbox-group.BVJfN48k.js.map → checkbox-group.EPDS2n3a.js.map} +1 -1
- package/dist/chunks/{checkbox.erdZ58Kk.js → checkbox.Z2Jeglk-.js} +75 -68
- package/dist/chunks/checkbox.Z2Jeglk-.js.map +1 -0
- package/dist/chunks/{click-outside.DSszkIvs.js → click-outside.C1Ud8AA2.js} +2 -2
- package/dist/chunks/{click-outside.DSszkIvs.js.map → click-outside.C1Ud8AA2.js.map} +1 -1
- package/dist/chunks/{code-snippet.Bb4_r0C8.js → code-snippet.zdidL9RT.js} +5 -5
- package/dist/chunks/{code-snippet.Bb4_r0C8.js.map → code-snippet.zdidL9RT.js.map} +1 -1
- package/dist/chunks/{controls-group.BaDhGB9H.js → controls-group.DcbOWqxA.js} +2 -2
- package/dist/chunks/{controls-group.BaDhGB9H.js.map → controls-group.DcbOWqxA.js.map} +1 -1
- package/dist/chunks/{copy.gmSTAqHY.js → copy.CFhrpASp.js} +2 -2
- package/dist/chunks/{copy.gmSTAqHY.js.map → copy.CFhrpASp.js.map} +1 -1
- package/dist/chunks/{dashboard-section.MAHmbUDG.js → dashboard-section.DpL72ax7.js} +4 -4
- package/dist/chunks/{dashboard-section.MAHmbUDG.js.map → dashboard-section.DpL72ax7.js.map} +1 -1
- package/dist/chunks/{dashed-underline.DY8xR9GH.js → dashed-underline.BYAXhfnX.js} +11 -11
- package/dist/chunks/{dashed-underline.DY8xR9GH.js.map → dashed-underline.BYAXhfnX.js.map} +1 -1
- package/dist/chunks/{data-grid-template.Dievz913.js → data-grid-template.CJxPIu3E.js} +3 -3
- package/dist/chunks/{data-grid-template.Dievz913.js.map → data-grid-template.CJxPIu3E.js.map} +1 -1
- package/dist/chunks/{data-grid.KZqjmRvk.js → data-grid.i-NPmpso.js} +32 -20
- package/dist/chunks/data-grid.i-NPmpso.js.map +1 -0
- package/dist/chunks/{date-picker.BWJYkSmo.js → date-picker.wesQox8h.js} +5 -5
- package/dist/chunks/{date-picker.BWJYkSmo.js.map → date-picker.wesQox8h.js.map} +1 -1
- package/dist/chunks/{date-range-picker.1Vbf9Zk8.js → date-range-picker.V6QCtfnc.js} +9 -9
- package/dist/chunks/{date-range-picker.1Vbf9Zk8.js.map → date-range-picker.V6QCtfnc.js.map} +1 -1
- package/dist/chunks/{directive.O3yEdalv.js → directive.Cbdox5VL.js} +2 -2
- package/dist/chunks/{directive.O3yEdalv.js.map → directive.Cbdox5VL.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.C9nM0YHC.js → dropdown-tag.D8wU10wx.js} +4 -4
- package/dist/chunks/{dropdown-tag.C9nM0YHC.js.map → dropdown-tag.D8wU10wx.js.map} +1 -1
- package/dist/chunks/{dropdown.qw5oXFYs.js → dropdown.DQunMieR.js} +203 -194
- package/dist/chunks/dropdown.DQunMieR.js.map +1 -0
- package/dist/chunks/{error-message.DAjisbU1.js → error-message.DH8Er2JS.js} +2 -2
- package/dist/chunks/{error-message.DAjisbU1.js.map → error-message.DH8Er2JS.js.map} +1 -1
- package/dist/chunks/es6.BtaxuP0b.js.map +1 -1
- package/dist/chunks/{file-uploader.BLJpDgAZ.js → file-uploader.Rtt1Uz2U.js} +627 -586
- package/dist/chunks/file-uploader.Rtt1Uz2U.js.map +1 -0
- package/dist/chunks/{filter-bar.DYrXBQDF.js → filter-bar.DW7lAAtF.js} +867 -853
- package/dist/chunks/filter-bar.DW7lAAtF.js.map +1 -0
- package/dist/chunks/{focus-trap.DMgm-9f7.js → focus-trap.BFCzfiI_.js} +2 -2
- package/dist/chunks/{focus-trap.DMgm-9f7.js.map → focus-trap.BFCzfiI_.js.map} +1 -1
- package/dist/chunks/{footer-actions.DK3pMfDY.js → footer-actions.A9H5F5D-.js} +2 -2
- package/dist/chunks/{footer-actions.DK3pMfDY.js.map → footer-actions.A9H5F5D-.js.map} +1 -1
- package/dist/chunks/header-with-views.D2B-20ZR.js +2354 -0
- package/dist/chunks/header-with-views.D2B-20ZR.js.map +1 -0
- package/dist/chunks/{header.BASKzNwu.js → header.CoyUQXFL.js} +4 -4
- package/dist/chunks/{header.BASKzNwu.js.map → header.CoyUQXFL.js.map} +1 -1
- package/dist/chunks/index.BzJQl-2M.js +386 -0
- package/dist/chunks/{index.CMGT-6mh.js.map → index.BzJQl-2M.js.map} +1 -1
- package/dist/chunks/{info-icon-with-popover.BJccyOFx.js → info-icon-with-popover.CBi7CmUZ.js} +2 -2
- package/dist/chunks/{info-icon-with-popover.BJccyOFx.js.map → info-icon-with-popover.CBi7CmUZ.js.map} +1 -1
- package/dist/chunks/{info-icon.L8AexnZg.js → info-icon.Bomzzcc5.js} +2 -2
- package/dist/chunks/{info-icon.L8AexnZg.js.map → info-icon.Bomzzcc5.js.map} +1 -1
- package/dist/chunks/input-field-password.DMEjy243.js +343 -0
- package/dist/chunks/input-field-password.DMEjy243.js.map +1 -0
- package/dist/chunks/{input-field-phone-number.D1zlBh3R.js → input-field-phone-number.DhJznFQP.js} +3 -3
- package/dist/chunks/{input-field-phone-number.D1zlBh3R.js.map → input-field-phone-number.DhJznFQP.js.map} +1 -1
- package/dist/chunks/{input-field.DqMdqM2u.js → input-field.B9AU1IsG.js} +3 -3
- package/dist/chunks/{input-field.DqMdqM2u.js.map → input-field.B9AU1IsG.js.map} +1 -1
- package/dist/chunks/inspector.types.Fs9URmPq.js +188 -0
- package/dist/chunks/inspector.types.Fs9URmPq.js.map +1 -0
- package/dist/chunks/{layout-row.Drm_y8e3.js → layout-row.BC3Z1mQx.js} +2 -2
- package/dist/chunks/{layout-row.Drm_y8e3.js.map → layout-row.BC3Z1mQx.js.map} +1 -1
- package/dist/chunks/{listbox-option-tag.YSvtcy4P.js → listbox-option-tag.CqnkZr9x.js} +2 -2
- package/dist/chunks/{listbox-option-tag.YSvtcy4P.js.map → listbox-option-tag.CqnkZr9x.js.map} +1 -1
- package/dist/chunks/{menu.DfzP2nRU.js → menu.P_KG1J8b.js} +106 -105
- package/dist/chunks/menu.P_KG1J8b.js.map +1 -0
- package/dist/chunks/{modal-fullscreen.T1x_vroe.js → modal-fullscreen.DxuMKagz.js} +3 -3
- package/dist/chunks/{modal-fullscreen.T1x_vroe.js.map → modal-fullscreen.DxuMKagz.js.map} +1 -1
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.BAuxqA66.js → modal.vue_vue_type_script_setup_true_lang.DfzxXSwn.js} +4 -4
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.BAuxqA66.js.map → modal.vue_vue_type_script_setup_true_lang.DfzxXSwn.js.map} +1 -1
- package/dist/chunks/{on-click-outside.MUWbmGDn.js → on-click-outside.D9aY9g8G.js} +3 -2
- package/dist/chunks/{on-click-outside.MUWbmGDn.js.map → on-click-outside.D9aY9g8G.js.map} +1 -1
- package/dist/chunks/{pagination.Bt8DNme-.js → pagination.DsEd-vpq.js} +3 -3
- package/dist/chunks/{pagination.Bt8DNme-.js.map → pagination.DsEd-vpq.js.map} +1 -1
- package/dist/chunks/{payment-method.CLUppDo_.js → payment-method.eazefwm6.js} +9 -9
- package/dist/chunks/payment-method.eazefwm6.js.map +1 -0
- package/dist/chunks/payment-method.types.BqtH7RM2.js +5 -0
- package/dist/chunks/payment-method.types.BqtH7RM2.js.map +1 -0
- package/dist/chunks/{popover.COzLcAET.js → popover.Csq1gQ6T.js} +3 -3
- package/dist/chunks/{popover.COzLcAET.js.map → popover.Csq1gQ6T.js.map} +1 -1
- package/dist/chunks/{popper-container.CEtaux25.js → popper-container.DnlxQ9eS.js} +2 -2
- package/dist/chunks/{popper-container.CEtaux25.js.map → popper-container.DnlxQ9eS.js.map} +1 -1
- package/dist/chunks/{promo-banner.BCpw2tDD.js → promo-banner.CN-TTSov.js} +2 -2
- package/dist/chunks/{promo-banner.BCpw2tDD.js.map → promo-banner.CN-TTSov.js.map} +1 -1
- package/dist/chunks/{radio-group.rxg-4rF_.js → radio-group.Vm-hmL1q.js} +4 -4
- package/dist/chunks/{radio-group.rxg-4rF_.js.map → radio-group.Vm-hmL1q.js.map} +1 -1
- package/dist/chunks/{search-bar.DlihXfPt.js → search-bar.BBV1KNdd.js} +3 -3
- package/dist/chunks/{search-bar.DlihXfPt.js.map → search-bar.BBV1KNdd.js.map} +1 -1
- package/dist/chunks/{secondary-nav.D2loVonk.js → secondary-nav.O2R1ltD9.js} +3 -3
- package/dist/chunks/{secondary-nav.D2loVonk.js.map → secondary-nav.O2R1ltD9.js.map} +1 -1
- package/dist/chunks/{segmented-control.Wn-miTIl.js → segmented-control.DBy-nbYM.js} +2 -2
- package/dist/chunks/{segmented-control.Wn-miTIl.js.map → segmented-control.DBy-nbYM.js.map} +1 -1
- package/dist/chunks/{selection-card-group.CtQaeZFM.js → selection-card-group.Bt4jBqjc.js} +4 -4
- package/dist/chunks/{selection-card-group.CtQaeZFM.js.map → selection-card-group.Bt4jBqjc.js.map} +1 -1
- package/dist/chunks/{sidepanel.CjaHQEin.js → sidepanel.Ds2CCG9L.js} +4 -4
- package/dist/chunks/{sidepanel.CjaHQEin.js.map → sidepanel.Ds2CCG9L.js.map} +1 -1
- package/dist/chunks/{structured-list-item.DAwADFpI.js → structured-list-item.CygGTBVl.js} +4 -4
- package/dist/chunks/{structured-list-item.DAwADFpI.js.map → structured-list-item.CygGTBVl.js.map} +1 -1
- package/dist/chunks/summary-grid.types.DzvuP-NU.js +454 -0
- package/dist/chunks/summary-grid.types.DzvuP-NU.js.map +1 -0
- package/dist/chunks/tabs.B8BRqQpv.js +272 -0
- package/dist/chunks/tabs.B8BRqQpv.js.map +1 -0
- package/dist/chunks/{tag.B1hW92hG.js → tag.C4SGN5Eb.js} +2 -2
- package/dist/chunks/{tag.B1hW92hG.js.map → tag.C4SGN5Eb.js.map} +1 -1
- package/dist/chunks/{teleport.B1NhF5-O.js → teleport.DfTpEQBR.js} +2 -2
- package/dist/chunks/{teleport.B1NhF5-O.js.map → teleport.DfTpEQBR.js.map} +1 -1
- package/dist/chunks/{textarea.DMA29yQA.js → textarea.bQwvvIkq.js} +103 -95
- package/dist/chunks/textarea.bQwvvIkq.js.map +1 -0
- package/dist/chunks/{timeline-item.kWg3dTy1.js → timeline-item.Bxt_pNII.js} +5 -5
- package/dist/chunks/{timeline-item.kWg3dTy1.js.map → timeline-item.Bxt_pNII.js.map} +1 -1
- package/dist/chunks/{tooltip.Y730-n-n.js → tooltip.CyQxprBQ.js} +2 -2
- package/dist/chunks/{tooltip.Y730-n-n.js.map → tooltip.CyQxprBQ.js.map} +1 -1
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.CUmJbMsw.js → tutorial.vue_vue_type_script_setup_true_lang.BtVT3Ltg.js} +5 -5
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.CUmJbMsw.js.map → tutorial.vue_vue_type_script_setup_true_lang.BtVT3Ltg.js.map} +1 -1
- package/dist/chunks/{use-cached-selected-values.DDP7LJoI.js → use-cached-selected-values.DmW8XRgJ.js} +234 -225
- package/dist/chunks/{use-cached-selected-values.DDP7LJoI.js.map → use-cached-selected-values.DmW8XRgJ.js.map} +1 -1
- package/dist/click-outside.js +1 -1
- package/dist/code-snippet.js +1 -1
- package/dist/dashboard-template.js +1 -1
- package/dist/dashed-underline.js +2 -2
- 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 +3 -3
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/focus-trap.js +1 -1
- package/dist/header-with-views.js +5 -0
- package/dist/header-with-views.js.map +1 -0
- package/dist/header.js +1 -1
- package/dist/index.js +201 -199
- package/dist/index.js.map +1 -1
- 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 +11 -11
- package/dist/layout.js +1 -1
- 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/payment-method.js +2 -2
- 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 +89 -17
- package/dist/styles/bento-light.css +89 -17
- package/dist/styles/bento.css +89 -17
- package/dist/styles/legacy.css +77 -5
- package/dist/styles/styleguide.css +89 -17
- 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/tutorial.js +1 -1
- package/dist/use-form-v4.js +8300 -0
- package/dist/use-form-v4.js.map +1 -0
- package/dist/web-types.json +1 -1
- package/package.json +8 -7
- package/dist/assets/summary-grid-item-custom.css +0 -1
- package/dist/chunks/checkbox.erdZ58Kk.js.map +0 -1
- package/dist/chunks/data-grid.KZqjmRvk.js.map +0 -1
- package/dist/chunks/dropdown.qw5oXFYs.js.map +0 -1
- package/dist/chunks/file-uploader.BLJpDgAZ.js.map +0 -1
- package/dist/chunks/filter-bar.DYrXBQDF.js.map +0 -1
- package/dist/chunks/index.CMGT-6mh.js +0 -369
- package/dist/chunks/input-field-password.CZNUHo6s.js +0 -309
- package/dist/chunks/input-field-password.CZNUHo6s.js.map +0 -1
- package/dist/chunks/inspector.types.Dwt3V80X.js +0 -184
- package/dist/chunks/inspector.types.Dwt3V80X.js.map +0 -1
- package/dist/chunks/menu.DfzP2nRU.js.map +0 -1
- package/dist/chunks/payment-method.CLUppDo_.js.map +0 -1
- package/dist/chunks/payment-method.types.CJKfZQN5.js +0 -5
- package/dist/chunks/payment-method.types.CJKfZQN5.js.map +0 -1
- package/dist/chunks/summary-grid-item-custom.DTCzOBBy.js +0 -725
- package/dist/chunks/summary-grid-item-custom.DTCzOBBy.js.map +0 -1
- package/dist/chunks/tabs.hp52NnXH.js +0 -211
- package/dist/chunks/tabs.hp52NnXH.js.map +0 -1
- package/dist/chunks/textarea.DMA29yQA.js.map +0 -1
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { defineComponent as
|
|
1
|
+
import { defineComponent as O, useSlots as P, computed as g, createBlock as v, openBlock as i, withModifiers as V, normalizeClass as R, createSlots as U, withCtx as y, renderSlot as N, unref as m, createElementVNode as W, createCommentVNode as j, ref as C, inject as x, watch as H, nextTick as z, onMounted as J, onUnmounted as K, createElementBlock as S, Fragment as Y, renderList as Q, mergeProps as A, toHandlers as b, createTextVNode as h, toDisplayString as B, resolveDynamicComponent as E } from "vue";
|
|
2
2
|
import { B as p } from "./button.6HMG0xEY.js";
|
|
3
|
-
import { o as
|
|
4
|
-
import { f as
|
|
5
|
-
import { B as
|
|
6
|
-
import { C as
|
|
7
|
-
import { C as
|
|
8
|
-
import { u as
|
|
9
|
-
import { u as
|
|
10
|
-
import { _ as
|
|
3
|
+
import { o as q } from "./resize.Bqks3WUm.js";
|
|
4
|
+
import { f as X } from "./es6.BtaxuP0b.js";
|
|
5
|
+
import { B as Z } from "./loading-indicator.DEepb9Wl.js";
|
|
6
|
+
import { C as ee } from "./cross-circle-fill.B7YpDLTK.js";
|
|
7
|
+
import { C as te } from "./checkmark-circle-fill.jicbqe7k.js";
|
|
8
|
+
import { u as ne } from "./use-has-slot.B7eQSabc.js";
|
|
9
|
+
import { u as ae } from "./i18n.D9azDLPe.js";
|
|
10
|
+
import { _ as $ } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
11
11
|
import "../assets/button-actions.css";
|
|
12
|
-
var
|
|
13
|
-
const
|
|
12
|
+
var D = /* @__PURE__ */ ((e) => (e.BUTTONS_END = "buttons-end", e.FILL_CONTAINER = "fill-container", e.SPACE_BETWEEN = "space-between", e.VERTICAL_STACK = "vertical-stack", e))(D || {}), F = /* @__PURE__ */ ((e) => (e.BUTTONS_START = "buttons-start", e))(F || {});
|
|
13
|
+
const se = { ...D, ...F };
|
|
14
14
|
var s = /* @__PURE__ */ ((e) => (e.START = "start", e.LOADING = "loading", e.SUCCESS = "success", e.FAIL = "fail", e))(s || {});
|
|
15
|
-
const
|
|
15
|
+
const w = {
|
|
16
16
|
"en-US": {
|
|
17
17
|
failed: "Failed",
|
|
18
18
|
succeded: "Succeded"
|
|
@@ -27,8 +27,8 @@ const G = {
|
|
|
27
27
|
class: "b-loading-button__icon",
|
|
28
28
|
"data-testid": "loading-button-rotating-icon"
|
|
29
29
|
}, oe = {
|
|
30
|
-
i18n: { messages:
|
|
31
|
-
}, le = /* @__PURE__ */
|
|
30
|
+
i18n: { messages: w }
|
|
31
|
+
}, le = /* @__PURE__ */ O({
|
|
32
32
|
...oe,
|
|
33
33
|
__name: "loading-button",
|
|
34
34
|
props: {
|
|
@@ -80,156 +80,98 @@ const G = {
|
|
|
80
80
|
},
|
|
81
81
|
emits: ["click"],
|
|
82
82
|
setup(e, { emit: l }) {
|
|
83
|
-
const n = e, c = l, r =
|
|
83
|
+
const n = e, c = l, r = P(), _ = ne(r), { t: d } = ae({ messages: w }), u = g(() => ({
|
|
84
84
|
[`b-loading-button--${n.variant}-${s.LOADING}`]: n.state === s.LOADING && !n.disabled,
|
|
85
85
|
"b-loading-button--loading": n.state === s.LOADING && !n.disabled,
|
|
86
86
|
[`b-loading-button--${n.variant}-${s.SUCCESS}`]: n.state === s.SUCCESS,
|
|
87
87
|
"b-loading-button--inverse": n.inverse
|
|
88
88
|
})), f = g(
|
|
89
89
|
() => n.variant === "primary" && !n.inverse || n.variant !== "primary" && n.inverse
|
|
90
|
-
),
|
|
90
|
+
), T = g(
|
|
91
91
|
() => n.critical && n.state === s.START || n.state === s.FAIL
|
|
92
92
|
), a = (o) => {
|
|
93
93
|
o.stopPropagation(), n.state !== s.LOADING && c("click", o);
|
|
94
94
|
};
|
|
95
95
|
return (o, t) => (i(), v(p, {
|
|
96
|
-
critical:
|
|
96
|
+
critical: T.value,
|
|
97
97
|
variant: e.variant,
|
|
98
98
|
condensed: e.condensed,
|
|
99
99
|
disabled: e.disabled,
|
|
100
100
|
inverse: e.inverse,
|
|
101
|
-
class:
|
|
102
|
-
onClickCapture:
|
|
103
|
-
},
|
|
101
|
+
class: R(["b-loading-button", u.value]),
|
|
102
|
+
onClickCapture: V(a, ["stop"])
|
|
103
|
+
}, U({
|
|
104
104
|
default: y(() => [
|
|
105
|
-
|
|
105
|
+
N(o.$slots, "default", {}, void 0, !0)
|
|
106
106
|
]),
|
|
107
107
|
_: 2
|
|
108
108
|
}, [
|
|
109
109
|
e.state === "start" && m(_)("iconLeft") ? {
|
|
110
110
|
name: "iconLeft",
|
|
111
111
|
fn: y(() => [
|
|
112
|
-
|
|
112
|
+
N(o.$slots, "iconLeft", {}, void 0, !0)
|
|
113
113
|
]),
|
|
114
114
|
key: "0"
|
|
115
115
|
} : e.state !== "start" ? {
|
|
116
116
|
name: "iconLeft",
|
|
117
117
|
fn: y(() => [
|
|
118
|
-
|
|
119
|
-
e.state === "fail" ? (i(), v(m(
|
|
118
|
+
W("span", ie, [
|
|
119
|
+
e.state === "fail" ? (i(), v(m(ee), {
|
|
120
120
|
key: 0,
|
|
121
121
|
"svg-title": m(d)("failed")
|
|
122
|
-
}, null, 8, ["svg-title"])) : e.state === "success" ? (i(), v(m(
|
|
122
|
+
}, null, 8, ["svg-title"])) : e.state === "success" ? (i(), v(m(te), {
|
|
123
123
|
key: 1,
|
|
124
124
|
"svg-title": m(d)("succeded")
|
|
125
|
-
}, null, 8, ["svg-title"])) : e.state === "loading" ? (i(), v(m(
|
|
125
|
+
}, null, 8, ["svg-title"])) : e.state === "loading" ? (i(), v(m(Z), {
|
|
126
126
|
key: 2,
|
|
127
127
|
small: "",
|
|
128
128
|
inverse: f.value
|
|
129
|
-
}, null, 8, ["inverse"])) :
|
|
129
|
+
}, null, 8, ["inverse"])) : j("", !0)
|
|
130
130
|
])
|
|
131
131
|
]),
|
|
132
132
|
key: "1"
|
|
133
133
|
} : void 0
|
|
134
134
|
]), 1032, ["critical", "variant", "condensed", "disabled", "inverse", "class"]));
|
|
135
135
|
}
|
|
136
|
-
}), ce = /* @__PURE__ */
|
|
136
|
+
}), ce = /* @__PURE__ */ $(le, [["__scopeId", "data-v-07b9c537"]]), re = Symbol(
|
|
137
137
|
"button actions with menu container injection key"
|
|
138
|
-
), de = 242, L = parseInt(
|
|
138
|
+
), de = 242, L = parseInt(X, 10), ue = (e, l, n) => {
|
|
139
139
|
const c = C(0);
|
|
140
140
|
let r = null;
|
|
141
|
-
const { buttonActionsWithMenu: _, menu: d, stackButtons: u } =
|
|
141
|
+
const { buttonActionsWithMenu: _, menu: d, stackButtons: u } = x(re, {
|
|
142
142
|
buttonActionsWithMenu: C(null),
|
|
143
143
|
menu: C(null),
|
|
144
144
|
stackButtons: C(!1)
|
|
145
|
-
}), f = g(() => _.value ?? e.value),
|
|
145
|
+
}), f = g(() => _.value ?? e.value), T = g(() => d.value ? [...l.value, d.value.$el] : l.value), a = (o) => {
|
|
146
146
|
var I;
|
|
147
|
-
const t = (I =
|
|
148
|
-
(
|
|
147
|
+
const t = (I = T.value) == null ? void 0 : I.reduce(
|
|
148
|
+
(G, M) => G + M.clientWidth + L,
|
|
149
149
|
-L - 1
|
|
150
150
|
), k = f.value.clientWidth;
|
|
151
151
|
return o && (c.value = k >= de && !u.value ? t : 0), c.value > k;
|
|
152
152
|
};
|
|
153
|
-
return
|
|
153
|
+
return H(
|
|
154
154
|
() => n,
|
|
155
155
|
() => {
|
|
156
|
-
|
|
156
|
+
z(() => {
|
|
157
157
|
u.value = a(!0);
|
|
158
158
|
});
|
|
159
159
|
},
|
|
160
160
|
{ deep: !0 }
|
|
161
|
-
),
|
|
162
|
-
r =
|
|
161
|
+
), J(() => {
|
|
162
|
+
r = q(f.value, () => {
|
|
163
163
|
u.value = a(c.value === 0);
|
|
164
164
|
});
|
|
165
|
-
}),
|
|
165
|
+
}), K(() => {
|
|
166
166
|
r == null || r.disconnect();
|
|
167
167
|
}), u;
|
|
168
|
-
}, ve = {}, fe = /* @__PURE__ */
|
|
168
|
+
}, ve = {}, fe = /* @__PURE__ */ O({
|
|
169
169
|
...ve,
|
|
170
170
|
__name: "button-actions",
|
|
171
171
|
props: {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
* All elements after the first will be rendered as "secondary".
|
|
176
|
-
*
|
|
177
|
-
* Each object in the list should have a `title`, an `event` and
|
|
178
|
-
* (optional) a Vue `icon` from the library `@adyen/ui-assets-icons-16`.
|
|
179
|
-
*
|
|
180
|
-
* `title`: Button's text.
|
|
181
|
-
*
|
|
182
|
-
* `event`: Event triggered when clicking the Button.
|
|
183
|
-
*
|
|
184
|
-
* `icon` (optional): Vue Icon from the library `@adyen/ui-assets-icons-16`.
|
|
185
|
-
*
|
|
186
|
-
* @see BentoButton for a list of all the other props supported by each button action.
|
|
187
|
-
*
|
|
188
|
-
* ```
|
|
189
|
-
* [{
|
|
190
|
-
* title: 'Primary',
|
|
191
|
-
* event: () => { ... },
|
|
192
|
-
* icon: FourPeopleIcon,
|
|
193
|
-
* link: {
|
|
194
|
-
* variant: 'default',
|
|
195
|
-
* external: true,
|
|
196
|
-
* to: 'https://www.adyen.com/'
|
|
197
|
-
* },
|
|
198
|
-
* }, {
|
|
199
|
-
* title: 'Secondary',
|
|
200
|
-
* event: () => { ... }
|
|
201
|
-
* disabled: true,
|
|
202
|
-
* variant: 'secondary',
|
|
203
|
-
* critical: true
|
|
204
|
-
* }]
|
|
205
|
-
* ```
|
|
206
|
-
*/
|
|
207
|
-
actions: {
|
|
208
|
-
type: Array,
|
|
209
|
-
required: !0
|
|
210
|
-
},
|
|
211
|
-
/**
|
|
212
|
-
* Sets the Button Actions to color scheme inverse
|
|
213
|
-
*/
|
|
214
|
-
inverse: {
|
|
215
|
-
type: Boolean,
|
|
216
|
-
default: !1
|
|
217
|
-
},
|
|
218
|
-
/**
|
|
219
|
-
* Defines the layout in which the button actions is presented.
|
|
220
|
-
* It can be one of:
|
|
221
|
-
*
|
|
222
|
-
* @values BUTTONS_START
|
|
223
|
-
* @values BUTTONS_END
|
|
224
|
-
* @values FILL_CONTAINER
|
|
225
|
-
* @values SPACE_BETWEEN
|
|
226
|
-
* @values VERTICAL_STACK
|
|
227
|
-
*/
|
|
228
|
-
layout: {
|
|
229
|
-
type: String,
|
|
230
|
-
default: O.BUTTONS_END,
|
|
231
|
-
validator: (e) => Object.values(O).includes(e)
|
|
232
|
-
}
|
|
172
|
+
actions: {},
|
|
173
|
+
inverse: { type: Boolean, default: !1 },
|
|
174
|
+
layout: { default: se.BUTTONS_END }
|
|
233
175
|
},
|
|
234
176
|
setup(e) {
|
|
235
177
|
const l = e, n = C(null), c = C(null), r = ue(n, c, l.actions), _ = g(() => l.actions.slice().reverse()), d = (a) => {
|
|
@@ -240,29 +182,29 @@ const G = {
|
|
|
240
182
|
"b-button-actions--stacked-buttons": r.value
|
|
241
183
|
})), f = (a) => (a == null ? void 0 : a.event) !== void 0 ? {
|
|
242
184
|
click: a.event
|
|
243
|
-
} : {},
|
|
244
|
-
return (a, o) => (i(),
|
|
185
|
+
} : {}, T = (a) => a.iconOnly && (a.iconLeft || a.iconRight || a.icon);
|
|
186
|
+
return (a, o) => (i(), S("div", {
|
|
245
187
|
ref_key: "buttonActions",
|
|
246
188
|
ref: n,
|
|
247
189
|
class: "b-button-actions"
|
|
248
190
|
}, [
|
|
249
|
-
|
|
250
|
-
class:
|
|
191
|
+
W("div", {
|
|
192
|
+
class: R(["b-button-actions__container-wrapper", u.value]),
|
|
251
193
|
role: "group"
|
|
252
194
|
}, [
|
|
253
|
-
(i(!0),
|
|
195
|
+
(i(!0), S(Y, null, Q(_.value, (t, k) => (i(), S("div", {
|
|
254
196
|
key: k,
|
|
255
197
|
ref_for: !0,
|
|
256
198
|
ref_key: "buttons",
|
|
257
199
|
ref: c,
|
|
258
200
|
class: "b-button-actions__button-wrapper"
|
|
259
201
|
}, [
|
|
260
|
-
t.state ? (i(), v(m(ce),
|
|
202
|
+
t.state ? (i(), v(m(ce), A({
|
|
261
203
|
key: 0,
|
|
262
204
|
condensed: t.condensed,
|
|
263
205
|
critical: t.critical,
|
|
264
206
|
disabled: t.disabled,
|
|
265
|
-
inverse:
|
|
207
|
+
inverse: a.inverse,
|
|
266
208
|
state: t.state,
|
|
267
209
|
variant: t.variant || d(k)
|
|
268
210
|
}, b(f(t))), {
|
|
@@ -270,15 +212,15 @@ const G = {
|
|
|
270
212
|
h(B(t.title), 1)
|
|
271
213
|
]),
|
|
272
214
|
_: 2
|
|
273
|
-
}, 1040, ["condensed", "critical", "disabled", "inverse", "state", "variant"])) : (i(), v(p,
|
|
215
|
+
}, 1040, ["condensed", "critical", "disabled", "inverse", "state", "variant"])) : (i(), v(p, A({
|
|
274
216
|
key: 1,
|
|
275
217
|
condensed: t.condensed,
|
|
276
218
|
critical: t.critical,
|
|
277
219
|
disabled: t.disabled,
|
|
278
|
-
inverse:
|
|
220
|
+
inverse: a.inverse,
|
|
279
221
|
link: t.link,
|
|
280
222
|
variant: t.variant || d(k)
|
|
281
|
-
}, b(f(t))),
|
|
223
|
+
}, b(f(t))), U({ _: 2 }, [
|
|
282
224
|
t.icon || t.iconLeft ? {
|
|
283
225
|
name: "iconLeft",
|
|
284
226
|
fn: y(() => [
|
|
@@ -288,7 +230,7 @@ const G = {
|
|
|
288
230
|
]),
|
|
289
231
|
key: "0"
|
|
290
232
|
} : void 0,
|
|
291
|
-
|
|
233
|
+
T(t) ? void 0 : {
|
|
292
234
|
name: "default",
|
|
293
235
|
fn: y(() => [
|
|
294
236
|
h(B(t.title), 1)
|
|
@@ -309,14 +251,14 @@ const G = {
|
|
|
309
251
|
], 2)
|
|
310
252
|
], 512));
|
|
311
253
|
}
|
|
312
|
-
}),
|
|
254
|
+
}), Ne = /* @__PURE__ */ $(fe, [["__scopeId", "data-v-0b415008"]]);
|
|
313
255
|
export {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
256
|
+
Ne as B,
|
|
257
|
+
D as a,
|
|
258
|
+
F as b,
|
|
259
|
+
se as c,
|
|
318
260
|
ce as d,
|
|
319
261
|
s as e,
|
|
320
262
|
re as f
|
|
321
263
|
};
|
|
322
|
-
//# sourceMappingURL=button-actions.
|
|
264
|
+
//# sourceMappingURL=button-actions.CdlXZ29B.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-actions.BvGAE7sw.js","sources":["../../../core/src/components/button-actions/button-actions.types.ts","../../../core/src/components/loading-button/loading-button.types.ts","../../../vue2/src/components/button/components/loading-button/loading-button.vue","../../../vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.keys.ts","../../../vue2/src/components/button/components/button-actions/composables/use-stack-buttons/use-stack-buttons.ts","../../../vue2/src/components/button/components/button-actions/button-actions.vue"],"sourcesContent":["import type { BentoButtonProps } from '@/core/components/button/button.types';\nimport { BentoLoadingButtonState } from '@/core/components/loading-button/loading-button.types';\n\nexport interface BentoButtonActionObject<IconType = object> extends BentoButtonProps {\n title: string;\n event?: (event: Event) => void;\n icon?: IconType;\n iconLeft?: IconType;\n iconRight?: IconType;\n state?: BentoLoadingButtonState | `${BentoLoadingButtonState}`;\n iconOnly?: boolean;\n}\n\nexport type BentoButtonActionsList<IconType = object> = Array<BentoButtonActionObject<IconType>>;\n\nexport enum BentoButtonActionsLayoutBasic {\n BUTTONS_END = 'buttons-end',\n FILL_CONTAINER = 'fill-container',\n SPACE_BETWEEN = 'space-between',\n VERTICAL_STACK = 'vertical-stack',\n}\nexport enum BentoButtonActionsLayoutExtended {\n BUTTONS_START = 'buttons-start',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport const BentoButtonActionsLayout = { ...BentoButtonActionsLayoutBasic, ...BentoButtonActionsLayoutExtended };\nexport type BentoButtonActionsLayout = BentoButtonActionsLayoutBasic | BentoButtonActionsLayoutExtended;\n","export enum BentoLoadingButtonState {\n START = 'start',\n LOADING = 'loading',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type BentoLoadingButtonIconState = Partial<{ [key in BentoLoadingButtonState]: string }>;\n","<template>\n <bento-button\n :critical=\"isCritical\"\n :variant=\"variant\"\n :condensed=\"condensed\"\n :disabled=\"disabled\"\n :inverse=\"inverse\"\n class=\"b-loading-button\"\n :class=\"conditionalClasses\"\n @click.capture.stop=\"onClick\"\n >\n <slot></slot>\n\n <template v-if=\"state === 'start' && hasSlot('iconLeft')\" #iconLeft>\n <slot name=\"iconLeft\"></slot>\n </template>\n <template v-else-if=\"state !== 'start'\" #iconLeft>\n <span class=\"b-loading-button__icon\" data-testid=\"loading-button-rotating-icon\">\n <cross v-if=\"state === 'fail'\" :svg-title=\"t('failed')\" />\n <checkmark v-else-if=\"state === 'success'\" :svg-title=\"t('succeded')\" />\n <!-- TODO: Replace with new loading-indicator component -->\n <bento-loading-indicator v-else-if=\"state === 'loading'\" small :inverse=\"isInverseLoadingIndicator\" />\n </span>\n </template>\n </bento-button>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, PropType, useSlots } from 'vue';\n import { BentoLoadingButtonState } from '@/core/components/loading-button/loading-button.types';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import BentoButton from '@/components/button/button.vue';\n import Cross from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import Checkmark from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n\n import { useI18n } from '@/utils/ts/i18n';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Reduces sizing of button\n */\n condensed: {\n type: BentoButton.props.condensed.type,\n default: false,\n },\n\n /**\n * Displays loading-button as critical\n */\n critical: {\n type: BentoButton.props.critical.type,\n default: false,\n },\n\n /**\n * Disables button functonality\n */\n disabled: {\n type: BentoButton.props.disabled.type,\n default: false,\n },\n\n /**\n * Sets color set to inverse\n */\n inverse: {\n type: Boolean,\n default: false,\n },\n\n /**\n * State of the button.\n * @values start, loading, success, fail\n */\n state: {\n type: String as PropType<BentoLoadingButtonState | `${BentoLoadingButtonState}`>,\n default: BentoLoadingButtonState.START,\n validator: (value: BentoLoadingButtonState) => Object.values(BentoLoadingButtonState).includes(value),\n },\n\n /**\n * Types of flavour of Button\n */\n variant: {\n type: BentoButton.props.variant.type,\n default: 'primary',\n validator: BentoButton.props.variant.validator,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Click event handler\n */\n (e: 'click', event: MouseEvent): void;\n }>();\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const conditionalClasses = computed(() => ({\n [`b-loading-button--${props.variant}-${BentoLoadingButtonState.LOADING}`]:\n props.state === BentoLoadingButtonState.LOADING && !props.disabled,\n 'b-loading-button--loading': props.state === BentoLoadingButtonState.LOADING && !props.disabled,\n [`b-loading-button--${props.variant}-${BentoLoadingButtonState.SUCCESS}`]:\n props.state === BentoLoadingButtonState.SUCCESS,\n [`b-loading-button--inverse`]: props.inverse,\n }));\n\n const isInverseLoadingIndicator = computed(\n () => (props.variant === 'primary' && !props.inverse) || (props.variant !== 'primary' && props.inverse)\n );\n const isCritical = computed(\n () =>\n (props.critical && props.state === BentoLoadingButtonState.START) ||\n props.state === BentoLoadingButtonState.FAIL\n );\n\n const onClick = (e: MouseEvent) => {\n // Prevent Vue3 from triggering event twice\n e.stopPropagation();\n\n if (props.state !== BentoLoadingButtonState.LOADING) {\n emit('click', e);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Loading Button component is used for cases where pressing a button starts an event that requires a loading state, e.g. when you have any sort of asynchronous action and are waiting for a response\n *\n * @example\n * import { BentoLoadingButton } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoLoadingButton },\n * template: `\n * <bento-loading-button state=\"loading\" variant=\"secondary\">\n * Loading\n * </bento-loading button>\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/loading-button/loading-button.scss\" />\n","export const BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY = Symbol(\n 'button actions with menu container injection key'\n);\n","import { computed, inject, nextTick, onMounted, onUnmounted, ref, Ref, watch } from 'vue';\nimport { observeSizeOfElement } from '@/utils/ts/resize';\nimport { BButtonActionsButtonsEndColumnGap } from '@adyen/bento-design-tokens/dist/js/bento/es6';\nimport { BentoButtonActionsList } from '../../button-actions.types';\nimport { BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY } from '@/internal/button-actions-with-menu/button-actions-with-menu.keys';\n\nconst CONTAINER_QUERY = 242;\nconst BUTTONS_GAP = parseInt(BButtonActionsButtonsEndColumnGap, 10);\n\n/**\n * Calculates the width of the container and the buttons and decides if the buttons should be stacked or not\n *\n * @param buttonActions Reference to the container element\n * @param buttons Reference array of button elements\n * @param actions Button actions actions prop\n */\nexport const useStackButtons = (\n buttonActions: Ref<HTMLDivElement>,\n buttons: Ref<HTMLDivElement[]>,\n actions: BentoButtonActionsList\n) => {\n const originalButtonsWidth = ref(0);\n let containerObserver: ResizeObserver | null = null;\n\n const { buttonActionsWithMenu, menu, stackButtons } = inject(BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY, {\n buttonActionsWithMenu: ref(null),\n menu: ref(null),\n stackButtons: ref(false),\n });\n\n const container = computed(() => buttonActionsWithMenu.value ?? buttonActions.value);\n\n const computedButtons = computed(() => (menu.value ? [...buttons.value, menu.value.$el] : buttons.value));\n\n const areButtonsWiderThanContainer = (updateOriginalButtonsWidth?: boolean) => {\n const buttonsWidth = computedButtons.value?.reduce(\n (acc, button) => acc + button.clientWidth + BUTTONS_GAP,\n -BUTTONS_GAP - 1 // to remove the extra spacing, as if there's 3 buttons, only two will have a gap in between\n );\n\n const containersWidth = container.value.clientWidth;\n\n if (updateOriginalButtonsWidth) {\n originalButtonsWidth.value = containersWidth >= CONTAINER_QUERY && !stackButtons.value ? buttonsWidth : 0;\n }\n return originalButtonsWidth.value > containersWidth;\n };\n\n watch(\n () => actions,\n () => {\n nextTick(() => {\n stackButtons.value = areButtonsWiderThanContainer(true);\n });\n },\n { deep: true }\n );\n\n onMounted(() => {\n containerObserver = observeSizeOfElement(container.value, () => {\n stackButtons.value = areButtonsWiderThanContainer(originalButtonsWidth.value === 0);\n });\n });\n\n onUnmounted(() => {\n containerObserver?.disconnect();\n });\n\n return stackButtons;\n};\n","<template>\n <div ref=\"buttonActions\" class=\"b-button-actions\">\n <div class=\"b-button-actions__container-wrapper\" :class=\"conditionalClasses\" role=\"group\">\n <div\n v-for=\"(button, index) in reversedActionsList\"\n :key=\"index\"\n ref=\"buttons\"\n class=\"b-button-actions__button-wrapper\"\n >\n <bento-loading-button\n v-if=\"button.state\"\n :condensed=\"button.condensed\"\n :critical=\"button.critical\"\n :disabled=\"button.disabled\"\n :inverse=\"inverse\"\n :state=\"button.state\"\n :variant=\"button.variant || generateButtonVariantByIndex(index)\"\n v-on=\"generateButtonEvents(button)\"\n >\n {{ button.title }}\n </bento-loading-button>\n <bento-button\n v-else\n :condensed=\"button.condensed\"\n :critical=\"button.critical\"\n :disabled=\"button.disabled\"\n :inverse=\"inverse\"\n :link=\"button.link\"\n :variant=\"button.variant || generateButtonVariantByIndex(index)\"\n v-on=\"generateButtonEvents(button)\"\n >\n <template v-if=\"button.icon || button.iconLeft\" #iconLeft>\n <component :is=\"button.icon || button.iconLeft\" :svg-title=\"button.title\"></component>\n </template>\n <template v-if=\"!isIconOnly(button)\" #default>\n {{ button.title }}\n </template>\n <template v-if=\"button.iconRight\" #iconRight>\n <component :is=\"button.iconRight\" :svg-title=\"button.title\"></component>\n </template>\n </bento-button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, PropType, ref } from 'vue';\n import BentoButton from '../../button.vue';\n import {\n BentoButtonActionObject,\n BentoButtonActionsLayout,\n BentoButtonActionsList,\n } from '@/core/components/button-actions/button-actions.types';\n import { BentoLoadingButton } from '../loading-button';\n import { useStackButtons } from '@/components/button/components/button-actions/composables/use-stack-buttons/use-stack-buttons';\n\n const props = defineProps({\n /**\n * List of actions that will be used to render the buttons.\n * First element in the list will be rendered as \"primary\".\n * All elements after the first will be rendered as \"secondary\".\n *\n * Each object in the list should have a `title`, an `event` and\n * (optional) a Vue `icon` from the library `@adyen/ui-assets-icons-16`.\n *\n * `title`: Button's text.\n *\n * `event`: Event triggered when clicking the Button.\n *\n * `icon` (optional): Vue Icon from the library `@adyen/ui-assets-icons-16`.\n *\n * @see BentoButton for a list of all the other props supported by each button action.\n *\n * ```\n * [{\n * title: 'Primary',\n * event: () => { ... },\n * icon: FourPeopleIcon,\n * link: {\n * variant: 'default',\n * external: true,\n * to: 'https://www.adyen.com/'\n * },\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * disabled: true,\n * variant: 'secondary',\n * critical: true\n * }]\n * ```\n */\n actions: {\n type: Array as PropType<BentoButtonActionsList>,\n required: true,\n },\n\n /**\n * Sets the Button Actions to color scheme inverse\n */\n inverse: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Defines the layout in which the button actions is presented.\n * It can be one of:\n *\n * @values BUTTONS_START\n * @values BUTTONS_END\n * @values FILL_CONTAINER\n * @values SPACE_BETWEEN\n * @values VERTICAL_STACK\n */\n layout: {\n type: String as PropType<BentoButtonActionsLayout | `${BentoButtonActionsLayout}`>,\n default: BentoButtonActionsLayout.BUTTONS_END,\n validator: (layout: BentoButtonActionsLayout) => Object.values(BentoButtonActionsLayout).includes(layout),\n },\n });\n\n const buttonActions = ref<HTMLDivElement>(null);\n const buttons = ref<HTMLDivElement[]>(null);\n const stackButtons = useStackButtons(buttonActions, buttons, props.actions);\n\n const reversedActionsList = computed(() => props.actions.slice().reverse());\n const generateButtonVariantByIndex = actionIndex => {\n const lastActionIndex = props.actions.length - 1;\n return actionIndex === lastActionIndex ? 'primary' : 'secondary';\n };\n\n const conditionalClasses = computed(() => ({\n [`b-button-actions--${props.layout}`]: true,\n [`b-button-actions--stacked-buttons`]: stackButtons.value,\n }));\n\n const generateButtonEvents = (button: BentoButtonActionObject) =>\n button?.event !== undefined\n ? {\n click: button.event,\n }\n : {};\n\n const isIconOnly = (button: BentoButtonActionObject) =>\n button.iconOnly && (button.iconLeft || button.iconRight || button.icon);\n</script>\n\n<script lang=\"ts\">\n /**\n * ButtonActions component manages a set of actions a user can choose from by displaying a group of buttons.\n *\n * @example\n * import { BentoButtonActions } from '@adyen/bento-vue2';\n * import MachineLearningIcon from '@adyen/ui-assets-icons-16/vue/machine-learning';\n *\n * const clickedAction = () => { //your action here }\n *\n * <template>\n * <bento-button-actions\n * :actions=\"[{\n * title: 'Primary',\n * event: clickedAction,\n * icon: MachineLearningIcon,\n * }, {\n * title: 'Secondary',\n * event: clickedAction,\n * }, {\n * title: 'Tertiary',\n * event: clickedAction,\n * }]\"\n * />\n * </template>\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/button-actions/button-actions.scss\" />\n"],"names":["BentoButtonActionsLayoutBasic","BentoButtonActionsLayoutBasic2","BentoButtonActionsLayoutExtended","BentoButtonActionsLayoutExtended2","BentoButtonActionsLayout","BentoLoadingButtonState","BentoLoadingButtonState2","__default__$1","messages","props","__props","emit","__emit","slots","useSlots","hasSlot","useHasSlot","t","useI18n","conditionalClasses","computed","isInverseLoadingIndicator","isCritical","onClick","e","BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY","CONTAINER_QUERY","BUTTONS_GAP","BButtonActionsButtonsEndColumnGap","useStackButtons","buttonActions","buttons","actions","originalButtonsWidth","ref","containerObserver","buttonActionsWithMenu","menu","stackButtons","inject","container","computedButtons","areButtonsWiderThanContainer","updateOriginalButtonsWidth","buttonsWidth","_a","acc","button","containersWidth","watch","nextTick","onMounted","observeSizeOfElement","onUnmounted","__default__","reversedActionsList","generateButtonVariantByIndex","actionIndex","lastActionIndex","generateButtonEvents","isIconOnly"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button-actions.CdlXZ29B.js","sources":["../../../core/src/components/button-actions/button-actions.types.ts","../../../core/src/components/loading-button/loading-button.types.ts","../../../vue2/src/components/button/components/loading-button/loading-button.vue","../../../vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.keys.ts","../../../vue2/src/components/button/components/button-actions/composables/use-stack-buttons/use-stack-buttons.ts","../../../vue2/src/components/button/components/button-actions/button-actions.vue"],"sourcesContent":["import type { BentoButtonProps } from '@/core/components/button/button.types';\nimport { BentoLoadingButtonState } from '@/core/components/loading-button/loading-button.types';\n\nexport interface BentoButtonActionObject<IconType = object> extends BentoButtonProps {\n title: string;\n event?: (event: Event) => void;\n icon?: IconType;\n iconLeft?: IconType;\n iconRight?: IconType;\n state?: BentoLoadingButtonState | `${BentoLoadingButtonState}`;\n iconOnly?: boolean;\n}\n\nexport type BentoButtonActionsList<IconType = object> = Array<BentoButtonActionObject<IconType>>;\n\nexport enum BentoButtonActionsLayoutBasic {\n BUTTONS_END = 'buttons-end',\n FILL_CONTAINER = 'fill-container',\n SPACE_BETWEEN = 'space-between',\n VERTICAL_STACK = 'vertical-stack',\n}\nexport enum BentoButtonActionsLayoutExtended {\n BUTTONS_START = 'buttons-start',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport const BentoButtonActionsLayout = { ...BentoButtonActionsLayoutBasic, ...BentoButtonActionsLayoutExtended };\nexport type BentoButtonActionsLayout = BentoButtonActionsLayoutBasic | BentoButtonActionsLayoutExtended;\n","export enum BentoLoadingButtonState {\n START = 'start',\n LOADING = 'loading',\n SUCCESS = 'success',\n FAIL = 'fail',\n}\n\nexport type BentoLoadingButtonIconState = Partial<{ [key in BentoLoadingButtonState]: string }>;\n","<template>\n <bento-button\n :critical=\"isCritical\"\n :variant=\"variant\"\n :condensed=\"condensed\"\n :disabled=\"disabled\"\n :inverse=\"inverse\"\n class=\"b-loading-button\"\n :class=\"conditionalClasses\"\n @click.capture.stop=\"onClick\"\n >\n <slot></slot>\n\n <template v-if=\"state === 'start' && hasSlot('iconLeft')\" #iconLeft>\n <slot name=\"iconLeft\"></slot>\n </template>\n <template v-else-if=\"state !== 'start'\" #iconLeft>\n <span class=\"b-loading-button__icon\" data-testid=\"loading-button-rotating-icon\">\n <cross v-if=\"state === 'fail'\" :svg-title=\"t('failed')\" />\n <checkmark v-else-if=\"state === 'success'\" :svg-title=\"t('succeded')\" />\n <!-- TODO: Replace with new loading-indicator component -->\n <bento-loading-indicator v-else-if=\"state === 'loading'\" small :inverse=\"isInverseLoadingIndicator\" />\n </span>\n </template>\n </bento-button>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, PropType, useSlots } from 'vue';\n import { BentoLoadingButtonState } from '@/core/components/loading-button/loading-button.types';\n import { BentoLoadingIndicator } from '@/components/loading-indicator';\n import BentoButton from '@/components/button/button.vue';\n import Cross from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import Checkmark from '@adyen/ui-assets-icons-16/vue/checkmark-circle-fill';\n import { useHasSlot } from '@/composables/use-has-slot/use-has-slot';\n\n import { useI18n } from '@/utils/ts/i18n';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const props = defineProps({\n /**\n * Reduces sizing of button\n */\n condensed: {\n type: BentoButton.props.condensed.type,\n default: false,\n },\n\n /**\n * Displays loading-button as critical\n */\n critical: {\n type: BentoButton.props.critical.type,\n default: false,\n },\n\n /**\n * Disables button functonality\n */\n disabled: {\n type: BentoButton.props.disabled.type,\n default: false,\n },\n\n /**\n * Sets color set to inverse\n */\n inverse: {\n type: Boolean,\n default: false,\n },\n\n /**\n * State of the button.\n * @values start, loading, success, fail\n */\n state: {\n type: String as PropType<BentoLoadingButtonState | `${BentoLoadingButtonState}`>,\n default: BentoLoadingButtonState.START,\n validator: (value: BentoLoadingButtonState) => Object.values(BentoLoadingButtonState).includes(value),\n },\n\n /**\n * Types of flavour of Button\n */\n variant: {\n type: BentoButton.props.variant.type,\n default: 'primary',\n validator: BentoButton.props.variant.validator,\n },\n });\n\n const emit = defineEmits<{\n /**\n * Click event handler\n */\n (e: 'click', event: MouseEvent): void;\n }>();\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const conditionalClasses = computed(() => ({\n [`b-loading-button--${props.variant}-${BentoLoadingButtonState.LOADING}`]:\n props.state === BentoLoadingButtonState.LOADING && !props.disabled,\n 'b-loading-button--loading': props.state === BentoLoadingButtonState.LOADING && !props.disabled,\n [`b-loading-button--${props.variant}-${BentoLoadingButtonState.SUCCESS}`]:\n props.state === BentoLoadingButtonState.SUCCESS,\n [`b-loading-button--inverse`]: props.inverse,\n }));\n\n const isInverseLoadingIndicator = computed(\n () => (props.variant === 'primary' && !props.inverse) || (props.variant !== 'primary' && props.inverse)\n );\n const isCritical = computed(\n () =>\n (props.critical && props.state === BentoLoadingButtonState.START) ||\n props.state === BentoLoadingButtonState.FAIL\n );\n\n const onClick = (e: MouseEvent) => {\n // Prevent Vue3 from triggering event twice\n e.stopPropagation();\n\n if (props.state !== BentoLoadingButtonState.LOADING) {\n emit('click', e);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Loading Button component is used for cases where pressing a button starts an event that requires a loading state, e.g. when you have any sort of asynchronous action and are waiting for a response\n *\n * @example\n * import { BentoLoadingButton } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoLoadingButton },\n * template: `\n * <bento-loading-button state=\"loading\" variant=\"secondary\">\n * Loading\n * </bento-loading button>\n * `\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/loading-button/loading-button.scss\" />\n","export const BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY = Symbol(\n 'button actions with menu container injection key'\n);\n","import { computed, inject, nextTick, onMounted, onUnmounted, ref, Ref, watch } from 'vue';\nimport { observeSizeOfElement } from '@/utils/ts/resize';\nimport { BButtonActionsButtonsEndColumnGap } from '@adyen/bento-design-tokens/dist/js/bento/es6';\nimport { BentoButtonActionsList } from '../../button-actions.types';\nimport { BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY } from '@/internal/button-actions-with-menu/button-actions-with-menu.keys';\n\nconst CONTAINER_QUERY = 242;\nconst BUTTONS_GAP = parseInt(BButtonActionsButtonsEndColumnGap, 10);\n\n/**\n * Calculates the width of the container and the buttons and decides if the buttons should be stacked or not\n *\n * @param buttonActions Reference to the container element\n * @param buttons Reference array of button elements\n * @param actions Button actions actions prop\n */\nexport const useStackButtons = (\n buttonActions: Ref<HTMLDivElement>,\n buttons: Ref<HTMLDivElement[]>,\n actions: BentoButtonActionsList\n) => {\n const originalButtonsWidth = ref(0);\n let containerObserver: ResizeObserver | null = null;\n\n const { buttonActionsWithMenu, menu, stackButtons } = inject(BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY, {\n buttonActionsWithMenu: ref(null),\n menu: ref(null),\n stackButtons: ref(false),\n });\n\n const container = computed(() => buttonActionsWithMenu.value ?? buttonActions.value);\n\n const computedButtons = computed(() => (menu.value ? [...buttons.value, menu.value.$el] : buttons.value));\n\n const areButtonsWiderThanContainer = (updateOriginalButtonsWidth?: boolean) => {\n const buttonsWidth = computedButtons.value?.reduce(\n (acc, button) => acc + button.clientWidth + BUTTONS_GAP,\n -BUTTONS_GAP - 1 // to remove the extra spacing, as if there's 3 buttons, only two will have a gap in between\n );\n\n const containersWidth = container.value.clientWidth;\n\n if (updateOriginalButtonsWidth) {\n originalButtonsWidth.value = containersWidth >= CONTAINER_QUERY && !stackButtons.value ? buttonsWidth : 0;\n }\n return originalButtonsWidth.value > containersWidth;\n };\n\n watch(\n () => actions,\n () => {\n nextTick(() => {\n stackButtons.value = areButtonsWiderThanContainer(true);\n });\n },\n { deep: true }\n );\n\n onMounted(() => {\n containerObserver = observeSizeOfElement(container.value, () => {\n stackButtons.value = areButtonsWiderThanContainer(originalButtonsWidth.value === 0);\n });\n });\n\n onUnmounted(() => {\n containerObserver?.disconnect();\n });\n\n return stackButtons;\n};\n","<template>\n <div ref=\"buttonActions\" class=\"b-button-actions\">\n <div class=\"b-button-actions__container-wrapper\" :class=\"conditionalClasses\" role=\"group\">\n <div\n v-for=\"(button, index) in reversedActionsList\"\n :key=\"index\"\n ref=\"buttons\"\n class=\"b-button-actions__button-wrapper\"\n >\n <bento-loading-button\n v-if=\"button.state\"\n :condensed=\"button.condensed\"\n :critical=\"button.critical\"\n :disabled=\"button.disabled\"\n :inverse=\"inverse\"\n :state=\"button.state\"\n :variant=\"button.variant || generateButtonVariantByIndex(index)\"\n v-on=\"generateButtonEvents(button)\"\n >\n {{ button.title }}\n </bento-loading-button>\n <bento-button\n v-else\n :condensed=\"button.condensed\"\n :critical=\"button.critical\"\n :disabled=\"button.disabled\"\n :inverse=\"inverse\"\n :link=\"button.link\"\n :variant=\"button.variant || generateButtonVariantByIndex(index)\"\n v-on=\"generateButtonEvents(button)\"\n >\n <template v-if=\"button.icon || button.iconLeft\" #iconLeft>\n <component :is=\"button.icon || button.iconLeft\" :svg-title=\"button.title\"></component>\n </template>\n <template v-if=\"!isIconOnly(button)\" #default>\n {{ button.title }}\n </template>\n <template v-if=\"button.iconRight\" #iconRight>\n <component :is=\"button.iconRight\" :svg-title=\"button.title\"></component>\n </template>\n </bento-button>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref } from 'vue';\n import BentoButton from '../../button.vue';\n import {\n BentoButtonActionObject,\n BentoButtonActionsLayout,\n } from '@/core/components/button-actions/button-actions.types';\n import type { BentoButtonActionsProps } from './button-actions.types';\n import { BentoLoadingButton } from '../loading-button';\n import { useStackButtons } from '@/components/button/components/button-actions/composables/use-stack-buttons/use-stack-buttons';\n\n const props = withDefaults(defineProps<BentoButtonActionsProps>(), {\n inverse: false,\n layout: BentoButtonActionsLayout.BUTTONS_END,\n });\n\n const buttonActions = ref<HTMLDivElement>(null);\n const buttons = ref<HTMLDivElement[]>(null);\n const stackButtons = useStackButtons(buttonActions, buttons, props.actions);\n\n const reversedActionsList = computed(() => props.actions.slice().reverse());\n const generateButtonVariantByIndex = actionIndex => {\n const lastActionIndex = props.actions.length - 1;\n return actionIndex === lastActionIndex ? 'primary' : 'secondary';\n };\n\n const conditionalClasses = computed(() => ({\n [`b-button-actions--${props.layout}`]: true,\n [`b-button-actions--stacked-buttons`]: stackButtons.value,\n }));\n\n const generateButtonEvents = (button: BentoButtonActionObject) =>\n button?.event !== undefined\n ? {\n click: button.event,\n }\n : {};\n\n const isIconOnly = (button: BentoButtonActionObject) =>\n button.iconOnly && (button.iconLeft || button.iconRight || button.icon);\n</script>\n\n<script lang=\"ts\">\n /**\n * ButtonActions component manages a set of actions a user can choose from by displaying a group of buttons.\n *\n * @example\n * import { BentoButtonActions } from '@adyen/bento-vue2';\n * import MachineLearningIcon from '@adyen/ui-assets-icons-16/vue/machine-learning';\n *\n * const clickedAction = () => { //your action here }\n *\n * <template>\n * <bento-button-actions\n * :actions=\"[{\n * title: 'Primary',\n * event: clickedAction,\n * icon: MachineLearningIcon,\n * }, {\n * title: 'Secondary',\n * event: clickedAction,\n * }, {\n * title: 'Tertiary',\n * event: clickedAction,\n * }]\"\n * />\n * </template>\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/button-actions/button-actions.scss\" />\n"],"names":["BentoButtonActionsLayoutBasic","BentoButtonActionsLayoutBasic2","BentoButtonActionsLayoutExtended","BentoButtonActionsLayoutExtended2","BentoButtonActionsLayout","BentoLoadingButtonState","BentoLoadingButtonState2","__default__$1","messages","props","__props","emit","__emit","slots","useSlots","hasSlot","useHasSlot","t","useI18n","conditionalClasses","computed","isInverseLoadingIndicator","isCritical","onClick","e","BUTTON_ACTIONS_WITH_MENU_CONTAINER_INJECTION_KEY","CONTAINER_QUERY","BUTTONS_GAP","BButtonActionsButtonsEndColumnGap","useStackButtons","buttonActions","buttons","actions","originalButtonsWidth","ref","containerObserver","buttonActionsWithMenu","menu","stackButtons","inject","container","computedButtons","areButtonsWiderThanContainer","updateOriginalButtonsWidth","buttonsWidth","_a","acc","button","containersWidth","watch","nextTick","onMounted","observeSizeOfElement","onUnmounted","__default__","reversedActionsList","generateButtonVariantByIndex","actionIndex","lastActionIndex","generateButtonEvents","isIconOnly"],"mappings":"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"}
|