@botonic/react 0.30.6-alpha.1 → 0.30.6-alpha.3
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/lib/cjs/components/element.js +6 -7
- package/lib/cjs/components/element.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-carousel.js +3 -3
- package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-utils.d.ts +9 -6
- package/lib/cjs/components/multichannel/multichannel-utils.js +26 -10
- package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel.js +6 -8
- package/lib/cjs/components/multichannel/multichannel.js.map +1 -1
- package/lib/cjs/constants.js +0 -1
- package/lib/cjs/constants.js.map +1 -1
- package/lib/esm/components/element.js +6 -7
- package/lib/esm/components/element.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js +4 -4
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +9 -6
- package/lib/esm/components/multichannel/multichannel-utils.js +18 -5
- package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel.js +6 -8
- package/lib/esm/components/multichannel/multichannel.js.map +1 -1
- package/lib/esm/constants.js +0 -1
- package/lib/esm/constants.js.map +1 -1
- package/package.json +1 -1
- package/src/components/element.jsx +4 -12
- package/src/components/multichannel/multichannel-carousel.jsx +6 -6
- package/src/components/multichannel/multichannel-utils.js +20 -5
- package/src/components/multichannel/multichannel.jsx +11 -8
- package/src/constants.js +0 -1
|
@@ -26,25 +26,24 @@ const Element = props => {
|
|
|
26
26
|
exports.Element = Element;
|
|
27
27
|
exports.Element.serialize = elementProps => {
|
|
28
28
|
const element = Object.assign({}, ...elementProps.children
|
|
29
|
-
.filter(c => c && c.type && c.type.name
|
|
29
|
+
.filter(c => c && c.type && c.type.name != 'Button')
|
|
30
30
|
.map(c => c.type.serialize && c.type.serialize(c.props)));
|
|
31
31
|
// When we are serializer buttons from backend, we are receiving the data
|
|
32
32
|
// as an array of buttons, so we have to keep robust with serve and deal with arrays
|
|
33
33
|
element.buttons = [
|
|
34
34
|
...elementProps.children
|
|
35
35
|
.filter(c => {
|
|
36
|
+
var _a;
|
|
36
37
|
if (c instanceof Array)
|
|
37
38
|
return true;
|
|
38
|
-
return c
|
|
39
|
+
return ((_a = c === null || c === void 0 ? void 0 : c.type) === null || _a === void 0 ? void 0 : _a.name) === button_1.Button.name;
|
|
39
40
|
})
|
|
40
41
|
.map(b => {
|
|
42
|
+
var _a;
|
|
41
43
|
if (b instanceof Array) {
|
|
42
|
-
|
|
43
|
-
bb.type &&
|
|
44
|
-
bb.type.serialize &&
|
|
45
|
-
bb.type.serialize(bb.props).button);
|
|
44
|
+
b.map(bb => { var _a, _b, _c; return (_c = (_b = (_a = bb === null || bb === void 0 ? void 0 : bb.type) === null || _a === void 0 ? void 0 : _a.serialize) === null || _b === void 0 ? void 0 : _b.call(_a, bb.props)) === null || _c === void 0 ? void 0 : _c.button; });
|
|
46
45
|
}
|
|
47
|
-
return (b
|
|
46
|
+
return (_a = b === null || b === void 0 ? void 0 : b.type) === null || _a === void 0 ? void 0 : _a.serialize(b.props).button;
|
|
48
47
|
}),
|
|
49
48
|
];
|
|
50
49
|
// When we have the buttons from backend, we have all buttons inside an array on the first position
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/components/element.jsx"],"names":[],"mappings":";;;;;AAAA,0DAAyB;AACzB,kFAAsC;AAEtC,4CAA8C;AAC9C,yCAA+C;AAC/C,qCAAiC;AAEjC,MAAM,gBAAgB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;WAGxB,mBAAO,CAAC,QAAQ,CAAC,aAAa;kBACvB,mBAAO,CAAC,QAAQ,CAAC,oBAAoB;;sBAEjC,kBAAM,CAAC,cAAc;;;CAG1C,CAAA;AAEM,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;IAC7B,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,uBAAC,gBAAgB,cAAE,KAAK,CAAC,QAAQ,GAAoB,CACtD,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,8CAAU,KAAK,CAAC,QAAQ,GAAW,CAAA;IAE5D,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB;AAED,eAAO,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,GAAG,YAAY,CAAC,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/components/element.jsx"],"names":[],"mappings":";;;;;AAAA,0DAAyB;AACzB,kFAAsC;AAEtC,4CAA8C;AAC9C,yCAA+C;AAC/C,qCAAiC;AAEjC,MAAM,gBAAgB,GAAG,2BAAM,CAAC,GAAG,CAAA;;;WAGxB,mBAAO,CAAC,QAAQ,CAAC,aAAa;kBACvB,mBAAO,CAAC,QAAQ,CAAC,oBAAoB;;sBAEjC,kBAAM,CAAC,cAAc;;;CAG1C,CAAA;AAEM,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;IAC7B,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,uBAAC,gBAAgB,cAAE,KAAK,CAAC,QAAQ,GAAoB,CACtD,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,8CAAU,KAAK,CAAC,QAAQ,GAAW,CAAA;IAE5D,OAAO,IAAA,uBAAe,EAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AARY,QAAA,OAAO,WAQnB;AAED,eAAO,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,GAAG,YAAY,CAAC,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAA;IACD,yEAAyE;IACzE,oFAAoF;IACpF,OAAO,CAAC,OAAO,GAAG;QAChB,GAAG,YAAY,CAAC,QAAQ;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE;;YACV,IAAI,CAAC,YAAY,KAAK;gBAAE,OAAO,IAAI,CAAA;YACnC,OAAO,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,IAAI,MAAK,eAAM,CAAC,IAAI,CAAA;QACtC,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;;YACP,IAAI,CAAC,YAAY,KAAK,EAAE;gBACtB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,mBAAC,OAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,0CAAE,SAAS,mDAAG,EAAE,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAA,EAAA,CAAC,CAAA;aACrD;YACD,OAAO,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAA;QAC3C,CAAC,CAAC;KACL,CAAA;IACD,mGAAmG;IACnG,oGAAoG;IACpG,2CAA2C;IAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7E,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -21,13 +21,13 @@ const MultichannelCarousel = props => {
|
|
|
21
21
|
let subtitle = undefined;
|
|
22
22
|
const buttons = [];
|
|
23
23
|
for (const node of element) {
|
|
24
|
-
if ((0, multichannel_utils_1.
|
|
24
|
+
if ((0, multichannel_utils_1.isNodePic)(node)) {
|
|
25
25
|
imageProps = node.props;
|
|
26
26
|
}
|
|
27
|
-
if ((0, multichannel_utils_1.
|
|
27
|
+
if ((0, multichannel_utils_1.isNodeTitle)(node)) {
|
|
28
28
|
title = node.props.children;
|
|
29
29
|
}
|
|
30
|
-
if ((0, multichannel_utils_1.
|
|
30
|
+
if ((0, multichannel_utils_1.isNodeSubtitle)(node)) {
|
|
31
31
|
subtitle = node.props.children;
|
|
32
32
|
}
|
|
33
33
|
if ((0, multichannel_utils_1.isMultichannelButton)(node)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-carousel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-carousel.jsx"],"names":[],"mappings":";;;;;AAAA,wCAA0C;AAC1C,uDAAyC;AAEzC,6CAA+C;AAC/C,0CAAsC;AACtC,2DAAsD;AACtD,6DAM6B;AAEtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE;IAC1C,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAA;IAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CACxB,EAAE,CAAC,MAAM,CAAC,IAAA,wCAAmB,EAAC,IAAI,EAAE,yCAAoB,CAAC,CAAC,CAAA;IAE5D,IAAI,IAAA,iBAAU,EAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAClB,IAAI,UAAU,GAAG,SAAS,CAAA;YAC1B,IAAI,KAAK,GAAG,SAAS,CAAA;YACrB,IAAI,QAAQ,GAAG,SAAS,CAAA;YACxB,MAAM,OAAO,GAAG,EAAE,CAAA;YAElB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;gBAC1B,IAAI,IAAA,
|
|
1
|
+
{"version":3,"file":"multichannel-carousel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-carousel.jsx"],"names":[],"mappings":";;;;;AAAA,wCAA0C;AAC1C,uDAAyC;AAEzC,6CAA+C;AAC/C,0CAAsC;AACtC,2DAAsD;AACtD,6DAM6B;AAEtB,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE;IAC1C,MAAM,cAAc,GAAG,IAAA,kBAAU,EAAC,yBAAc,CAAC,CAAA;IAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CACxB,EAAE,CAAC,MAAM,CAAC,IAAA,wCAAmB,EAAC,IAAI,EAAE,yCAAoB,CAAC,CAAC,CAAA;IAE5D,IAAI,IAAA,iBAAU,EAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;aAC1B,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAClB,IAAI,UAAU,GAAG,SAAS,CAAA;YAC1B,IAAI,KAAK,GAAG,SAAS,CAAA;YACrB,IAAI,QAAQ,GAAG,SAAS,CAAA;YACxB,MAAM,OAAO,GAAG,EAAE,CAAA;YAElB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE;gBAC1B,IAAI,IAAA,8BAAS,EAAC,IAAI,CAAC,EAAE;oBACnB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;iBACxB;gBACD,IAAI,IAAA,gCAAW,EAAC,IAAI,CAAC,EAAE;oBACrB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;iBAC5B;gBACD,IAAI,IAAA,mCAAc,EAAC,IAAI,CAAC,EAAE;oBACxB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;iBAC/B;gBAED,IAAI,IAAA,yCAAoB,EAAC,IAAI,CAAC,EAAE;oBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACnB;gBACD,2CAA2C;gBAC3C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACvB,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;iBAC/B;aACF;YAED,IAAI,MAAM,GAAG,EAAE,CAAA;YACf,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE;gBAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;gBAC1C,IAAI,KAAK,IAAI,QAAQ,EAAE;oBACrB,MAAM,IAAI,GAAG,CAAA;iBACd;aACF;YACD,IAAI,KAAK,CAAC,YAAY,IAAI,QAAQ,EAAE;gBAClC,MAAM,IAAI,IAAI,QAAQ,GAAG,CAAA;aAC1B;YAED,OAAO;YACL,wCAAwC;YACxC,wBAAC,oCAAgB,kBAEf,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,aAAa,EAAE,KAAK,CAAC,aAAa,iBAEjC,MAAM,IAAI,IAAI,EACd,OAAO,MANH,CAAC,CAOW,CACpB,CAAA;YAED,sDAAsD;YACtD,WAAW;YACX,WAAW;YACX,6BAA6B;YAC7B,aAAa;YACb,uBAAuB;YACvB,oCAAoC;YACpC,iBAAiB;YACjB,iBAAiB;YACjB,oBAAoB;YACpB,oBAAoB;YACpB,sBAAsB;YACtB,WAAW;YACX,gBAAgB;YAChB,sBAAsB;YACtB,IAAI;YACJ,IAAI;QACN,CAAC,CAAC,CAAA;QACJ,OAAO,QAAQ,CAAA;KAChB;SAAM;QACL,OAAO,uBAAC,mBAAQ,oBAAK,KAAK,cAAG,KAAK,CAAC,QAAQ,IAAY,CAAA;KACxD;AACH,CAAC,CAAA;AAjFY,QAAA,oBAAoB,wBAiFhC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
export function isMultichannelButton(node: any):
|
|
2
|
-
export function isMultichannelReply(node: any):
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export function
|
|
6
|
-
export function
|
|
1
|
+
export function isMultichannelButton(node: any): boolean;
|
|
2
|
+
export function isMultichannelReply(node: any): boolean;
|
|
3
|
+
export function isNodeText(node: any): boolean;
|
|
4
|
+
export function isNodeButton(node: any): boolean;
|
|
5
|
+
export function isNodeCarousel(node: any): boolean;
|
|
6
|
+
export function isNodeReply(node: any): boolean;
|
|
7
|
+
export function isNodePic(node: any): boolean;
|
|
8
|
+
export function isNodeTitle(node: any): boolean;
|
|
9
|
+
export function isNodeSubtitle(node: any): boolean;
|
|
7
10
|
export function elementHasUrl(element: any): any;
|
|
8
11
|
export function elementHasPostback(element: any): any;
|
|
9
12
|
export function elementHasWebview(element: any): any;
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMultichannelReplies = exports.getMultichannelButtons = exports.getFilteredElements = exports.getButtonType = exports.buttonTypes = exports.elementHasWebview = exports.elementHasPostback = exports.elementHasUrl = exports.
|
|
3
|
+
exports.getMultichannelReplies = exports.getMultichannelButtons = exports.getFilteredElements = exports.getButtonType = exports.buttonTypes = exports.elementHasWebview = exports.elementHasPostback = exports.elementHasUrl = exports.isNodeSubtitle = exports.isNodeTitle = exports.isNodePic = exports.isNodeReply = exports.isNodeCarousel = exports.isNodeButton = exports.isNodeText = exports.isMultichannelReply = exports.isMultichannelButton = void 0;
|
|
4
4
|
const button_1 = require("../button");
|
|
5
|
+
const carousel_1 = require("../carousel");
|
|
5
6
|
const pic_1 = require("../pic");
|
|
7
|
+
const reply_1 = require("../reply");
|
|
6
8
|
const subtitle_1 = require("../subtitle");
|
|
9
|
+
const text_1 = require("../text");
|
|
7
10
|
const title_1 = require("../title");
|
|
8
11
|
const multichannel_button_1 = require("./multichannel-button");
|
|
9
12
|
const multichannel_reply_1 = require("./multichannel-reply");
|
|
10
13
|
function isNodeKind(node, kind) {
|
|
11
|
-
|
|
14
|
+
var _a;
|
|
15
|
+
return ((_a = node === null || node === void 0 ? void 0 : node.type) === null || _a === void 0 ? void 0 : _a.name) === kind;
|
|
12
16
|
}
|
|
13
17
|
function isMultichannelButton(node) {
|
|
14
18
|
return isNodeKind(node, multichannel_button_1.MultichannelButton.name);
|
|
@@ -18,22 +22,34 @@ function isMultichannelReply(node) {
|
|
|
18
22
|
return isNodeKind(node, multichannel_reply_1.MultichannelReply.name);
|
|
19
23
|
}
|
|
20
24
|
exports.isMultichannelReply = isMultichannelReply;
|
|
21
|
-
function
|
|
25
|
+
function isNodeText(node) {
|
|
26
|
+
return isNodeKind(node, text_1.Text.name);
|
|
27
|
+
}
|
|
28
|
+
exports.isNodeText = isNodeText;
|
|
29
|
+
function isNodeButton(node) {
|
|
22
30
|
return isNodeKind(node, button_1.Button.name);
|
|
23
31
|
}
|
|
24
|
-
exports.
|
|
25
|
-
function
|
|
32
|
+
exports.isNodeButton = isNodeButton;
|
|
33
|
+
function isNodeCarousel(node) {
|
|
34
|
+
return isNodeKind(node, carousel_1.Carousel.name);
|
|
35
|
+
}
|
|
36
|
+
exports.isNodeCarousel = isNodeCarousel;
|
|
37
|
+
function isNodeReply(node) {
|
|
38
|
+
return isNodeKind(node, reply_1.Reply.name);
|
|
39
|
+
}
|
|
40
|
+
exports.isNodeReply = isNodeReply;
|
|
41
|
+
function isNodePic(node) {
|
|
26
42
|
return isNodeKind(node, pic_1.Pic.name);
|
|
27
43
|
}
|
|
28
|
-
exports.
|
|
29
|
-
function
|
|
44
|
+
exports.isNodePic = isNodePic;
|
|
45
|
+
function isNodeTitle(node) {
|
|
30
46
|
return isNodeKind(node, title_1.Title.name);
|
|
31
47
|
}
|
|
32
|
-
exports.
|
|
33
|
-
function
|
|
48
|
+
exports.isNodeTitle = isNodeTitle;
|
|
49
|
+
function isNodeSubtitle(node) {
|
|
34
50
|
return isNodeKind(node, subtitle_1.Subtitle.name);
|
|
35
51
|
}
|
|
36
|
-
exports.
|
|
52
|
+
exports.isNodeSubtitle = isNodeSubtitle;
|
|
37
53
|
function elementHasUrl(element) {
|
|
38
54
|
var _a;
|
|
39
55
|
return (_a = element === null || element === void 0 ? void 0 : element.props) === null || _a === void 0 ? void 0 : _a.url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":";;;AAAA,sCAAkC;AAClC,gCAA4B;AAC5B,0CAAsC;AACtC,oCAAgC;AAChC,+DAA0D;AAC1D,6DAAwD;AAExD,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI
|
|
1
|
+
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":";;;AAAA,sCAAkC;AAClC,0CAAsC;AACtC,gCAA4B;AAC5B,oCAAgC;AAChC,0CAAsC;AACtC,kCAA8B;AAC9B,oCAAgC;AAChC,+DAA0D;AAC1D,6DAAwD;AAExD,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI;;IAC5B,OAAO,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,IAAI,MAAK,IAAI,CAAA;AAClC,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAI;IACvC,OAAO,UAAU,CAAC,IAAI,EAAE,wCAAkB,CAAC,IAAI,CAAC,CAAA;AAClD,CAAC;AAFD,oDAEC;AAED,SAAgB,mBAAmB,CAAC,IAAI;IACtC,OAAO,UAAU,CAAC,IAAI,EAAE,sCAAiB,CAAC,IAAI,CAAC,CAAA;AACjD,CAAC;AAFD,kDAEC;AAED,SAAgB,UAAU,CAAC,IAAI;IAC7B,OAAO,UAAU,CAAC,IAAI,EAAE,WAAI,CAAC,IAAI,CAAC,CAAA;AACpC,CAAC;AAFD,gCAEC;AAED,SAAgB,YAAY,CAAC,IAAI;IAC/B,OAAO,UAAU,CAAC,IAAI,EAAE,eAAM,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAFD,oCAEC;AAED,SAAgB,cAAc,CAAC,IAAI;IACjC,OAAO,UAAU,CAAC,IAAI,EAAE,mBAAQ,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAFD,wCAEC;AAED,SAAgB,WAAW,CAAC,IAAI;IAC9B,OAAO,UAAU,CAAC,IAAI,EAAE,aAAK,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,kCAEC;AAED,SAAgB,SAAS,CAAC,IAAI;IAC5B,OAAO,UAAU,CAAC,IAAI,EAAE,SAAG,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAFD,8BAEC;AAED,SAAgB,WAAW,CAAC,IAAI;IAC9B,OAAO,UAAU,CAAC,IAAI,EAAE,aAAK,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,kCAEC;AAED,SAAgB,cAAc,CAAC,IAAI;IACjC,OAAO,UAAU,CAAC,IAAI,EAAE,mBAAQ,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAFD,wCAEC;AAED,SAAgB,aAAa,CAAC,OAAO;;IACnC,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,GAAG,CAAA;AAC5B,CAAC;AAFD,sCAEC;AAED,SAAgB,kBAAkB,CAAC,OAAO;;IACxC,OAAO,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,OAAO,MAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,IAAI,CAAA,CAAA;AACxD,CAAC;AAFD,gDAEC;AAED,SAAgB,iBAAiB,CAAC,OAAO;;IACvC,OAAO,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,0CAAE,OAAO,CAAA;AAChC,CAAC;AAFD,8CAEC;AAEY,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;CACnB,CAAA;AAED,SAAgB,aAAa,CAAC,kBAAkB;IAC9C,IAAI,aAAa,CAAC,kBAAkB,CAAC;QAAE,OAAO,mBAAW,CAAC,GAAG,CAAA;IAC7D,IAAI,kBAAkB,CAAC,kBAAkB,CAAC;QAAE,OAAO,mBAAW,CAAC,QAAQ,CAAA;IACvE,IAAI,iBAAiB,CAAC,kBAAkB,CAAC;QAAE,OAAO,mBAAW,CAAC,OAAO,CAAA;IAErE,OAAO,SAAS,CAAA;AAClB,CAAC;AAND,sCAMC;AAED,SAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM;IAC9C,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,IAAI,MAAM,CAAC,CAAC,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAChC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAND,kDAMC;AAED,SAAgB,sBAAsB,CAAC,IAAI;IACzC,OAAO,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;AACxD,CAAC;AAFD,wDAEC;AAED,SAAgB,sBAAsB,CAAC,IAAI;IACzC,OAAO,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;AACvD,CAAC;AAFD,wDAEC"}
|
|
@@ -8,15 +8,13 @@ const core_1 = require("@botonic/core");
|
|
|
8
8
|
const react_2 = tslib_1.__importStar(require("react"));
|
|
9
9
|
const contexts_1 = require("../../contexts");
|
|
10
10
|
const react_3 = require("../../util/react");
|
|
11
|
-
const button_1 = require("../button");
|
|
12
|
-
const carousel_1 = require("../carousel");
|
|
13
|
-
const reply_1 = require("../reply");
|
|
14
11
|
const text_1 = require("../text");
|
|
15
12
|
const multichannel_button_1 = require("./multichannel-button");
|
|
16
13
|
const multichannel_carousel_1 = require("./multichannel-carousel");
|
|
17
14
|
const multichannel_context_1 = require("./multichannel-context");
|
|
18
15
|
const multichannel_reply_1 = require("./multichannel-reply");
|
|
19
16
|
const multichannel_text_1 = require("./multichannel-text");
|
|
17
|
+
const multichannel_utils_1 = require("./multichannel-utils");
|
|
20
18
|
const constants_1 = require("./whatsapp/constants");
|
|
21
19
|
const Multichannel = props => {
|
|
22
20
|
const requestContext = (0, react_2.useContext)(contexts_1.RequestContext);
|
|
@@ -26,7 +24,7 @@ const Multichannel = props => {
|
|
|
26
24
|
}
|
|
27
25
|
if ((0, core_1.isFacebook)(requestContext.session)) {
|
|
28
26
|
const newChildren = (0, react_3.deepMapWithIndex)(props.children, child => {
|
|
29
|
-
if (
|
|
27
|
+
if ((0, multichannel_utils_1.isNodeText)(child)) {
|
|
30
28
|
return ((0, react_1.createElement)(multichannel_text_1.MultichannelText, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
31
29
|
}
|
|
32
30
|
return child;
|
|
@@ -34,17 +32,17 @@ const Multichannel = props => {
|
|
|
34
32
|
return newChildren;
|
|
35
33
|
}
|
|
36
34
|
let newChildren = (0, react_3.deepMapWithIndex)(props.children, (child, index) => {
|
|
37
|
-
if (
|
|
35
|
+
if ((0, multichannel_utils_1.isNodeButton)(child)) {
|
|
38
36
|
return ((0, react_1.createElement)(multichannel_button_1.MultichannelButton, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
39
37
|
}
|
|
40
|
-
if (
|
|
38
|
+
if ((0, multichannel_utils_1.isNodeReply)(child)) {
|
|
41
39
|
return ((0, react_1.createElement)(multichannel_reply_1.MultichannelReply, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
42
40
|
}
|
|
43
|
-
if (
|
|
41
|
+
if ((0, multichannel_utils_1.isNodeText)(child)) {
|
|
44
42
|
return ((0, react_1.createElement)(multichannel_text_1.MultichannelText, Object.assign({}, child.props, props.text, { key: child.key }, (props.messageSeparator &&
|
|
45
43
|
index > 0 && { newline: props.messageSeparator })), child.props.children));
|
|
46
44
|
}
|
|
47
|
-
if (
|
|
45
|
+
if ((0, multichannel_utils_1.isNodeCarousel)(child)) {
|
|
48
46
|
return ((0, react_1.createElement)(multichannel_carousel_1.MultichannelCarousel, Object.assign({}, child.props, props.carousel, { key: child.key }), child.props.children));
|
|
49
47
|
}
|
|
50
48
|
return child;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel.jsx"],"names":[],"mappings":";;;;;;AAAA,wCAAsD;AACtD,uDAAyC;AAEzC,6CAA+C;AAC/C,4CAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"multichannel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel.jsx"],"names":[],"mappings":"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"}
|
package/lib/cjs/constants.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.ROLES = exports.MAX_ALLOWED_SIZE_MB = exports.MIME_WHITELIST = exports.W
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const botonic_react_logo100x100_png_1 = tslib_1.__importDefault(require("./assets/botonic_react_logo100x100.png"));
|
|
6
6
|
const url_icon_png_1 = tslib_1.__importDefault(require("./assets/url-icon.png"));
|
|
7
|
-
const components_1 = require("./components");
|
|
8
7
|
exports.COLORS = {
|
|
9
8
|
// http://chir.ag/projects/name-that-color
|
|
10
9
|
APPLE_GREEN: 'rgba(58, 156, 53, 1)',
|
package/lib/cjs/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.js"],"names":[],"mappings":";;;;AAAA,mHAAgE;AAChE,iFAA2C;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.js"],"names":[],"mappings":"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"}
|
|
@@ -21,25 +21,24 @@ export const Element = props => {
|
|
|
21
21
|
};
|
|
22
22
|
Element.serialize = elementProps => {
|
|
23
23
|
const element = Object.assign({}, ...elementProps.children
|
|
24
|
-
.filter(c => c && c.type && c.type.name
|
|
24
|
+
.filter(c => c && c.type && c.type.name != 'Button')
|
|
25
25
|
.map(c => c.type.serialize && c.type.serialize(c.props)));
|
|
26
26
|
// When we are serializer buttons from backend, we are receiving the data
|
|
27
27
|
// as an array of buttons, so we have to keep robust with serve and deal with arrays
|
|
28
28
|
element.buttons = [
|
|
29
29
|
...elementProps.children
|
|
30
30
|
.filter(c => {
|
|
31
|
+
var _a;
|
|
31
32
|
if (c instanceof Array)
|
|
32
33
|
return true;
|
|
33
|
-
return c
|
|
34
|
+
return ((_a = c === null || c === void 0 ? void 0 : c.type) === null || _a === void 0 ? void 0 : _a.name) === Button.name;
|
|
34
35
|
})
|
|
35
36
|
.map(b => {
|
|
37
|
+
var _a;
|
|
36
38
|
if (b instanceof Array) {
|
|
37
|
-
|
|
38
|
-
bb.type &&
|
|
39
|
-
bb.type.serialize &&
|
|
40
|
-
bb.type.serialize(bb.props).button);
|
|
39
|
+
b.map(bb => { var _a, _b, _c; return (_c = (_b = (_a = bb === null || bb === void 0 ? void 0 : bb.type) === null || _a === void 0 ? void 0 : _a.serialize) === null || _b === void 0 ? void 0 : _b.call(_a, bb.props)) === null || _c === void 0 ? void 0 : _c.button; });
|
|
41
40
|
}
|
|
42
|
-
return (b
|
|
41
|
+
return (_a = b === null || b === void 0 ? void 0 : b.type) === null || _a === void 0 ? void 0 : _a.serialize(b.props).button;
|
|
43
42
|
}),
|
|
44
43
|
];
|
|
45
44
|
// When we have the buttons from backend, we have all buttons inside an array on the first position
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/components/element.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;;;WAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;kBACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;;sBAEjC,MAAM,CAAC,cAAc;;;CAG1C,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;IAC7B,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,KAAC,gBAAgB,cAAE,KAAK,CAAC,QAAQ,GAAoB,CACtD,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,4BAAU,KAAK,CAAC,QAAQ,GAAW,CAAA;IAE5D,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,GAAG,YAAY,CAAC,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"element.js","sourceRoot":"","sources":["../../../src/components/element.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,MAAM,MAAM,mBAAmB,CAAA;AAEtC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAEjC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;;;WAGxB,OAAO,CAAC,QAAQ,CAAC,aAAa;kBACvB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;;sBAEjC,MAAM,CAAC,cAAc;;;CAG1C,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE;IAC7B,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,CAC1B,KAAC,gBAAgB,cAAE,KAAK,CAAC,QAAQ,GAAoB,CACtD,CAAA;IAED,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,4BAAU,KAAK,CAAC,QAAQ,GAAW,CAAA;IAE5D,OAAO,eAAe,CAAC,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC,EAAE;IACjC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,GAAG,YAAY,CAAC,QAAQ;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAA;IACD,yEAAyE;IACzE,oFAAoF;IACpF,OAAO,CAAC,OAAO,GAAG;QAChB,GAAG,YAAY,CAAC,QAAQ;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE;;YACV,IAAI,CAAC,YAAY,KAAK;gBAAE,OAAO,IAAI,CAAA;YACnC,OAAO,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,IAAI,MAAK,MAAM,CAAC,IAAI,CAAA;QACtC,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;;YACP,IAAI,CAAC,YAAY,KAAK,EAAE;gBACtB,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,mBAAC,OAAA,MAAA,MAAA,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,0CAAE,SAAS,mDAAG,EAAE,CAAC,KAAK,CAAC,0CAAE,MAAM,CAAA,EAAA,CAAC,CAAA;aACrD;YACD,OAAO,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,0CAAE,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,CAAA;QAC3C,CAAC,CAAC;KACL,CAAA;IACD,mGAAmG;IACnG,oGAAoG;IACpG,2CAA2C;IAC3C,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK;QAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC7E,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA"}
|
|
@@ -4,7 +4,7 @@ import React, { useContext } from 'react';
|
|
|
4
4
|
import { RequestContext } from '../../contexts';
|
|
5
5
|
import { Carousel } from '../carousel';
|
|
6
6
|
import { MultichannelText } from './multichannel-text';
|
|
7
|
-
import { getFilteredElements, isMultichannelButton,
|
|
7
|
+
import { getFilteredElements, isMultichannelButton, isNodePic, isNodeSubtitle, isNodeTitle, } from './multichannel-utils';
|
|
8
8
|
export const MultichannelCarousel = props => {
|
|
9
9
|
const requestContext = useContext(RequestContext);
|
|
10
10
|
const getButtons = node => [].concat(getFilteredElements(node, isMultichannelButton));
|
|
@@ -17,13 +17,13 @@ export const MultichannelCarousel = props => {
|
|
|
17
17
|
let subtitle = undefined;
|
|
18
18
|
const buttons = [];
|
|
19
19
|
for (const node of element) {
|
|
20
|
-
if (
|
|
20
|
+
if (isNodePic(node)) {
|
|
21
21
|
imageProps = node.props;
|
|
22
22
|
}
|
|
23
|
-
if (
|
|
23
|
+
if (isNodeTitle(node)) {
|
|
24
24
|
title = node.props.children;
|
|
25
25
|
}
|
|
26
|
-
if (
|
|
26
|
+
if (isNodeSubtitle(node)) {
|
|
27
27
|
subtitle = node.props.children;
|
|
28
28
|
}
|
|
29
29
|
if (isMultichannelButton(node)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-carousel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-carousel.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"multichannel-carousel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-carousel.jsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
export function isMultichannelButton(node: any):
|
|
2
|
-
export function isMultichannelReply(node: any):
|
|
3
|
-
export function
|
|
4
|
-
export function
|
|
5
|
-
export function
|
|
6
|
-
export function
|
|
1
|
+
export function isMultichannelButton(node: any): boolean;
|
|
2
|
+
export function isMultichannelReply(node: any): boolean;
|
|
3
|
+
export function isNodeText(node: any): boolean;
|
|
4
|
+
export function isNodeButton(node: any): boolean;
|
|
5
|
+
export function isNodeCarousel(node: any): boolean;
|
|
6
|
+
export function isNodeReply(node: any): boolean;
|
|
7
|
+
export function isNodePic(node: any): boolean;
|
|
8
|
+
export function isNodeTitle(node: any): boolean;
|
|
9
|
+
export function isNodeSubtitle(node: any): boolean;
|
|
7
10
|
export function elementHasUrl(element: any): any;
|
|
8
11
|
export function elementHasPostback(element: any): any;
|
|
9
12
|
export function elementHasWebview(element: any): any;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { Button } from '../button';
|
|
2
|
+
import { Carousel } from '../carousel';
|
|
2
3
|
import { Pic } from '../pic';
|
|
4
|
+
import { Reply } from '../reply';
|
|
3
5
|
import { Subtitle } from '../subtitle';
|
|
6
|
+
import { Text } from '../text';
|
|
4
7
|
import { Title } from '../title';
|
|
5
8
|
import { MultichannelButton } from './multichannel-button';
|
|
6
9
|
import { MultichannelReply } from './multichannel-reply';
|
|
7
10
|
function isNodeKind(node, kind) {
|
|
8
|
-
|
|
11
|
+
var _a;
|
|
12
|
+
return ((_a = node === null || node === void 0 ? void 0 : node.type) === null || _a === void 0 ? void 0 : _a.name) === kind;
|
|
9
13
|
}
|
|
10
14
|
export function isMultichannelButton(node) {
|
|
11
15
|
return isNodeKind(node, MultichannelButton.name);
|
|
@@ -13,16 +17,25 @@ export function isMultichannelButton(node) {
|
|
|
13
17
|
export function isMultichannelReply(node) {
|
|
14
18
|
return isNodeKind(node, MultichannelReply.name);
|
|
15
19
|
}
|
|
16
|
-
export function
|
|
20
|
+
export function isNodeText(node) {
|
|
21
|
+
return isNodeKind(node, Text.name);
|
|
22
|
+
}
|
|
23
|
+
export function isNodeButton(node) {
|
|
17
24
|
return isNodeKind(node, Button.name);
|
|
18
25
|
}
|
|
19
|
-
export function
|
|
26
|
+
export function isNodeCarousel(node) {
|
|
27
|
+
return isNodeKind(node, Carousel.name);
|
|
28
|
+
}
|
|
29
|
+
export function isNodeReply(node) {
|
|
30
|
+
return isNodeKind(node, Reply.name);
|
|
31
|
+
}
|
|
32
|
+
export function isNodePic(node) {
|
|
20
33
|
return isNodeKind(node, Pic.name);
|
|
21
34
|
}
|
|
22
|
-
export function
|
|
35
|
+
export function isNodeTitle(node) {
|
|
23
36
|
return isNodeKind(node, Title.name);
|
|
24
37
|
}
|
|
25
|
-
export function
|
|
38
|
+
export function isNodeSubtitle(node) {
|
|
26
39
|
return isNodeKind(node, Subtitle.name);
|
|
27
40
|
}
|
|
28
41
|
export function elementHasUrl(element) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAExD,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI
|
|
1
|
+
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":"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"}
|
|
@@ -4,15 +4,13 @@ import { isFacebook, isWhatsapp } from '@botonic/core';
|
|
|
4
4
|
import React, { useContext } from 'react';
|
|
5
5
|
import { RequestContext } from '../../contexts';
|
|
6
6
|
import { deepMapWithIndex } from '../../util/react';
|
|
7
|
-
import { Button } from '../button';
|
|
8
|
-
import { Carousel } from '../carousel';
|
|
9
|
-
import { Reply } from '../reply';
|
|
10
7
|
import { Text } from '../text';
|
|
11
8
|
import { MultichannelButton } from './multichannel-button';
|
|
12
9
|
import { MultichannelCarousel } from './multichannel-carousel';
|
|
13
10
|
import { MultichannelContext } from './multichannel-context';
|
|
14
11
|
import { MultichannelReply } from './multichannel-reply';
|
|
15
12
|
import { MultichannelText } from './multichannel-text';
|
|
13
|
+
import { isNodeButton, isNodeCarousel, isNodeReply, isNodeText, } from './multichannel-utils';
|
|
16
14
|
import { MULTICHANNEL_WHATSAPP_PROPS } from './whatsapp/constants';
|
|
17
15
|
export const Multichannel = props => {
|
|
18
16
|
const requestContext = useContext(RequestContext);
|
|
@@ -22,7 +20,7 @@ export const Multichannel = props => {
|
|
|
22
20
|
}
|
|
23
21
|
if (isFacebook(requestContext.session)) {
|
|
24
22
|
const newChildren = deepMapWithIndex(props.children, child => {
|
|
25
|
-
if (child
|
|
23
|
+
if (isNodeText(child)) {
|
|
26
24
|
return (_createElement(MultichannelText, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
27
25
|
}
|
|
28
26
|
return child;
|
|
@@ -30,17 +28,17 @@ export const Multichannel = props => {
|
|
|
30
28
|
return newChildren;
|
|
31
29
|
}
|
|
32
30
|
let newChildren = deepMapWithIndex(props.children, (child, index) => {
|
|
33
|
-
if (child
|
|
31
|
+
if (isNodeButton(child)) {
|
|
34
32
|
return (_createElement(MultichannelButton, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
35
33
|
}
|
|
36
|
-
if (child
|
|
34
|
+
if (isNodeReply(child)) {
|
|
37
35
|
return (_createElement(MultichannelReply, Object.assign({}, child.props, { key: child.key }), child.props.children));
|
|
38
36
|
}
|
|
39
|
-
if (child
|
|
37
|
+
if (isNodeText(child)) {
|
|
40
38
|
return (_createElement(MultichannelText, Object.assign({}, child.props, props.text, { key: child.key }, (props.messageSeparator &&
|
|
41
39
|
index > 0 && { newline: props.messageSeparator })), child.props.children));
|
|
42
40
|
}
|
|
43
|
-
if (child
|
|
41
|
+
if (isNodeCarousel(child)) {
|
|
44
42
|
return (_createElement(MultichannelCarousel, Object.assign({}, child.props, props.carousel, { key: child.key }), child.props.children));
|
|
45
43
|
}
|
|
46
44
|
return child;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel.jsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"multichannel.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel.jsx"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import BotonicLogo from './assets/botonic_react_logo100x100.png';
|
|
2
2
|
import UrlIcon from './assets/url-icon.png';
|
|
3
|
-
import { Button, Carousel, Reply, Text } from './components';
|
|
4
3
|
export const COLORS = {
|
|
5
4
|
// http://chir.ag/projects/name-that-color
|
|
6
5
|
APPLE_GREEN: 'rgba(58, 156, 53, 1)',
|
package/lib/esm/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.js"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,wCAAwC,CAAA;AAChE,OAAO,OAAO,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -30,7 +30,7 @@ Element.serialize = elementProps => {
|
|
|
30
30
|
const element = Object.assign(
|
|
31
31
|
{},
|
|
32
32
|
...elementProps.children
|
|
33
|
-
.filter(c => c && c.type && c.type.name
|
|
33
|
+
.filter(c => c && c.type && c.type.name != 'Button')
|
|
34
34
|
.map(c => c.type.serialize && c.type.serialize(c.props))
|
|
35
35
|
)
|
|
36
36
|
// When we are serializer buttons from backend, we are receiving the data
|
|
@@ -39,21 +39,13 @@ Element.serialize = elementProps => {
|
|
|
39
39
|
...elementProps.children
|
|
40
40
|
.filter(c => {
|
|
41
41
|
if (c instanceof Array) return true
|
|
42
|
-
return c
|
|
42
|
+
return c?.type?.name === Button.name
|
|
43
43
|
})
|
|
44
44
|
.map(b => {
|
|
45
45
|
if (b instanceof Array) {
|
|
46
|
-
|
|
47
|
-
bb =>
|
|
48
|
-
bb &&
|
|
49
|
-
bb.type &&
|
|
50
|
-
bb.type.serialize &&
|
|
51
|
-
bb.type.serialize(bb.props).button
|
|
52
|
-
)
|
|
46
|
+
b.map(bb => bb?.type?.serialize?.(bb.props)?.button)
|
|
53
47
|
}
|
|
54
|
-
return (
|
|
55
|
-
b && b.type && b.type.serialize && b.type.serialize(b.props).button
|
|
56
|
-
)
|
|
48
|
+
return b?.type?.serialize(b.props).button
|
|
57
49
|
}),
|
|
58
50
|
]
|
|
59
51
|
// When we have the buttons from backend, we have all buttons inside an array on the first position
|
|
@@ -7,9 +7,9 @@ import { MultichannelText } from './multichannel-text'
|
|
|
7
7
|
import {
|
|
8
8
|
getFilteredElements,
|
|
9
9
|
isMultichannelButton,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
isNodePic,
|
|
11
|
+
isNodeSubtitle,
|
|
12
|
+
isNodeTitle,
|
|
13
13
|
} from './multichannel-utils'
|
|
14
14
|
|
|
15
15
|
export const MultichannelCarousel = props => {
|
|
@@ -28,13 +28,13 @@ export const MultichannelCarousel = props => {
|
|
|
28
28
|
const buttons = []
|
|
29
29
|
|
|
30
30
|
for (const node of element) {
|
|
31
|
-
if (
|
|
31
|
+
if (isNodePic(node)) {
|
|
32
32
|
imageProps = node.props
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
34
|
+
if (isNodeTitle(node)) {
|
|
35
35
|
title = node.props.children
|
|
36
36
|
}
|
|
37
|
-
if (
|
|
37
|
+
if (isNodeSubtitle(node)) {
|
|
38
38
|
subtitle = node.props.children
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { Button } from '../button'
|
|
2
|
+
import { Carousel } from '../carousel'
|
|
2
3
|
import { Pic } from '../pic'
|
|
4
|
+
import { Reply } from '../reply'
|
|
3
5
|
import { Subtitle } from '../subtitle'
|
|
6
|
+
import { Text } from '../text'
|
|
4
7
|
import { Title } from '../title'
|
|
5
8
|
import { MultichannelButton } from './multichannel-button'
|
|
6
9
|
import { MultichannelReply } from './multichannel-reply'
|
|
7
10
|
|
|
8
11
|
function isNodeKind(node, kind) {
|
|
9
|
-
return node
|
|
12
|
+
return node?.type?.name === kind
|
|
10
13
|
}
|
|
11
14
|
|
|
12
15
|
export function isMultichannelButton(node) {
|
|
@@ -17,19 +20,31 @@ export function isMultichannelReply(node) {
|
|
|
17
20
|
return isNodeKind(node, MultichannelReply.name)
|
|
18
21
|
}
|
|
19
22
|
|
|
20
|
-
export function
|
|
23
|
+
export function isNodeText(node) {
|
|
24
|
+
return isNodeKind(node, Text.name)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function isNodeButton(node) {
|
|
21
28
|
return isNodeKind(node, Button.name)
|
|
22
29
|
}
|
|
23
30
|
|
|
24
|
-
export function
|
|
31
|
+
export function isNodeCarousel(node) {
|
|
32
|
+
return isNodeKind(node, Carousel.name)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function isNodeReply(node) {
|
|
36
|
+
return isNodeKind(node, Reply.name)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function isNodePic(node) {
|
|
25
40
|
return isNodeKind(node, Pic.name)
|
|
26
41
|
}
|
|
27
42
|
|
|
28
|
-
export function
|
|
43
|
+
export function isNodeTitle(node) {
|
|
29
44
|
return isNodeKind(node, Title.name)
|
|
30
45
|
}
|
|
31
46
|
|
|
32
|
-
export function
|
|
47
|
+
export function isNodeSubtitle(node) {
|
|
33
48
|
return isNodeKind(node, Subtitle.name)
|
|
34
49
|
}
|
|
35
50
|
|
|
@@ -3,15 +3,18 @@ import React, { useContext } from 'react'
|
|
|
3
3
|
|
|
4
4
|
import { RequestContext } from '../../contexts'
|
|
5
5
|
import { deepMapWithIndex } from '../../util/react'
|
|
6
|
-
import { Button } from '../button'
|
|
7
|
-
import { Carousel } from '../carousel'
|
|
8
|
-
import { Reply } from '../reply'
|
|
9
6
|
import { Text } from '../text'
|
|
10
7
|
import { MultichannelButton } from './multichannel-button'
|
|
11
8
|
import { MultichannelCarousel } from './multichannel-carousel'
|
|
12
9
|
import { MultichannelContext } from './multichannel-context'
|
|
13
10
|
import { MultichannelReply } from './multichannel-reply'
|
|
14
11
|
import { MultichannelText } from './multichannel-text'
|
|
12
|
+
import {
|
|
13
|
+
isNodeButton,
|
|
14
|
+
isNodeCarousel,
|
|
15
|
+
isNodeReply,
|
|
16
|
+
isNodeText,
|
|
17
|
+
} from './multichannel-utils'
|
|
15
18
|
import { MULTICHANNEL_WHATSAPP_PROPS } from './whatsapp/constants'
|
|
16
19
|
|
|
17
20
|
export const Multichannel = props => {
|
|
@@ -24,7 +27,7 @@ export const Multichannel = props => {
|
|
|
24
27
|
}
|
|
25
28
|
if (isFacebook(requestContext.session)) {
|
|
26
29
|
const newChildren = deepMapWithIndex(props.children, child => {
|
|
27
|
-
if (child
|
|
30
|
+
if (isNodeText(child)) {
|
|
28
31
|
return (
|
|
29
32
|
<MultichannelText {...child.props} key={child.key}>
|
|
30
33
|
{child.props.children}
|
|
@@ -37,21 +40,21 @@ export const Multichannel = props => {
|
|
|
37
40
|
}
|
|
38
41
|
|
|
39
42
|
let newChildren = deepMapWithIndex(props.children, (child, index) => {
|
|
40
|
-
if (child
|
|
43
|
+
if (isNodeButton(child)) {
|
|
41
44
|
return (
|
|
42
45
|
<MultichannelButton {...child.props} key={child.key}>
|
|
43
46
|
{child.props.children}
|
|
44
47
|
</MultichannelButton>
|
|
45
48
|
)
|
|
46
49
|
}
|
|
47
|
-
if (child
|
|
50
|
+
if (isNodeReply(child)) {
|
|
48
51
|
return (
|
|
49
52
|
<MultichannelReply {...child.props} key={child.key}>
|
|
50
53
|
{child.props.children}
|
|
51
54
|
</MultichannelReply>
|
|
52
55
|
)
|
|
53
56
|
}
|
|
54
|
-
if (child
|
|
57
|
+
if (isNodeText(child)) {
|
|
55
58
|
return (
|
|
56
59
|
<MultichannelText
|
|
57
60
|
{...child.props}
|
|
@@ -64,7 +67,7 @@ export const Multichannel = props => {
|
|
|
64
67
|
</MultichannelText>
|
|
65
68
|
)
|
|
66
69
|
}
|
|
67
|
-
if (child
|
|
70
|
+
if (isNodeCarousel(child)) {
|
|
68
71
|
return (
|
|
69
72
|
<MultichannelCarousel
|
|
70
73
|
{...child.props}
|
package/src/constants.js
CHANGED