@adyen/bento-vue3 1.43.0 → 1.44.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/packages/vue2/src/components/button/components/button-actions/composables/use-stack-buttons/use-stack-buttons.d.ts +10 -0
- package/dist/@types/packages/vue2/src/components/card/card.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/checkbox/checkbox.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue.d.ts +8 -8
- package/dist/@types/packages/vue2/src/components/code-snippet/code-snippet.vue.d.ts +50 -32
- package/dist/@types/packages/vue2/src/components/data-grid/components/data-grid-config-settings/data-grid-config-settings.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/data-grid/data-grid.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/date-picker/date-picker.vue.d.ts +21 -15
- package/dist/@types/packages/vue2/src/components/date-range-picker/components/date-range-picker-calendar/date-range-picker-calendar.vue.d.ts +56 -38
- package/dist/@types/packages/vue2/src/components/date-range-picker/date-range-picker.vue.d.ts +77 -53
- package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-base-textbox/dropdown-base-textbox.vue.d.ts +6 -4
- package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-default-textbox/dropdown-default-textbox.vue.d.ts +4 -2
- package/dist/@types/packages/vue2/src/components/dropdown/components/dropdown-small-textbox/dropdown-small-textbox.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/dropdown/dropdown.vue.d.ts +20 -12
- package/dist/@types/packages/vue2/src/components/empty-state/empty-state.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/file-uploader/file-uploader.types.d.ts +6 -2
- package/dist/@types/packages/vue2/src/components/filter-bar/components/all-filters-modal/all-filters-modal.vue.d.ts +228 -180
- package/dist/@types/packages/vue2/src/components/filter-bar/components/base-filter/base-filter.vue.d.ts +6 -6
- package/dist/@types/packages/vue2/src/components/filter-bar/components/boolean-filter/boolean-filter.vue.d.ts +12 -12
- package/dist/@types/packages/vue2/src/components/filter-bar/components/date-filter/date-filter.vue.d.ts +27 -21
- package/dist/@types/packages/vue2/src/components/filter-bar/components/date-range-filter/date-range-filter.vue.d.ts +139 -97
- package/dist/@types/packages/vue2/src/components/filter-bar/components/filter-bar-button/filter-bar-button.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/filter-bar/components/input-filter/input-filter.vue.d.ts +15 -15
- package/dist/@types/packages/vue2/src/components/filter-bar/components/range-filter/range-filter.vue.d.ts +15 -15
- package/dist/@types/packages/vue2/src/components/filter-bar/filter-bar.vue.d.ts +208 -160
- package/dist/@types/packages/vue2/src/components/header/header.vue.d.ts +9 -0
- package/dist/@types/packages/vue2/src/components/input-field/input-field.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/input-field-password/input-field-password.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.keys.d.ts +1 -0
- package/dist/@types/packages/vue2/src/components/internal/button-actions-with-menu/button-actions-with-menu.vue.d.ts +16 -1
- package/dist/@types/packages/vue2/src/components/internal/button-actions-with-menu/index.d.ts +2 -0
- package/dist/@types/packages/vue2/src/components/internal/checkbox-input/checkbox-input.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/internal/controls-group/controls-group.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/internal/field-label/field-label.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/internal/index.d.ts +1 -0
- package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/components/listbox-multi-select-category/listbox-multi-select-category.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/components/listbox-multi-select-options/listbox-multi-select-options.vue.d.ts +6 -6
- package/dist/@types/packages/vue2/src/components/internal/listbox/components/listbox-multi-select/listbox-multi-select.vue.d.ts +9 -9
- package/dist/@types/packages/vue2/src/components/internal/listbox/listbox.vue.d.ts +15 -15
- package/dist/@types/packages/vue2/src/components/internal/radio-input/radio-input.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/internal/tooltip/tooltip.vue.d.ts +5 -5
- package/dist/@types/packages/vue2/src/components/menu/components/menu-item-list/menu-item-list.vue.d.ts +15 -0
- package/dist/@types/packages/vue2/src/components/menu/menu.vue.d.ts +48 -3
- package/dist/@types/packages/vue2/src/components/modal/components/base-modal/base-modal.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/modal/components/modal-default/modal-default.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/modal/components/modal-dialog/modal-dialog.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/modal/components/modal-page/modal-page.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/modal/modal.vue.d.ts +7 -7
- package/dist/@types/packages/vue2/src/components/modal-fullscreen/components/modal-fullscreen-page.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/modal-fullscreen/modal-fullscreen.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/popover/popover.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/popper-container/popper-container.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/promo-banner/promo-banner.vue.d.ts +2 -2
- package/dist/@types/packages/vue2/src/components/radio-group/radio-group.vue.d.ts +2 -2
- package/dist/@types/packages/vue2/src/components/selection-card/components/selection-card-group/selection-card-group.vue.d.ts +3 -3
- package/dist/@types/packages/vue2/src/components/sidepanel/components/sidepanel-page.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item/summary-grid-item.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-amount/summary-grid-item-amount.vue.d.ts +2 -2
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-custom/summary-grid-item-custom.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-numeric/summary-grid-item-numeric.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-percentage/summary-grid-item-percentage.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/summary-grid/components/summary-grid-item-text/summary-grid-item-text.vue.d.ts +1 -1
- package/dist/@types/packages/vue2/src/components/textarea/textarea.vue.d.ts +6 -4
- package/dist/@types/packages/vue2/src/components/timeline/timeline.vue.d.ts +6 -4
- package/dist/@types/packages/vue2/src/composables/use-form-validate/use-form.d.ts +9 -6
- package/dist/@types/packages/vue2/src/composables/use-form-validate/use-form.types.d.ts +5 -1
- 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-with-menu.css +1 -1
- package/dist/assets/button-actions.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/data-grid.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/header.css +1 -1
- package/dist/assets/inspector.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/selection-card-group.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/assets/textarea.css +1 -1
- package/dist/button.js +7 -8
- package/dist/button.js.map +1 -1
- package/dist/card.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chunks/{action-bar.COQrEUYU.js → action-bar.B-_JS43H.js} +10 -9
- package/dist/chunks/action-bar.B-_JS43H.js.map +1 -0
- package/dist/chunks/{base-modal.ku0lyHOs.js → base-modal.BR_pB6eH.js} +2 -2
- package/dist/chunks/{base-modal.ku0lyHOs.js.map → base-modal.BR_pB6eH.js.map} +1 -1
- package/dist/chunks/button-actions-with-menu.GT_kNv28.js +119 -0
- package/dist/chunks/button-actions-with-menu.GT_kNv28.js.map +1 -0
- package/dist/chunks/button-actions.BjlQS6tm.js +322 -0
- package/dist/chunks/button-actions.BjlQS6tm.js.map +1 -0
- package/dist/chunks/{card.D_XL2TWr.js → card.BrEfcUoE.js} +2 -2
- package/dist/chunks/{card.D_XL2TWr.js.map → card.BrEfcUoE.js.map} +1 -1
- package/dist/chunks/{checkbox-group.BUmkYc2R.js → checkbox-group.C5IweVVx.js} +2 -2
- package/dist/chunks/{checkbox-group.BUmkYc2R.js.map → checkbox-group.C5IweVVx.js.map} +1 -1
- package/dist/chunks/{checkbox.L94hTcPY.js → checkbox.B72ok3Yu.js} +15 -15
- package/dist/chunks/{checkbox.L94hTcPY.js.map → checkbox.B72ok3Yu.js.map} +1 -1
- package/dist/chunks/{code-snippet.DbUGxmYi.js → code-snippet.S5NdUu0p.js} +4 -4
- package/dist/chunks/{code-snippet.DbUGxmYi.js.map → code-snippet.S5NdUu0p.js.map} +1 -1
- package/dist/chunks/{dashboard-section.YU5gKDEJ.js → dashboard-section.LWxBcOV_.js} +2 -2
- package/dist/chunks/{dashboard-section.YU5gKDEJ.js.map → dashboard-section.LWxBcOV_.js.map} +1 -1
- package/dist/chunks/{dashed-underline.BKfUevuM.js → dashed-underline.CRlWNPrd.js} +2 -2
- package/dist/chunks/{dashed-underline.BKfUevuM.js.map → dashed-underline.CRlWNPrd.js.map} +1 -1
- package/dist/chunks/{data-grid-template.DI27ou71.js → data-grid-template.BZVeRN6g.js} +2 -2
- package/dist/chunks/{data-grid-template.DI27ou71.js.map → data-grid-template.BZVeRN6g.js.map} +1 -1
- package/dist/chunks/{data-grid.DgPWs1hH.js → data-grid.CKDW-rbM.js} +10 -10
- package/dist/chunks/{data-grid.DgPWs1hH.js.map → data-grid.CKDW-rbM.js.map} +1 -1
- package/dist/chunks/{date-picker.DDsfecHp.js → date-picker.BrZ2X1nQ.js} +3 -3
- package/dist/chunks/{date-picker.DDsfecHp.js.map → date-picker.BrZ2X1nQ.js.map} +1 -1
- package/dist/chunks/{date-range-picker.DjPmRy0E.js → date-range-picker.4y2goCI8.js} +6 -6
- package/dist/chunks/{date-range-picker.DjPmRy0E.js.map → date-range-picker.4y2goCI8.js.map} +1 -1
- package/dist/chunks/{dropdown-default-textbox.CcRQ1f4U.js → dropdown-default-textbox.ZjVeMHVC.js} +131 -120
- package/dist/chunks/{dropdown-default-textbox.CcRQ1f4U.js.map → dropdown-default-textbox.ZjVeMHVC.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.BKDmDRSv.js → dropdown-tag.ClKm4xAo.js} +2 -2
- package/dist/chunks/{dropdown-tag.BKDmDRSv.js.map → dropdown-tag.ClKm4xAo.js.map} +1 -1
- package/dist/chunks/dropdown.Sj2OLuEF.js +911 -0
- package/dist/chunks/{dropdown.DpjMobyf.js.map → dropdown.Sj2OLuEF.js.map} +1 -1
- package/dist/chunks/es6.C-HLzYPA.js +11 -0
- package/dist/chunks/{es6.b4enG1py.js.map → es6.C-HLzYPA.js.map} +1 -1
- package/dist/chunks/{file-uploader.cRbwpcAw.js → file-uploader.BgRbkW2V.js} +368 -365
- package/dist/chunks/file-uploader.BgRbkW2V.js.map +1 -0
- package/dist/chunks/{filter-bar.BwJTrH5U.js → filter-bar.CM1FZ02d.js} +16 -17
- package/dist/chunks/{filter-bar.BwJTrH5U.js.map → filter-bar.CM1FZ02d.js.map} +1 -1
- package/dist/chunks/{footer-actions.DvIVWqWv.js → footer-actions.Dvsb0g5Y.js} +2 -2
- package/dist/chunks/{footer-actions.DvIVWqWv.js.map → footer-actions.Dvsb0g5Y.js.map} +1 -1
- package/dist/chunks/{header.C0NBlBJv.js → header.8BzBNgxj.js} +23 -23
- package/dist/chunks/{header.C0NBlBJv.js.map → header.8BzBNgxj.js.map} +1 -1
- package/dist/chunks/{input-field-password.DxNS4MmO.js → input-field-password.CXsERnQX.js} +3 -3
- package/dist/chunks/{input-field-password.DxNS4MmO.js.map → input-field-password.CXsERnQX.js.map} +1 -1
- package/dist/chunks/{input-field.BQKEQIZd.js → input-field.C-7_iMIS.js} +2 -2
- package/dist/chunks/{input-field.BQKEQIZd.js.map → input-field.C-7_iMIS.js.map} +1 -1
- package/dist/chunks/{menu.BpqOdkxR.js → menu.hDynz4lc.js} +132 -104
- package/dist/chunks/menu.hDynz4lc.js.map +1 -0
- package/dist/chunks/{modal-fullscreen.DtgTb1Xh.js → modal-fullscreen.BCGaxVNb.js} +2 -2
- package/dist/chunks/{modal-fullscreen.DtgTb1Xh.js.map → modal-fullscreen.BCGaxVNb.js.map} +1 -1
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CjD91zJo.js → modal.vue_vue_type_script_setup_true_lang.DJXx8ftn.js} +4 -4
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.CjD91zJo.js.map → modal.vue_vue_type_script_setup_true_lang.DJXx8ftn.js.map} +1 -1
- package/dist/chunks/{pagination.C34l_EYf.js → pagination.C9kqX5tD.js} +2 -2
- package/dist/chunks/{pagination.C34l_EYf.js.map → pagination.C9kqX5tD.js.map} +1 -1
- package/dist/chunks/{popover.D9Zw4w9l.js → popover.DwGgnCyn.js} +2 -2
- package/dist/chunks/{popover.D9Zw4w9l.js.map → popover.DwGgnCyn.js.map} +1 -1
- package/dist/chunks/{search-bar.Dy0dBek2.js → search-bar.DPC0amNg.js} +3 -3
- package/dist/chunks/{search-bar.Dy0dBek2.js.map → search-bar.DPC0amNg.js.map} +1 -1
- package/dist/chunks/{secondary-nav.DYFnrUIK.js → secondary-nav.DH7aXddE.js} +3 -3
- package/dist/chunks/{secondary-nav.DYFnrUIK.js.map → secondary-nav.DH7aXddE.js.map} +1 -1
- package/dist/chunks/{selection-card-group.BY8o4PYF.js → selection-card-group.DDBJ423n.js} +19 -19
- package/dist/chunks/{selection-card-group.BY8o4PYF.js.map → selection-card-group.DDBJ423n.js.map} +1 -1
- package/dist/chunks/{sidepanel.BywianGe.js → sidepanel.8NclWh0V.js} +2 -2
- package/dist/chunks/{sidepanel.BywianGe.js.map → sidepanel.8NclWh0V.js.map} +1 -1
- package/dist/chunks/{teleport.CI0k6eaC.js → teleport.B255JhsV.js} +26 -17
- package/dist/chunks/teleport.B255JhsV.js.map +1 -0
- package/dist/chunks/{textarea.vAp6HFi9.js → textarea.D1weaQCC.js} +72 -68
- package/dist/chunks/{textarea.vAp6HFi9.js.map → textarea.D1weaQCC.js.map} +1 -1
- package/dist/chunks/{timeline-item.ND_EMuwP.js → timeline-item.BDYrjKhM.js} +3 -3
- package/dist/chunks/{timeline-item.ND_EMuwP.js.map → timeline-item.BDYrjKhM.js.map} +1 -1
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.LBw_ALfS.js → tutorial.vue_vue_type_script_setup_true_lang.ltZUbc6M.js} +4 -4
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.LBw_ALfS.js.map → tutorial.vue_vue_type_script_setup_true_lang.ltZUbc6M.js.map} +1 -1
- package/dist/chunks/{use-cached-selected-values.BOZK76mN.js → use-cached-selected-values.B6beyyvX.js} +3 -3
- package/dist/chunks/{use-cached-selected-values.BOZK76mN.js.map → use-cached-selected-values.B6beyyvX.js.map} +1 -1
- 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 +1 -1
- package/dist/date-range-picker.js +1 -1
- package/dist/dropdown.js +4 -4
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/header.js +1 -1
- package/dist/index.js +67 -68
- package/dist/index.js.map +1 -1
- package/dist/input-field-password.js +1 -1
- package/dist/input-field.js +1 -1
- package/dist/internal.js +28 -24
- package/dist/internal.js.map +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/popover.js +1 -1
- package/dist/search-bar.js +2 -2
- package/dist/secondary-nav.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/sidepanel.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +1 -1
- package/dist/tutorial.js +1 -1
- package/dist/web-types.json +1 -1
- package/package.json +2 -2
- package/dist/@types/packages/vue2/src/components/button/button.demo.d.ts +0 -6
- package/dist/assets/loading-button.css +0 -1
- package/dist/chunks/action-bar.COQrEUYU.js.map +0 -1
- package/dist/chunks/button-actions-with-menu.Bn7Kdx4v.js +0 -106
- package/dist/chunks/button-actions-with-menu.Bn7Kdx4v.js.map +0 -1
- package/dist/chunks/button-actions.Bjfo46Q_.js +0 -150
- package/dist/chunks/button-actions.Bjfo46Q_.js.map +0 -1
- package/dist/chunks/dropdown.DpjMobyf.js +0 -907
- package/dist/chunks/es6.b4enG1py.js +0 -10
- package/dist/chunks/file-uploader.cRbwpcAw.js.map +0 -1
- package/dist/chunks/loading-button.CNWhVIPK.js +0 -137
- package/dist/chunks/loading-button.CNWhVIPK.js.map +0 -1
- package/dist/chunks/menu.BpqOdkxR.js.map +0 -1
- package/dist/chunks/teleport.CI0k6eaC.js.map +0 -1
- package/dist/chunks/use-click-outside.D6aIgS15.js +0 -14
- package/dist/chunks/use-click-outside.D6aIgS15.js.map +0 -1
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { defineComponent as R, useSlots as M, computed as g, openBlock as i, createBlock as v, normalizeClass as U, withModifiers as P, createSlots as W, withCtx as y, renderSlot as A, unref as m, createElementVNode as $, createCommentVNode as V, ref as C, inject as H, watch as z, nextTick as J, onMounted as K, onUnmounted as Y, createElementBlock as T, Fragment as q, renderList as Q, mergeProps as N, toHandlers as b, createTextVNode as h, toDisplayString as B, resolveDynamicComponent as E } from "vue";
|
|
2
|
+
import { B as p } from "./button.pwNCxwPu.js";
|
|
3
|
+
import { o as X } from "./resize.Bqks3WUm.js";
|
|
4
|
+
import { f as Z } from "./es6.C-HLzYPA.js";
|
|
5
|
+
import { B as ee } from "./loading-indicator.N_WV9Gwz.js";
|
|
6
|
+
import { C as te } from "./cross-circle-fill.DN5b3_eL.js";
|
|
7
|
+
import { C as ne } from "./checkmark-circle-fill.ClIf1E3H.js";
|
|
8
|
+
import { u as ae } from "./use-has-slot.B7eQSabc.js";
|
|
9
|
+
import { u as se } from "./i18n.CPGoe9tN.js";
|
|
10
|
+
import { _ as D } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
11
|
+
import "../assets/button-actions.css";
|
|
12
|
+
var F = /* @__PURE__ */ ((e) => (e.BUTTONS_END = "buttons-end", e.FILL_CONTAINER = "fill-container", e.SPACE_BETWEEN = "space-between", e.VERTICAL_STACK = "vertical-stack", e))(F || {}), w = /* @__PURE__ */ ((e) => (e.BUTTONS_START = "buttons-start", e))(w || {});
|
|
13
|
+
const O = { ...F, ...w };
|
|
14
|
+
var s = /* @__PURE__ */ ((e) => (e.START = "start", e.LOADING = "loading", e.SUCCESS = "success", e.FAIL = "fail", e))(s || {});
|
|
15
|
+
const G = {
|
|
16
|
+
"en-US": {
|
|
17
|
+
failed: "Failed",
|
|
18
|
+
succeded: "Succeded"
|
|
19
|
+
},
|
|
20
|
+
"pt-BR": {
|
|
21
|
+
failed: "Falha"
|
|
22
|
+
},
|
|
23
|
+
"ja-JP": {
|
|
24
|
+
failed: "失敗しました"
|
|
25
|
+
}
|
|
26
|
+
}, ie = {
|
|
27
|
+
class: "b-loading-button__icon",
|
|
28
|
+
"data-testid": "loading-button-rotating-icon"
|
|
29
|
+
}, oe = {
|
|
30
|
+
i18n: { messages: G }
|
|
31
|
+
}, le = /* @__PURE__ */ R({
|
|
32
|
+
...oe,
|
|
33
|
+
__name: "loading-button",
|
|
34
|
+
props: {
|
|
35
|
+
/**
|
|
36
|
+
* Reduces sizing of button
|
|
37
|
+
*/
|
|
38
|
+
condensed: {
|
|
39
|
+
type: p.props.condensed.type,
|
|
40
|
+
default: !1
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* Displays loading-button as critical
|
|
44
|
+
*/
|
|
45
|
+
critical: {
|
|
46
|
+
type: p.props.critical.type,
|
|
47
|
+
default: !1
|
|
48
|
+
},
|
|
49
|
+
/**
|
|
50
|
+
* Disables button functonality
|
|
51
|
+
*/
|
|
52
|
+
disabled: {
|
|
53
|
+
type: p.props.disabled.type,
|
|
54
|
+
default: !1
|
|
55
|
+
},
|
|
56
|
+
/**
|
|
57
|
+
* Sets color set to inverse
|
|
58
|
+
*/
|
|
59
|
+
inverse: {
|
|
60
|
+
type: Boolean,
|
|
61
|
+
default: !1
|
|
62
|
+
},
|
|
63
|
+
/**
|
|
64
|
+
* State of the button.
|
|
65
|
+
* @values start, loading, success, fail
|
|
66
|
+
*/
|
|
67
|
+
state: {
|
|
68
|
+
type: String,
|
|
69
|
+
default: s.START,
|
|
70
|
+
validator: (e) => Object.values(s).includes(e)
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* Types of flavour of Button
|
|
74
|
+
*/
|
|
75
|
+
variant: {
|
|
76
|
+
type: p.props.variant.type,
|
|
77
|
+
default: "primary",
|
|
78
|
+
validator: p.props.variant.validator
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
emits: ["click"],
|
|
82
|
+
setup(e, { emit: l }) {
|
|
83
|
+
const n = e, c = l, r = M(), _ = ae(r), { t: d } = se({ messages: G }), u = g(() => ({
|
|
84
|
+
[`b-loading-button--${n.variant}-${s.LOADING}`]: n.state === s.LOADING && !n.disabled,
|
|
85
|
+
"b-loading-button--loading": n.state === s.LOADING && !n.disabled,
|
|
86
|
+
[`b-loading-button--${n.variant}-${s.SUCCESS}`]: n.state === s.SUCCESS,
|
|
87
|
+
"b-loading-button--inverse": n.inverse
|
|
88
|
+
})), f = g(
|
|
89
|
+
() => n.variant === "primary" && !n.inverse || n.variant !== "primary" && n.inverse
|
|
90
|
+
), S = g(
|
|
91
|
+
() => n.critical && n.state === s.START || n.state === s.FAIL
|
|
92
|
+
), a = (o) => {
|
|
93
|
+
o.stopPropagation(), n.state !== s.LOADING && c("click", o);
|
|
94
|
+
};
|
|
95
|
+
return (o, t) => (i(), v(p, {
|
|
96
|
+
critical: S.value,
|
|
97
|
+
variant: e.variant,
|
|
98
|
+
condensed: e.condensed,
|
|
99
|
+
disabled: e.disabled,
|
|
100
|
+
inverse: e.inverse,
|
|
101
|
+
class: U(["b-loading-button", u.value]),
|
|
102
|
+
onClickCapture: P(a, ["stop"])
|
|
103
|
+
}, W({
|
|
104
|
+
default: y(() => [
|
|
105
|
+
A(o.$slots, "default", {}, void 0, !0)
|
|
106
|
+
]),
|
|
107
|
+
_: 2
|
|
108
|
+
}, [
|
|
109
|
+
e.state === "start" && m(_)("iconLeft") ? {
|
|
110
|
+
name: "iconLeft",
|
|
111
|
+
fn: y(() => [
|
|
112
|
+
A(o.$slots, "iconLeft", {}, void 0, !0)
|
|
113
|
+
]),
|
|
114
|
+
key: "0"
|
|
115
|
+
} : e.state !== "start" ? {
|
|
116
|
+
name: "iconLeft",
|
|
117
|
+
fn: y(() => [
|
|
118
|
+
$("span", ie, [
|
|
119
|
+
e.state === "fail" ? (i(), v(m(te), {
|
|
120
|
+
key: 0,
|
|
121
|
+
"svg-title": m(d)("failed")
|
|
122
|
+
}, null, 8, ["svg-title"])) : e.state === "success" ? (i(), v(m(ne), {
|
|
123
|
+
key: 1,
|
|
124
|
+
"svg-title": m(d)("succeded")
|
|
125
|
+
}, null, 8, ["svg-title"])) : e.state === "loading" ? (i(), v(m(ee), {
|
|
126
|
+
key: 2,
|
|
127
|
+
small: "",
|
|
128
|
+
inverse: f.value
|
|
129
|
+
}, null, 8, ["inverse"])) : V("", !0)
|
|
130
|
+
])
|
|
131
|
+
]),
|
|
132
|
+
key: "1"
|
|
133
|
+
} : void 0
|
|
134
|
+
]), 1032, ["critical", "variant", "condensed", "disabled", "inverse", "class"]));
|
|
135
|
+
}
|
|
136
|
+
}), ce = /* @__PURE__ */ D(le, [["__scopeId", "data-v-07b9c537"]]), re = Symbol(
|
|
137
|
+
"button actions with menu container injection key"
|
|
138
|
+
), de = 242, L = parseInt(Z, 10), ue = (e, l, n) => {
|
|
139
|
+
const c = C(0);
|
|
140
|
+
let r = null;
|
|
141
|
+
const { buttonActionsWithMenu: _, menu: d, stackButtons: u } = H(re, {
|
|
142
|
+
buttonActionsWithMenu: C(null),
|
|
143
|
+
menu: C(null),
|
|
144
|
+
stackButtons: C(!1)
|
|
145
|
+
}), f = g(() => _.value ?? e.value), S = g(() => d.value ? [...l.value, d.value.$el] : l.value), a = (o) => {
|
|
146
|
+
var I;
|
|
147
|
+
const t = (I = S.value) == null ? void 0 : I.reduce(
|
|
148
|
+
(j, x) => j + x.clientWidth + L,
|
|
149
|
+
-L - 1
|
|
150
|
+
), k = f.value.clientWidth;
|
|
151
|
+
return o && (c.value = k >= de && !u.value ? t : 0), c.value > k;
|
|
152
|
+
};
|
|
153
|
+
return z(
|
|
154
|
+
() => n,
|
|
155
|
+
() => {
|
|
156
|
+
J(() => {
|
|
157
|
+
u.value = a(!0);
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
{ deep: !0 }
|
|
161
|
+
), K(() => {
|
|
162
|
+
r = X(f.value, () => {
|
|
163
|
+
u.value = a(c.value === 0);
|
|
164
|
+
});
|
|
165
|
+
}), Y(() => {
|
|
166
|
+
r == null || r.disconnect();
|
|
167
|
+
}), u;
|
|
168
|
+
}, ve = {}, fe = /* @__PURE__ */ R({
|
|
169
|
+
...ve,
|
|
170
|
+
__name: "button-actions",
|
|
171
|
+
props: {
|
|
172
|
+
/**
|
|
173
|
+
* List of actions that will be used to render the buttons.
|
|
174
|
+
* First element in the list will be rendered as "primary".
|
|
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
|
+
}
|
|
233
|
+
},
|
|
234
|
+
setup(e) {
|
|
235
|
+
const l = e, n = C(null), c = C(null), r = ue(n, c, l.actions), _ = g(() => l.actions.slice().reverse()), d = (a) => {
|
|
236
|
+
const o = l.actions.length - 1;
|
|
237
|
+
return a === o ? "primary" : "secondary";
|
|
238
|
+
}, u = g(() => ({
|
|
239
|
+
[`b-button-actions--${l.layout}`]: !0,
|
|
240
|
+
"b-button-actions--stacked-buttons": r.value
|
|
241
|
+
})), f = (a) => (a == null ? void 0 : a.event) !== void 0 ? {
|
|
242
|
+
click: a.event
|
|
243
|
+
} : {}, S = (a) => a.iconOnly && (a.iconLeft || a.iconRight || a.icon);
|
|
244
|
+
return (a, o) => (i(), T("div", {
|
|
245
|
+
ref_key: "buttonActions",
|
|
246
|
+
ref: n,
|
|
247
|
+
class: "b-button-actions"
|
|
248
|
+
}, [
|
|
249
|
+
$("div", {
|
|
250
|
+
class: U(["b-button-actions__container-wrapper", u.value]),
|
|
251
|
+
role: "group"
|
|
252
|
+
}, [
|
|
253
|
+
(i(!0), T(q, null, Q(_.value, (t, k) => (i(), T("div", {
|
|
254
|
+
key: k,
|
|
255
|
+
ref_for: !0,
|
|
256
|
+
ref_key: "buttons",
|
|
257
|
+
ref: c,
|
|
258
|
+
class: "b-button-actions__button-wrapper"
|
|
259
|
+
}, [
|
|
260
|
+
t.state ? (i(), v(m(ce), N({
|
|
261
|
+
key: 0,
|
|
262
|
+
condensed: t.condensed,
|
|
263
|
+
critical: t.critical,
|
|
264
|
+
disabled: t.disabled,
|
|
265
|
+
inverse: e.inverse,
|
|
266
|
+
state: t.state,
|
|
267
|
+
variant: t.variant || d(k)
|
|
268
|
+
}, b(f(t))), {
|
|
269
|
+
default: y(() => [
|
|
270
|
+
h(B(t.title), 1)
|
|
271
|
+
]),
|
|
272
|
+
_: 2
|
|
273
|
+
}, 1040, ["condensed", "critical", "disabled", "inverse", "state", "variant"])) : (i(), v(p, N({
|
|
274
|
+
key: 1,
|
|
275
|
+
condensed: t.condensed,
|
|
276
|
+
critical: t.critical,
|
|
277
|
+
disabled: t.disabled,
|
|
278
|
+
inverse: e.inverse,
|
|
279
|
+
link: t.link,
|
|
280
|
+
variant: t.variant || d(k)
|
|
281
|
+
}, b(f(t))), W({ _: 2 }, [
|
|
282
|
+
t.icon || t.iconLeft ? {
|
|
283
|
+
name: "iconLeft",
|
|
284
|
+
fn: y(() => [
|
|
285
|
+
(i(), v(E(t.icon || t.iconLeft), {
|
|
286
|
+
"svg-title": t.title
|
|
287
|
+
}, null, 8, ["svg-title"]))
|
|
288
|
+
]),
|
|
289
|
+
key: "0"
|
|
290
|
+
} : void 0,
|
|
291
|
+
S(t) ? void 0 : {
|
|
292
|
+
name: "default",
|
|
293
|
+
fn: y(() => [
|
|
294
|
+
h(B(t.title), 1)
|
|
295
|
+
]),
|
|
296
|
+
key: "1"
|
|
297
|
+
},
|
|
298
|
+
t.iconRight ? {
|
|
299
|
+
name: "iconRight",
|
|
300
|
+
fn: y(() => [
|
|
301
|
+
(i(), v(E(t.iconRight), {
|
|
302
|
+
"svg-title": t.title
|
|
303
|
+
}, null, 8, ["svg-title"]))
|
|
304
|
+
]),
|
|
305
|
+
key: "2"
|
|
306
|
+
} : void 0
|
|
307
|
+
]), 1040, ["condensed", "critical", "disabled", "inverse", "link", "variant"]))
|
|
308
|
+
]))), 128))
|
|
309
|
+
], 2)
|
|
310
|
+
], 512));
|
|
311
|
+
}
|
|
312
|
+
}), Ae = /* @__PURE__ */ D(fe, [["__scopeId", "data-v-157f5906"]]);
|
|
313
|
+
export {
|
|
314
|
+
Ae as B,
|
|
315
|
+
F as a,
|
|
316
|
+
w as b,
|
|
317
|
+
O as c,
|
|
318
|
+
ce as d,
|
|
319
|
+
s as e,
|
|
320
|
+
re as f
|
|
321
|
+
};
|
|
322
|
+
//# sourceMappingURL=button-actions.BjlQS6tm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-actions.BjlQS6tm.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":";;;;;;;;;;;AAeY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,cAAA,eACAA,EAAA,iBAAA,kBACAA,EAAA,gBAAA,iBACAA,EAAA,iBAAA,kBAJQA,IAAAD,KAAA,CAAA,CAAA,GAMAE,IAAA,kBAAAC,OACRA,EAAA,gBAAA,iBADQA,IAAAD,KAAA,CAAA,CAAA;AAOL,MAAAE,IAAA,EAAA,GAAAJ,GAAA,GAAAE,EAAA;AC5BK,IAAAG,IAAA,kBAAAC,OACRA,EAAA,QAAA,SACAA,EAAA,UAAA,WACAA,EAAA,UAAA,WACAA,EAAA,OAAA,QAJQA,IAAAD,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;GCsJRE,KAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA9GA,UAAAC,IAAAC,GAqDAC,IAAAC,GAOAC,IAAAC,EAAA,GACAC,IAAAC,GAAAH,CAAA,GACA,EAAA,GAAAI,EAAA,IAAAC,GAAA,EAAA,UAAAV,EAAA,CAAA,GAEAW,IAAAC,EAAA,OAAA;AAAA,MAA2C,CAAA,qBAAAX,EAAA,OAAA,IAAAJ,EAAA,OAAA,EAAA,GAAAI,EAAA,UAAAJ,EAAA,WAAA,CAAAI,EAAA;AAAA,MAEuB,6BAAAA,EAAA,UAAAJ,EAAA,WAAA,CAAAI,EAAA;AAAA,MACyB,CAAA,qBAAAA,EAAA,OAAA,IAAAJ,EAAA,OAAA,EAAA,GAAAI,EAAA,UAAAJ,EAAA;AAAA,MAE3C,6BAAAI,EAAA;AAAA,IACP,EAAA,GAGzCY,IAAAD;AAAA,MAAkC,MAAAX,EAAA,YAAA,aAAA,CAAAA,EAAA,WAAAA,EAAA,YAAA,aAAAA,EAAA;AAAA,IACiE,GAEnGa,IAAAF;AAAA,MAAmB,MAAAX,EAAA,YAAAA,EAAA,UAAAJ,EAAA,SAAAI,EAAA,UAAAJ,EAAA;AAAA,IAG6B,GAGhDkB,IAAA,CAAAC,MAAA;AAEI,MAAAA,EAAA,gBAAA,GAEAf,EAAA,UAAAJ,EAAA,WACIM,EAAA,SAAAa,CAAA;AAAA,IACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEClIDC,KAAA;AAAA,EAAyD;AAEhE,GCIAC,KAAA,KACAC,IAAA,SAAAC,GAAA,EAAA,GASOC,KAAA,CAAAC,GAAAC,GAAAC,MAAA;AAKH,QAAAC,IAAAC,EAAA,CAAA;AACA,MAAAC,IAAA;AAEA,QAAA,EAAA,uBAAAC,GAAA,MAAAC,GAAA,cAAAC,EAAA,IAAAC,EAAAd,IAAA;AAAA,IAA+G,uBAAAS,EAAA,IAAA;AAAA,IAC5E,MAAAA,EAAA,IAAA;AAAA,IACjB,cAAAA,EAAA,EAAA;AAAA,EACS,CAAA,GAG3BM,IAAApB,EAAA,MAAAgB,EAAA,SAAAN,EAAA,KAAA,GAEAW,IAAArB,EAAA,MAAAiB,EAAA,QAAA,CAAA,GAAAN,EAAA,OAAAM,EAAA,MAAA,GAAA,IAAAN,EAAA,KAAA,GAEAW,IAAA,CAAAC,MAAA;;AACI,UAAAC,KAAAC,IAAAJ,EAAA,UAAA,gBAAAI,EAAA;AAAA,MAA4C,CAAAC,GAAAC,MAAAD,IAAAC,EAAA,cAAApB;AAAA,MACI,CAAAA,IAAA;AAAA,OAIhDqB,IAAAR,EAAA,MAAA;AAEA,WAAAG,MACIV,EAAA,QAAAe,KAAAtB,MAAA,CAAAY,EAAA,QAAAM,IAAA,IAEJX,EAAA,QAAAe;AAAA,EAAoC;AAGxC,SAAAC;AAAA,IAAA,MAAAjB;AAAA,IACU,MAAA;AAEF,MAAAkB,EAAA,MAAA;AACI,QAAAZ,EAAA,QAAAI,EAAA,EAAA;AAAA,MAAsD,CAAA;AAAA,IACzD;AAAA,IACL,EAAA,MAAA,GAAA;AAAA,EACa,GAGjBS,EAAA,MAAA;AACI,IAAAhB,IAAAiB,EAAAZ,EAAA,OAAA,MAAA;AACI,MAAAF,EAAA,QAAAI,EAAAT,EAAA,UAAA,CAAA;AAAA,IAAkF,CAAA;AAAA,EACrF,CAAA,GAGLoB,EAAA,MAAA;AACI,IAAAlB,KAAA,QAAAA,EAAA;AAAA,EAA8B,CAAA,GAGlCG;AACJ,GC0GIgB,KAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAtHA,UAAA7C,IAAAC,GAkEAoB,IAAAI,EAAA,IAAA,GACAH,IAAAG,EAAA,IAAA,GACAI,IAAAT,GAAAC,GAAAC,GAAAtB,EAAA,OAAA,GAEA8C,IAAAnC,EAAA,MAAAX,EAAA,QAAA,MAAA,EAAA,QAAA,CAAA,GACA+C,IAAA,CAAAC,MAAA;AACI,YAAAC,IAAAjD,EAAA,QAAA,SAAA;AACA,aAAAgD,MAAAC,IAAA,YAAA;AAAA,IAAqD,GAGzDvC,IAAAC,EAAA,OAAA;AAAA,MAA2C,CAAA,qBAAAX,EAAA,MAAA,EAAA,GAAA;AAAA,MACA,qCAAA6B,EAAA;AAAA,IACa,EAAA,GAGxDqB,IAAA,CAAAZ,OAAAA,KAAA,gBAAAA,EAAA,WAAA,SAAA;AAAA,MAEU,OAAAA,EAAA;AAAA,IACkB,IAAA,CAAA,GAI5Ba,IAAA,CAAAb,MAAAA,EAAA,aAAAA,EAAA,YAAAA,EAAA,aAAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,7 +6,7 @@ import { u as ee } from "./use-has-slot.B7eQSabc.js";
|
|
|
6
6
|
import { g as ae } from "./generate-uid.D-HFI38h.js";
|
|
7
7
|
import { u as te } from "./i18n.CPGoe9tN.js";
|
|
8
8
|
import { o as oe } from "./resize.Bqks3WUm.js";
|
|
9
|
-
import { c as ne, B as de } from "./button-actions.
|
|
9
|
+
import { c as ne, B as de } from "./button-actions.BjlQS6tm.js";
|
|
10
10
|
import { _ as se } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
11
11
|
import "../assets/card.css";
|
|
12
12
|
var T = /* @__PURE__ */ ((l) => (l.PRIMARY = "primary", l.SECONDARY = "secondary", l))(T || {}), p = /* @__PURE__ */ ((l) => (l.DEFAULT = "default", l.SMALL = "small", l))(p || {});
|
|
@@ -210,4 +210,4 @@ export {
|
|
|
210
210
|
p as a,
|
|
211
211
|
Se as c
|
|
212
212
|
};
|
|
213
|
-
//# sourceMappingURL=card.
|
|
213
|
+
//# sourceMappingURL=card.BrEfcUoE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.D_XL2TWr.js","sources":["../../../vue2/src/components/card/card.types.ts","../../../vue2/src/components/card/card.vue"],"sourcesContent":["/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCardBackground {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCardTitleSize {\n DEFAULT = 'default',\n SMALL = 'small',\n}\n","<template>\n <div class=\"b-card\" :class=\"cardConditionalClasses\" data-testid=\"card\" @click=\"onClick\">\n <div v-if=\"hasSlot('image')\" class=\"b-card__image\">\n <slot name=\"image\"></slot>\n </div>\n <div\n v-if=\"showHeader\"\n class=\"b-card__header\"\n :class=\"cardHeaderConditionalClasses\"\n :tabindex=\"tabIndex\"\n :aria-controls=\"expandable ? cardId : null\"\n :aria-expanded=\"expandable ? `${showContent}` : null\"\n :role=\"expandable ? 'button' : null\"\n @click=\"toggleExpansion\"\n @keypress.enter=\"toggleExpansion\"\n @keypress.space=\"toggleExpansion\"\n >\n <div class=\"b-card__header-wrapper\">\n <div v-if=\"showTitleWrapper\" class=\"b-card__header-slot-wrapper\">\n <div class=\"b-card__title-wrapper\" :class=\"cardTitleWrapperConditionalClasses\">\n <div v-if=\"expandable\" class=\"b-card__toggle\" :class=\"cardToggleConditionalClasses\">\n <chevron-up-icon v-if=\"showContent\" :svg-title=\"t('hideContent')\" aria-hidden=\"true\" />\n <chevron-down-icon v-else :svg-title=\"t('showContent')\" aria-hidden=\"true\" />\n </div>\n <bento-typography v-if=\"hasSlot('default')\" class=\"b-card__title\" v-bind=\"typography\">\n <slot />\n </bento-typography>\n </div>\n\n <template v-if=\"hasSlot('header')\">\n <slot name=\"header\"></slot>\n </template>\n </div>\n\n <bento-typography v-if=\"hasSlot('description')\" class=\"b-card__description\" el=\"div\" variant=\"body\">\n <slot name=\"description\" />\n </bento-typography>\n </div>\n </div>\n\n <Transition name=\"b-card__animation\">\n <div v-if=\"showCardBody\" class=\"b-card__wrapper\" :style=\"contentMaxHeight\">\n <div\n :id=\"expandable ? cardId : null\"\n ref=\"contentDiv\"\n class=\"b-card__body\"\n :class=\"cardBodyConditionalClasses\"\n >\n <div v-if=\"hasSlot('content')\" class=\"b-card__content\" :class=\"cardContentConditionalClasses\">\n <slot name=\"content\" />\n </div>\n\n <div v-if=\"actions\" class=\"b-card__actions\" :class=\"cardActionsConditionalClasses\">\n <bento-button-actions :actions=\"actions\" :layout=\"actionsLayout\"></bento-button-actions>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, useSlots, watch } from 'vue';\n\n // Components\n import { BentoTypography } from '@/components/typography';\n import { BentoButtonActions, BentoButtonActionsLayout, BentoButtonActionsList } from '@/components/button';\n import { BentoCardBackground, BentoCardTitleSize } from '@/components/card/card.types';\n import ChevronDownIcon from '@adyen/ui-assets-icons-16/vue/chevron-down';\n import ChevronUpIcon from '@adyen/ui-assets-icons-16/vue/chevron-up';\n\n // Composables\n import { useExpandableContentHeight } from '@/composables/use-expandable-content-height/use-expandable-content-height';\n\n // Utils\n import { useHasSlot } from '@/composables';\n import { generateUid } from '@/core/utils/ts';\n import { useI18n } from '@/utils/ts/i18n';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const props = withDefaults(\n 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`: Vue Icon from the library `@adyen/ui-assets-icons-16`.\n *\n * ```\n * [{\n * title: 'Primary',\n * event: () => { ... },\n * icon: FourPeopleIcon\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * }]\n * ```\n */\n actions?: BentoButtonActionsList;\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 actionsLayout?: BentoButtonActionsLayout | `${BentoButtonActionsLayout}`;\n\n /**\n * Defines the color of card background\n */\n background?: BentoCardBackground | `${BentoCardBackground}`;\n\n /**\n * Sets the expandable card in a closed state\n */\n closed?: boolean;\n\n /**\n * Disables the expandable card\n */\n disabled?: boolean;\n\n /**\n * The whole content of the card will be expandable in accordion manner\n */\n expandable?: boolean;\n\n /**\n * Defines the title size of the card header\n */\n titleSize?: BentoCardTitleSize | `${BentoCardTitleSize}`;\n }>(),\n {\n actions: null,\n actionsLayout: BentoButtonActionsLayout.BUTTONS_END,\n background: BentoCardBackground.PRIMARY,\n closed: false,\n disabled: false,\n expandable: false,\n titleSize: BentoCardTitleSize.DEFAULT,\n }\n );\n\n const emit = defineEmits<{\n (e: 'click');\n (e: 'expanded', isExpanded: boolean);\n }>();\n\n const contentDiv = ref<HTMLDivElement>(null);\n\n const cardId = generateUid('card');\n const showContent = ref(!props.closed);\n watch(\n () => props.closed,\n value => {\n showContent.value = !value;\n }\n );\n const showHeader = computed(() => hasSlot('default') || hasSlot('description') || hasSlot('header'));\n const showTitleWrapper = computed(() => hasSlot('default') || hasSlot('header'));\n const showCardBody = computed(\n () =>\n (hasSlot('content') || props.actions?.length) &&\n (!props.expandable || (props.expandable && showContent.value))\n );\n const tabIndex = computed(() => (props.expandable && !props.disabled ? 0 : -1));\n\n const cardConditionalClasses = computed(() => ({\n [`b-card--${props.background}`]: props.background,\n 'b-card--expandable': props.expandable,\n 'b-card--disabled': props.expandable && props.disabled,\n }));\n\n const cardHeaderConditionalClasses = computed(() => ({\n 'b-card__header--expandable': props.expandable,\n 'b-card__header--without-body': !props.expandable && !showCardBody.value,\n }));\n\n const cardToggleConditionalClasses = computed(() => ({\n 'b-card__toggle--small-text': props.titleSize === BentoCardTitleSize.SMALL,\n }));\n\n const cardBodyConditionalClasses = computed(() => ({\n 'b-card__body--expandable': props.expandable && hasSlot('content'),\n 'b-card__body--without-header': !props.expandable && !showHeader.value,\n }));\n\n const cardContentConditionalClasses = computed(() => ({\n 'b-card__content--without-header': !props.expandable && !showHeader.value,\n 'b-card__content--expandable': props.expandable,\n }));\n\n const cardActionsConditionalClasses = computed(() => {\n const isNotExpandableWithoutContent = !props.expandable && props.actions && !hasSlot('content');\n\n return {\n 'b-card__actions--without-content': isNotExpandableWithoutContent,\n 'b-card__actions--without-content-and-with-header': isNotExpandableWithoutContent && showHeader.value,\n };\n });\n\n const cardTitleWrapperConditionalClasses = computed(() => ({\n 'b-card__title-wrapper--truncated': hasSlot('header'),\n }));\n\n const typography = computed(\n () =>\n ({\n el: 'div',\n variant: props.titleSize === BentoCardTitleSize.DEFAULT ? 'title' : 'body',\n strongest: props.titleSize === BentoCardTitleSize.SMALL,\n wide: props.titleSize === BentoCardTitleSize.SMALL,\n } as InstanceType<typeof BentoTypography>['$props'])\n );\n\n // Toggle open and close logic and animation\n const { updateContentHeight, contentHeight } = useExpandableContentHeight(contentDiv, showContent);\n\n const contentMaxHeight = computed(() =>\n props.expandable && contentHeight.value ? { 'max-height': contentHeight.value } : {}\n );\n\n watch(\n () => contentDiv.value,\n () => {\n let observer: ResizeObserver | null = null;\n if (!observer && contentDiv.value) {\n observer = observeSizeOfElement(contentDiv.value, () => {\n if (contentDiv.value) {\n updateContentHeight();\n }\n });\n }\n }\n );\n\n const toggleExpansion = () => {\n if (!props.disabled && props.expandable) {\n showContent.value = !showContent.value;\n emit('expanded', showContent.value);\n updateContentHeight();\n }\n };\n\n const onClick = () => {\n if (!props.disabled) {\n emit('click');\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * A card is a flexible and composable container.\n * Use cards to represent a single object or to visually group certain content, like legal information within company settings.\n *\n * @example\n * import { BentoCard } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCard },\n * template: `\n * <bento-card>\n * Title of the Card\n * </bento-card>\n * `\n * };\n */\n export default {\n i18n: { messages },\n name: 'bento-card',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/card/card.scss\" />\n"],"names":["BentoCardBackground","BentoCardBackground2","BentoCardTitleSize","BentoCardTitleSize2","__default__","messages","t","useI18n","slots","useSlots","hasSlot","useHasSlot","props","__props","emit","__emit","contentDiv","ref","cardId","generateUid","showContent","watch","value","showHeader","computed","showTitleWrapper","showCardBody","_a","tabIndex","cardConditionalClasses","cardHeaderConditionalClasses","cardToggleConditionalClasses","cardBodyConditionalClasses","cardContentConditionalClasses","cardActionsConditionalClasses","isNotExpandableWithoutContent","cardTitleWrapperConditionalClasses","typography","updateContentHeight","contentHeight","useExpandableContentHeight","contentMaxHeight","observer","observeSizeOfElement","toggleExpansion","onClick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"card.BrEfcUoE.js","sources":["../../../vue2/src/components/card/card.types.ts","../../../vue2/src/components/card/card.vue"],"sourcesContent":["/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCardBackground {\n PRIMARY = 'primary',\n SECONDARY = 'secondary',\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCardTitleSize {\n DEFAULT = 'default',\n SMALL = 'small',\n}\n","<template>\n <div class=\"b-card\" :class=\"cardConditionalClasses\" data-testid=\"card\" @click=\"onClick\">\n <div v-if=\"hasSlot('image')\" class=\"b-card__image\">\n <slot name=\"image\"></slot>\n </div>\n <div\n v-if=\"showHeader\"\n class=\"b-card__header\"\n :class=\"cardHeaderConditionalClasses\"\n :tabindex=\"tabIndex\"\n :aria-controls=\"expandable ? cardId : null\"\n :aria-expanded=\"expandable ? `${showContent}` : null\"\n :role=\"expandable ? 'button' : null\"\n @click=\"toggleExpansion\"\n @keypress.enter=\"toggleExpansion\"\n @keypress.space=\"toggleExpansion\"\n >\n <div class=\"b-card__header-wrapper\">\n <div v-if=\"showTitleWrapper\" class=\"b-card__header-slot-wrapper\">\n <div class=\"b-card__title-wrapper\" :class=\"cardTitleWrapperConditionalClasses\">\n <div v-if=\"expandable\" class=\"b-card__toggle\" :class=\"cardToggleConditionalClasses\">\n <chevron-up-icon v-if=\"showContent\" :svg-title=\"t('hideContent')\" aria-hidden=\"true\" />\n <chevron-down-icon v-else :svg-title=\"t('showContent')\" aria-hidden=\"true\" />\n </div>\n <bento-typography v-if=\"hasSlot('default')\" class=\"b-card__title\" v-bind=\"typography\">\n <slot />\n </bento-typography>\n </div>\n\n <template v-if=\"hasSlot('header')\">\n <slot name=\"header\"></slot>\n </template>\n </div>\n\n <bento-typography v-if=\"hasSlot('description')\" class=\"b-card__description\" el=\"div\" variant=\"body\">\n <slot name=\"description\" />\n </bento-typography>\n </div>\n </div>\n\n <Transition name=\"b-card__animation\">\n <div v-if=\"showCardBody\" class=\"b-card__wrapper\" :style=\"contentMaxHeight\">\n <div\n :id=\"expandable ? cardId : null\"\n ref=\"contentDiv\"\n class=\"b-card__body\"\n :class=\"cardBodyConditionalClasses\"\n >\n <div v-if=\"hasSlot('content')\" class=\"b-card__content\" :class=\"cardContentConditionalClasses\">\n <slot name=\"content\" />\n </div>\n\n <div v-if=\"actions\" class=\"b-card__actions\" :class=\"cardActionsConditionalClasses\">\n <bento-button-actions :actions=\"actions\" :layout=\"actionsLayout\"></bento-button-actions>\n </div>\n </div>\n </div>\n </Transition>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, ref, useSlots, watch } from 'vue';\n\n // Components\n import { BentoTypography } from '@/components/typography';\n import { BentoButtonActions, BentoButtonActionsLayout, BentoButtonActionsList } from '@/components/button';\n import { BentoCardBackground, BentoCardTitleSize } from '@/components/card/card.types';\n import ChevronDownIcon from '@adyen/ui-assets-icons-16/vue/chevron-down';\n import ChevronUpIcon from '@adyen/ui-assets-icons-16/vue/chevron-up';\n\n // Composables\n import { useExpandableContentHeight } from '@/composables/use-expandable-content-height/use-expandable-content-height';\n\n // Utils\n import { useHasSlot } from '@/composables';\n import { generateUid } from '@/core/utils/ts';\n import { useI18n } from '@/utils/ts/i18n';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n\n const props = withDefaults(\n 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`: Vue Icon from the library `@adyen/ui-assets-icons-16`.\n *\n * ```\n * [{\n * title: 'Primary',\n * event: () => { ... },\n * icon: FourPeopleIcon\n * }, {\n * title: 'Secondary',\n * event: () => { ... }\n * }]\n * ```\n */\n actions?: BentoButtonActionsList;\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 actionsLayout?: BentoButtonActionsLayout | `${BentoButtonActionsLayout}`;\n\n /**\n * Defines the color of card background\n */\n background?: BentoCardBackground | `${BentoCardBackground}`;\n\n /**\n * Sets the expandable card in a closed state\n */\n closed?: boolean;\n\n /**\n * Disables the expandable card\n */\n disabled?: boolean;\n\n /**\n * The whole content of the card will be expandable in accordion manner\n */\n expandable?: boolean;\n\n /**\n * Defines the title size of the card header\n */\n titleSize?: BentoCardTitleSize | `${BentoCardTitleSize}`;\n }>(),\n {\n actions: null,\n actionsLayout: BentoButtonActionsLayout.BUTTONS_END,\n background: BentoCardBackground.PRIMARY,\n closed: false,\n disabled: false,\n expandable: false,\n titleSize: BentoCardTitleSize.DEFAULT,\n }\n );\n\n const emit = defineEmits<{\n (e: 'click');\n (e: 'expanded', isExpanded: boolean);\n }>();\n\n const contentDiv = ref<HTMLDivElement>(null);\n\n const cardId = generateUid('card');\n const showContent = ref(!props.closed);\n watch(\n () => props.closed,\n value => {\n showContent.value = !value;\n }\n );\n const showHeader = computed(() => hasSlot('default') || hasSlot('description') || hasSlot('header'));\n const showTitleWrapper = computed(() => hasSlot('default') || hasSlot('header'));\n const showCardBody = computed(\n () =>\n (hasSlot('content') || props.actions?.length) &&\n (!props.expandable || (props.expandable && showContent.value))\n );\n const tabIndex = computed(() => (props.expandable && !props.disabled ? 0 : -1));\n\n const cardConditionalClasses = computed(() => ({\n [`b-card--${props.background}`]: props.background,\n 'b-card--expandable': props.expandable,\n 'b-card--disabled': props.expandable && props.disabled,\n }));\n\n const cardHeaderConditionalClasses = computed(() => ({\n 'b-card__header--expandable': props.expandable,\n 'b-card__header--without-body': !props.expandable && !showCardBody.value,\n }));\n\n const cardToggleConditionalClasses = computed(() => ({\n 'b-card__toggle--small-text': props.titleSize === BentoCardTitleSize.SMALL,\n }));\n\n const cardBodyConditionalClasses = computed(() => ({\n 'b-card__body--expandable': props.expandable && hasSlot('content'),\n 'b-card__body--without-header': !props.expandable && !showHeader.value,\n }));\n\n const cardContentConditionalClasses = computed(() => ({\n 'b-card__content--without-header': !props.expandable && !showHeader.value,\n 'b-card__content--expandable': props.expandable,\n }));\n\n const cardActionsConditionalClasses = computed(() => {\n const isNotExpandableWithoutContent = !props.expandable && props.actions && !hasSlot('content');\n\n return {\n 'b-card__actions--without-content': isNotExpandableWithoutContent,\n 'b-card__actions--without-content-and-with-header': isNotExpandableWithoutContent && showHeader.value,\n };\n });\n\n const cardTitleWrapperConditionalClasses = computed(() => ({\n 'b-card__title-wrapper--truncated': hasSlot('header'),\n }));\n\n const typography = computed(\n () =>\n ({\n el: 'div',\n variant: props.titleSize === BentoCardTitleSize.DEFAULT ? 'title' : 'body',\n strongest: props.titleSize === BentoCardTitleSize.SMALL,\n wide: props.titleSize === BentoCardTitleSize.SMALL,\n } as InstanceType<typeof BentoTypography>['$props'])\n );\n\n // Toggle open and close logic and animation\n const { updateContentHeight, contentHeight } = useExpandableContentHeight(contentDiv, showContent);\n\n const contentMaxHeight = computed(() =>\n props.expandable && contentHeight.value ? { 'max-height': contentHeight.value } : {}\n );\n\n watch(\n () => contentDiv.value,\n () => {\n let observer: ResizeObserver | null = null;\n if (!observer && contentDiv.value) {\n observer = observeSizeOfElement(contentDiv.value, () => {\n if (contentDiv.value) {\n updateContentHeight();\n }\n });\n }\n }\n );\n\n const toggleExpansion = () => {\n if (!props.disabled && props.expandable) {\n showContent.value = !showContent.value;\n emit('expanded', showContent.value);\n updateContentHeight();\n }\n };\n\n const onClick = () => {\n if (!props.disabled) {\n emit('click');\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * A card is a flexible and composable container.\n * Use cards to represent a single object or to visually group certain content, like legal information within company settings.\n *\n * @example\n * import { BentoCard } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoCard },\n * template: `\n * <bento-card>\n * Title of the Card\n * </bento-card>\n * `\n * };\n */\n export default {\n i18n: { messages },\n name: 'bento-card',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/card/card.scss\" />\n"],"names":["BentoCardBackground","BentoCardBackground2","BentoCardTitleSize","BentoCardTitleSize2","__default__","messages","t","useI18n","slots","useSlots","hasSlot","useHasSlot","props","__props","emit","__emit","contentDiv","ref","cardId","generateUid","showContent","watch","value","showHeader","computed","showTitleWrapper","showCardBody","_a","tabIndex","cardConditionalClasses","cardHeaderConditionalClasses","cardToggleConditionalClasses","cardBodyConditionalClasses","cardContentConditionalClasses","cardActionsConditionalClasses","isNotExpandableWithoutContent","cardTitleWrapperConditionalClasses","typography","updateContentHeight","contentHeight","useExpandableContentHeight","contentMaxHeight","observer","observeSizeOfElement","toggleExpansion","onClick"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as B, toRef as I, computed as l, watch as y, ref as T, resolveComponent as m, openBlock as n, createElementBlock as v, createVNode as N, normalizeClass as V, withCtx as s, Fragment as w, renderList as O, createBlock as E, createSlots as A, createTextVNode as k, toDisplayString as S, renderSlot as G, mergeProps as L, createCommentVNode as _ } from "vue";
|
|
2
|
-
import { B as U, a as d } from "./checkbox.
|
|
2
|
+
import { B as U, a as d } from "./checkbox.B72ok3Yu.js";
|
|
3
3
|
import { g as P } from "./generate-uid.D-HFI38h.js";
|
|
4
4
|
import { d as R } from "./typography.DNzU41ah.js";
|
|
5
5
|
import { u as q } from "./use-form-layout-loading.D3lALhtC.js";
|
|
@@ -189,4 +189,4 @@ export {
|
|
|
189
189
|
i as B,
|
|
190
190
|
ee as c
|
|
191
191
|
};
|
|
192
|
-
//# sourceMappingURL=checkbox-group.
|
|
192
|
+
//# sourceMappingURL=checkbox-group.C5IweVVx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.BUmkYc2R.js","sources":["../../../core/src/components/checkbox-group/checkbox-group.types.ts","../../../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue"],"sourcesContent":["import type { BentoCheckboxTag } from '@/core/components/checkbox/checkbox.types';\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCheckboxGroupVariant {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\ninterface BentoCheckboxGroupItem {\n value: string | number;\n label: string;\n description?: string;\n disabled?: boolean;\n hasError?: boolean;\n errorMessage?: string;\n readonly?: boolean;\n tag?: BentoCheckboxTag;\n}\n\nexport type BentoCheckboxGroupItems = Array<BentoCheckboxGroupItem>;\n","<template>\n <div class=\"b-checkbox-group\">\n <controls-group\n class=\"b-checkbox-group__checkboxes\"\n :aria-describedby=\"shouldShowGroupErrorMessage ? errorId : ''\"\n :component-name=\"COMPONENT_NAME\"\n :class=\"conditionalClasses\"\n :description=\"description\"\n :disabled=\"disabled\"\n :form=\"formId\"\n :hide-label=\"hideLabel\"\n :label=\"label\"\n :optional=\"optional\"\n :required=\"required\"\n :tooltip-text=\"tooltipText\"\n >\n <bento-checkbox\n v-for=\"item in items\"\n :key=\"item.value\"\n :model-value=\"inputValue\"\n :value=\"item.value\"\n :disabled=\"disabled || item.disabled\"\n :has-error=\"shouldShowGroupError || item.hasError\"\n :error-message=\"shouldShowGroupError ? null : item.errorMessage\"\n :readonly=\"isReadOnly || item.readonly\"\n :tag=\"item.tag\"\n @update:model-value=\"onInput\"\n >\n <template #default>{{ item.label }}</template>\n <template v-if=\"item.description\" #description>{{ item.description }}</template>\n <template v-if=\"hasContentSlot('content')\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n </bento-checkbox>\n </controls-group>\n <error-message\n v-if=\"shouldShowGroupErrorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-checkbox-group__error-message\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRef, watch } from 'vue';\n import { ControlsGroup } from '@/components/internal/controls-group';\n import { ErrorMessage } from '@/components/internal/error-message';\n import {\n BentoCheckboxGroupItems,\n BentoCheckboxGroupVariant,\n } from '@/core/components/checkbox-group/checkbox-group.types';\n import BentoCheckbox from '@/components/checkbox/checkbox.vue';\n import { BentoCheckboxEvent } from '@/core/components/checkbox/checkbox.types';\n import { generateUid } from '@/core/utils/ts';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n /**\n * The name of the component to be used in the Vue devtools and console warnings.\n */\n const COMPONENT_NAME = 'bento-checkbox-group';\n\n /**\n * A checkbox group component should be used whenever it is necessary to group a set of checkboxes that are related together\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * import { BentoCheckboxGroup } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { BentoCheckboxGroup },\n * template: `\n * <bento-checkbox-group\n * label=\"Your group label\"\n * :items=\"[\n * { value: 1, label: 'Your label' },\n * { value: 2, label: 'Another label', description: 'Your sub label' },\n * ]\"\n * />\n * `\n * };\n */\n export default defineComponent({\n name: COMPONENT_NAME,\n components: { BentoCheckbox, ControlsGroup, ErrorMessage },\n model: { prop: 'modelValue' },\n props: {\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * If set to true, renders all checkboxes in the group in a disabled state.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Renders all checkboxes in an error state with an error message.\n */\n errorMessage: { type: String, default: null },\n\n /**\n * The form id the checkbox group is associated with. Defaults to null, as a checkbox group can also be used standalone.\n */\n formId: { type: String, default: null },\n\n /**\n * If set to true, renders all checkboxes in the group in an error state.\n *\n * @deprecated Use \"errorMessage\" prop instead\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The checkbox group's items.\n */\n items: { type: Array as PropType<BentoCheckboxGroupItems>, required: true },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n */\n label: { type: String, required: true },\n\n /**\n * Determines the initially selected value of the group. Corresponds to the BentoCheckboxButtonItem's value.\n * Defaults to no value selected.\n */\n modelValue: { type: Array<number | string | null>, default: () => [] },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * If set to true, renders all checkboxes in the group in a readonly state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n\n /**\n * The checkbox group's layout. It can be vertical or horizontal. Defaults to vertical.\n */\n variant: {\n type: String as PropType<BentoCheckboxGroupVariant | `${BentoCheckboxGroupVariant}`>,\n default: BentoCheckboxGroupVariant.VERTICAL,\n validator: (value: BentoCheckboxGroupVariant) =>\n Object.values(BentoCheckboxGroupVariant).includes(value),\n },\n },\n emits: [BentoCheckboxEvent.UPDATE, BentoCheckboxEvent.INPUT],\n setup(props, { emit, slots }) {\n const errorId = generateUid('error');\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const shouldShowGroupError = computed(\n () => !props.disabled && !isReadOnly.value && (!!props.errorMessage || props.hasError)\n );\n const shouldShowGroupErrorMessage = computed(\n () => !props.disabled && !isReadOnly.value && !!props.errorMessage\n );\n\n const conditionalClasses = computed(() => ({\n 'b-checkbox-group__checkboxes--horizontal': props.variant === BentoCheckboxGroupVariant.HORIZONTAL,\n }));\n\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for\n // vue3 named scoped slots\n const hasContentSlot = name => !!slots[name];\n const shouldShowSlotsError = computed(() => hasContentSlot('content') && props.variant !== 'vertical');\n\n watch(\n shouldShowSlotsError,\n newValue => {\n if (newValue) {\n throw new Error('The content slot is only available for the vertical checkbox group layout');\n }\n },\n { immediate: true }\n );\n\n const inputValue = ref(props.modelValue);\n watch(\n () => props.modelValue,\n () => {\n inputValue.value = props.modelValue;\n }\n );\n\n const onInput = value => {\n inputValue.value = value;\n emit(BentoCheckboxEvent.UPDATE, value);\n emit(BentoCheckboxEvent.INPUT, value);\n };\n\n if (props.hasError) {\n deprecate(\n 'BentoCheckboxGroup \"hasError\" property',\n `Use the BentoCheckboxGroup \"errorMessage\" property instead to indicate that there is a modifier error.\n Having the field as \"undefined\" will hide/remove the error.\n <bento-checkbox-group errorMessage=\"Error message text\" />`,\n '2.0.0'\n );\n }\n\n return {\n // Values\n COMPONENT_NAME,\n errorId,\n isReadOnly,\n shouldShowGroupError,\n shouldShowGroupErrorMessage,\n conditionalClasses,\n inputValue,\n hasContentSlot,\n\n // Methods\n onInput,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/checkbox-group/checkbox-group.scss\" />\n"],"names":["BentoCheckboxGroupVariant","BentoCheckboxGroupVariant2","COMPONENT_NAME","_sfc_main","defineComponent","BentoCheckbox","ControlsGroup","ErrorMessage","value","BentoCheckboxEvent","props","emit","slots","errorId","generateUid","isReadOnly","useFormLayoutFieldLoading","toRef","shouldShowGroupError","computed","shouldShowGroupErrorMessage","conditionalClasses","hasContentSlot","name","shouldShowSlotsError","watch","newValue","inputValue","ref","onInput","deprecate","openBlock","createElementBlock","_hoisted_1","_ctx","hideLabel","label","optional","required","Fragment","renderList","item","createBlock","_component_bento_checkbox","disabled","createSlots","withCtx","createTextVNode","toDisplayString","renderSlot","mergeProps","_component_error_message","createCommentVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"checkbox-group.C5IweVVx.js","sources":["../../../core/src/components/checkbox-group/checkbox-group.types.ts","../../../vue2/src/components/checkbox/components/checkbox-group/checkbox-group.vue"],"sourcesContent":["import type { BentoCheckboxTag } from '@/core/components/checkbox/checkbox.types';\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoCheckboxGroupVariant {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n}\n\ninterface BentoCheckboxGroupItem {\n value: string | number;\n label: string;\n description?: string;\n disabled?: boolean;\n hasError?: boolean;\n errorMessage?: string;\n readonly?: boolean;\n tag?: BentoCheckboxTag;\n}\n\nexport type BentoCheckboxGroupItems = Array<BentoCheckboxGroupItem>;\n","<template>\n <div class=\"b-checkbox-group\">\n <controls-group\n class=\"b-checkbox-group__checkboxes\"\n :aria-describedby=\"shouldShowGroupErrorMessage ? errorId : ''\"\n :component-name=\"COMPONENT_NAME\"\n :class=\"conditionalClasses\"\n :description=\"description\"\n :disabled=\"disabled\"\n :form=\"formId\"\n :hide-label=\"hideLabel\"\n :label=\"label\"\n :optional=\"optional\"\n :required=\"required\"\n :tooltip-text=\"tooltipText\"\n >\n <bento-checkbox\n v-for=\"item in items\"\n :key=\"item.value\"\n :model-value=\"inputValue\"\n :value=\"item.value\"\n :disabled=\"disabled || item.disabled\"\n :has-error=\"shouldShowGroupError || item.hasError\"\n :error-message=\"shouldShowGroupError ? null : item.errorMessage\"\n :readonly=\"isReadOnly || item.readonly\"\n :tag=\"item.tag\"\n @update:model-value=\"onInput\"\n >\n <template #default>{{ item.label }}</template>\n <template v-if=\"item.description\" #description>{{ item.description }}</template>\n <template v-if=\"hasContentSlot('content')\" #content>\n <slot name=\"content\" v-bind=\"item\"></slot>\n </template>\n </bento-checkbox>\n </controls-group>\n <error-message\n v-if=\"shouldShowGroupErrorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-checkbox-group__error-message\"\n />\n </div>\n</template>\n\n<script lang=\"ts\">\n import { computed, defineComponent, PropType, ref, toRef, watch } from 'vue';\n import { ControlsGroup } from '@/components/internal/controls-group';\n import { ErrorMessage } from '@/components/internal/error-message';\n import {\n BentoCheckboxGroupItems,\n BentoCheckboxGroupVariant,\n } from '@/core/components/checkbox-group/checkbox-group.types';\n import BentoCheckbox from '@/components/checkbox/checkbox.vue';\n import { BentoCheckboxEvent } from '@/core/components/checkbox/checkbox.types';\n import { generateUid } from '@/core/utils/ts';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n /**\n * The name of the component to be used in the Vue devtools and console warnings.\n */\n const COMPONENT_NAME = 'bento-checkbox-group';\n\n /**\n * A checkbox group component should be used whenever it is necessary to group a set of checkboxes that are related together\n * This component conforms to the official WAI-ARIA guidelines for grouping controls: https://www.w3.org/WAI/tutorials/forms/grouping/\n *\n * import { BentoCheckboxGroup } from '@adyen/bento-vue2/';\n *\n * export default {\n * components: { BentoCheckboxGroup },\n * template: `\n * <bento-checkbox-group\n * label=\"Your group label\"\n * :items=\"[\n * { value: 1, label: 'Your label' },\n * { value: 2, label: 'Another label', description: 'Your sub label' },\n * ]\"\n * />\n * `\n * };\n */\n export default defineComponent({\n name: COMPONENT_NAME,\n components: { BentoCheckbox, ControlsGroup, ErrorMessage },\n model: { prop: 'modelValue' },\n props: {\n /**\n * Descriptive supporting text visbile underneath the label.\n */\n description: { type: String, default: null },\n\n /**\n * If set to true, renders all checkboxes in the group in a disabled state.\n */\n disabled: { type: Boolean, default: false },\n\n /**\n * Renders all checkboxes in an error state with an error message.\n */\n errorMessage: { type: String, default: null },\n\n /**\n * The form id the checkbox group is associated with. Defaults to null, as a checkbox group can also be used standalone.\n */\n formId: { type: String, default: null },\n\n /**\n * If set to true, renders all checkboxes in the group in an error state.\n *\n * @deprecated Use \"errorMessage\" prop instead\n */\n hasError: { type: Boolean, default: false },\n\n /**\n * Shows/hides the group label.\n */\n hideLabel: { type: Boolean, default: null },\n\n /**\n * The checkbox group's items.\n */\n items: { type: Array as PropType<BentoCheckboxGroupItems>, required: true },\n\n /**\n * The name associated with the group. Required for accessibility purposes.\n */\n label: { type: String, required: true },\n\n /**\n * Determines the initially selected value of the group. Corresponds to the BentoCheckboxButtonItem's value.\n * Defaults to no value selected.\n */\n modelValue: { type: Array<number | string | null>, default: () => [] },\n\n /**\n * Indicates the field is optional.\n */\n optional: { type: Boolean, default: false },\n\n /**\n * If set to true, renders all checkboxes in the group in a readonly state.\n */\n readonly: { type: Boolean, default: false },\n\n /**\n * Indicates the field is required.\n */\n required: { type: Boolean, default: false },\n\n /**\n * Tooltip message.\n */\n tooltipText: { type: String, default: null },\n\n /**\n * The checkbox group's layout. It can be vertical or horizontal. Defaults to vertical.\n */\n variant: {\n type: String as PropType<BentoCheckboxGroupVariant | `${BentoCheckboxGroupVariant}`>,\n default: BentoCheckboxGroupVariant.VERTICAL,\n validator: (value: BentoCheckboxGroupVariant) =>\n Object.values(BentoCheckboxGroupVariant).includes(value),\n },\n },\n emits: [BentoCheckboxEvent.UPDATE, BentoCheckboxEvent.INPUT],\n setup(props, { emit, slots }) {\n const errorId = generateUid('error');\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const shouldShowGroupError = computed(\n () => !props.disabled && !isReadOnly.value && (!!props.errorMessage || props.hasError)\n );\n const shouldShowGroupErrorMessage = computed(\n () => !props.disabled && !isReadOnly.value && !!props.errorMessage\n );\n\n const conditionalClasses = computed(() => ({\n 'b-checkbox-group__checkboxes--horizontal': props.variant === BentoCheckboxGroupVariant.HORIZONTAL,\n }));\n\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for\n // vue3 named scoped slots\n const hasContentSlot = name => !!slots[name];\n const shouldShowSlotsError = computed(() => hasContentSlot('content') && props.variant !== 'vertical');\n\n watch(\n shouldShowSlotsError,\n newValue => {\n if (newValue) {\n throw new Error('The content slot is only available for the vertical checkbox group layout');\n }\n },\n { immediate: true }\n );\n\n const inputValue = ref(props.modelValue);\n watch(\n () => props.modelValue,\n () => {\n inputValue.value = props.modelValue;\n }\n );\n\n const onInput = value => {\n inputValue.value = value;\n emit(BentoCheckboxEvent.UPDATE, value);\n emit(BentoCheckboxEvent.INPUT, value);\n };\n\n if (props.hasError) {\n deprecate(\n 'BentoCheckboxGroup \"hasError\" property',\n `Use the BentoCheckboxGroup \"errorMessage\" property instead to indicate that there is a modifier error.\n Having the field as \"undefined\" will hide/remove the error.\n <bento-checkbox-group errorMessage=\"Error message text\" />`,\n '2.0.0'\n );\n }\n\n return {\n // Values\n COMPONENT_NAME,\n errorId,\n isReadOnly,\n shouldShowGroupError,\n shouldShowGroupErrorMessage,\n conditionalClasses,\n inputValue,\n hasContentSlot,\n\n // Methods\n onInput,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"@/core/components/checkbox-group/checkbox-group.scss\" />\n"],"names":["BentoCheckboxGroupVariant","BentoCheckboxGroupVariant2","COMPONENT_NAME","_sfc_main","defineComponent","BentoCheckbox","ControlsGroup","ErrorMessage","value","BentoCheckboxEvent","props","emit","slots","errorId","generateUid","isReadOnly","useFormLayoutFieldLoading","toRef","shouldShowGroupError","computed","shouldShowGroupErrorMessage","conditionalClasses","hasContentSlot","name","shouldShowSlotsError","watch","newValue","inputValue","ref","onInput","deprecate","openBlock","createElementBlock","_hoisted_1","_ctx","hideLabel","label","optional","required","Fragment","renderList","item","createBlock","_component_bento_checkbox","disabled","createSlots","withCtx","createTextVNode","toDisplayString","renderSlot","mergeProps","_component_error_message","createCommentVNode"],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { defineComponent as Y, toRefs as I, computed as a, ref as K, resolveComponent as f, openBlock as r, createElementBlock as D, normalizeClass as Q, createVNode as W, mergeProps as T, createBlock as l, withCtx as s, createElementVNode as X, renderSlot as E, createTextVNode as U, toDisplayString as q, createCommentVNode as n } from "vue";
|
|
2
2
|
import { B as Z } from "./typography.DNzU41ah.js";
|
|
3
|
-
import {
|
|
4
|
-
import { u as x } from "./use-
|
|
5
|
-
import {
|
|
3
|
+
import { a as G, C as L } from "./checkbox-input.D8ZUqd4m.js";
|
|
4
|
+
import { u as x } from "./use-default-slot-validator.O02rzsob.js";
|
|
5
|
+
import { u as ee } from "./use-has-slot.B7eQSabc.js";
|
|
6
|
+
import { g as N } from "./generate-uid.D-HFI38h.js";
|
|
6
7
|
import { g as A } from "./get-slot-text.D5WBGjic.js";
|
|
7
|
-
import { u as
|
|
8
|
-
import { u as
|
|
9
|
-
import { B as
|
|
10
|
-
import { a as re, C as N } from "./checkbox-input.D8ZUqd4m.js";
|
|
8
|
+
import { u as ae } from "./i18n.CPGoe9tN.js";
|
|
9
|
+
import { u as oe } from "./aria-label.CaUURpnB.js";
|
|
10
|
+
import { B as re } from "./tag.xvqrfTwk.js";
|
|
11
11
|
import { E as te } from "./error-message.BYXS0kUN.js";
|
|
12
12
|
import { _ as le } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
13
13
|
import "../assets/checkbox.css";
|
|
@@ -32,9 +32,9 @@ const M = {
|
|
|
32
32
|
name: "bento-checkbox",
|
|
33
33
|
i18n: { messages: M },
|
|
34
34
|
components: {
|
|
35
|
-
BentoTag:
|
|
35
|
+
BentoTag: re,
|
|
36
36
|
BentoTypography: Z,
|
|
37
|
-
CheckboxInput:
|
|
37
|
+
CheckboxInput: G,
|
|
38
38
|
ErrorMessage: te
|
|
39
39
|
},
|
|
40
40
|
model: { prop: "modelValue" },
|
|
@@ -103,22 +103,22 @@ const M = {
|
|
|
103
103
|
},
|
|
104
104
|
emits: [d.UPDATE, d.INPUT],
|
|
105
105
|
setup(e, { attrs: _, emit: h, slots: t }) {
|
|
106
|
-
const { t: y } =
|
|
107
|
-
|
|
106
|
+
const { t: y } = ae({ messages: M }), g = N("description"), i = N("error"), o = ee(t), { disabled: u, indeterminate: v, modelValue: k, readonly: P, value: w } = I(e), V = A(t)("default"), $ = A(t)("description");
|
|
107
|
+
x("bento-checkbox", t.default, t.description);
|
|
108
108
|
const c = a(() => Array.isArray(k.value)), S = a(() => c.value ? k.value.some((m) => m === w.value) : k.value), b = a(() => v.value), R = a(
|
|
109
109
|
() => !e.disabled && !e.readonly && (e.hasError || !!e.errorMessage)
|
|
110
110
|
), C = a(() => !e.disabled && !e.readonly && !!e.errorMessage), p = a(() => o("content")), B = a(() => (b == null ? void 0 : b.value) || (S == null ? void 0 : S.value)), j = a(
|
|
111
111
|
() => (p == null ? void 0 : p.value) && (c == null ? void 0 : c.value) && (B == null ? void 0 : B.value)
|
|
112
112
|
), z = a(
|
|
113
113
|
() => `${C.value ? i : ""} ${V && $ ? g : ""}`.trim() || null
|
|
114
|
-
), F = K(_["aria-label"]), { ariaLabel: H } = I(e), J =
|
|
114
|
+
), F = K(_["aria-label"]), { ariaLabel: H } = I(e), J = oe({
|
|
115
115
|
ariaLabel: F.value,
|
|
116
116
|
// TODO: take this line away when the aria-label props is removed
|
|
117
117
|
label: H,
|
|
118
118
|
defaultFallback: o("default") ? A(t)("default") : y("checkbox")
|
|
119
119
|
}), O = a(() => ({
|
|
120
|
-
[`b-checkbox--${
|
|
121
|
-
[`b-checkbox--${
|
|
120
|
+
[`b-checkbox--${L.DISABLED}`]: u.value,
|
|
121
|
+
[`b-checkbox--${L.READONLY}`]: P.value
|
|
122
122
|
}));
|
|
123
123
|
return {
|
|
124
124
|
// Values
|
|
@@ -235,4 +235,4 @@ export {
|
|
|
235
235
|
Be as B,
|
|
236
236
|
d as a
|
|
237
237
|
};
|
|
238
|
-
//# sourceMappingURL=checkbox.
|
|
238
|
+
//# sourceMappingURL=checkbox.B72ok3Yu.js.map
|