@botonic/react 0.30.5 → 0.30.6-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/element.js +3 -2
- package/lib/cjs/components/element.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-carousel.js +4 -4
- package/lib/cjs/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/cjs/components/multichannel/multichannel-utils.d.ts +3 -1
- package/lib/cjs/components/multichannel/multichannel-utils.js +24 -7
- package/lib/cjs/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/cjs/constants.js +5 -4
- package/lib/cjs/constants.js.map +1 -1
- package/lib/esm/components/element.js +3 -2
- package/lib/esm/components/element.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-carousel.js +5 -5
- package/lib/esm/components/multichannel/multichannel-carousel.js.map +1 -1
- package/lib/esm/components/multichannel/multichannel-utils.d.ts +3 -1
- package/lib/esm/components/multichannel/multichannel-utils.js +20 -5
- package/lib/esm/components/multichannel/multichannel-utils.js.map +1 -1
- package/lib/esm/constants.js +5 -4
- package/lib/esm/constants.js.map +1 -1
- package/package.json +1 -1
- package/src/components/element.jsx +3 -2
- package/src/components/multichannel/multichannel-carousel.jsx +7 -5
- package/src/components/multichannel/multichannel-utils.js +27 -5
- package/src/constants.js +5 -4
|
@@ -7,6 +7,7 @@ const react_1 = tslib_1.__importDefault(require("react"));
|
|
|
7
7
|
const styled_components_1 = tslib_1.__importDefault(require("styled-components"));
|
|
8
8
|
const constants_1 = require("../constants");
|
|
9
9
|
const react_2 = require("../util/react");
|
|
10
|
+
const button_1 = require("./button");
|
|
10
11
|
const ElementContainer = styled_components_1.default.div `
|
|
11
12
|
display: flex;
|
|
12
13
|
flex-direction: column;
|
|
@@ -25,7 +26,7 @@ const Element = props => {
|
|
|
25
26
|
exports.Element = Element;
|
|
26
27
|
exports.Element.serialize = elementProps => {
|
|
27
28
|
const element = Object.assign({}, ...elementProps.children
|
|
28
|
-
.filter(c => c && c.type && c.type.name
|
|
29
|
+
.filter(c => c && c.type && c.type.name !== button_1.Button.name)
|
|
29
30
|
.map(c => c.type.serialize && c.type.serialize(c.props)));
|
|
30
31
|
// When we are serializer buttons from backend, we are receiving the data
|
|
31
32
|
// as an array of buttons, so we have to keep robust with serve and deal with arrays
|
|
@@ -34,7 +35,7 @@ exports.Element.serialize = elementProps => {
|
|
|
34
35
|
.filter(c => {
|
|
35
36
|
if (c instanceof Array)
|
|
36
37
|
return true;
|
|
37
|
-
return c && c.type && c.type.name
|
|
38
|
+
return c && c.type && c.type.name === button_1.Button.name;
|
|
38
39
|
})
|
|
39
40
|
.map(b => {
|
|
40
41
|
if (b instanceof Array) {
|
|
@@ -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;
|
|
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,KAAK,eAAM,CAAC,IAAI,CAAC;SACvD,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,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,eAAM,CAAC,IAAI,CAAA;QACnD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,IAAI,CAAC,YAAY,KAAK,EAAE;gBACtB,OAAO,CAAC,CAAC,GAAG,CACV,EAAE,CAAC,EAAE,CACH,EAAE;oBACF,EAAE,CAAC,IAAI;oBACP,EAAE,CAAC,IAAI,CAAC,SAAS;oBACjB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CACrC,CAAA;aACF;YACD,OAAO,CACL,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CACpE,CAAA;QACH,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,16 +21,16 @@ 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.isPic)(node)) {
|
|
25
25
|
imageProps = node.props;
|
|
26
26
|
}
|
|
27
|
-
if ((0, multichannel_utils_1.
|
|
27
|
+
if ((0, multichannel_utils_1.isTitle)(node)) {
|
|
28
28
|
title = node.props.children;
|
|
29
29
|
}
|
|
30
|
-
if ((0, multichannel_utils_1.
|
|
30
|
+
if ((0, multichannel_utils_1.isSubtitle)(node)) {
|
|
31
31
|
subtitle = node.props.children;
|
|
32
32
|
}
|
|
33
|
-
if ((0, multichannel_utils_1.
|
|
33
|
+
if ((0, multichannel_utils_1.isMultichannelButton)(node)) {
|
|
34
34
|
buttons.push(node);
|
|
35
35
|
}
|
|
36
36
|
//TODO support fragment containing an array
|
|
@@ -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,
|
|
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,0BAAK,EAAC,IAAI,CAAC,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;iBACxB;gBACD,IAAI,IAAA,4BAAO,EAAC,IAAI,CAAC,EAAE;oBACjB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;iBAC5B;gBACD,IAAI,IAAA,+BAAU,EAAC,IAAI,CAAC,EAAE;oBACpB,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,7 +1,9 @@
|
|
|
1
1
|
export function isMultichannelButton(node: any): any;
|
|
2
2
|
export function isMultichannelReply(node: any): any;
|
|
3
3
|
export function isButton(node: any): any;
|
|
4
|
-
export function
|
|
4
|
+
export function isPic(node: any): any;
|
|
5
|
+
export function isTitle(node: any): any;
|
|
6
|
+
export function isSubtitle(node: any): any;
|
|
5
7
|
export function elementHasUrl(element: any): any;
|
|
6
8
|
export function elementHasPostback(element: any): any;
|
|
7
9
|
export function elementHasWebview(element: any): any;
|
|
@@ -1,6 +1,12 @@
|
|
|
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.isSubtitle = exports.isTitle = exports.isPic = exports.isButton = exports.isMultichannelReply = exports.isMultichannelButton = exports.MENU_BUTTON_WHATSAPP_BUTTON_LIST = exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = exports.WHATSAPP_MAX_FOOTER_CHARS = exports.WHATSAPP_MAX_BODY_CHARS = exports.WHATSAPP_MAX_HEADER_CHARS = exports.WHATSAPP_MAX_BUTTON_CHARS = exports.WHATSAPP_LIST_MAX_BUTTONS = exports.WHATSAPP_MAX_BUTTONS = exports.MULTICHANNEL_WHATSAPP_PROPS = void 0;
|
|
4
|
+
const button_1 = require("../button");
|
|
5
|
+
const pic_1 = require("../pic");
|
|
6
|
+
const subtitle_1 = require("../subtitle");
|
|
7
|
+
const title_1 = require("../title");
|
|
8
|
+
const multichannel_button_1 = require("./multichannel-button");
|
|
9
|
+
const multichannel_reply_1 = require("./multichannel-reply");
|
|
4
10
|
/**
|
|
5
11
|
*
|
|
6
12
|
* Whatsapp does not support Markdown
|
|
@@ -15,22 +21,33 @@ exports.WHATSAPP_MAX_BODY_CHARS = 1024;
|
|
|
15
21
|
exports.WHATSAPP_MAX_FOOTER_CHARS = 60;
|
|
16
22
|
exports.DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:';
|
|
17
23
|
exports.MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options';
|
|
24
|
+
function isNodeKind(node, kind) {
|
|
25
|
+
return node.type && node.type.name === kind;
|
|
26
|
+
}
|
|
18
27
|
function isMultichannelButton(node) {
|
|
19
|
-
return isNodeKind(node,
|
|
28
|
+
return isNodeKind(node, multichannel_button_1.MultichannelButton.name);
|
|
20
29
|
}
|
|
21
30
|
exports.isMultichannelButton = isMultichannelButton;
|
|
22
31
|
function isMultichannelReply(node) {
|
|
23
|
-
return isNodeKind(node,
|
|
32
|
+
return isNodeKind(node, multichannel_reply_1.MultichannelReply.name);
|
|
24
33
|
}
|
|
25
34
|
exports.isMultichannelReply = isMultichannelReply;
|
|
26
35
|
function isButton(node) {
|
|
27
|
-
return isNodeKind(node,
|
|
36
|
+
return isNodeKind(node, button_1.Button.name);
|
|
28
37
|
}
|
|
29
38
|
exports.isButton = isButton;
|
|
30
|
-
function
|
|
31
|
-
return node
|
|
39
|
+
function isPic(node) {
|
|
40
|
+
return isNodeKind(node, pic_1.Pic.name);
|
|
41
|
+
}
|
|
42
|
+
exports.isPic = isPic;
|
|
43
|
+
function isTitle(node) {
|
|
44
|
+
return isNodeKind(node, title_1.Title.name);
|
|
45
|
+
}
|
|
46
|
+
exports.isTitle = isTitle;
|
|
47
|
+
function isSubtitle(node) {
|
|
48
|
+
return isNodeKind(node, subtitle_1.Subtitle.name);
|
|
32
49
|
}
|
|
33
|
-
exports.
|
|
50
|
+
exports.isSubtitle = isSubtitle;
|
|
34
51
|
function elementHasUrl(element) {
|
|
35
52
|
return element.props && element.props.url;
|
|
36
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAEjD,QAAA,oBAAoB,GAAG,CAAC,CAAA;AACxB,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,qCAAqC,GAAG,eAAe,CAAA;AACvD,QAAA,gCAAgC,GAAG,cAAc,CAAA;AAE9D,SAAgB,oBAAoB,CAAC,IAAI;IACvC,OAAO,UAAU,CAAC,IAAI,EAAE,
|
|
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;;;;GAIG;AACU,QAAA,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAEjD,QAAA,oBAAoB,GAAG,CAAC,CAAA;AACxB,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,uBAAuB,GAAG,IAAI,CAAA;AAC9B,QAAA,yBAAyB,GAAG,EAAE,CAAA;AAC9B,QAAA,qCAAqC,GAAG,eAAe,CAAA;AACvD,QAAA,gCAAgC,GAAG,cAAc,CAAA;AAE9D,SAAS,UAAU,CAAC,IAAI,EAAE,IAAI;IAC5B,OAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAA;AAC7C,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,QAAQ,CAAC,IAAI;IAC3B,OAAO,UAAU,CAAC,IAAI,EAAE,eAAM,CAAC,IAAI,CAAC,CAAA;AACtC,CAAC;AAFD,4BAEC;AAED,SAAgB,KAAK,CAAC,IAAI;IACxB,OAAO,UAAU,CAAC,IAAI,EAAE,SAAG,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC;AAFD,sBAEC;AAED,SAAgB,OAAO,CAAC,IAAI;IAC1B,OAAO,UAAU,CAAC,IAAI,EAAE,aAAK,CAAC,IAAI,CAAC,CAAA;AACrC,CAAC;AAFD,0BAEC;AAED,SAAgB,UAAU,CAAC,IAAI;IAC7B,OAAO,UAAU,CAAC,IAAI,EAAE,mBAAQ,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAFD,gCAEC;AAED,SAAgB,aAAa,CAAC,OAAO;IACnC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAA;AAC3C,CAAC;AAFD,sCAEC;AAED,SAAgB,kBAAkB,CAAC,OAAO;IACxC,OAAO,CACL,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACxC,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAA;AACH,CAAC;AALD,gDAKC;AAED,SAAgB,iBAAiB,CAAC,OAAO;IACvC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAA;AAC/C,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"}
|
package/lib/cjs/constants.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.COMPONENT_TYPE = exports.ROLES = exports.MAX_ALLOWED_SIZE_MB = exports.M
|
|
|
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");
|
|
7
8
|
exports.COLORS = {
|
|
8
9
|
// http://chir.ag/projects/name-that-color
|
|
9
10
|
APPLE_GREEN: 'rgba(58, 156, 53, 1)',
|
|
@@ -189,9 +190,9 @@ exports.ROLES = {
|
|
|
189
190
|
RAW_MESSAGE: 'raw-message',
|
|
190
191
|
};
|
|
191
192
|
exports.COMPONENT_TYPE = {
|
|
192
|
-
TEXT:
|
|
193
|
-
BUTTON:
|
|
194
|
-
REPLY:
|
|
195
|
-
CAROUSEL:
|
|
193
|
+
TEXT: components_1.Text.name,
|
|
194
|
+
BUTTON: components_1.Button.name,
|
|
195
|
+
REPLY: components_1.Reply.name,
|
|
196
|
+
CAROUSEL: components_1.Carousel.name,
|
|
196
197
|
};
|
|
197
198
|
//# sourceMappingURL=constants.js.map
|
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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"}
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import styled from 'styled-components';
|
|
4
4
|
import { COLORS, WEBCHAT } from '../constants';
|
|
5
5
|
import { renderComponent } from '../util/react';
|
|
6
|
+
import { Button } from './button';
|
|
6
7
|
const ElementContainer = styled.div `
|
|
7
8
|
display: flex;
|
|
8
9
|
flex-direction: column;
|
|
@@ -20,7 +21,7 @@ export const Element = props => {
|
|
|
20
21
|
};
|
|
21
22
|
Element.serialize = elementProps => {
|
|
22
23
|
const element = Object.assign({}, ...elementProps.children
|
|
23
|
-
.filter(c => c && c.type && c.type.name
|
|
24
|
+
.filter(c => c && c.type && c.type.name !== Button.name)
|
|
24
25
|
.map(c => c.type.serialize && c.type.serialize(c.props)));
|
|
25
26
|
// When we are serializer buttons from backend, we are receiving the data
|
|
26
27
|
// as an array of buttons, so we have to keep robust with serve and deal with arrays
|
|
@@ -29,7 +30,7 @@ Element.serialize = elementProps => {
|
|
|
29
30
|
.filter(c => {
|
|
30
31
|
if (c instanceof Array)
|
|
31
32
|
return true;
|
|
32
|
-
return c && c.type && c.type.name
|
|
33
|
+
return c && c.type && c.type.name === Button.name;
|
|
33
34
|
})
|
|
34
35
|
.map(b => {
|
|
35
36
|
if (b instanceof Array) {
|
|
@@ -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;
|
|
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,KAAK,MAAM,CAAC,IAAI,CAAC;SACvD,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,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAA;QACnD,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,IAAI,CAAC,YAAY,KAAK,EAAE;gBACtB,OAAO,CAAC,CAAC,GAAG,CACV,EAAE,CAAC,EAAE,CACH,EAAE;oBACF,EAAE,CAAC,IAAI;oBACP,EAAE,CAAC,IAAI,CAAC,SAAS;oBACjB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,CACrC,CAAA;aACF;YACD,OAAO,CACL,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CACpE,CAAA;QACH,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, isPic, isSubtitle, isTitle, } 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,16 +17,16 @@ export const MultichannelCarousel = props => {
|
|
|
17
17
|
let subtitle = undefined;
|
|
18
18
|
const buttons = [];
|
|
19
19
|
for (const node of element) {
|
|
20
|
-
if (
|
|
20
|
+
if (isPic(node)) {
|
|
21
21
|
imageProps = node.props;
|
|
22
22
|
}
|
|
23
|
-
if (
|
|
23
|
+
if (isTitle(node)) {
|
|
24
24
|
title = node.props.children;
|
|
25
25
|
}
|
|
26
|
-
if (
|
|
26
|
+
if (isSubtitle(node)) {
|
|
27
27
|
subtitle = node.props.children;
|
|
28
28
|
}
|
|
29
|
-
if (
|
|
29
|
+
if (isMultichannelButton(node)) {
|
|
30
30
|
buttons.push(node);
|
|
31
31
|
}
|
|
32
32
|
//TODO support fragment containing an array
|
|
@@ -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,UAAU,
|
|
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,KAAK,EACL,UAAU,EACV,OAAO,GACR,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,EAAE;IAC1C,MAAM,cAAc,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CACxB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;IAE5D,IAAI,UAAU,CAAC,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,KAAK,CAAC,IAAI,CAAC,EAAE;oBACf,UAAU,GAAG,IAAI,CAAC,KAAK,CAAA;iBACxB;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;oBACjB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;iBAC5B;gBACD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE;oBACpB,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;iBAC/B;gBAED,IAAI,oBAAoB,CAAC,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,MAAC,gBAAgB,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,KAAC,QAAQ,oBAAK,KAAK,cAAG,KAAK,CAAC,QAAQ,IAAY,CAAA;KACxD;AACH,CAAC,CAAA"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export function isMultichannelButton(node: any): any;
|
|
2
2
|
export function isMultichannelReply(node: any): any;
|
|
3
3
|
export function isButton(node: any): any;
|
|
4
|
-
export function
|
|
4
|
+
export function isPic(node: any): any;
|
|
5
|
+
export function isTitle(node: any): any;
|
|
6
|
+
export function isSubtitle(node: any): any;
|
|
5
7
|
export function elementHasUrl(element: any): any;
|
|
6
8
|
export function elementHasPostback(element: any): any;
|
|
7
9
|
export function elementHasWebview(element: any): any;
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
import { Button } from '../button';
|
|
2
|
+
import { Pic } from '../pic';
|
|
3
|
+
import { Subtitle } from '../subtitle';
|
|
4
|
+
import { Title } from '../title';
|
|
5
|
+
import { MultichannelButton } from './multichannel-button';
|
|
6
|
+
import { MultichannelReply } from './multichannel-reply';
|
|
1
7
|
/**
|
|
2
8
|
*
|
|
3
9
|
* Whatsapp does not support Markdown
|
|
@@ -12,17 +18,26 @@ export const WHATSAPP_MAX_BODY_CHARS = 1024;
|
|
|
12
18
|
export const WHATSAPP_MAX_FOOTER_CHARS = 60;
|
|
13
19
|
export const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:';
|
|
14
20
|
export const MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options';
|
|
21
|
+
function isNodeKind(node, kind) {
|
|
22
|
+
return node.type && node.type.name === kind;
|
|
23
|
+
}
|
|
15
24
|
export function isMultichannelButton(node) {
|
|
16
|
-
return isNodeKind(node,
|
|
25
|
+
return isNodeKind(node, MultichannelButton.name);
|
|
17
26
|
}
|
|
18
27
|
export function isMultichannelReply(node) {
|
|
19
|
-
return isNodeKind(node,
|
|
28
|
+
return isNodeKind(node, MultichannelReply.name);
|
|
20
29
|
}
|
|
21
30
|
export function isButton(node) {
|
|
22
|
-
return isNodeKind(node,
|
|
31
|
+
return isNodeKind(node, Button.name);
|
|
32
|
+
}
|
|
33
|
+
export function isPic(node) {
|
|
34
|
+
return isNodeKind(node, Pic.name);
|
|
35
|
+
}
|
|
36
|
+
export function isTitle(node) {
|
|
37
|
+
return isNodeKind(node, Title.name);
|
|
23
38
|
}
|
|
24
|
-
export function
|
|
25
|
-
return node
|
|
39
|
+
export function isSubtitle(node) {
|
|
40
|
+
return isNodeKind(node, Subtitle.name);
|
|
26
41
|
}
|
|
27
42
|
export function elementHasUrl(element) {
|
|
28
43
|
return element.props && element.props.url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;AAE9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAA;AACrC,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAA;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAC3C,MAAM,CAAC,MAAM,qCAAqC,GAAG,eAAe,CAAA;AACpE,MAAM,CAAC,MAAM,gCAAgC,GAAG,cAAc,CAAA;AAE9D,MAAM,UAAU,oBAAoB,CAAC,IAAI;IACvC,OAAO,UAAU,CAAC,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"multichannel-utils.js","sourceRoot":"","sources":["../../../../src/components/multichannel/multichannel-utils.js"],"names":[],"mappings":"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"}
|
package/lib/esm/constants.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
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';
|
|
3
4
|
export const COLORS = {
|
|
4
5
|
// http://chir.ag/projects/name-that-color
|
|
5
6
|
APPLE_GREEN: 'rgba(58, 156, 53, 1)',
|
|
@@ -185,9 +186,9 @@ export const ROLES = {
|
|
|
185
186
|
RAW_MESSAGE: 'raw-message',
|
|
186
187
|
};
|
|
187
188
|
export const COMPONENT_TYPE = {
|
|
188
|
-
TEXT:
|
|
189
|
-
BUTTON:
|
|
190
|
-
REPLY:
|
|
191
|
-
CAROUSEL:
|
|
189
|
+
TEXT: Text.name,
|
|
190
|
+
BUTTON: Button.name,
|
|
191
|
+
REPLY: Reply.name,
|
|
192
|
+
CAROUSEL: Carousel.name,
|
|
192
193
|
};
|
|
193
194
|
//# sourceMappingURL=constants.js.map
|
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
|
@@ -3,6 +3,7 @@ import styled from 'styled-components'
|
|
|
3
3
|
|
|
4
4
|
import { COLORS, WEBCHAT } from '../constants'
|
|
5
5
|
import { renderComponent } from '../util/react'
|
|
6
|
+
import { Button } from './button'
|
|
6
7
|
|
|
7
8
|
const ElementContainer = styled.div`
|
|
8
9
|
display: flex;
|
|
@@ -29,7 +30,7 @@ Element.serialize = elementProps => {
|
|
|
29
30
|
const element = Object.assign(
|
|
30
31
|
{},
|
|
31
32
|
...elementProps.children
|
|
32
|
-
.filter(c => c && c.type && c.type.name
|
|
33
|
+
.filter(c => c && c.type && c.type.name !== Button.name)
|
|
33
34
|
.map(c => c.type.serialize && c.type.serialize(c.props))
|
|
34
35
|
)
|
|
35
36
|
// When we are serializer buttons from backend, we are receiving the data
|
|
@@ -38,7 +39,7 @@ Element.serialize = elementProps => {
|
|
|
38
39
|
...elementProps.children
|
|
39
40
|
.filter(c => {
|
|
40
41
|
if (c instanceof Array) return true
|
|
41
|
-
return c && c.type && c.type.name
|
|
42
|
+
return c && c.type && c.type.name === Button.name
|
|
42
43
|
})
|
|
43
44
|
.map(b => {
|
|
44
45
|
if (b instanceof Array) {
|
|
@@ -7,7 +7,9 @@ import { MultichannelText } from './multichannel-text'
|
|
|
7
7
|
import {
|
|
8
8
|
getFilteredElements,
|
|
9
9
|
isMultichannelButton,
|
|
10
|
-
|
|
10
|
+
isPic,
|
|
11
|
+
isSubtitle,
|
|
12
|
+
isTitle,
|
|
11
13
|
} from './multichannel-utils'
|
|
12
14
|
|
|
13
15
|
export const MultichannelCarousel = props => {
|
|
@@ -26,17 +28,17 @@ export const MultichannelCarousel = props => {
|
|
|
26
28
|
const buttons = []
|
|
27
29
|
|
|
28
30
|
for (const node of element) {
|
|
29
|
-
if (
|
|
31
|
+
if (isPic(node)) {
|
|
30
32
|
imageProps = node.props
|
|
31
33
|
}
|
|
32
|
-
if (
|
|
34
|
+
if (isTitle(node)) {
|
|
33
35
|
title = node.props.children
|
|
34
36
|
}
|
|
35
|
-
if (
|
|
37
|
+
if (isSubtitle(node)) {
|
|
36
38
|
subtitle = node.props.children
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
if (
|
|
41
|
+
if (isMultichannelButton(node)) {
|
|
40
42
|
buttons.push(node)
|
|
41
43
|
}
|
|
42
44
|
//TODO support fragment containing an array
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import { Button } from '../button'
|
|
2
|
+
import { Pic } from '../pic'
|
|
3
|
+
import { Subtitle } from '../subtitle'
|
|
4
|
+
import { Title } from '../title'
|
|
5
|
+
import { MultichannelButton } from './multichannel-button'
|
|
6
|
+
import { MultichannelReply } from './multichannel-reply'
|
|
7
|
+
|
|
1
8
|
/**
|
|
2
9
|
*
|
|
3
10
|
* Whatsapp does not support Markdown
|
|
@@ -14,30 +21,45 @@ export const WHATSAPP_MAX_FOOTER_CHARS = 60
|
|
|
14
21
|
export const DEFAULT_WHATSAPP_MAX_BUTTON_SEPARATOR = 'More options:'
|
|
15
22
|
export const MENU_BUTTON_WHATSAPP_BUTTON_LIST = 'Show options'
|
|
16
23
|
|
|
24
|
+
function isNodeKind(node, kind) {
|
|
25
|
+
return node.type && node.type.name === kind
|
|
26
|
+
}
|
|
27
|
+
|
|
17
28
|
export function isMultichannelButton(node) {
|
|
18
|
-
return isNodeKind(node,
|
|
29
|
+
return isNodeKind(node, MultichannelButton.name)
|
|
19
30
|
}
|
|
20
31
|
|
|
21
32
|
export function isMultichannelReply(node) {
|
|
22
|
-
return isNodeKind(node,
|
|
33
|
+
return isNodeKind(node, MultichannelReply.name)
|
|
23
34
|
}
|
|
24
35
|
|
|
25
36
|
export function isButton(node) {
|
|
26
|
-
return isNodeKind(node,
|
|
37
|
+
return isNodeKind(node, Button.name)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function isPic(node) {
|
|
41
|
+
return isNodeKind(node, Pic.name)
|
|
27
42
|
}
|
|
28
43
|
|
|
29
|
-
export function
|
|
30
|
-
return node
|
|
44
|
+
export function isTitle(node) {
|
|
45
|
+
return isNodeKind(node, Title.name)
|
|
31
46
|
}
|
|
47
|
+
|
|
48
|
+
export function isSubtitle(node) {
|
|
49
|
+
return isNodeKind(node, Subtitle.name)
|
|
50
|
+
}
|
|
51
|
+
|
|
32
52
|
export function elementHasUrl(element) {
|
|
33
53
|
return element.props && element.props.url
|
|
34
54
|
}
|
|
55
|
+
|
|
35
56
|
export function elementHasPostback(element) {
|
|
36
57
|
return (
|
|
37
58
|
(element.props && element.props.payload) ||
|
|
38
59
|
(element.props && element.props.path)
|
|
39
60
|
)
|
|
40
61
|
}
|
|
62
|
+
|
|
41
63
|
export function elementHasWebview(element) {
|
|
42
64
|
return element.props && element.props.webview
|
|
43
65
|
}
|
package/src/constants.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
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'
|
|
3
4
|
|
|
4
5
|
export const COLORS = {
|
|
5
6
|
// http://chir.ag/projects/name-that-color
|
|
@@ -191,8 +192,8 @@ export const ROLES = {
|
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
export const COMPONENT_TYPE = {
|
|
194
|
-
TEXT:
|
|
195
|
-
BUTTON:
|
|
196
|
-
REPLY:
|
|
197
|
-
CAROUSEL:
|
|
195
|
+
TEXT: Text.name,
|
|
196
|
+
BUTTON: Button.name,
|
|
197
|
+
REPLY: Reply.name,
|
|
198
|
+
CAROUSEL: Carousel.name,
|
|
198
199
|
}
|