1 | 'use strict';
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 |
|
7 | var _stringify = require('babel-runtime/core-js/json/stringify');
|
8 |
|
9 | var _stringify2 = _interopRequireDefault(_stringify);
|
10 |
|
11 | var _getIterator2 = require('babel-runtime/core-js/get-iterator');
|
12 |
|
13 | var _getIterator3 = _interopRequireDefault(_getIterator2);
|
14 |
|
15 | var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
|
16 |
|
17 | var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
|
18 |
|
19 | var _createClass2 = require('babel-runtime/helpers/createClass');
|
20 |
|
21 | var _createClass3 = _interopRequireDefault(_createClass2);
|
22 |
|
23 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
24 |
|
25 | var ButtonSet = function () {
|
26 | function ButtonSet() {
|
27 | (0, _classCallCheck3.default)(this, ButtonSet);
|
28 |
|
29 | this._buttons = [];
|
30 | }
|
31 |
|
32 | (0, _createClass3.default)(ButtonSet, [{
|
33 | key: 'add',
|
34 | value: function add(_ref) {
|
35 | var text = _ref.text;
|
36 | var data = _ref.data;
|
37 | var url = _ref.url;
|
38 | var event = _ref.event;
|
39 |
|
40 | if (!data && !url) {
|
41 | throw Error('Must provide a url or data i.e. {data: null} or {url: \'https://facebook.com\'}');
|
42 | }
|
43 |
|
44 | this._buttons.push({ text: text || 'Button', event: event, data: data, url: url });
|
45 | return this;
|
46 | }
|
47 | }, {
|
48 | key: 'toJSON',
|
49 | value: function toJSON() {
|
50 | var buttons = [];
|
51 | var _iteratorNormalCompletion = true;
|
52 | var _didIteratorError = false;
|
53 | var _iteratorError = undefined;
|
54 |
|
55 | try {
|
56 | for (var _iterator = (0, _getIterator3.default)(this._buttons), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
57 | var button = _step.value;
|
58 |
|
59 | if (button.url) {
|
60 | buttons.push({ type: 'web_url', url: button.url, title: button.text });
|
61 | } else if (button.data) {
|
62 | var payload = (0, _stringify2.default)({ data: button.data, event: button.event });
|
63 | buttons.push({ type: 'postback', payload: payload, title: button.text });
|
64 | }
|
65 | }
|
66 | } catch (err) {
|
67 | _didIteratorError = true;
|
68 | _iteratorError = err;
|
69 | } finally {
|
70 | try {
|
71 | if (!_iteratorNormalCompletion && _iterator.return) {
|
72 | _iterator.return();
|
73 | }
|
74 | } finally {
|
75 | if (_didIteratorError) {
|
76 | throw _iteratorError;
|
77 | }
|
78 | }
|
79 | }
|
80 |
|
81 | return buttons;
|
82 | }
|
83 | }, {
|
84 | key: 'length',
|
85 | get: function get() {
|
86 | return this._buttons.length;
|
87 | }
|
88 | }]);
|
89 | return ButtonSet;
|
90 | }();
|
91 |
|
92 | exports.default = ButtonSet;
|
93 |
|