@feedmepos/mf-inventory-portal 0.0.23-dev.24 → 0.0.23-dev.26

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 (49) hide show
  1. package/dist/{App-dQy0_X6Q.js → App-C0hXAs5E.js} +49 -45
  2. package/dist/{ApprovalView-CxwAuXae.js → ApprovalView-Db5Aq3gK.js} +15 -15
  3. package/dist/{BindingsDialog-BX8J03Uc.js → BindingsDialog-dKNKrWKv.js} +9 -9
  4. package/dist/{BindingsPicker-CAW_3sSv.js → BindingsPicker-dN1bNnc0.js} +5 -5
  5. package/dist/{BindingsTable-7UmxSmdW.js → BindingsTable-BA461fcU.js} +8 -8
  6. package/dist/{ClosingDraftView-DukJAMlK.js → ClosingDraftView-aRHVKTA6.js} +68 -69
  7. package/dist/{ClosingTemplateView-Dm7_gMTo.js → ClosingTemplateView-BYnC4Whw.js} +58 -61
  8. package/dist/{FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-DN3N20Nb.js → FmFilterableMenuOptions.vue_vue_type_script_setup_true_lang-BdjeCWX1.js} +13 -13
  9. package/dist/{FmUnitInput.vue_vue_type_script_setup_true_lang-BrPRiS_u.js → FmUnitInput.vue_vue_type_script_setup_true_lang-CP2euPwM.js} +46 -46
  10. package/dist/{IngredientBindedItem.vue_vue_type_script_setup_true_lang-Bln1lReW.js → IngredientBindedItem.vue_vue_type_script_setup_true_lang-C4aYGbW2.js} +7 -7
  11. package/dist/{IngredientGroupView-BKIJHeh9.js → IngredientGroupView-vdG6npct.js} +40 -40
  12. package/dist/{IngredientsView-Blnohl3I.js → IngredientsView-DWRAoLHx.js} +207 -210
  13. package/dist/{IntegrationView-Dna4bUA7.js → IntegrationView-Dp_A-Swf.js} +89 -90
  14. package/dist/{InventoryBindingForm-D6HSF8Wn.js → InventoryBindingForm-D_wSUUKv.js} +1 -1
  15. package/dist/{InventoryBindingForm.vue_vue_type_script_setup_true_lang-CnWvwNjJ.js → InventoryBindingForm.vue_vue_type_script_setup_true_lang-2Mnqz6HN.js} +27 -27
  16. package/dist/{InventoryBindingSummary-CNNCv8NX.js → InventoryBindingSummary-oyRdM7Pd.js} +1 -1
  17. package/dist/{NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CrMkMTAt.js → NumberPrecisionInput.vue_vue_type_script_setup_true_lang-CSabNdfV.js} +1 -1
  18. package/dist/{PremiumBadge.vue_vue_type_script_setup_true_lang-Cw3E2NKS.js → PremiumBadge.vue_vue_type_script_setup_true_lang-tu1Al7wM.js} +17 -18
  19. package/dist/{PurchaseOrderPrintPreview-PEN03dZK.js → PurchaseOrderPrintPreview-B4m8t90I.js} +1 -1
  20. package/dist/{ReceiveRequestView-rTUhjMLY.js → ReceiveRequestView-DIJb_dU2.js} +26 -27
  21. package/dist/{RecipeView-V1hx1AUG.js → RecipeView-Ch5KMGLJ.js} +47 -48
  22. package/dist/{StockView-B5nDn8nO.js → StockView-BVuzsMG7.js} +7 -7
  23. package/dist/{SupplierView-DyyRxm6k.js → SupplierView-DEC2LmtN.js} +203 -206
  24. package/dist/{TransferDetails.vue_vue_type_script_setup_true_lang-D6oZOwHL.js → TransferDetails.vue_vue_type_script_setup_true_lang-9UZWws3P.js} +61 -62
  25. package/dist/{TransferTemplateView-OTR9Re51.js → TransferTemplateView-DAMQ_Whn.js} +144 -145
  26. package/dist/{UnitView-DGhm1JXD.js → UnitView-CFwHRgQ-.js} +3 -3
  27. package/dist/{WarehouseView-DMAvFisd.js → WarehouseView-HE71bVOX.js} +52 -52
  28. package/dist/app-CRSuR04o.js +84133 -0
  29. package/dist/app.js +1 -1
  30. package/dist/{decimal-DuJEFEYp.js → decimal-B5DqWjel.js} +1 -1
  31. package/dist/{feature-BRqas45f.js → feature-DxNphYNO.js} +1 -1
  32. package/dist/{format-unit-display-G6VtlQe7.js → format-unit-display-D40MKAIU.js} +50 -53
  33. package/dist/{index-D3f51k-I.js → index-BWDsx2Ik.js} +1 -1
  34. package/dist/{stock-DZkj2LE0.js → stock-BAPZYfON.js} +1 -1
  35. package/dist/style.css +1 -1
  36. package/dist/{supplier-Cm5Cw3u7.js → supplier-Bp7xaTFX.js} +1 -1
  37. package/dist/tsconfig.app.tsbuildinfo +1 -1
  38. package/dist/{use-inventory-binding-dialog-DCt0wUiw.js → use-inventory-binding-dialog-cxY29PPx.js} +1 -1
  39. package/dist/views/adjustment-template/import/AdjustmentTemplateImport.vue.d.ts +2 -0
  40. package/dist/views/adjustment-template/import/AdjustmentTemplateImportItem.vue.d.ts +18 -0
  41. package/dist/views/adjustment-template/import/export.d.ts +60 -0
  42. package/dist/views/closing-draft/composables/use-closing-draft-table.d.ts +1 -1
  43. package/dist/views/closing-template/composables/use-closing-template-table.d.ts +1 -1
  44. package/package.json +1 -1
  45. package/dist/FmDroppableField-BqZcDO2v.js +0 -154
  46. package/dist/app-DQRbwx-z.js +0 -58903
  47. package/dist/netsuite-D4b5JceM.js +0 -251
  48. package/dist/xlsx-9Gc42bxv.js +0 -24004
  49. package/dist/xlsx.util-CEvUL8mk.js +0 -78
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-CnWvwNjJ.js";
1
+ import { _ as f } from "./InventoryBindingForm.vue_vue_type_script_setup_true_lang-2Mnqz6HN.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,7 +1,7 @@
1
- import { defineComponent as J, computed as y, reactive as Q, resolveComponent as g, openBlock as f, createElementBlock as x, createVNode as m, createElementVNode as n, toDisplayString as v, unref as l, Fragment as C, renderList as A, createBlock as R, withCtx as S, createCommentVNode as T, nextTick as X } from "vue";
2
- import { a as Z, aF as ee, aG as ne, h, aH as oe, B as N, z as te, F as ie } from "./app-DQRbwx-z.js";
3
- import { u as le } from "./use-inventory-binding-dialog-DCt0wUiw.js";
4
- import { _ as se, c as re, d as de } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-BrPRiS_u.js";
1
+ import { defineComponent as H, computed as y, reactive as J, resolveComponent as g, openBlock as f, createElementBlock as x, createVNode as m, createElementVNode as n, toDisplayString as v, unref as l, Fragment as C, renderList as A, createBlock as R, withCtx as S, createCommentVNode as T, nextTick as X } from "vue";
2
+ import { a as Z, aP as ee, aQ as ne, i as h, aR as oe, L as P, K as te, F as ie } from "./app-CRSuR04o.js";
3
+ import { u as le } from "./use-inventory-binding-dialog-cxY29PPx.js";
4
+ import { _ as se, c as re, d as de } from "./FmUnitInput.vue_vue_type_script_setup_true_lang-CP2euPwM.js";
5
5
  import { useI18n as ae } from "@feedmepos/mf-common";
6
6
  const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-16" }, ce = { class: "flex items-center" }, pe = { class: "flex-1 fm-typo-en-title-sm-600" }, fe = { class: "flex flex-col" }, ve = { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, ye = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, _e = {
7
7
  class: "flex items-center w-full border-b border-fm-color-neutral-gray-100",
@@ -12,7 +12,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
12
12
  }, he = { class: "w-[200px]" }, Ve = { class: "w-[52px]" }, Be = { class: "flex flex-col gap-16" }, ke = { class: "flex items-center" }, Fe = { class: "flex-1 fm-typo-en-title-sm-600" }, Ie = { class: "flex flex-col" }, we = { class: "flex py-8 px-12 border-b border-fm-color-neutral-gray-200 bg-fm-color-neutral-gray-100 h-[44px] items-center" }, Ue = { class: "flex-1 fm-typo-en-body-md-600 text-fm-color-typo-secondary" }, Ee = { class: "fm-typo-en-body-md-600 text-fm-color-typo-secondary w-[150px] px-16" }, Ce = {
13
13
  class: "flex items-center w-full",
14
14
  style: { "min-height": "48px" }
15
- }, Ae = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, Re = { class: "line-clamp-1" }, Se = { class: "w-[150px]" }, Te = { class: "w-[52px]" }, Ne = { class: "flex flex-col px-12 pb-4" }, Ke = /* @__PURE__ */ J({
15
+ }, Ae = { class: "flex-1 fm-typo-en-body-md-400 py-8 px-12" }, Re = { class: "line-clamp-1" }, Se = { class: "w-[150px]" }, Te = { class: "w-[52px]" }, Pe = { class: "flex flex-col px-12 pb-4" }, ze = /* @__PURE__ */ H({
16
16
  __name: "InventoryBindingForm",
17
17
  props: {
18
18
  id: {},
@@ -23,45 +23,45 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
23
23
  disabled: { type: Boolean }
24
24
  },
25
25
  emits: ["update:modelValue", "click:pick-inventory-bindings"],
26
- setup(P, { emit: M }) {
27
- const { t: c } = ae(), B = Z(), k = y(() => B.inventory.recipe ?? []), b = y(() => B.inventory.sku ?? []), s = P, p = M, F = y(() => ee({
26
+ setup(N, { emit: M }) {
27
+ const { t: c } = ae(), B = Z(), k = y(() => B.inventory.recipe ?? []), b = y(() => B.inventory.sku ?? []), s = N, p = M, F = y(() => ee({
28
28
  bindings: s.modelValue,
29
29
  recipes: k.value.map((t) => t._id === s.id ? {
30
30
  ...t,
31
31
  contains: s.modelValue
32
32
  } : t),
33
33
  skus: b.value
34
- }).inventoryBindings.filter((t) => t.error).filter((t) => t.reason === ne.enum.circularDependency)), z = y(
34
+ }).inventoryBindings.filter((t) => t.error).filter((t) => t.reason === ne.enum.circularDependency)), K = y(
35
35
  () => new Set(F.value.map((e) => {
36
36
  var o;
37
37
  return (o = e.bindingPaths[0]) == null ? void 0 : o.id;
38
38
  }))
39
- ), D = y(() => s.modelValue.filter((e) => e.type === "RECIPE")), { promptIngredientsBinding: G, promptRecipesBinding: K } = le();
40
- async function $() {
39
+ ), D = y(() => s.modelValue.filter((e) => e.type === "RECIPE")), { promptIngredientsBinding: $, promptRecipesBinding: z } = le();
40
+ async function G() {
41
41
  if (s.iframeMode) {
42
42
  p("click:pick-inventory-bindings", "RECIPE");
43
43
  return;
44
44
  }
45
- K(
45
+ z(
46
46
  s.modelValue,
47
47
  (e) => p("update:modelValue", e),
48
48
  s.id ? [s.id] : []
49
49
  );
50
50
  }
51
51
  const I = y(() => s.modelValue.filter((e) => e.type === "SKU") ?? []);
52
- async function j() {
52
+ async function L() {
53
53
  if (s.iframeMode) {
54
54
  p("click:pick-inventory-bindings", "SKU");
55
55
  return;
56
56
  }
57
- G(
57
+ $(
58
58
  s.modelValue,
59
59
  (e) => p("update:modelValue", e),
60
60
  s.excludeBindingId,
61
61
  s.id ? [s.id] : []
62
62
  );
63
63
  }
64
- function L(e, o, t) {
64
+ function j(e, o, t) {
65
65
  const r = +o;
66
66
  let d = t;
67
67
  o.length > 0 && isFinite(r) ? d = t.map((a) => (a.id !== e || (a.amount = te(r)), a)) : d = t.map((a) => (a.id !== e || (a.amount = { amount: 0, precision: 0 }), a)), p("update:modelValue", d);
@@ -81,7 +81,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
81
81
  function Y(e) {
82
82
  return { amount: e.amount, measurement: e.measurement };
83
83
  }
84
- function H(e, o, t) {
84
+ function O(e, o, t) {
85
85
  const r = t.map((d) => d.id !== e ? d : {
86
86
  ...d,
87
87
  amount: o.amount,
@@ -89,8 +89,8 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
89
89
  });
90
90
  p("update:modelValue", r);
91
91
  }
92
- const E = Q({});
93
- function O(e) {
92
+ const E = J({});
93
+ function Q(e) {
94
94
  return E[e.id] ?? {
95
95
  modelValue: {
96
96
  amount: e.amount,
@@ -127,7 +127,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
127
127
  "border-color": "primary",
128
128
  label: l(c)("inventory.inventoryBindings.linkRecipe"),
129
129
  "prepend-icon": "link",
130
- onClick: $
130
+ onClick: G
131
131
  }, null, 8, ["label"])
132
132
  ]),
133
133
  n("div", fe, [
@@ -140,7 +140,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
140
140
  key: i.id,
141
141
  disabled: e.disabled,
142
142
  modelValue: +l(h)(i.amount ?? { amount: 1, precision: 0 }),
143
- rules: [l(oe)(0), l(N)(0)]
143
+ rules: [l(oe)(0), l(P)(0)]
144
144
  }, {
145
145
  default: S(({ invalid: V }) => {
146
146
  var _;
@@ -149,7 +149,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
149
149
  n("div", ge, [
150
150
  n("div", xe, [
151
151
  n("div", null, v((_ = k.value.find((u) => u._id === i.id)) == null ? void 0 : _.name), 1),
152
- z.value.has(i.id) ? (f(), x("div", be, [
152
+ K.value.has(i.id) ? (f(), x("div", be, [
153
153
  m(d, {
154
154
  name: "error",
155
155
  color: "system-error-400",
@@ -164,7 +164,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
164
164
  class: "w-full",
165
165
  disabled: e.disabled,
166
166
  modelValue: +l(h)(i.amount ?? { amount: 1, precision: 0 }),
167
- "onUpdate:modelValue": (u) => L(i.id, u, e.modelValue),
167
+ "onUpdate:modelValue": (u) => j(i.id, u, e.modelValue),
168
168
  invalid: V
169
169
  }, null, 8, ["disabled", "modelValue", "onUpdate:modelValue", "invalid"])
170
170
  ]),
@@ -194,7 +194,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
194
194
  "border-color": "primary",
195
195
  label: l(c)("inventory.inventoryBindings.linkIngredient"),
196
196
  "prepend-icon": "link",
197
- onClick: j
197
+ onClick: L
198
198
  }, null, 8, ["label"])
199
199
  ]),
200
200
  n("div", Ie, [
@@ -233,7 +233,7 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
233
233
  n("div", Se, [
234
234
  m(se, {
235
235
  "model-value": Y(i),
236
- "onUpdate:modelValue": (u) => H(i.id, u, e.modelValue),
236
+ "onUpdate:modelValue": (u) => O(i.id, u, e.modelValue),
237
237
  "onUpdate:amount": (u) => W(i, u),
238
238
  unit: U(i),
239
239
  placement: V === I.value.length - 1 ? "top" : "bottom",
@@ -250,13 +250,13 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
250
250
  }, null, 8, ["disabled", "onClick"])
251
251
  ])
252
252
  ]),
253
- n("div", Ne, [
253
+ n("div", Pe, [
254
254
  m(t, {
255
255
  modelValue: +l(h)(i.amount ?? { amount: 1, precision: 0 }),
256
- rules: [l(N)(0)]
256
+ rules: [l(P)(0)]
257
257
  }, null, 8, ["modelValue", "rules"]),
258
258
  m(t, {
259
- modelValue: O(i),
259
+ modelValue: Q(i),
260
260
  rules: [
261
261
  l(re)(),
262
262
  l(de)(U(i))
@@ -272,5 +272,5 @@ const ue = { class: "flex flex-col gap-24" }, me = { class: "flex flex-col gap-1
272
272
  }
273
273
  });
274
274
  export {
275
- Ke as _
275
+ ze as _
276
276
  };
@@ -1,7 +1,7 @@
1
1
  import { defineComponent as s, resolveComponent as c, openBlock as m, createBlock as d, h as g } from "vue";
2
2
  import { useI18n as p } from "@feedmepos/mf-common";
3
3
  import { components as u } from "@feedmepos/ui-library";
4
- import { F as r } from "./app-DQRbwx-z.js";
4
+ import { F as r } from "./app-CRSuR04o.js";
5
5
  const B = /* @__PURE__ */ s({
6
6
  __name: "InventoryBindingSummary",
7
7
  props: {
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as y, computed as V, ref as w, watch as h, resolveComponent as u, openBlock as F, createBlock as A, withCtx as s, createVNode as g, createElementVNode as k, normalizeClass as K } from "vue";
2
- import { z as d } from "./app-DQRbwx-z.js";
2
+ import { K as d } from "./app-CRSuR04o.js";
3
3
  const _ = ["value", "disabled"], D = /* @__PURE__ */ y({
4
4
  __name: "NumberPrecisionInput",
5
5
  props: {
@@ -1,23 +1,22 @@
1
- import { u as d, w as f } from "./xlsx-9Gc42bxv.js";
2
- import { N as _, u as h } from "./app-DQRbwx-z.js";
1
+ import { az as d, aA as f, W as _, u as h } from "./app-CRSuR04o.js";
3
2
  import { useCoreStore as F } from "@feedmepos/mf-common";
4
3
  import { ref as y, defineComponent as v, resolveComponent as p, openBlock as k, createElementBlock as g, renderSlot as S, createVNode as l, withCtx as x } from "vue";
5
- function w(e, t) {
4
+ function I(e, t) {
6
5
  return t.map((r) => typeof r.selector == "function" ? r.selector(e) : e[r.selector]);
7
6
  }
8
- function I(e, t) {
9
- const r = t.map((o) => o.name), n = e.map((o) => w(o, t));
7
+ function O(e, t) {
8
+ const r = t.map((o) => o.name), n = e.map((o) => I(o, t));
10
9
  return d.aoa_to_sheet([r, ...n]);
11
10
  }
12
11
  async function A(e, t) {
13
12
  const r = d.book_new();
14
13
  for (const n of e) {
15
- const o = I(
14
+ const o = O(
16
15
  n.data,
17
- n.columns.map((s) => typeof s == "string" ? {
18
- name: s,
19
- selector: s
20
- } : s)
16
+ n.columns.map((a) => typeof a == "string" ? {
17
+ name: a,
18
+ selector: a
19
+ } : a)
21
20
  );
22
21
  d.book_append_sheet(r, o, n.name);
23
22
  }
@@ -27,8 +26,8 @@ const m = _((e, t) => {
27
26
  const r = h(), n = F();
28
27
  return {
29
28
  async getInventoryForecast() {
30
- var a;
31
- const o = ((a = n.currentBusiness.value) == null ? void 0 : a._id) ?? "", s = r.currentLocationId ?? "", i = `${e.dataBackendUrl}/${o}/${s}/inventory-forecast`;
29
+ var s;
30
+ const o = ((s = n.currentBusiness.value) == null ? void 0 : s._id) ?? "", a = r.currentLocationId ?? "", i = `${e.dataBackendUrl}/${o}/${a}/inventory-forecast`;
32
31
  try {
33
32
  return await t.get(i);
34
33
  } catch {
@@ -37,22 +36,22 @@ const m = _((e, t) => {
37
36
  },
38
37
  async getPurchaseOrderForecast(o) {
39
38
  var u;
40
- const s = ((u = n.currentBusiness.value) == null ? void 0 : u._id) ?? "", i = r.currentLocationId ?? "", a = `${e.dataBackendUrl}/${s}/${i}/purchase-order-forecast?days=${o}`;
39
+ const a = ((u = n.currentBusiness.value) == null ? void 0 : u._id) ?? "", i = r.currentLocationId ?? "", s = `${e.dataBackendUrl}/${a}/${i}/purchase-order-forecast?days=${o}`;
41
40
  try {
42
- return await t.get(a);
41
+ return await t.get(s);
43
42
  } catch {
44
43
  return { skus: [] };
45
44
  }
46
45
  }
47
46
  };
48
47
  });
49
- function O() {
48
+ function w() {
50
49
  return {
51
50
  inventoryForecast: { skus: [] },
52
51
  purchaseOrderForecast: { skus: [] }
53
52
  };
54
53
  }
55
- const c = y(O());
54
+ const c = y(w());
56
55
  function C() {
57
56
  return {
58
57
  // state
@@ -83,7 +82,7 @@ function D(e) {
83
82
  let t = e.substring(e.indexOf("_") + 1);
84
83
  return t.includes("_") && (t = t.substring(0, t.lastIndexOf("_"))), Number.isNaN(Date.parse(t)) ? null : new Date(t).toISOString();
85
84
  }
86
- const b = { class: "flex items-center gap-8" }, B = "Experience enhanced inventory features with premium plan.", L = /* @__PURE__ */ v({
85
+ const b = { class: "flex items-center gap-8" }, B = "Experience enhanced inventory features with premium plan.", N = /* @__PURE__ */ v({
87
86
  __name: "PremiumBadge",
88
87
  props: {
89
88
  zIndex: {}
@@ -109,7 +108,7 @@ const b = { class: "flex items-center gap-8" }, B = "Experience enhanced invento
109
108
  }
110
109
  });
111
110
  export {
112
- L as _,
111
+ N as _,
113
112
  A as e,
114
113
  D as i,
115
114
  C as u
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as h, computed as x, ref as m, onMounted as f, openBlock as n, createElementBlock as u, createElementVNode as t, toDisplayString as l, normalizeStyle as g, createTextVNode as i, Fragment as d, createCommentVNode as p, renderList as v, normalizeClass as w } from "vue";
2
2
  import { useRoute as k } from "vue-router";
3
- import { am as y, _ as C } from "./app-DQRbwx-z.js";
3
+ import { au as y, _ as C } from "./app-CRSuR04o.js";
4
4
  const P = { class: "purchase-box" }, R = { valign: "bottom" }, A = { class: "text-right" }, N = { class: "header" }, E = { class: "sub-header" }, O = { class: "caption" }, S = { class: "address" }, D = { class: "text-right" }, T = { class: "sub-header" }, q = { class: "address" }, F = { class: "purchase-body" }, L = { class: "text-left" }, U = { class: "text-left" }, V = { class: "text-right" }, z = { style: { "padding-top": "30px" } }, B = { valign: "bottom" }, H = { class: "header" }, I = { class: "caption" }, M = {
5
5
  class: "text-left",
6
6
  style: { width: "20%" }