@feedmepos/mf-connect 0.1.38-beta.44 → 0.1.38-beta.46

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 (98) hide show
  1. package/dist/{Analytic-DaVlIGf-.js → Analytic-BGKCj1jr.js} +13 -13
  2. package/dist/{App-BuWDQu4h.js → App-Rjzbi736.js} +7 -7
  3. package/dist/{AuditLogs-Dg-AmPCL.js → AuditLogs-Dip8piV3.js} +9 -9
  4. package/dist/{Bin-BLZqBirZ.js → Bin-DOvnUMsH.js} +8 -8
  5. package/dist/{Broadcast-CO9pC5-Y.js → Broadcast-xcZBuHpL.js} +8 -8
  6. package/dist/{CampaignTypeDialog.vue_vue_type_script_setup_true_lang-BzeOFGn3.js → CampaignTypeDialog.vue_vue_type_script_setup_true_lang-Dizv5GP_.js} +6 -6
  7. package/dist/{Card-DxC4SzhE.js → Card-CKjNEigS.js} +18 -18
  8. package/dist/{Collections-Dl24kiOy.js → Collections-x5ofCSJN.js} +74 -73
  9. package/dist/{Credit-Dx9iReBU.js → Credit-BWBu_w2L.js} +8 -8
  10. package/dist/{EditCampaignSheet.vue_vue_type_script_setup_true_lang-B31p-9aH.js → EditCampaignSheet.vue_vue_type_script_setup_true_lang-CBoP1Jwt.js} +1143 -1117
  11. package/dist/EffectSheet.vue_vue_type_style_index_0_lang-YjvIstf7.js +348 -0
  12. package/dist/{Experience-CeTt_14y.js → Experience-pkdcwDSi.js} +8 -8
  13. package/dist/{Game-BiD0onYI.js → Game-Dna43QZe.js} +9 -9
  14. package/dist/{Grab-IOWWGsOE.js → Grab-C9Z_Zfe8.js} +8 -8
  15. package/dist/{ImageInput.vue_vue_type_script_setup_true_lang-D1KQpDGg.js → ImageInput.vue_vue_type_script_setup_true_lang-DElYlMlB.js} +44 -43
  16. package/dist/{Index-D3z5IdXJ.js → Index-DRIWf1NE.js} +10 -10
  17. package/dist/{Marketing-b1cfAMZ3.js → Marketing-usRTwLLw.js} +7 -7
  18. package/dist/{Member-BSUAVJcD.js → Member-B70QVgJa.js} +10 -10
  19. package/dist/{MemberList-CnXn01xK.js → MemberList-JI4mBPfA.js} +25 -25
  20. package/dist/{MemberTransactions-C_oE-NJv.js → MemberTransactions-DYHJdzBn.js} +1 -1
  21. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-BYlfLbKK.js → MessageInput.vue_vue_type_script_setup_true_lang-Dvr2n1Qk.js} +5090 -5091
  22. package/dist/{Mission-BJpdXP_V.js → Mission-D8FTOnMy.js} +9 -9
  23. package/dist/{Overview-CW5f7sAz.js → Overview-CaxFeeVL.js} +19 -19
  24. package/dist/{Point-BlW29FTE.js → Point-I9wVIa2q.js} +8 -8
  25. package/dist/{Promotion-BLbBVMGg.js → Promotion-CWFtbYmb.js} +9 -9
  26. package/dist/{Queue-IKQPAf2s.js → Queue-BmjIEX84.js} +10 -10
  27. package/dist/{Record-BpAB2Eun.js → Record-DuvGrBry.js} +8 -8
  28. package/dist/{Reward-CRyvWOwo.js → Reward-BQ36_7d0.js} +16 -16
  29. package/dist/{RewardGroup.vue_vue_type_script_setup_true_lang-CbL_JmWH.js → RewardGroup.vue_vue_type_script_setup_true_lang-0AbXVk_6.js} +12 -12
  30. package/dist/{RuleGroup.vue_vue_type_script_setup_true_lang-BF98epZo.js → RuleGroup.vue_vue_type_script_setup_true_lang-pwHQUtHq.js} +596 -592
  31. package/dist/{Segment-C0lbV7EJ.js → Segment-ClGmNf-7.js} +23 -23
  32. package/dist/{SelectItems.vue_vue_type_script_setup_true_lang-D1lUfj_I.js → SelectItems.vue_vue_type_script_setup_true_lang-CGsYilHx.js} +2 -2
  33. package/dist/{SendCollectionSheet.vue_vue_type_script_setup_true_lang-CurmIKU-.js → SendCollectionSheet.vue_vue_type_script_setup_true_lang-Bbisi3wu.js} +12 -12
  34. package/dist/{SendVoucherSheet.vue_vue_type_script_setup_true_lang-BM-fztkT.js → SendVoucherSheet.vue_vue_type_script_setup_true_lang-CRnHuPPI.js} +3 -3
  35. package/dist/{Setting-BIgHzM4O.js → Setting-DtRP7-KR.js} +14 -14
  36. package/dist/{SettingAdvertisements-pSKo469B.js → SettingAdvertisements-9gG904yk.js} +12 -12
  37. package/dist/{Store-Czn9bmJY.js → Store-j8N8l1e7.js} +21 -21
  38. package/dist/{StoreRewards-BEgyufA-.js → StoreRewards-9o5EngS4.js} +15 -15
  39. package/dist/{StoreTransactions.vue_vue_type_script_setup_true_lang-DzlPKkvb.js → StoreTransactions.vue_vue_type_script_setup_true_lang-Bs54sDKB.js} +31 -29
  40. package/dist/{TargetLocationInput.vue_vue_type_script_setup_true_lang-Dt-fITiT.js → TargetLocationInput.vue_vue_type_script_setup_true_lang-CqBeBxgc.js} +1 -1
  41. package/dist/{Tier-uoxXOOmb.js → Tier-N4Fwb4c2.js} +23 -23
  42. package/dist/{Title-QaZ_Qzwk.js → Title-BisuO_Bq.js} +20 -20
  43. package/dist/{Transaction-By9Q6BcR.js → Transaction-BvL-lHUW.js} +2 -2
  44. package/dist/{UserRuleGroup.vue_vue_type_script_setup_true_lang-ChoSRMz9.js → UserRuleGroup.vue_vue_type_script_setup_true_lang-D3zT4NEB.js} +6 -6
  45. package/dist/{Voucher-DD9c1bOC.js → Voucher-BNVS0bf_.js} +12 -12
  46. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-BdAaQtUx.js +421 -0
  47. package/dist/{ZodTextField.vue_vue_type_script_setup_true_lang-B1E0-61O.js → ZodTextField.vue_vue_type_script_setup_true_lang-Db5UjYDs.js} +2 -2
  48. package/dist/{app-D1EzxIEG.js → app-5gFoCIZ5.js} +2285 -795
  49. package/dist/{app-C-L8YbbE.js → app-HOMrHaJX.js} +1 -1
  50. package/dist/app.js +1 -1
  51. package/dist/{business-B9L1wZ9V.js → business-DrOrg91y.js} +1 -1
  52. package/dist/{campaign-BR7cO_ag.js → campaign-D-0jxXgS.js} +1 -1
  53. package/dist/campaign-DxZjTV1c.js +233 -0
  54. package/dist/{campaign.enum-OFeKrvOv.js → campaign.enum-DfqdgPF7.js} +1 -1
  55. package/dist/{campaign.fn-B9PtQJx6.js → campaign.fn-BA9SsYlS.js} +23 -23
  56. package/dist/{collectible.enum-BE8Vnk8X.js → collectible.enum-CUY4edTO.js} +1 -1
  57. package/dist/{collection.fn-CSzvUULo.js → collection.fn-BUyLrKuP.js} +2 -2
  58. package/dist/{dto-DH8S9-Ib.js → dto-CdsbCKbi.js} +4 -4
  59. package/dist/{effect-DZGMEmET.js → effect-CHvrDcct.js} +1 -1
  60. package/dist/{email-addresses-Clhn0_GY.js → email-addresses-BQGuEvTh.js} +1 -1
  61. package/dist/{export-D2-7Mdk_.js → export-CgyLGAFe.js} +3 -3
  62. package/dist/{helper-A850CYX-.js → helper-CUXD11Bp.js} +1 -1
  63. package/dist/{index-DBkatkYW.js → index-BMpQ1Eq2.js} +1 -1
  64. package/dist/{index-CaRmY5ov.js → index-BTzBc44a.js} +4 -4
  65. package/dist/{index-Di6vuuEG.js → index-BmOfDfwV.js} +222 -217
  66. package/dist/{index-Fx5b3dyw.js → index-Bsz-Af4_.js} +2 -2
  67. package/dist/{index-CLvKSnsU.js → index-D-Qagjww.js} +3 -3
  68. package/dist/{index-DZ2N0Xar.js → index-DQlMaN5j.js} +1023 -1023
  69. package/dist/{index-ti-HnLrW.js → index-DUBEbnDX.js} +1 -1
  70. package/dist/{index-CZtsEfNW.js → index-DUZWoVeF.js} +1 -1
  71. package/dist/{index-DgS92jOx.js → index-DrRjJg2A.js} +1 -1
  72. package/dist/{index-aXnPGrHU.js → index-DtcXk4cG.js} +1 -1
  73. package/dist/{index-Ddj2NyfT.js → index-Dvy1ftAd.js} +1 -1
  74. package/dist/{index-DIFcHxGK.js → index-ePW_CRtd.js} +1 -1
  75. package/dist/{index-BIX6P8Ch.js → index-uliDTEHQ.js} +3 -3
  76. package/dist/{index.esm2017-CeG_Fc0h.js → index.esm2017-CJJcI6HI.js} +1 -1
  77. package/dist/{loading-BTmVuA3F.js → loading-O2OJnB-v.js} +1 -1
  78. package/dist/{membership-855TzqV2.js → membership-kVwD3i5I.js} +3 -3
  79. package/dist/{money-q7C-U4gP.js → money-CvRqEjZN.js} +1 -1
  80. package/dist/{number-D_GEDOMH.js → number-BtM53Gqu.js} +1 -1
  81. package/dist/{objectid-BMt_qSOq.js → objectid-BbEyb60f.js} +12 -12
  82. package/dist/{campaign-DBsKNNfL.js → plugins-nuoNiWZV.js} +783 -788
  83. package/dist/{reward-BzhG23G8.js → reward-C904TC9N.js} +1 -1
  84. package/dist/{rule-hkruDWXK.js → rule-B2r0vrQs.js} +3 -3
  85. package/dist/{rule-builder-CDKwRPm6.js → rule-builder-DxCXxYrs.js} +1 -1
  86. package/dist/template-C8z7oS1X.js +188 -0
  87. package/dist/{timezone-CczMDZJW.js → timezone-C-mgrIzx.js} +1 -1
  88. package/dist/trigger-DrmYFT7r.js +213 -0
  89. package/dist/{user-vV0mHSKf.js → user-C_PXVgnR.js} +1 -1
  90. package/dist/{vue-i18n-C3xXE7er.js → vue-i18n-CBY1MepG.js} +111 -111
  91. package/dist/{xlsx-DwllaYd7.js → xlsx-DmlvPg-W.js} +1 -1
  92. package/dist/{zod-Bg2FbC-D.js → zod-DlxxgJ-R.js} +32 -31
  93. package/package.json +1 -1
  94. package/dist/EffectSheet.vue_vue_type_style_index_0_lang-C7EGat91.js +0 -348
  95. package/dist/VoucherEditor.vue_vue_type_script_setup_true_lang-DgCjZuxC.js +0 -419
  96. package/dist/plugins-DYwCm0Ql.js +0 -208
  97. package/dist/template-Bzs20Hr7.js +0 -190
  98. package/dist/trigger-C67D78R1.js +0 -144
@@ -1,190 +0,0 @@
1
- import { defineComponent as L, openBlock as r, createBlock as C, resolveDynamicComponent as D, unref as e, ref as E, computed as I, onMounted as j, resolveComponent as c, withCtx as d, createElementVNode as l, createElementBlock as w, createVNode as i, normalizeClass as h, createTextVNode as T, Fragment as S, renderList as N, toDisplayString as g, createCommentVNode as M } from "vue";
2
- import { u as P } from "./campaign-BR7cO_ag.js";
3
- import { useDialog as q } from "@feedmepos/ui-library";
4
- import { F as J } from "./index-Di6vuuEG.js";
5
- import { C as A } from "./collection.fn-CSzvUULo.js";
6
- import { s as V } from "./index-CsaQJMAR.js";
7
- import { _ as G } from "./lodash-B5I3zXaY.js";
8
- import { C as H } from "./campaign-DBsKNNfL.js";
9
- import { J as U } from "./JsonViewer-v8_C7l5N.js";
10
- const K = /* @__PURE__ */ L({
11
- __name: "CampaignChip",
12
- props: {
13
- type: { type: String, required: !0 }
14
- },
15
- setup(u) {
16
- const a = H[u.type];
17
- return (o, t) => (r(), C(D(e(a).chip())));
18
- }
19
- }), Q = { class: "flex flex-nowrap gap-x-2 grow h-full" }, R = {
20
- key: 0,
21
- class: "p-8 w-1/4"
22
- }, W = { class: "flex flex-col grow p-24" }, X = { class: "space-y-4" }, Y = { class: "fm-typo-en-title-sm-800" }, Z = { class: "grow pb-16 pr-16 pt-6 w-full max-h-[400px] overflow-y-auto" }, ee = { class: "gap-24 grid grid-cols-1 lg:grid-cols-2" }, te = { class: "gap-4 h-[22px] inline-flex items-center justify-center min-w-min rounded-md" }, ne = { class: "fm-typo-en-title-sm-800" }, oe = { class: "fm-typo-en-body-lg-400 text-fm-color-typo-secondary" }, se = { class: "flex gap-4 items-end justify-end py-8" }, le = /* @__PURE__ */ L({
23
- __name: "TemplateDialog",
24
- props: {
25
- campaignType: {
26
- type: String,
27
- default: () => {
28
- }
29
- },
30
- onOk: {
31
- type: Function,
32
- required: !0
33
- }
34
- },
35
- setup(u) {
36
- const p = q(), a = P(), o = u, t = E({
37
- intention: null,
38
- template: null
39
- }), b = I(() => {
40
- const m = (a.templates ?? []).filter(
41
- () => !0
42
- //t.intention && t.intention.length > 0
43
- );
44
- return o.campaignType ? m.filter(
45
- (n) => {
46
- var y, f;
47
- return ((f = (y = n.defaultValue) == null ? void 0 : y.campaign) == null ? void 0 : f.type) === o.campaignType;
48
- }
49
- ) : t.value.intention === null ? G.sampleSize(m, 7) : m.filter(
50
- (n) => n.intention.includes(t.value.intention)
51
- );
52
- });
53
- j(async () => {
54
- await a.readTemplates();
55
- });
56
- function O() {
57
- o.onOk(void 0), p.close();
58
- }
59
- function $() {
60
- const m = t.value.template;
61
- o.onOk(a.templates.find((n) => n._id === m)), p.close();
62
- }
63
- return (m, n) => {
64
- const y = c("FmChip"), f = c("FmListItem"), z = c("FmList"), k = c("FmCard"), v = c("FmButton"), B = c("FmSpacer");
65
- return r(), C(k, { class: "h-[534px] max-w-6xl" }, {
66
- default: d(() => [
67
- l("div", Q, [
68
- o.campaignType ? M("", !0) : (r(), w("div", R, [
69
- i(z, null, {
70
- default: d(() => [
71
- i(f, {
72
- class: h([{
73
- "bg-fm-color-system-warning-100": e(t).intention === null
74
- }, "rounded-sm"]),
75
- onClick: n[0] || (n[0] = (s) => {
76
- e(t).intention = null, e(t).template = null;
77
- })
78
- }, {
79
- append: d(() => [
80
- i(y, {
81
- label: "Hot",
82
- variant: "critical"
83
- })
84
- ]),
85
- default: d(() => [
86
- n[2] || (n[2] = T(" Most popular ", -1))
87
- ]),
88
- _: 1
89
- }, 8, ["class"]),
90
- (r(!0), w(S, null, N(e(J).options, (s, x) => (r(), C(f, {
91
- key: x,
92
- class: h(["rounded-sm", {
93
- "bg-fm-color-system-warning-100": e(t).intention === s
94
- }]),
95
- style: { padding: "8px 16px" },
96
- onClick: (_) => {
97
- e(t).intention = s, e(t).template = null;
98
- }
99
- }, {
100
- default: d(() => [
101
- T(g(e(V)(s)), 1)
102
- ]),
103
- _: 2
104
- }, 1032, ["class", "onClick"]))), 128))
105
- ]),
106
- _: 1
107
- })
108
- ])),
109
- l("div", W, [
110
- l("div", X, [
111
- l("div", Y, g(o.campaignType ? e(V)(
112
- `${e(A).formattedType(o.campaignType)} campaign`
113
- ) : "Template list"), 1),
114
- n[3] || (n[3] = l("div", { class: "text-fm-color-typo-secondary fm-typo-en-body-md-400" }, " Get started faster with templates that flex with your business. ", -1))
115
- ]),
116
- l("div", Z, [
117
- i(U, { json: e(b) }, null, 8, ["json"]),
118
- l("div", ee, [
119
- (r(!0), w(S, null, N(e(b), (s, x) => (r(), C(k, {
120
- key: x,
121
- variant: "outlined",
122
- class: h(["box-border cursor-pointer h-full p-16 scroll-p-4 space-y-8", {
123
- "bg-fm-color-system-warning-100 border-fm-color-primary border-2": e(t).template === s._id.toString()
124
- }]),
125
- onClick: (_) => e(t).template = s._id.toString()
126
- }, {
127
- default: d(() => {
128
- var _, F;
129
- return [
130
- l("div", te, [
131
- i(K, {
132
- type: (F = (_ = s.defaultValue) == null ? void 0 : _.campaign) == null ? void 0 : F.type
133
- }, null, 8, ["type"])
134
- ]),
135
- l("div", ne, g(s.name), 1),
136
- l("p", oe, g(s.description), 1)
137
- ];
138
- }),
139
- _: 2
140
- }, 1032, ["class", "onClick"]))), 128))
141
- ])
142
- ]),
143
- l("div", se, [
144
- i(v, {
145
- class: "sm:w-full xs:w-full",
146
- variant: "plain",
147
- label: "Custom Campaign",
148
- size: "md",
149
- onClick: O
150
- }),
151
- i(B, { class: "sm:hidden xs:hidden" }),
152
- i(v, {
153
- class: "sm:w-full xs:w-full",
154
- variant: "tertiary",
155
- label: "Cancel",
156
- size: "md",
157
- onClick: n[1] || (n[1] = (s) => e(p).close())
158
- }),
159
- i(v, {
160
- class: "sm:w-full xs:w-full",
161
- variant: "primary",
162
- label: "Start",
163
- size: "md",
164
- disabled: !e(t).template,
165
- onClick: $
166
- }, null, 8, ["disabled"])
167
- ])
168
- ])
169
- ])
170
- ]),
171
- _: 1
172
- });
173
- };
174
- }
175
- }), ye = (u, p) => ({
176
- open: async (a) => {
177
- p.open({
178
- title: "",
179
- dialogComponent: le,
180
- dialogComponentProps: {
181
- campaignType: u,
182
- onOk: async (o) => (console.debug(o, "selected template"), await a(o))
183
- },
184
- overlay: !0
185
- });
186
- }
187
- });
188
- export {
189
- ye as u
190
- };
@@ -1,144 +0,0 @@
1
- import { defineComponent as i, openBlock as m, createBlock as s, unref as n } from "vue";
2
- import "./index-Fx5b3dyw.js";
3
- import { R as l } from "./rule-builder-CDKwRPm6.js";
4
- import { _ as p } from "./RuleGroup.vue_vue_type_script_setup_true_lang-BF98epZo.js";
5
- import { l as e, H as E } from "./index-CaRmY5ov.js";
6
- const O = /* @__PURE__ */ i({
7
- __name: "BillRuleGroup",
8
- props: {
9
- modelValue: {
10
- type: Object,
11
- default: () => {
12
- }
13
- }
14
- },
15
- emits: ["update:model-value"],
16
- setup(r, { emit: a }) {
17
- const o = a;
18
- return (c, u) => {
19
- var t;
20
- return m(), s(p, {
21
- "include-only": "bill",
22
- "trigger-type": "BILL_COMPLETED",
23
- "model-value": ((t = r.modelValue) == null ? void 0 : t.rules.g_bill) ?? n(l).scaffoldGroup("g_bill"),
24
- "onUpdate:modelValue": u[0] || (u[0] = (d) => o(
25
- "update:model-value",
26
- n(l).setRuleToGroup(
27
- r.modelValue ?? n(l).scaffoldGroup(),
28
- d,
29
- "&&"
30
- )
31
- ))
32
- }, null, 8, ["model-value"]);
33
- };
34
- }
35
- }), T = /* @__PURE__ */ i({
36
- __name: "FeedbackRuleGroup",
37
- props: {
38
- modelValue: {
39
- type: Object,
40
- default: () => {
41
- }
42
- }
43
- },
44
- emits: ["update:model-value"],
45
- setup(r, { emit: a }) {
46
- const o = a;
47
- return (c, u) => {
48
- var t;
49
- return m(), s(p, {
50
- "include-only": "feedback",
51
- "trigger-type": "FEEDBACK",
52
- "model-value": ((t = r.modelValue) == null ? void 0 : t.rules.g_feedback) ?? n(l).scaffoldGroup("g_feedback"),
53
- "onUpdate:modelValue": u[0] || (u[0] = (d) => o(
54
- "update:model-value",
55
- n(l).setRuleToGroup(
56
- r.modelValue ?? n(l).scaffoldGroup(),
57
- d,
58
- "&&"
59
- )
60
- ))
61
- }, null, 8, ["model-value"]);
62
- };
63
- }
64
- }), f = {
65
- [e.enum.BILL_COMPLETED]: {
66
- name: "Bill complete",
67
- description: "Reward customers upon the completion of their bill.",
68
- value: e.enum.BILL_COMPLETED,
69
- hidden: !1
70
- },
71
- [e.enum.FEEDBACK]: {
72
- name: "Feedback",
73
- description: "Reward customers for providing feedback.",
74
- value: e.enum.FEEDBACK,
75
- hidden: !1
76
- },
77
- [e.enum.GAME_COMPLETED]: {
78
- name: "Game complete",
79
- description: "Reward customers upon the completion of a game.",
80
- value: e.enum.GAME_COMPLETED,
81
- hidden: !1
82
- },
83
- [e.enum.MAKING_ORDER]: {
84
- name: "Making order",
85
- description: "Reward customers upon the creation of their order.",
86
- value: e.enum.MAKING_ORDER,
87
- hidden: !1
88
- },
89
- [e.enum.MEMBERSHIP_JOINED]: {
90
- name: "Member joined ",
91
- description: "Trigger rewards when customers join your membership program.",
92
- value: e.enum.MEMBERSHIP_JOINED,
93
- hidden: !1
94
- },
95
- [e.enum.SCHEDULE]: {
96
- name: "Schedule",
97
- description: "Set rewards to be triggered at specific times or dates.",
98
- value: e.enum.SCHEDULE,
99
- hidden: !1
100
- },
101
- [e.enum.SIMPLE_CLAIM]: {
102
- name: "Simple claim",
103
- description: "Activate rewards when customers claim an offer",
104
- value: e.enum.SIMPLE_CLAIM,
105
- hidden: !1
106
- },
107
- [e.enum.TIER_UPGRADED]: {
108
- name: "Tier upgrade",
109
- description: "Activate rewards when their membership tier gets upgraded.",
110
- value: e.enum.TIER_UPGRADED,
111
- hidden: !1
112
- },
113
- [e.enum.ISSUE_REWARD]: {
114
- name: "Issue reward",
115
- description: "Triggers whenever customer receives a reward in any kind.",
116
- value: e.enum.ISSUE_REWARD,
117
- hidden: !0
118
- }
119
- }, g = Object.fromEntries(
120
- [
121
- "VOUCHER",
122
- "PROMOTION",
123
- "POINT",
124
- "CREDIT",
125
- "MEMBERSHIP",
126
- "BROADCAST",
127
- "COIN",
128
- "REWARD_POOL",
129
- "GAME",
130
- "MISSION"
131
- ].map((r) => {
132
- const a = E[r];
133
- return [
134
- r,
135
- (a == null ? void 0 : a.map((o) => f[o]).filter((o) => !o.hidden)) ?? []
136
- ];
137
- })
138
- );
139
- export {
140
- g as T,
141
- O as _,
142
- f as a,
143
- T as b
144
- };