@cling-se/widget 0.19.13 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.internal.md +5 -5
  3. package/dist/{AddClientCallout-Da7NOVA5.js → AddClientCallout-DOzqL6Ei.js} +4 -4
  4. package/dist/{AnswerModal-B2ApEIfo.js → AnswerModal-aoQoCe3o.js} +679 -681
  5. package/dist/{AttachmentItem-BM_DzA34.js → AttachmentItem-DTqI5mwy.js} +4 -4
  6. package/dist/{BaseUpload-CGVbfe4H.js → BaseUpload-nxVqZX3O.js} +2 -2
  7. package/dist/{BlockMedia-Dza5TjFS.js → BlockMedia-BYVRSrze.js} +1 -1
  8. package/dist/{CCallout-BpHUnBsq.js → CCallout-Db9YEwws.js} +1 -1
  9. package/dist/{CCurrencyDropdown-Glt0CY7w.js → CCurrencyDropdown-sRqig-2P.js} +3 -3
  10. package/dist/{CDropdownItem-rpcdHW76.js → CDropdownItem-CZO28TQW.js} +96 -96
  11. package/dist/{CFormField.vue_vue_type_script_setup_true_lang-vyObNdUP.js → CFormField.vue_vue_type_script_setup_true_lang-DoO3uBt-.js} +2 -2
  12. package/dist/{CPhoneFormat-uxMRSGaN.js → CPhoneFormat-CUtvNKnk.js} +1 -1
  13. package/dist/{CPhoneInput-DnigKWiR.js → CPhoneInput-kOcllgTr.js} +5 -5
  14. package/dist/{CPriceInput-BNVWpxMd.js → CPriceInput-3X1Et9ny.js} +2 -2
  15. package/dist/{CSelect-ioLMsxK3.js → CSelect-DVCPHAdo.js} +1 -1
  16. package/dist/{CSkeleton-BsApoNUe.js → CSkeleton-Bxdz5nlu.js} +1 -1
  17. package/dist/{ClientAutocomplete-Dof0Wnp9.js → ClientAutocomplete-DCphFPmv.js} +3 -3
  18. package/dist/{ClientModal-CVsZrXLV.js → ClientModal-oTn-trfu.js} +218 -248
  19. package/dist/{ColorPicker-Ca2a0Dib.js → ColorPicker-Bs_kXTFe.js} +1 -1
  20. package/dist/{CompanyModal-C6AUjpnI.js → CompanyModal-DzXAdbGd.js} +7 -7
  21. package/dist/{ContentWrapper-wTfXDKX-.js → ContentWrapper-2wh0OBB0.js} +6 -6
  22. package/dist/{CoverBlockSettings-BkWhPlN2.js → CoverBlockSettings-DSOoms9U.js} +7 -7
  23. package/dist/{DocAnswer-DoRmk17c.js → DocAnswer-B529e1E2.js} +2 -2
  24. package/dist/{DocDetails-D_E3lERC.js → DocDetails-BHqTgx1H.js} +4 -4
  25. package/dist/{DocForm-DbpjRBRm.js → DocForm-DOdyjHWA.js} +99 -97
  26. package/dist/{DocFormSend-DN2k9giy.js → DocFormSend-DfrWjvTy.js} +2 -2
  27. package/dist/{DocLinks-BvtcG9-D.js → DocLinks-BRJnZ1rA.js} +2 -2
  28. package/dist/{DocModalBase-D_LZXbIj.js → DocModalBase-Cf-C2hVQ.js} +1 -1
  29. package/dist/{DocPrint-BrjeZaPK.js → DocPrint-OVtsohie.js} +1 -1
  30. package/dist/{DocReceipt-BXAGCO6L.js → DocReceipt-tmBbom2x.js} +2 -2
  31. package/dist/{DocSendReminder-BtcutNHV.js → DocSendReminder-C6fGp2qu.js} +1 -1
  32. package/dist/{DocTextEditor-DYrnRt6O.js → DocTextEditor-D3EjoBGe.js} +171 -148
  33. package/dist/{DocTimeline-AZQVm00F.js → DocTimeline-CChHnG2Q.js} +2 -2
  34. package/dist/{DocumentClient-BTsdprjd.js → DocumentClient-kV1ps0P5.js} +5 -5
  35. package/dist/{DocumentLayout-DbXHslTY.js → DocumentLayout-B2vKSnWD.js} +21 -21
  36. package/dist/{DocumentLogotype-B6ENzX02.js → DocumentLogotype-BldUocoJ.js} +4 -4
  37. package/dist/{DocumentVoided-B9AHAIvl.js → DocumentVoided-rZxx0TDM.js} +1 -1
  38. package/dist/{EmbedInput-BN6DFeq0.js → EmbedInput-C-bORXEJ.js} +3 -3
  39. package/dist/{EmbedSettings-DD9uIXDi.js → EmbedSettings-CaRoWZzj.js} +3 -3
  40. package/dist/{ErrorCallout-BFezjCn3.js → ErrorCallout-BQkcHI49.js} +1 -1
  41. package/dist/{FilePreviewModal-CXE7RahY.js → FilePreviewModal-egIS6jnw.js} +2 -2
  42. package/dist/{Flag-BCe6xe-D.js → Flag-DUrDD56m.js} +1 -1
  43. package/dist/{HeaderSettings-Uyr0qhas.js → HeaderSettings-Cfql7vW5.js} +9 -9
  44. package/dist/{ImageSelectModal-CSW3shsb.js → ImageSelectModal-3U22LhEN.js} +3 -3
  45. package/dist/{ImageUploadWrapper-DyunQdxO.js → ImageUploadWrapper-DWmlB4Ha.js} +2 -2
  46. package/dist/{Index-BRhtJdqU.js → Index-38AEfgHb.js} +4 -4
  47. package/dist/{Index-DAnljErU.js → Index-7rnf6UDQ.js} +6 -6
  48. package/dist/{Index-BUwF7tDs.js → Index-BepK484N.js} +3 -3
  49. package/dist/{Index-r-bi4xvP.js → Index-BlBA6eMl.js} +4 -4
  50. package/dist/{Index-CdtKkfEh.js → Index-BuPSt_Hb.js} +8 -8
  51. package/dist/{Index-B8EGrohn.js → Index-C2jLt_-J.js} +4 -4
  52. package/dist/{Index-DRVJFBy_.js → Index-CKisxkqL.js} +3 -3
  53. package/dist/{Index-BcPpzfWP.js → Index-CN1flEMh.js} +1 -1
  54. package/dist/{Index-D91m2xKm.js → Index-CRAk8dmP.js} +26 -17
  55. package/dist/{Index-BieU1ZTV.js → Index-CZFXyZp-.js} +2 -2
  56. package/dist/{Index-BGVViv6b.js → Index-C_2Gf2Da.js} +46 -37
  57. package/dist/{Index-ziuExFyj.js → Index-CcOeCvOe.js} +5 -5
  58. package/dist/{Index-DI91U3g3.js → Index-CcSq7dWo.js} +1 -1
  59. package/dist/{Index-Ch2Y3XbD.js → Index-Ckr5i1Li.js} +258 -240
  60. package/dist/{Index-VRzwBnM4.js → Index-Cl7KBtZX.js} +4 -4
  61. package/dist/{Index-CpZWI-QN.js → Index-CyAAbl1D.js} +14 -14
  62. package/dist/{Index-DMDWW0zp.js → Index-CyYFJf0D.js} +5 -5
  63. package/dist/Index-D05o3s14.js +4 -0
  64. package/dist/{Index-jSpfKPKP.js → Index-D1PUyqFa.js} +8 -8
  65. package/dist/{Index-32_BJudF.js → Index-DAI1qHEl.js} +3 -3
  66. package/dist/{Index-DaXHQaxr.js → Index-DAcRb0rT.js} +4 -4
  67. package/dist/{Index-BGsQAzCd.js → Index-DCWl_6gz.js} +9 -9
  68. package/dist/{Index-DH5l8DHo.js → Index-DGq9TdPd.js} +4 -4
  69. package/dist/{Index-Bh5sjhBw.js → Index-DIlbkelD.js} +1 -1
  70. package/dist/{Index-wb02iXXO.js → Index-DR3O2rVd.js} +5 -5
  71. package/dist/{Index-CgdCQDsv.js → Index-DSTJ0ZME.js} +7 -7
  72. package/dist/{Index-BmoysUi1.js → Index-DUKDykzl.js} +2 -2
  73. package/dist/{Index-Dssz58AL.js → Index-DfMMDolH.js} +3 -3
  74. package/dist/{Index-C-rVXB4u.js → Index-DikWyKIw.js} +2 -2
  75. package/dist/{Index-CATlFu8B.js → Index-Dn_EZ_k2.js} +2 -2
  76. package/dist/{Index-CLdIolDF.js → Index-STi0ufm3.js} +2 -2
  77. package/dist/{Index-DBozFV2a.js → Index-l8RB4z_B.js} +4 -4
  78. package/dist/{Index-DKKc3zZQ.js → Index-phqgcko1.js} +6 -6
  79. package/dist/{Index-Cnnkb8ey.js → Index-xKr7qP9f.js} +4 -4
  80. package/dist/{Index.vue_vue_type_script_lang-CUl4C9jx.js → Index.vue_vue_type_script_lang-DsCnlKNn.js} +2 -2
  81. package/dist/{InputToggleRow-e1gC6XnA.js → InputToggleRow-BiyZz3ua.js} +1 -1
  82. package/dist/{ManualPopover-BbqVfuJE.js → ManualPopover-CFwiZHZw.js} +1 -1
  83. package/dist/{MediaWrapper-Bqy-cGev.js → MediaWrapper-B6flFwa-.js} +3 -3
  84. package/dist/{NotBindingText-_GKq6jSE.js → NotBindingText-CyfRBqiL.js} +2 -2
  85. package/dist/{PackageGroup-IiQ0mqWg.js → PackageGroup-DDgLD4Yb.js} +5 -5
  86. package/dist/{PdfTerms-CO7SxSke.js → PdfTerms-zEPJCgb-.js} +2 -2
  87. package/dist/{PdfViewer-apckUEAj.js → PdfViewer-BNFYiBMf.js} +2 -2
  88. package/dist/{PlainHtml.vue_vue_type_script_setup_true_lang-gCh1Q-qi.js → PlainHtml.vue_vue_type_script_setup_true_lang-CPGJZjFh.js} +1 -1
  89. package/dist/{PriceHeader-CXP09nZ6.js → PriceHeader-B9Mk_GDV.js} +7 -7
  90. package/dist/{SearchApi-CQOtHW43.js → SearchApi-BsSeYGH9.js} +1 -1
  91. package/dist/{SendForm-C3v06Gwx.js → SendForm-Ci2s-FsJ.js} +8 -8
  92. package/dist/{Setup-Dr37DSNY.js → Setup-C5uQOyWH.js} +1 -1
  93. package/dist/{SmartList-Opr_24HD.js → SmartList-BglLgQmN.js} +1 -1
  94. package/dist/{Sortable.vue_vue_type_script_setup_true_lang-DtvYuVUg.js → Sortable.vue_vue_type_script_setup_true_lang-C-Uy1WwV.js} +1 -1
  95. package/dist/{TermsSettings-P8IWZn08.js → TermsSettings-BUXZ0GDb.js} +34 -32
  96. package/dist/{ThemeColorRow-BdXx5ClL.js → ThemeColorRow-EJd126k7.js} +3 -3
  97. package/dist/{ToggleBinding-BZyqWBnB.js → ToggleBinding-Bxx2OzYq.js} +4 -4
  98. package/dist/{UploadModal-6E9HzkQ0.js → UploadModal-BjrFM0lw.js} +13 -11
  99. package/dist/{VideoPlayerInput-DRcDC2q-.js → VideoPlayerInput-o2GX5-Ma.js} +4 -4
  100. package/dist/{VideoPlayerSettings-Dw7zEg1k.js → VideoPlayerSettings-DXSwsMJl.js} +2 -2
  101. package/dist/{VideoSelectModal-DIV9-62A.js → VideoSelectModal-BI0-L5dG.js} +3 -3
  102. package/dist/{focusDrawerMixin-CrKt75PZ.js → focusDrawerMixin-Dz9oC1MR.js} +1 -1
  103. package/dist/{formDrawerState-BesayjqS.js → formDrawerState-0vhg7tV-.js} +1 -1
  104. package/dist/fortnoxTheme-B0DA1l7P.js +8 -0
  105. package/dist/{helpers-DOdzW9pA.js → helpers-Dkn2xKzv.js} +1 -1
  106. package/dist/{index-DINik6UH.js → index-Bw8qzZRS.js} +1 -1
  107. package/dist/{index-DWwjiiMe.js → index-D-NDkjvk.js} +1 -1
  108. package/dist/{index-BHg-4y6B.js → index-DI9iTlQc.js} +8 -8
  109. package/dist/{index-DNQzIGHD.js → index-DNBN1EEl.js} +642 -565
  110. package/dist/{index-BnjVWyGe.js → index-Dkh_SXlu.js} +3 -3
  111. package/dist/{index-DDfG6A20.js → index-c4rO163H.js} +1 -1
  112. package/dist/{index-Cl5j-fNE.js → index-dqh4rth1.js} +1 -1
  113. package/dist/index.es.js +3 -33
  114. package/dist/index.umd.js +142 -142
  115. package/dist/{main-C18owm58.js → main-DAjWLLG0.js} +5116 -5085
  116. package/dist/{mapFormMixin-bA_KI0pt.js → mapFormMixin-CFaAoXxf.js} +4 -4
  117. package/dist/{omit-BVoDlsuC.js → omit-5nzNft5F.js} +2 -2
  118. package/dist/{publicSenderState-BR7541Fw.js → publicSenderState-BaH8Utk8.js} +1 -1
  119. package/dist/{splitpanes-OUpaQjCW.js → splitpanes-CxaAqPCT.js} +1 -1
  120. package/dist/{template-Y3wS95il.js → template-CHAQR6C-.js} +1 -1
  121. package/dist/{tippy.esm-CQD-ZLcV.js → tippy.esm-DYmyPdOc.js} +5 -5
  122. package/dist/{useTermsModal-DS9T_NyM.js → useTermsModal-aIBQHQEU.js} +4 -4
  123. package/dist/{utils-DwKlp8_z.js → utils-CiYKHNqS.js} +1 -1
  124. package/dist/{validation-b_jF-CIN.js → validation-BRPTZqtn.js} +2 -2
  125. package/dist/validations-ohsJ5nBz.js +34 -0
  126. package/dist/widget.css +1 -1
  127. package/package.json +1 -1
  128. package/dist/Index-DEBrME_f.js +0 -4
@@ -1,6 +1,6 @@
1
- import { m as U } from "./mapFormMixin-bA_KI0pt.js";
2
- import { V as C } from "./PdfViewer-apckUEAj.js";
3
- import { _ as F, l as g, b as d, d as t, o as n, u as x, e as p, v as I, x as m, j as a, f as c, t as u, w as P, F as h, q as v, c as V, i as S, y } from "./main-C18owm58.js";
1
+ import { m as U } from "./mapFormMixin-CFaAoXxf.js";
2
+ import { V as C } from "./PdfViewer-BNFYiBMf.js";
3
+ import { _ as F, l as h, b as d, d as t, o as n, u as x, e as m, v as I, x as c, j as a, f as g, t as u, w as P, F as v, q as y, c as V, i as S, y as b } from "./main-DAjWLLG0.js";
4
4
  const z = {
5
5
  i18nOptions: {
6
6
  namespaces: "pdfBlock",
@@ -20,11 +20,11 @@ const z = {
20
20
  name: "Pdf",
21
21
  components: {
22
22
  PdfViewer: C,
23
- FileIcon: g(
24
- () => import("./Index-DEBrME_f.js")
23
+ FileIcon: h(
24
+ () => import("./Index-D05o3s14.js")
25
25
  ),
26
- BaseUpload: g(
27
- () => import("./BaseUpload-CGVbfe4H.js")
26
+ BaseUpload: h(
27
+ () => import("./BaseUpload-nxVqZX3O.js")
28
28
  )
29
29
  },
30
30
  mixins: [U(["file"])],
@@ -59,8 +59,8 @@ const z = {
59
59
  if (this.file.url.startsWith(e)) return this.file.url;
60
60
  try {
61
61
  const { hostname: s } = new URL(this.file.url);
62
- if (Object.keys(y).some(
63
- (i) => s.includes(y[i].domain)
62
+ if (Object.keys(b).some(
63
+ (i) => s.includes(b[i].domain)
64
64
  )) return this.file.url;
65
65
  } catch {
66
66
  }
@@ -71,61 +71,70 @@ const z = {
71
71
  },
72
72
  methods: {
73
73
  onUploadSuccess(e) {
74
- const { id: s, displayName: f, url: i, mime: o } = e.response;
74
+ const {
75
+ id: s,
76
+ displayName: f,
77
+ url: i,
78
+ mime: o,
79
+ hash: l,
80
+ algorithm: p
81
+ } = e.response;
75
82
  if (!s) throw new Error("Could not read id from uploaded file");
76
83
  this.file = {
77
84
  fileId: s,
78
85
  name: f,
79
86
  mime: o,
80
- url: i
87
+ url: i,
88
+ hash: l,
89
+ algorithm: p
81
90
  }, this.$refs.uploader.remove(e), this.uploadProgress = null;
82
91
  }
83
92
  }
84
93
  }, N = { class: "flex-auto pl-4" }, _ = { class: "text-sm text-gray-600" }, E = { key: 1 };
85
- function O(e, s, f, i, o, r) {
86
- const b = d("FileIcon"), k = d("CButton"), w = d("BaseUpload"), B = d("PdfViewer");
94
+ function O(e, s, f, i, o, l) {
95
+ const p = d("FileIcon"), k = d("CButton"), w = d("BaseUpload"), B = d("PdfViewer");
87
96
  return n(), t("div", {
88
97
  style: { position: "relative" },
89
98
  class: "font-inter print-no-margin",
90
- onMouseover: s[2] || (s[2] = (l) => o.isHover = !0),
91
- onMouseleave: s[3] || (s[3] = (l) => o.isHover = !1)
99
+ onMouseover: s[2] || (s[2] = (r) => o.isHover = !0),
100
+ onMouseleave: s[3] || (s[3] = (r) => o.isHover = !1)
92
101
  }, [
93
102
  e.canEdit ? x((n(), t("div", {
94
103
  key: 0,
95
- class: m([!!e.file && "absolute left-0 right-0 top-2 z-10", "chapter-spacing-x pointer-events-none mx-auto flex max-w-full items-center justify-center"])
104
+ class: c([!!e.file && "absolute left-0 right-0 top-2 z-10", "chapter-spacing-x pointer-events-none mx-auto flex max-w-full items-center justify-center"])
96
105
  }, [
97
106
  a("div", {
98
- class: m([!!e.file && "border border-gray-200 !p-2 shadow-lg", "pointer-events-auto flex w-full max-w-[95%] items-center rounded-lg bg-gray-100 !p-4 text-left"])
107
+ class: c([!!e.file && "border border-gray-200 !p-2 shadow-lg", "pointer-events-auto flex w-full max-w-[95%] items-center rounded-lg bg-gray-100 !p-4 text-left"])
99
108
  }, [
100
- c(b, { mime: "application/pdf" }),
109
+ g(p, { mime: "application/pdf" }),
101
110
  a("div", N, [
102
111
  s[4] || (s[4] = a("div", { class: "font-medium" }, "PDF", -1)),
103
112
  a("div", _, u(e.$t("embedded")) + " " + u(o.numPages ? e.$t("numOfPages", { numPages: o.numPages }) : ""), 1)
104
113
  ]),
105
- c(w, {
114
+ g(w, {
106
115
  ref: "uploader",
107
116
  "autostart-upload": !0,
108
117
  "background-drop": !1,
109
118
  extensions: "pdf",
110
119
  accept: "application/pdf",
111
120
  "max-size": o.maxFileSize,
112
- onInput: s[0] || (s[0] = ([l]) => o.uploadProgress = l ? parseInt(l.progress, 10) : null),
113
- onUploadSuccess: r.onUploadSuccess,
121
+ onInput: s[0] || (s[0] = ([r]) => o.uploadProgress = r ? parseInt(r.progress, 10) : null),
122
+ onUploadSuccess: l.onUploadSuccess,
114
123
  style: { display: "contents" }
115
124
  }, {
116
- default: P(({ openFilePicker: l }) => [
117
- c(k, {
125
+ default: P(({ openFilePicker: r }) => [
126
+ g(k, {
118
127
  type: e.file ? "none" : "secondary",
119
128
  pattern: e.file ? "secondary" : "primary",
120
129
  disabled: o.uploadProgress !== null,
121
130
  style: { "z-index": "2" },
122
- onClick: l
131
+ onClick: r
123
132
  }, {
124
133
  default: P(() => [
125
- o.uploadProgress !== null ? (n(), t(h, { key: 0 }, [
126
- v(u(`${o.uploadProgress}% ${e.$t("_common:uploading")}`), 1)
127
- ], 64)) : (n(), t(h, { key: 1 }, [
128
- v(u(e.file ? e.$t("_common:change", { thing: e.$t("_common:file") }) : e.$t("upload")), 1)
134
+ o.uploadProgress !== null ? (n(), t(v, { key: 0 }, [
135
+ y(u(`${o.uploadProgress}% ${e.$t("_common:uploading")}`), 1)
136
+ ], 64)) : (n(), t(v, { key: 1 }, [
137
+ y(u(e.file ? e.$t("_common:change", { thing: e.$t("_common:file") }) : e.$t("upload")), 1)
129
138
  ], 64))
130
139
  ]),
131
140
  _: 2
@@ -135,24 +144,24 @@ function O(e, s, f, i, o, r) {
135
144
  }, 8, ["max-size", "onUploadSuccess"])
136
145
  ], 2)
137
146
  ], 2)), [
138
- [I, r.showControls]
139
- ]) : p("", !0),
147
+ [I, l.showControls]
148
+ ]) : m("", !0),
140
149
  e.file ? (n(), t("div", E, [
141
150
  a("div", {
142
- class: m({
143
- "break-before-page": r.isPdf && !r._firstBlock,
144
- "break-after-page": r.isPdf && !r._lastBlock
151
+ class: c({
152
+ "break-before-page": l.isPdf && !l._firstBlock,
153
+ "break-after-page": l.isPdf && !l._lastBlock
145
154
  })
146
155
  }, [
147
156
  e.file && e.file.url ? (n(), V(B, {
148
157
  key: 0,
149
- src: r.fileUrl,
158
+ src: l.fileUrl,
150
159
  toolbar: !e.canEdit,
151
160
  "doc-file-path": `${e._value.file}.url`,
152
- onNumPages: s[1] || (s[1] = (l) => o.numPages = l)
153
- }, null, 8, ["src", "toolbar", "doc-file-path"])) : p("", !0)
161
+ onNumPages: s[1] || (s[1] = (r) => o.numPages = r)
162
+ }, null, 8, ["src", "toolbar", "doc-file-path"])) : m("", !0)
154
163
  ], 2)
155
- ])) : p("", !0)
164
+ ])) : m("", !0)
156
165
  ], 32);
157
166
  }
158
167
  const M = /* @__PURE__ */ F(z, [["render", O]]);
@@ -1,13 +1,13 @@
1
- import { m as l } from "./mapFormMixin-bA_KI0pt.js";
2
- import { u as c } from "./index-DWwjiiMe.js";
3
- import { _ as v, l as p, b as s, c as i, o as n } from "./main-C18owm58.js";
1
+ import { m as l } from "./mapFormMixin-CFaAoXxf.js";
2
+ import { u as c } from "./index-D-NDkjvk.js";
3
+ import { _ as v, l as p, b as s, c as i, o as n } from "./main-DAjWLLG0.js";
4
4
  const g = {
5
5
  name: "PackageGroupBlock",
6
6
  components: {
7
7
  PackageGroupRead: p(
8
- () => import("./PackageGroup-IiQ0mqWg.js")
8
+ () => import("./PackageGroup-DDgLD4Yb.js")
9
9
  ),
10
- PackageGroupEdit: p(() => import("./Index-CpZWI-QN.js"))
10
+ PackageGroupEdit: p(() => import("./Index-CyAAbl1D.js"))
11
11
  },
12
12
  emits: ["input", "remove"],
13
13
  mixins: [l(["type", "packages"])],
@@ -1,4 +1,4 @@
1
- import { _, d as s, o, j as r, F as u, n as d, q as g, t as a, s as h } from "./main-C18owm58.js";
1
+ import { _, d as s, o, j as r, F as u, n as d, q as g, t as a, s as h } from "./main-DAjWLLG0.js";
2
2
  const b = {
3
3
  name: "MultiGroupPricing",
4
4
  props: {