@mjhls/mjh-framework 1.0.854-adblocker-fix-v1 → 1.0.854-beta.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.
Files changed (248) hide show
  1. package/dist/cjs/AD.js +9 -10
  2. package/dist/cjs/AD300x250.js +9 -10
  3. package/dist/cjs/AD300x250x600.js +9 -10
  4. package/dist/cjs/AD728x90.js +10 -11
  5. package/dist/cjs/ADFloatingFooter.js +11 -12
  6. package/dist/cjs/ADFooter.js +8 -9
  7. package/dist/cjs/ADGutter.js +11 -12
  8. package/dist/cjs/{ADInfeed-25d48cc2.js → ADInfeed-98c71bcd.js} +9 -11
  9. package/dist/cjs/ADSkyscraper.js +11 -12
  10. package/dist/cjs/ADSponsoredResources.js +11 -12
  11. package/dist/cjs/ADWebcast.js +11 -12
  12. package/dist/cjs/ADWelcome.js +16 -26
  13. package/dist/cjs/{ADlgInfeed-a535a768.js → ADlgInfeed-9de32585.js} +6 -7
  14. package/dist/cjs/AccordionPanel.js +22 -24
  15. package/dist/cjs/AdSlot.js +13 -14
  16. package/dist/cjs/AdSlotsProvider.js +902 -11
  17. package/dist/cjs/AlgoliaSearch.js +842 -952
  18. package/dist/cjs/AlphabeticList.js +15 -16
  19. package/dist/cjs/ArticleCarousel.js +10 -11
  20. package/dist/cjs/ArticleProgramLandingPage.js +27 -28
  21. package/dist/cjs/ArticleSeriesLandingPage.js +22 -23
  22. package/dist/cjs/ArticleSeriesListing.js +39 -40
  23. package/dist/cjs/Auth.js +1197 -237
  24. package/dist/cjs/AuthWrapper.js +38 -119
  25. package/dist/cjs/{AuthorComponent-ac8972ce.js → AuthorComponent-bb831b74.js} +12 -13
  26. package/dist/cjs/{BlockContent-8b494587.js → BlockContent-091a991f.js} +24 -25
  27. package/dist/cjs/Breadcrumbs.js +21 -23
  28. package/dist/cjs/CMEDeck.js +64 -64
  29. package/dist/cjs/Column1.js +11 -14
  30. package/dist/cjs/Column2.js +19 -22
  31. package/dist/cjs/Column3.js +32 -35
  32. package/dist/cjs/ConferenceArticleCard.js +17 -18
  33. package/dist/cjs/ConferenceBanner-4a16fddc.js +23 -0
  34. package/dist/cjs/DeckContent.js +72 -76
  35. package/dist/cjs/DeckQueue.js +68 -72
  36. package/dist/cjs/{Dfp-391fd124.js → Dfp-26baccf1.js} +22 -23
  37. package/dist/cjs/EventsDeck.js +116 -123
  38. package/dist/cjs/ExternalResources.js +46 -47
  39. package/dist/cjs/Feature.js +23 -25
  40. package/dist/cjs/ForbesHero.js +34 -35
  41. package/dist/cjs/GridContent.js +203 -208
  42. package/dist/cjs/GridHero.js +35 -36
  43. package/dist/cjs/GroupDeck.js +48 -49
  44. package/dist/cjs/HamMagazine.js +116 -121
  45. package/dist/cjs/Header.js +12 -14
  46. package/dist/cjs/Hero.js +9 -10
  47. package/dist/cjs/HighlightenVideo.js +16 -17
  48. package/dist/cjs/HorizontalArticleListing.js +36 -37
  49. package/dist/cjs/HorizontalHero.js +23 -24
  50. package/dist/cjs/IssueContentDeck.js +65 -70
  51. package/dist/cjs/IssueDeck.js +60 -65
  52. package/dist/cjs/IssueLanding.js +28 -29
  53. package/dist/cjs/LeftNav.js +20 -22
  54. package/dist/cjs/MasterDeck.js +49 -50
  55. package/dist/cjs/MediaSeriesLanding.js +786 -733
  56. package/dist/cjs/NavDvm.js +63 -68
  57. package/dist/cjs/{NavFooter-3dcd99a8.js → NavFooter-76c913e3.js} +14 -15
  58. package/dist/cjs/NavMagazine.js +116 -121
  59. package/dist/cjs/NavNative.js +108 -116
  60. package/dist/cjs/OncliveHero.js +17 -17
  61. package/dist/cjs/OncliveLargeHero.js +63 -64
  62. package/dist/cjs/PageFilter.js +8 -9
  63. package/dist/cjs/PartnerDetailListing.js +3907 -78
  64. package/dist/cjs/PdfDownload.js +8 -9
  65. package/dist/cjs/PopUpModal.js +13 -15
  66. package/dist/cjs/PubSection.js +19 -20
  67. package/dist/cjs/PubToc.js +7 -8
  68. package/dist/cjs/PublicationDeck.js +59 -64
  69. package/dist/cjs/PublicationLanding.js +83 -87
  70. package/dist/cjs/QueueDeckExpanded.js +285 -285
  71. package/dist/cjs/RecentNews.js +19 -20
  72. package/dist/cjs/RelatedContent.js +22 -23
  73. package/dist/cjs/RelatedTopicsDropdown.js +19 -22
  74. package/dist/cjs/RolesDeck.js +27 -32
  75. package/dist/cjs/Search.js +12 -16
  76. package/dist/cjs/SeriesListingDeck.js +26 -26
  77. package/dist/cjs/{SeriesSlider-0d3bf265.js → SeriesSlider-8bbc989f.js} +33 -34
  78. package/dist/cjs/SideFooter.js +23 -24
  79. package/dist/cjs/SocialIcons.js +9 -10
  80. package/dist/cjs/{SocialSearchComponent-19548e2a.js → SocialSearchComponent-cea213aa.js} +34 -38
  81. package/dist/cjs/SocialShare.js +29 -31
  82. package/dist/cjs/TaxonomyCard.js +54 -59
  83. package/dist/cjs/TaxonomyDescription.js +21 -22
  84. package/dist/cjs/TemplateNormal.js +34 -35
  85. package/dist/cjs/ThumbnailCard.js +17 -19
  86. package/dist/cjs/Ustream.js +21 -22
  87. package/dist/cjs/VerticalHero.js +15 -16
  88. package/dist/cjs/VideoProgramLandingPage.js +43 -47
  89. package/dist/cjs/VideoSeriesCard.js +22 -23
  90. package/dist/cjs/VideoSeriesFilter.js +9 -9
  91. package/dist/cjs/VideoSeriesLandingPage.js +27 -28
  92. package/dist/cjs/VideoSeriesListing.js +56 -57
  93. package/dist/cjs/View.js +199 -203
  94. package/dist/cjs/YahooHero.js +30 -31
  95. package/dist/cjs/YoutubeGroup.js +50 -51
  96. package/dist/cjs/{brightcove-react-player-loader.es-5c98aec7.js → brightcove-react-player-loader.es-156bd4d6.js} +8 -10
  97. package/dist/cjs/faundadb.js +16 -16
  98. package/dist/cjs/getRelatedArticle.js +131 -67
  99. package/dist/cjs/getRootDocGroup.js +3 -3
  100. package/dist/cjs/getSerializers.js +11 -11
  101. package/dist/cjs/{getTargeting-a9a871f0.js → getTargeting-f1821260.js} +2 -2
  102. package/dist/cjs/getTargeting.js +1 -1
  103. package/dist/cjs/iconBase-68959171.js +3 -0
  104. package/dist/cjs/{index-00a7ead6.js → index-276bab5c.js} +928 -954
  105. package/dist/cjs/{index-6367b7bf.js → index-3294d3bc.js} +17 -16
  106. package/dist/cjs/{index-9d365128.js → index-96b3db50.js} +10 -12
  107. package/dist/cjs/{index-2cf30c83.js → index-98e01cb9.js} +8 -9
  108. package/dist/cjs/{index-b5eb3ff8.js → index-be0c82be.js} +19 -20
  109. package/dist/cjs/{index.es-f3e47207.js → index.es-9110add6.js} +12 -31
  110. package/dist/cjs/{index.esm-3ffa049c.js → index.esm-4d410430.js} +20 -20
  111. package/dist/cjs/{index.esm-974f47d9.js → index.esm-90433435.js} +15 -6
  112. package/dist/cjs/{index.esm-44f3e2d0.js → index.esm-e32d3e8e.js} +6 -3
  113. package/dist/cjs/{index.esm-05850a2f.js → index.esm-ff47db6f.js} +12 -5
  114. package/dist/cjs/index.js +58 -63
  115. package/dist/cjs/{inherits-0c7830c5.js → inherits-1f5a1c72.js} +3 -3
  116. package/dist/cjs/inherits-8d29278d.js +110 -0
  117. package/dist/cjs/{lodash-7fd85bcf.js → lodash-fc2922d0.js} +22 -71
  118. package/dist/cjs/{main-7b5e57b0.js → main-02daeefe.js} +54 -90
  119. package/dist/cjs/{md5-e1ca5797.js → md5-5039b1a6.js} +1 -1
  120. package/dist/cjs/{moment-ca3bd9fb.js → moment-575fe24c.js} +8 -10
  121. package/dist/cjs/{react-social-icons-07939b41.js → react-social-icons-f7f48f71.js} +11 -12
  122. package/dist/cjs/timeDifferenceCalc.js +1 -1
  123. package/dist/cjs/{typeof-9d7f610f.js → typeof-725500bc.js} +1 -1
  124. package/dist/cjs/urlFor.js +3 -3
  125. package/dist/cjs/{visibility-sensor-eb2c5b69.js → visibility-sensor-ad5e3116.js} +5 -7
  126. package/dist/esm/AD.js +7 -7
  127. package/dist/esm/AD300x250.js +7 -7
  128. package/dist/esm/AD300x250x600.js +7 -7
  129. package/dist/esm/AD728x90.js +8 -8
  130. package/dist/esm/ADFloatingFooter.js +9 -9
  131. package/dist/esm/ADFooter.js +6 -6
  132. package/dist/esm/ADGutter.js +9 -9
  133. package/dist/esm/{ADInfeed-56a3db8b.js → ADInfeed-1cc9d817.js} +7 -7
  134. package/dist/esm/ADSkyscraper.js +9 -9
  135. package/dist/esm/ADSponsoredResources.js +9 -9
  136. package/dist/esm/ADWebcast.js +9 -9
  137. package/dist/esm/ADWelcome.js +14 -23
  138. package/dist/esm/{ADlgInfeed-53edb995.js → ADlgInfeed-8c4f129e.js} +4 -4
  139. package/dist/esm/AccordionPanel.js +17 -17
  140. package/dist/esm/AdSlot.js +5 -5
  141. package/dist/esm/AdSlotsProvider.js +902 -10
  142. package/dist/esm/AlgoliaSearch.js +238 -347
  143. package/dist/esm/AlphabeticList.js +13 -13
  144. package/dist/esm/ArticleCarousel.js +8 -8
  145. package/dist/esm/ArticleProgramLandingPage.js +20 -20
  146. package/dist/esm/ArticleSeriesLandingPage.js +17 -17
  147. package/dist/esm/ArticleSeriesListing.js +36 -36
  148. package/dist/esm/Auth.js +1180 -216
  149. package/dist/esm/AuthWrapper.js +36 -116
  150. package/dist/esm/{AuthorComponent-8ffd4679.js → AuthorComponent-34b16174.js} +10 -10
  151. package/dist/esm/{BlockContent-d05b5b23.js → BlockContent-e9b4ddcf.js} +4 -4
  152. package/dist/esm/Breadcrumbs.js +11 -11
  153. package/dist/esm/CMEDeck.js +61 -61
  154. package/dist/esm/Column1.js +9 -9
  155. package/dist/esm/Column2.js +17 -17
  156. package/dist/esm/Column3.js +30 -30
  157. package/dist/esm/ConferenceArticleCard.js +15 -15
  158. package/dist/esm/{ConferenceBanner-9162d0ca.js → ConferenceBanner-8792ebd2.js} +4 -4
  159. package/dist/esm/DeckContent.js +68 -68
  160. package/dist/esm/DeckQueue.js +64 -64
  161. package/dist/esm/{Dfp-2f9796e1.js → Dfp-b7236041.js} +10 -10
  162. package/dist/esm/EventsDeck.js +92 -92
  163. package/dist/esm/ExternalResources.js +41 -41
  164. package/dist/esm/Feature.js +17 -17
  165. package/dist/esm/ForbesHero.js +28 -28
  166. package/dist/esm/GridContent.js +172 -172
  167. package/dist/esm/GridHero.js +29 -29
  168. package/dist/esm/GroupDeck.js +36 -36
  169. package/dist/esm/HamMagazine.js +91 -91
  170. package/dist/esm/Header.js +8 -8
  171. package/dist/esm/Hero.js +7 -7
  172. package/dist/esm/HighlightenVideo.js +14 -14
  173. package/dist/esm/HorizontalArticleListing.js +34 -34
  174. package/dist/esm/HorizontalHero.js +21 -21
  175. package/dist/esm/IssueContentDeck.js +53 -53
  176. package/dist/esm/IssueDeck.js +54 -54
  177. package/dist/esm/IssueLanding.js +26 -26
  178. package/dist/esm/LeftNav.js +16 -16
  179. package/dist/esm/MasterDeck.js +46 -46
  180. package/dist/esm/MediaSeriesLanding.js +506 -450
  181. package/dist/esm/NavDvm.js +46 -46
  182. package/dist/esm/{NavFooter-c29526b7.js → NavFooter-e27bd93b.js} +12 -12
  183. package/dist/esm/NavMagazine.js +93 -93
  184. package/dist/esm/NavNative.js +83 -83
  185. package/dist/esm/OncliveHero.js +15 -14
  186. package/dist/esm/OncliveLargeHero.js +52 -52
  187. package/dist/esm/PageFilter.js +6 -6
  188. package/dist/esm/PartnerDetailListing.js +3903 -74
  189. package/dist/esm/PdfDownload.js +6 -6
  190. package/dist/esm/PopUpModal.js +8 -8
  191. package/dist/esm/PubSection.js +17 -17
  192. package/dist/esm/PubToc.js +5 -5
  193. package/dist/esm/PublicationDeck.js +51 -51
  194. package/dist/esm/PublicationLanding.js +69 -69
  195. package/dist/esm/QueueDeckExpanded.js +251 -251
  196. package/dist/esm/RecentNews.js +17 -17
  197. package/dist/esm/RelatedContent.js +17 -17
  198. package/dist/esm/RelatedTopicsDropdown.js +11 -11
  199. package/dist/esm/RolesDeck.js +25 -25
  200. package/dist/esm/Search.js +7 -7
  201. package/dist/esm/SeriesListingDeck.js +20 -20
  202. package/dist/esm/{SeriesSlider-7d89f4d9.js → SeriesSlider-a866bb21.js} +24 -24
  203. package/dist/esm/SideFooter.js +19 -19
  204. package/dist/esm/SocialIcons.js +7 -7
  205. package/dist/esm/{SocialSearchComponent-47815365.js → SocialSearchComponent-03c3e869.js} +28 -28
  206. package/dist/esm/SocialShare.js +25 -25
  207. package/dist/esm/TaxonomyCard.js +50 -50
  208. package/dist/esm/TaxonomyDescription.js +16 -16
  209. package/dist/esm/TemplateNormal.js +31 -31
  210. package/dist/esm/ThumbnailCard.js +10 -10
  211. package/dist/esm/Ustream.js +18 -18
  212. package/dist/esm/VerticalHero.js +13 -13
  213. package/dist/esm/VideoProgramLandingPage.js +32 -32
  214. package/dist/esm/VideoSeriesCard.js +17 -17
  215. package/dist/esm/VideoSeriesFilter.js +6 -6
  216. package/dist/esm/VideoSeriesLandingPage.js +17 -17
  217. package/dist/esm/VideoSeriesListing.js +53 -53
  218. package/dist/esm/View.js +180 -180
  219. package/dist/esm/YahooHero.js +25 -25
  220. package/dist/esm/YoutubeGroup.js +35 -35
  221. package/dist/esm/{brightcove-react-player-loader.es-4abff0b1.js → brightcove-react-player-loader.es-83f53e4e.js} +6 -7
  222. package/dist/esm/faundadb.js +1 -1
  223. package/dist/esm/getRelatedArticle.js +126 -62
  224. package/dist/esm/getSerializers.js +11 -11
  225. package/dist/esm/{index-0500ae55.js → index-0f6867b9.js} +882 -898
  226. package/dist/esm/{index-f7fb1e25.js → index-41a678ea.js} +3 -3
  227. package/dist/esm/{index-6c12bdd5.js → index-5f7e79e7.js} +4 -4
  228. package/dist/esm/{index-51a80699.js → index-73819142.js} +19 -20
  229. package/dist/esm/{index-c00b0bbb.js → index-ef6d5dcf.js} +17 -16
  230. package/dist/esm/{index.es-c6222053.js → index.es-29c1cef5.js} +10 -28
  231. package/dist/esm/{index.esm-3fdda599.js → index.esm-29e48d38.js} +15 -6
  232. package/dist/esm/{index.esm-a8ff922c.js → index.esm-cf08bf18.js} +12 -5
  233. package/dist/esm/{index.esm-c6715e80.js → index.esm-f8aaeeeb.js} +6 -3
  234. package/dist/esm/{index.esm-8ee5ff72.js → index.esm-fd746768.js} +18 -17
  235. package/dist/esm/index.js +49 -51
  236. package/dist/esm/inherits-77d5e4fc.js +101 -0
  237. package/dist/esm/{inherits-75d45541.js → inherits-cf8dde54.js} +1 -1
  238. package/dist/esm/{lodash-ec8c6b48.js → lodash-17fdfebb.js} +22 -71
  239. package/dist/esm/{main-747e7d25.js → main-e4a934b2.js} +52 -87
  240. package/dist/esm/{md5-4e42248e.js → md5-9be0e905.js} +1 -1
  241. package/dist/esm/{moment-b6f49411.js → moment-e2f9b20c.js} +8 -10
  242. package/dist/esm/{react-social-icons-3822f1ce.js → react-social-icons-a7d5c5c7.js} +5 -5
  243. package/dist/esm/timeDifferenceCalc.js +1 -1
  244. package/dist/esm/{typeof-af9c50d8.js → typeof-6435ba1c.js} +1 -1
  245. package/dist/esm/urlFor.js +1 -1
  246. package/dist/esm/{visibility-sensor-f40c2564.js → visibility-sensor-72fd8f8b.js} +2 -2
  247. package/package.json +2 -1
  248. package/dist/cjs/ConferenceBanner-6c9e718a.js +0 -24
@@ -1,4 +1,4 @@
1
- import './_commonjsHelpers-0c4b6f40.js';
1
+ import { c as createCommonjsModule, u as unwrapExports, a as commonjsGlobal } from './_commonjsHelpers-0c4b6f40.js';
2
2
  import './_to-object-a4107da3.js';
3
3
  import './es6.string.iterator-c990c18c.js';
4
4
  import './_library-528f1934.js';
@@ -8,44 +8,44 @@ import './core.get-iterator-method-e1de7503.js';
8
8
  import './_object-pie-33c40e79.js';
9
9
  import { _ as _extends } from './extends-6f2fcc99.js';
10
10
  import './_object-sap-964b6feb.js';
11
- import './inherits-75d45541.js';
11
+ import './inherits-cf8dde54.js';
12
12
  import './define-property-8af5f002.js';
13
13
  import './web.dom.iterable-4439f05a.js';
14
- import './typeof-af9c50d8.js';
14
+ import './typeof-6435ba1c.js';
15
15
  import './_is-array-58e95429.js';
16
- import React, { useRef, useState, useEffect } from 'react';
16
+ import React__default, { Component, createContext, forwardRef, PureComponent, useRef, useState, useEffect } from 'react';
17
17
  import './events-6c3a7a63.js';
18
- import './index-f7fb1e25.js';
19
- import 'prop-types';
18
+ import './index-41a678ea.js';
19
+ import PropTypes from 'prop-types';
20
20
  import 'react-bootstrap/Row';
21
21
  import 'react-bootstrap/Col';
22
22
  import 'react-bootstrap/Card';
23
- import { m as moment } from './moment-b6f49411.js';
23
+ import { m as moment } from './moment-e2f9b20c.js';
24
24
  import 'next/router';
25
25
  import './isSymbol-1981418f.js';
26
26
  import './debounce-9207d8ee.js';
27
27
  import './toNumber-2f7a84cd.js';
28
- import './index.es-c6222053.js';
28
+ import './index.es-29c1cef5.js';
29
29
  import 'react-dom';
30
- import './visibility-sensor-f40c2564.js';
31
- import './index-51a80699.js';
30
+ import './visibility-sensor-72fd8f8b.js';
31
+ import './index-73819142.js';
32
32
  import urlFor from './urlFor.js';
33
- import './index-6c12bdd5.js';
34
- import './main-747e7d25.js';
33
+ import './index-5f7e79e7.js';
34
+ import './main-e4a934b2.js';
35
35
  import './entities-7cc3bf45.js';
36
36
  import { _ as _slicedToArray } from './slicedToArray-641f241f.js';
37
37
  import './stringify-4330ccdc.js';
38
- import { a as _asyncToGenerator, r as regenerator, _ as _Promise } from './asyncToGenerator-fc1c2e29.js';
38
+ import { a as _asyncToGenerator$1, r as regenerator, _ as _Promise } from './asyncToGenerator-fc1c2e29.js';
39
39
  import './Segment.js';
40
40
  import './Beam.js';
41
41
  import './AdSlot.js';
42
- import './ADInfeed-56a3db8b.js';
43
- import './lodash-ec8c6b48.js';
44
- import './ADlgInfeed-53edb995.js';
42
+ import './ADInfeed-1cc9d817.js';
43
+ import './lodash-17fdfebb.js';
44
+ import './ADlgInfeed-8c4f129e.js';
45
45
  import './getContentCategory-15dcc413.js';
46
- import './AuthorComponent-8ffd4679.js';
46
+ import './AuthorComponent-34b16174.js';
47
47
  import 'react-bootstrap/Button';
48
- import { B as BlockContent } from './BlockContent-d05b5b23.js';
48
+ import { B as BlockContent } from './BlockContent-e9b4ddcf.js';
49
49
  import './index-c7e2ac95.js';
50
50
  import { s as smoothscroll } from './smoothscroll-0cd4c7a6.js';
51
51
  import './GroupDeck.js';
@@ -53,10 +53,10 @@ import 'react-bootstrap';
53
53
  import './timeDifferenceCalc.js';
54
54
  import QueueDeckExpanded from './QueueDeckExpanded.js';
55
55
  import './iconBase-602d52fe.js';
56
- import './index.esm-3fdda599.js';
57
- import { g as getSerializers } from './index-0500ae55.js';
56
+ import './index.esm-29e48d38.js';
57
+ import { g as getSerializers } from './index-0f6867b9.js';
58
58
  import './util-7700fc59.js';
59
- import './brightcove-react-player-loader.es-4abff0b1.js';
59
+ import './brightcove-react-player-loader.es-83f53e4e.js';
60
60
  import 'next/head';
61
61
  import 'react-share';
62
62
  import './SocialShare.js';
@@ -66,11 +66,3812 @@ import 'react-bootstrap/Figure';
66
66
  import 'react-bootstrap/OverlayTrigger';
67
67
  import 'react-bootstrap/Tooltip';
68
68
  import 'react-bootstrap/Popover';
69
+ import { _ as _defineProperty$1, b as _inherits, c as _classCallCheck, d as _possibleConstructorReturn, e as _getPrototypeOf, g as _createClass } from './inherits-77d5e4fc.js';
69
70
  import 'react-bootstrap/Carousel';
70
71
  import Feature from './Feature.js';
71
72
  import 'react-bootstrap/Breadcrumb';
72
73
  import Breadcrumbs from './Breadcrumbs.js';
73
- import { TwitterTimelineEmbed } from 'react-twitter-embed';
74
+
75
+ var isRequiredIf_1 = createCommonjsModule(function (module, exports) {
76
+ Object.defineProperty(exports,'__esModule',{value:!0});var VALIDATOR_ARG_ERROR_MESSAGE='The typeValidator argument must be a function with the signature function(props, propName, componentName).',MESSAGE_ARG_ERROR_MESSAGE='The error message is optional, but must be a string if provided.',propIsRequired=function propIsRequired(a,b,c,d){if('boolean'==typeof a)return a;return 'function'==typeof a?a(b,c,d):!(!0!==!!a)&&!!a},propExists=function propExists(a,b){return Object.hasOwnProperty.call(a,b)},missingPropError=function missingPropError(a,b,c,d){return d?new Error(d):new Error('Required '+a[b]+' `'+b+'`'+(' was not specified in `'+c+'`.'))},guardAgainstInvalidArgTypes=function guardAgainstInvalidArgTypes(a,b){if('function'!=typeof a)throw new TypeError(VALIDATOR_ARG_ERROR_MESSAGE);if(!!b&&'string'!=typeof b)throw new TypeError(MESSAGE_ARG_ERROR_MESSAGE)},isRequiredIf=function isRequiredIf(a,b,c){return guardAgainstInvalidArgTypes(a,c),function(d,e,f){for(var _len=arguments.length,g=Array(3<_len?_len-3:0),_key=3;_key<_len;_key++)g[_key-3]=arguments[_key];return propIsRequired(b,d,e,f)?propExists(d,e)?a.apply(void 0,[d,e,f].concat(g)):missingPropError(d,e,f,c):a.apply(void 0,[d,e,f].concat(g));// Is not required, so just run typeValidator.
77
+ }};exports.default=isRequiredIf;
78
+
79
+
80
+ });
81
+
82
+ var isRequiredIf = unwrapExports(isRequiredIf_1);
83
+
84
+ var exenv = createCommonjsModule(function (module) {
85
+ /*!
86
+ Copyright (c) 2015 Jed Watson.
87
+ Based on code that is Copyright 2013-2015, Facebook, Inc.
88
+ All rights reserved.
89
+ */
90
+ /* global define */
91
+
92
+ (function () {
93
+
94
+ var canUseDOM = !!(
95
+ typeof window !== 'undefined' &&
96
+ window.document &&
97
+ window.document.createElement
98
+ );
99
+
100
+ var ExecutionEnvironment = {
101
+
102
+ canUseDOM: canUseDOM,
103
+
104
+ canUseWorkers: typeof Worker !== 'undefined',
105
+
106
+ canUseEventListeners:
107
+ canUseDOM && !!(window.addEventListener || window.attachEvent),
108
+
109
+ canUseViewport: canUseDOM && !!window.screen
110
+
111
+ };
112
+
113
+ if ( module.exports) {
114
+ module.exports = ExecutionEnvironment;
115
+ } else {
116
+ window.ExecutionEnvironment = ExecutionEnvironment;
117
+ }
118
+
119
+ }());
120
+ });
121
+
122
+ var twitterWidgetJs = 'https://platform.twitter.com/widgets.js';
123
+
124
+ var TwitterTimelineEmbed =
125
+ /*#__PURE__*/
126
+ function (_Component) {
127
+ _inherits(TwitterTimelineEmbed, _Component);
128
+
129
+ function TwitterTimelineEmbed(props) {
130
+ var _this;
131
+
132
+ _classCallCheck(this, TwitterTimelineEmbed);
133
+
134
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterTimelineEmbed).call(this, props));
135
+ _this.state = {
136
+ isLoading: true
137
+ };
138
+ return _this;
139
+ }
140
+
141
+ _createClass(TwitterTimelineEmbed, [{
142
+ key: "buildChromeOptions",
143
+ value: function buildChromeOptions(options) {
144
+ options.chrome = '';
145
+
146
+ if (this.props.noHeader) {
147
+ options.chrome = options.chrome + ' noheader';
148
+ }
149
+
150
+ if (this.props.noFooter) {
151
+ options.chrome = options.chrome + ' nofooter';
152
+ }
153
+
154
+ if (this.props.noBorders) {
155
+ options.chrome = options.chrome + ' noborders';
156
+ }
157
+
158
+ if (this.props.noScrollbar) {
159
+ options.chrome = options.chrome + ' noscrollbar';
160
+ }
161
+
162
+ if (this.props.transparent) {
163
+ options.chrome = options.chrome + ' transparent';
164
+ }
165
+
166
+ return options;
167
+ }
168
+ }, {
169
+ key: "buildOptions",
170
+ value: function buildOptions() {
171
+ var options = Object.assign({}, this.props.options);
172
+
173
+ if (this.props.autoHeight) {
174
+ options.height = this.refs.embedContainer.parentNode.offsetHeight;
175
+ }
176
+
177
+ options = Object.assign({}, options, {
178
+ theme: this.props.theme,
179
+ linkColor: this.props.linkColor,
180
+ borderColor: this.props.borderColor,
181
+ lang: this.props.lang
182
+ });
183
+ return options;
184
+ }
185
+ }, {
186
+ key: "renderWidget",
187
+ value: function renderWidget(options) {
188
+ var _this2 = this;
189
+
190
+ var onLoad = this.props.onLoad;
191
+
192
+ if (!this.isMountCanceled) {
193
+ window.twttr.widgets.createTimeline({
194
+ sourceType: this.props.sourceType,
195
+ screenName: this.props.screenName,
196
+ userId: this.props.userId,
197
+ ownerScreenName: this.props.ownerScreenName,
198
+ slug: this.props.slug,
199
+ id: this.props.id || this.props.widgetId,
200
+ url: this.props.url
201
+ }, this.refs.embedContainer, options).then(function (element) {
202
+ _this2.setState({
203
+ isLoading: false
204
+ });
205
+
206
+ if (onLoad) {
207
+ onLoad(element);
208
+ }
209
+ });
210
+ }
211
+ }
212
+ }, {
213
+ key: "componentDidMount",
214
+ value: function componentDidMount() {
215
+ var _this3 = this;
216
+
217
+ if (exenv.canUseDOM) {
218
+ var script = require('scriptjs');
219
+
220
+ script(twitterWidgetJs, 'twitter-embed', function () {
221
+ if (!window.twttr) {
222
+ console.error('Failure to load window.twttr in TwitterTimelineEmbed, aborting load.');
223
+ return;
224
+ }
225
+
226
+ var options = _this3.buildOptions();
227
+ /** Append chrome options */
228
+
229
+
230
+ options = _this3.buildChromeOptions(options);
231
+
232
+ _this3.renderWidget(options);
233
+ });
234
+ }
235
+ }
236
+ }, {
237
+ key: "componentWillUnmount",
238
+ value: function componentWillUnmount() {
239
+ this.isMountCanceled = true;
240
+ }
241
+ }, {
242
+ key: "render",
243
+ value: function render() {
244
+ var isLoading = this.state.isLoading;
245
+ var placeholder = this.props.placeholder;
246
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
247
+ ref: "embedContainer"
248
+ }));
249
+ }
250
+ }]);
251
+
252
+ return TwitterTimelineEmbed;
253
+ }(Component);
254
+
255
+ _defineProperty$1(TwitterTimelineEmbed, "propTypes", {
256
+ /**
257
+ * This can be either of profile, likes, list, collection, URL, widget
258
+ */
259
+ sourceType: PropTypes.oneOf(['profile', 'likes', 'list', 'collection', 'url', 'widget']).isRequired,
260
+
261
+ /**
262
+ * username of twitter handle as String
263
+ */
264
+ screenName: isRequiredIf(PropTypes.string, function (props) {
265
+ return !props.hasOwnProperty('userId') && (props.sourceType === 'profile' || props.sourceType === 'likes');
266
+ }),
267
+
268
+ /**
269
+ * UserId of twitter handle as number
270
+ */
271
+ userId: isRequiredIf(PropTypes.number, function (props) {
272
+ return !props.hasOwnProperty('screenName') && (props.sourceType === 'profile' || props.sourceType === 'likes');
273
+ }),
274
+
275
+ /**
276
+ * To show list, used along with slug
277
+ */
278
+ ownerScreenName: isRequiredIf(PropTypes.string, function (props) {
279
+ return props.sourceType === 'list' && !props.hasOwnProperty('id');
280
+ }),
281
+
282
+ /**
283
+ * To show list, used along with ownerScreenName
284
+ */
285
+ slug: isRequiredIf(PropTypes.string, function (props) {
286
+ return props.sourceType === 'list' && !props.hasOwnProperty('id');
287
+ }),
288
+
289
+ /**
290
+ * To show list, unique list id
291
+ * Also used with collections, in that case its valid collection id
292
+ */
293
+ id: isRequiredIf(PropTypes.oneOfType([PropTypes.number, PropTypes.string]), function (props) {
294
+ return props.sourceType === 'list' && !props.hasOwnProperty('ownerScreenName') && !props.hasOwnProperty('slug') || props.sourceType === 'collection';
295
+ }),
296
+
297
+ /**
298
+ * To show twitter content with url.
299
+ * Supported content includes profiles, likes, lists, and collections.
300
+ */
301
+ url: isRequiredIf(PropTypes.string, function (props) {
302
+ return props.sourceType === 'url';
303
+ }),
304
+
305
+ /**
306
+ * To show custom widget
307
+ */
308
+ widgetId: isRequiredIf(PropTypes.string, function (props) {
309
+ return props.sourceType === 'widget';
310
+ }),
311
+
312
+ /**
313
+ * Additional options to pass to twitter widget plugin
314
+ */
315
+ options: PropTypes.object,
316
+
317
+ /**
318
+ * Automatically fit into parent container height
319
+ */
320
+ autoHeight: PropTypes.bool,
321
+
322
+ /**
323
+ * With dark or light theme
324
+ */
325
+ theme: PropTypes.oneOf(['dark', 'light']),
326
+
327
+ /**
328
+ * With custom link colors. Note: Only Hex colors are supported.
329
+ */
330
+ linkColor: PropTypes.string,
331
+
332
+ /**
333
+ * With custom border colors. Note: Only Hex colors are supported.
334
+ */
335
+ borderColor: PropTypes.string,
336
+
337
+ /**
338
+ * Hide the header from timeline
339
+ */
340
+ noHeader: PropTypes.bool,
341
+
342
+ /**
343
+ * Hide the footer from timeline
344
+ */
345
+ noFooter: PropTypes.bool,
346
+
347
+ /**
348
+ * Hide the border from timeline
349
+ */
350
+ noBorders: PropTypes.bool,
351
+
352
+ /**
353
+ * Hide the scrollbars
354
+ */
355
+ noScrollbar: PropTypes.bool,
356
+
357
+ /**
358
+ * Enable Transparancy
359
+ */
360
+ transparent: PropTypes.bool,
361
+
362
+ /**
363
+ * Custom language code. Supported codes here: https://developer.twitter.com/en/docs/twitter-for-websites/twitter-for-websites-supported-languages/overview.html
364
+ */
365
+ lang: PropTypes.string,
366
+
367
+ /**
368
+ * Placeholder while tweet is loading
369
+ */
370
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
371
+
372
+ /**
373
+ * Function to execute after load, return html element
374
+ */
375
+ onLoad: PropTypes.func
376
+ });
377
+
378
+ var TwitterShareButton =
379
+ /*#__PURE__*/
380
+ function (_Component) {
381
+ _inherits(TwitterShareButton, _Component);
382
+
383
+ function TwitterShareButton(props) {
384
+ var _this;
385
+
386
+ _classCallCheck(this, TwitterShareButton);
387
+
388
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterShareButton).call(this, props));
389
+ _this.state = {
390
+ isLoading: true
391
+ };
392
+ return _this;
393
+ }
394
+
395
+ _createClass(TwitterShareButton, [{
396
+ key: "componentDidMount",
397
+ value: function componentDidMount() {
398
+ var _this2 = this;
399
+
400
+ var onLoad = this.props.onLoad;
401
+
402
+ if (exenv.canUseDOM) {
403
+ var script = require('scriptjs');
404
+
405
+ script(twitterWidgetJs, 'twitter-embed', function () {
406
+ if (!window.twttr) {
407
+ console.error('Failure to load window.twttr in TwitterShareButton, aborting load.');
408
+ return;
409
+ }
410
+
411
+ if (!_this2.isMountCanceled) {
412
+ window.twttr.widgets.createShareButton(_this2.props.url, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
413
+ _this2.setState({
414
+ isLoading: false
415
+ });
416
+
417
+ if (onLoad) {
418
+ onLoad(element);
419
+ }
420
+ });
421
+ }
422
+ });
423
+ }
424
+ }
425
+ }, {
426
+ key: "componentWillUnmount",
427
+ value: function componentWillUnmount() {
428
+ this.isMountCanceled = true;
429
+ }
430
+ }, {
431
+ key: "render",
432
+ value: function render() {
433
+ var isLoading = this.state.isLoading;
434
+ var placeholder = this.props.placeholder;
435
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
436
+ ref: "embedContainer"
437
+ }));
438
+ }
439
+ }]);
440
+
441
+ return TwitterShareButton;
442
+ }(Component);
443
+
444
+ _defineProperty$1(TwitterShareButton, "propTypes", {
445
+ /**
446
+ * Url for sharing
447
+ */
448
+ url: PropTypes.string.isRequired,
449
+
450
+ /**
451
+ * Additional options for overriding config. Details at : https://dev.twitter.com/web/tweet-button/parameters
452
+ */
453
+ options: PropTypes.object,
454
+
455
+ /**
456
+ * Placeholder while tweet is loading
457
+ */
458
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
459
+
460
+ /**
461
+ * Function to execute after load, return html element
462
+ */
463
+ onLoad: PropTypes.func
464
+ });
465
+
466
+ var TwitterFollowButton =
467
+ /*#__PURE__*/
468
+ function (_Component) {
469
+ _inherits(TwitterFollowButton, _Component);
470
+
471
+ function TwitterFollowButton(props) {
472
+ var _this;
473
+
474
+ _classCallCheck(this, TwitterFollowButton);
475
+
476
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterFollowButton).call(this, props));
477
+ _this.state = {
478
+ isLoading: true
479
+ };
480
+ return _this;
481
+ }
482
+
483
+ _createClass(TwitterFollowButton, [{
484
+ key: "componentDidMount",
485
+ value: function componentDidMount() {
486
+ var _this2 = this;
487
+
488
+ var onLoad = this.props.onLoad;
489
+
490
+ if (exenv.canUseDOM) {
491
+ var script = require('scriptjs');
492
+
493
+ script(twitterWidgetJs, 'twitter-embed', function () {
494
+ if (!window.twttr) {
495
+ console.error('Failure to load window.twttr in TwitterFollowButton, aborting load.');
496
+ return;
497
+ }
498
+
499
+ if (!_this2.isMountCanceled) {
500
+ window.twttr.widgets.createFollowButton(_this2.props.screenName, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
501
+ _this2.setState({
502
+ isLoading: false
503
+ });
504
+
505
+ if (onLoad) {
506
+ onLoad(element);
507
+ }
508
+ });
509
+ }
510
+ });
511
+ }
512
+ }
513
+ }, {
514
+ key: "componentWillUnmount",
515
+ value: function componentWillUnmount() {
516
+ this.isMountCanceled = true;
517
+ }
518
+ }, {
519
+ key: "render",
520
+ value: function render() {
521
+ var isLoading = this.state.isLoading;
522
+ var placeholder = this.props.placeholder;
523
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
524
+ ref: "embedContainer"
525
+ }));
526
+ }
527
+ }]);
528
+
529
+ return TwitterFollowButton;
530
+ }(Component);
531
+
532
+ _defineProperty$1(TwitterFollowButton, "propTypes", {
533
+ /**
534
+ * Username of twitter user which will be followed on click
535
+ */
536
+ screenName: PropTypes.string.isRequired,
537
+
538
+ /**
539
+ * Additional options to be added to the button
540
+ */
541
+ options: PropTypes.object,
542
+
543
+ /**
544
+ * Placeholder while tweet is loading
545
+ */
546
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
547
+
548
+ /**
549
+ * Function to execute after load, return html element
550
+ */
551
+ onLoad: PropTypes.func
552
+ });
553
+
554
+ var TwitterHashtagButton =
555
+ /*#__PURE__*/
556
+ function (_Component) {
557
+ _inherits(TwitterHashtagButton, _Component);
558
+
559
+ function TwitterHashtagButton(props) {
560
+ var _this;
561
+
562
+ _classCallCheck(this, TwitterHashtagButton);
563
+
564
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterHashtagButton).call(this, props));
565
+ _this.state = {
566
+ isLoading: true
567
+ };
568
+ return _this;
569
+ }
570
+
571
+ _createClass(TwitterHashtagButton, [{
572
+ key: "componentDidMount",
573
+ value: function componentDidMount() {
574
+ var _this2 = this;
575
+
576
+ var onLoad = this.props.onLoad;
577
+
578
+ if (exenv.canUseDOM) {
579
+ var script = require('scriptjs');
580
+
581
+ script(twitterWidgetJs, 'twitter-embed', function () {
582
+ if (!window.twttr) {
583
+ console.error('Failure to load window.twttr in TwitterHashtagButton, aborting load.');
584
+ return;
585
+ }
586
+
587
+ if (!_this2.isMountCanceled) {
588
+ window.twttr.widgets.createHashtagButton(_this2.props.tag, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
589
+ _this2.setState({
590
+ isLoading: false
591
+ });
592
+
593
+ if (onLoad) {
594
+ onLoad(element);
595
+ }
596
+ });
597
+ }
598
+ });
599
+ }
600
+ }
601
+ }, {
602
+ key: "componentWillUnmount",
603
+ value: function componentWillUnmount() {
604
+ this.isMountCanceled = true;
605
+ }
606
+ }, {
607
+ key: "render",
608
+ value: function render() {
609
+ var isLoading = this.state.isLoading;
610
+ var placeholder = this.props.placeholder;
611
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
612
+ ref: "embedContainer"
613
+ }));
614
+ }
615
+ }]);
616
+
617
+ return TwitterHashtagButton;
618
+ }(Component);
619
+
620
+ _defineProperty$1(TwitterHashtagButton, "propTypes", {
621
+ /**
622
+ * Tag name for hashtag button
623
+ */
624
+ tag: PropTypes.string.isRequired,
625
+
626
+ /**
627
+ * Additional options to be added to the button
628
+ */
629
+ options: PropTypes.object,
630
+
631
+ /**
632
+ * Placeholder while tweet is loading
633
+ */
634
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
635
+
636
+ /**
637
+ * Function to execute after load, return html element
638
+ */
639
+ onLoad: PropTypes.func
640
+ });
641
+
642
+ var TwitterMentionButton =
643
+ /*#__PURE__*/
644
+ function (_Component) {
645
+ _inherits(TwitterMentionButton, _Component);
646
+
647
+ function TwitterMentionButton(props) {
648
+ var _this;
649
+
650
+ _classCallCheck(this, TwitterMentionButton);
651
+
652
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterMentionButton).call(this, props));
653
+ _this.state = {
654
+ isLoading: true
655
+ };
656
+ return _this;
657
+ }
658
+
659
+ _createClass(TwitterMentionButton, [{
660
+ key: "componentDidMount",
661
+ value: function componentDidMount() {
662
+ var _this2 = this;
663
+
664
+ var onLoad = this.props.onLoad;
665
+
666
+ if (exenv.canUseDOM) {
667
+ var script = require('scriptjs');
668
+
669
+ script(twitterWidgetJs, 'twitter-embed', function () {
670
+ if (!window.twttr) {
671
+ console.error('Failure to load window.twttr in TwitterMentionButton, aborting load.');
672
+ return;
673
+ }
674
+
675
+ if (!_this2.isMountCanceled) {
676
+ window.twttr.widgets.createMentionButton(_this2.props.screenName, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
677
+ _this2.setState({
678
+ isLoading: false
679
+ });
680
+
681
+ if (onLoad) {
682
+ onLoad(element);
683
+ }
684
+ });
685
+ }
686
+ });
687
+ }
688
+ }
689
+ }, {
690
+ key: "componentWillUnmount",
691
+ value: function componentWillUnmount() {
692
+ this.isMountCanceled = true;
693
+ }
694
+ }, {
695
+ key: "render",
696
+ value: function render() {
697
+ var isLoading = this.state.isLoading;
698
+ var placeholder = this.props.placeholder;
699
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
700
+ ref: "embedContainer"
701
+ }));
702
+ }
703
+ }]);
704
+
705
+ return TwitterMentionButton;
706
+ }(Component);
707
+
708
+ _defineProperty$1(TwitterMentionButton, "propTypes", {
709
+ /**
710
+ * Username to which you will need to tweet
711
+ */
712
+ screenName: PropTypes.string.isRequired,
713
+
714
+ /**
715
+ * Additional options for overriding config.
716
+ */
717
+ options: PropTypes.object,
718
+
719
+ /**
720
+ * Placeholder while tweet is loading
721
+ */
722
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
723
+
724
+ /**
725
+ * Function to execute after load, return html element
726
+ */
727
+ onLoad: PropTypes.func
728
+ });
729
+
730
+ var TwitterTweetEmbed =
731
+ /*#__PURE__*/
732
+ function (_Component) {
733
+ _inherits(TwitterTweetEmbed, _Component);
734
+
735
+ function TwitterTweetEmbed(props) {
736
+ var _this;
737
+
738
+ _classCallCheck(this, TwitterTweetEmbed);
739
+
740
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterTweetEmbed).call(this, props));
741
+ _this.state = {
742
+ isLoading: true
743
+ };
744
+ return _this;
745
+ }
746
+
747
+ _createClass(TwitterTweetEmbed, [{
748
+ key: "renderWidget",
749
+ value: function renderWidget() {
750
+ var _this2 = this;
751
+
752
+ var onLoad = this.props.onLoad;
753
+
754
+ if (!window.twttr) {
755
+ console.error('Failure to load window.twttr in TwitterTweetEmbed, aborting load.');
756
+ return;
757
+ }
758
+
759
+ if (!this.isMountCanceled) {
760
+ window.twttr.widgets.createTweet(this.props.tweetId, this.refs.embedContainer, this.props.options).then(function (element) {
761
+ _this2.setState({
762
+ isLoading: false
763
+ });
764
+
765
+ if (onLoad) {
766
+ onLoad(element);
767
+ }
768
+ });
769
+ }
770
+ }
771
+ }, {
772
+ key: "componentDidMount",
773
+ value: function componentDidMount() {
774
+ var _this3 = this;
775
+
776
+ if (exenv.canUseDOM) {
777
+ var script = require('scriptjs');
778
+
779
+ script(twitterWidgetJs, 'twitter-embed', function () {
780
+ _this3.renderWidget();
781
+ });
782
+ }
783
+ }
784
+ }, {
785
+ key: "componentWillUnmount",
786
+ value: function componentWillUnmount() {
787
+ this.isMountCanceled = true;
788
+ }
789
+ }, {
790
+ key: "render",
791
+ value: function render() {
792
+ var isLoading = this.state.isLoading;
793
+ var placeholder = this.props.placeholder;
794
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
795
+ ref: "embedContainer"
796
+ }));
797
+ }
798
+ }]);
799
+
800
+ return TwitterTweetEmbed;
801
+ }(Component);
802
+
803
+ _defineProperty$1(TwitterTweetEmbed, "propTypes", {
804
+ /**
805
+ * Tweet id that needs to be shown
806
+ */
807
+ tweetId: PropTypes.string.isRequired,
808
+
809
+ /**
810
+ * Additional options to pass to twitter widget plugin
811
+ */
812
+ options: PropTypes.object,
813
+
814
+ /**
815
+ * Placeholder while tweet is loading
816
+ */
817
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
818
+
819
+ /**
820
+ * Function to execute after load, return html element
821
+ */
822
+ onLoad: PropTypes.func
823
+ });
824
+
825
+ var TwitterMomentShare =
826
+ /*#__PURE__*/
827
+ function (_Component) {
828
+ _inherits(TwitterMomentShare, _Component);
829
+
830
+ function TwitterMomentShare(props) {
831
+ var _this;
832
+
833
+ _classCallCheck(this, TwitterMomentShare);
834
+
835
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterMomentShare).call(this, props));
836
+ _this.state = {
837
+ isLoading: true
838
+ };
839
+ return _this;
840
+ }
841
+
842
+ _createClass(TwitterMomentShare, [{
843
+ key: "componentDidMount",
844
+ value: function componentDidMount() {
845
+ var _this2 = this;
846
+
847
+ var onLoad = this.props.onLoad;
848
+
849
+ if (exenv.canUseDOM) {
850
+ var script = require('scriptjs');
851
+
852
+ script(twitterWidgetJs, 'twitter-embed', function () {
853
+ if (!window.twttr) {
854
+ console.error('Failure to load window.twttr in TwitterMomentShare, aborting load.');
855
+ return;
856
+ }
857
+
858
+ if (!_this2.isMountCanceled) {
859
+ window.twttr.widgets.createMoment(_this2.props.momentId, _this2.refs.shareMoment, _this2.props.options).then(function (element) {
860
+ _this2.setState({
861
+ isLoading: false
862
+ });
863
+
864
+ if (onLoad) {
865
+ onLoad(element);
866
+ }
867
+ });
868
+ }
869
+ });
870
+ }
871
+ }
872
+ }, {
873
+ key: "componentWillUnmount",
874
+ value: function componentWillUnmount() {
875
+ this.isMountCanceled = true;
876
+ }
877
+ }, {
878
+ key: "render",
879
+ value: function render() {
880
+ var isLoading = this.state.isLoading;
881
+ var placeholder = this.props.placeholder;
882
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
883
+ ref: "shareMoment"
884
+ }));
885
+ }
886
+ }]);
887
+
888
+ return TwitterMomentShare;
889
+ }(Component);
890
+
891
+ _defineProperty$1(TwitterMomentShare, "propTypes", {
892
+ /**
893
+ * id of Twitter moment to show
894
+ */
895
+ momentId: PropTypes.string.isRequired,
896
+
897
+ /**
898
+ * Additional options for overriding config.
899
+ */
900
+ options: PropTypes.object,
901
+
902
+ /**
903
+ * Placeholder while tweet is loading
904
+ */
905
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
906
+
907
+ /**
908
+ * Function to execute after load, return html element
909
+ */
910
+ onLoad: PropTypes.func
911
+ });
912
+
913
+ var TwitterDMButton =
914
+ /*#__PURE__*/
915
+ function (_Component) {
916
+ _inherits(TwitterDMButton, _Component);
917
+
918
+ function TwitterDMButton(props) {
919
+ var _this;
920
+
921
+ _classCallCheck(this, TwitterDMButton);
922
+
923
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterDMButton).call(this, props));
924
+ _this.state = {
925
+ isLoading: true
926
+ };
927
+ return _this;
928
+ }
929
+
930
+ _createClass(TwitterDMButton, [{
931
+ key: "componentDidMount",
932
+ value: function componentDidMount() {
933
+ var _this2 = this;
934
+
935
+ var onLoad = this.props.onLoad;
936
+
937
+ if (exenv.canUseDOM) {
938
+ var script = require('scriptjs');
939
+
940
+ script(twitterWidgetJs, 'twitter-embed', function () {
941
+ if (!window.twttr) {
942
+ console.error('Failure to load window.twttr in TwitterDMButton, aborting load.');
943
+ return;
944
+ }
945
+
946
+ if (!_this2.isMountCanceled) {
947
+ window.twttr.widgets.createDMButton(_this2.props.id, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
948
+ _this2.setState({
949
+ isLoading: false
950
+ });
951
+
952
+ if (onLoad) {
953
+ onLoad(element);
954
+ }
955
+ });
956
+ }
957
+ });
958
+ }
959
+ }
960
+ }, {
961
+ key: "componentWillUnmount",
962
+ value: function componentWillUnmount() {
963
+ this.isMountCanceled = true;
964
+ }
965
+ }, {
966
+ key: "render",
967
+ value: function render() {
968
+ var isLoading = this.state.isLoading;
969
+ var placeholder = this.props.placeholder;
970
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
971
+ ref: "embedContainer"
972
+ }));
973
+ }
974
+ }]);
975
+
976
+ return TwitterDMButton;
977
+ }(Component);
978
+
979
+ _defineProperty$1(TwitterDMButton, "propTypes", {
980
+ /**
981
+ * Twitter user id for DM button
982
+ */
983
+ id: PropTypes.number.isRequired,
984
+
985
+ /**
986
+ * Additional options to be added to the button
987
+ */
988
+ options: PropTypes.object,
989
+
990
+ /**
991
+ * Placeholder while tweet is loading
992
+ */
993
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
994
+
995
+ /**
996
+ * Function to execute after load, return html element
997
+ */
998
+ onLoad: PropTypes.func
999
+ });
1000
+
1001
+ var TwitterVideoEmbed =
1002
+ /*#__PURE__*/
1003
+ function (_Component) {
1004
+ _inherits(TwitterVideoEmbed, _Component);
1005
+
1006
+ function TwitterVideoEmbed(props) {
1007
+ var _this;
1008
+
1009
+ _classCallCheck(this, TwitterVideoEmbed);
1010
+
1011
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterVideoEmbed).call(this, props));
1012
+ _this.state = {
1013
+ isLoading: true
1014
+ };
1015
+ return _this;
1016
+ }
1017
+
1018
+ _createClass(TwitterVideoEmbed, [{
1019
+ key: "componentDidMount",
1020
+ value: function componentDidMount() {
1021
+ var _this2 = this;
1022
+
1023
+ var onLoad = this.props.onLoad;
1024
+
1025
+ if (exenv.canUseDOM) {
1026
+ var script = require('scriptjs');
1027
+
1028
+ script(twitterWidgetJs, 'twitter-embed', function () {
1029
+ if (!window.twttr) {
1030
+ console.error('Failure to load window.twttr in TwitterVideoEmbed, aborting load.');
1031
+ return;
1032
+ }
1033
+
1034
+ if (!_this2.isMountCanceled) {
1035
+ window.twttr.widgets.createVideo(_this2.props.id, _this2.refs.embedContainer).then(function (element) {
1036
+ _this2.setState({
1037
+ isLoading: false
1038
+ });
1039
+
1040
+ if (onLoad) {
1041
+ onLoad(element);
1042
+ }
1043
+ });
1044
+ }
1045
+ });
1046
+ }
1047
+ }
1048
+ }, {
1049
+ key: "componentWillUnmount",
1050
+ value: function componentWillUnmount() {
1051
+ this.isMountCanceled = true;
1052
+ }
1053
+ }, {
1054
+ key: "render",
1055
+ value: function render() {
1056
+ var isLoading = this.state.isLoading;
1057
+ var placeholder = this.props.placeholder;
1058
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
1059
+ ref: "embedContainer"
1060
+ }));
1061
+ }
1062
+ }]);
1063
+
1064
+ return TwitterVideoEmbed;
1065
+ }(Component);
1066
+
1067
+ _defineProperty$1(TwitterVideoEmbed, "propTypes", {
1068
+ /**
1069
+ * Id of video tweet.
1070
+ */
1071
+ id: PropTypes.string.isRequired,
1072
+
1073
+ /**
1074
+ * Placeholder while tweet is loading
1075
+ */
1076
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
1077
+
1078
+ /**
1079
+ * Function to execute after load, return html element
1080
+ */
1081
+ onLoad: PropTypes.func
1082
+ });
1083
+
1084
+ var TwitterOnAirButton =
1085
+ /*#__PURE__*/
1086
+ function (_Component) {
1087
+ _inherits(TwitterOnAirButton, _Component);
1088
+
1089
+ function TwitterOnAirButton(props) {
1090
+ var _this;
1091
+
1092
+ _classCallCheck(this, TwitterOnAirButton);
1093
+
1094
+ _this = _possibleConstructorReturn(this, _getPrototypeOf(TwitterOnAirButton).call(this, props));
1095
+ _this.state = {
1096
+ isLoading: true
1097
+ };
1098
+ return _this;
1099
+ }
1100
+
1101
+ _createClass(TwitterOnAirButton, [{
1102
+ key: "componentDidMount",
1103
+ value: function componentDidMount() {
1104
+ var _this2 = this;
1105
+
1106
+ var onLoad = this.props.onLoad;
1107
+
1108
+ if (exenv.canUseDOM) {
1109
+ var script = require('scriptjs');
1110
+
1111
+ script(twitterWidgetJs, 'twitter-embed', function () {
1112
+ if (!window.twttr) {
1113
+ console.error('Failure to load window.twttr in TwitterOnAirButton, aborting load.');
1114
+ return;
1115
+ }
1116
+
1117
+ if (!_this2.isMountCanceled) {
1118
+ window.twttr.widgets.createPeriscopeOnAirButton(_this2.props.username, _this2.refs.embedContainer, _this2.props.options).then(function (element) {
1119
+ _this2.setState({
1120
+ isLoading: false
1121
+ });
1122
+
1123
+ if (onLoad) {
1124
+ onLoad(element);
1125
+ }
1126
+ });
1127
+ }
1128
+ });
1129
+ }
1130
+ }
1131
+ }, {
1132
+ key: "componentWillUnmount",
1133
+ value: function componentWillUnmount() {
1134
+ this.isMountCanceled = true;
1135
+ }
1136
+ }, {
1137
+ key: "render",
1138
+ value: function render() {
1139
+ var isLoading = this.state.isLoading;
1140
+ var placeholder = this.props.placeholder;
1141
+ return React__default.createElement(React__default.Fragment, null, isLoading && placeholder, React__default.createElement("div", {
1142
+ ref: "embedContainer"
1143
+ }));
1144
+ }
1145
+ }]);
1146
+
1147
+ return TwitterOnAirButton;
1148
+ }(Component);
1149
+
1150
+ _defineProperty$1(TwitterOnAirButton, "propTypes", {
1151
+ /**
1152
+ * Username for which you require periscope on air button
1153
+ */
1154
+ username: PropTypes.string.isRequired,
1155
+
1156
+ /**
1157
+ * Additional options for overriding config.
1158
+ */
1159
+ options: PropTypes.object,
1160
+
1161
+ /**
1162
+ * Placeholder while tweet is loading
1163
+ */
1164
+ placeholder: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
1165
+
1166
+ /**
1167
+ * Function to execute after load, return html element
1168
+ */
1169
+ onLoad: PropTypes.func
1170
+ });
1171
+
1172
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
1173
+ try {
1174
+ var info = gen[key](arg);
1175
+ var value = info.value;
1176
+ } catch (error) {
1177
+ reject(error);
1178
+ return;
1179
+ }
1180
+
1181
+ if (info.done) {
1182
+ resolve(value);
1183
+ } else {
1184
+ Promise.resolve(value).then(_next, _throw);
1185
+ }
1186
+ }
1187
+
1188
+ function _asyncToGenerator(fn) {
1189
+ return function () {
1190
+ var self = this,
1191
+ args = arguments;
1192
+ return new Promise(function (resolve, reject) {
1193
+ var gen = fn.apply(self, args);
1194
+
1195
+ function _next(value) {
1196
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
1197
+ }
1198
+
1199
+ function _throw(err) {
1200
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
1201
+ }
1202
+
1203
+ _next(undefined);
1204
+ });
1205
+ };
1206
+ }
1207
+
1208
+ var asyncToGenerator = _asyncToGenerator;
1209
+
1210
+ function _defineProperty(obj, key, value) {
1211
+ if (key in obj) {
1212
+ Object.defineProperty(obj, key, {
1213
+ value: value,
1214
+ enumerable: true,
1215
+ configurable: true,
1216
+ writable: true
1217
+ });
1218
+ } else {
1219
+ obj[key] = value;
1220
+ }
1221
+
1222
+ return obj;
1223
+ }
1224
+
1225
+ var defineProperty = _defineProperty;
1226
+
1227
+ var canUseDOM = !!(
1228
+ typeof window !== 'undefined' &&
1229
+ window.document &&
1230
+ window.document.createElement
1231
+ );
1232
+
1233
+ var canUseDom = canUseDOM;
1234
+
1235
+ function _objectWithoutPropertiesLoose(source, excluded) {
1236
+ if (source == null) return {};
1237
+ var target = {};
1238
+ var sourceKeys = Object.keys(source);
1239
+ var key, i;
1240
+
1241
+ for (i = 0; i < sourceKeys.length; i++) {
1242
+ key = sourceKeys[i];
1243
+ if (excluded.indexOf(key) >= 0) continue;
1244
+ target[key] = source[key];
1245
+ }
1246
+
1247
+ return target;
1248
+ }
1249
+
1250
+ var objectWithoutPropertiesLoose = _objectWithoutPropertiesLoose;
1251
+
1252
+ function _objectWithoutProperties(source, excluded) {
1253
+ if (source == null) return {};
1254
+ var target = objectWithoutPropertiesLoose(source, excluded);
1255
+ var key, i;
1256
+
1257
+ if (Object.getOwnPropertySymbols) {
1258
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1259
+
1260
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
1261
+ key = sourceSymbolKeys[i];
1262
+ if (excluded.indexOf(key) >= 0) continue;
1263
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1264
+ target[key] = source[key];
1265
+ }
1266
+ }
1267
+
1268
+ return target;
1269
+ }
1270
+
1271
+ var objectWithoutProperties = _objectWithoutProperties;
1272
+
1273
+ var LoginStatus = {
1274
+ CONNECTED: 'connected',
1275
+ AUTHORIZATION_EXPIRED: 'authorization_expired',
1276
+ NOT_AUTHORIZED: 'not_authorized',
1277
+ UNKNOWN: 'unknown'
1278
+ };
1279
+
1280
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
1281
+
1282
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1283
+ const Method = {
1284
+ GET: 'get',
1285
+ POST: 'post',
1286
+ DELETE: 'delete'
1287
+ };
1288
+ class Facebook {
1289
+ constructor(options = {}) {
1290
+ this.options = _objectSpread({
1291
+ domain: 'connect.facebook.net',
1292
+ version: 'v3.2',
1293
+ cookie: false,
1294
+ status: false,
1295
+ xfbml: false,
1296
+ language: 'en_US',
1297
+ frictionlessRequests: false,
1298
+ debug: false,
1299
+ chatSupport: false
1300
+ }, options);
1301
+
1302
+ if (!this.options.appId) {
1303
+ throw new Error('You need to set appId');
1304
+ }
1305
+
1306
+ if (!this.options.wait) {
1307
+ this.init();
1308
+ }
1309
+ }
1310
+
1311
+ getAppId() {
1312
+ return this.options.appId;
1313
+ }
1314
+
1315
+ init() {
1316
+ var _this = this;
1317
+
1318
+ return asyncToGenerator(function* () {
1319
+ if (_this.loadingPromise) {
1320
+ return _this.loadingPromise;
1321
+ }
1322
+
1323
+ _this.loadingPromise = new Promise(resolve => {
1324
+ const _this$options = _this.options,
1325
+ {
1326
+ domain,
1327
+ language,
1328
+ debug,
1329
+ chatSupport
1330
+ } = _this$options,
1331
+ restOptions = objectWithoutProperties(_this$options, ["domain", "language", "debug", "chatSupport"]);
1332
+
1333
+ window.fbAsyncInit = () => {
1334
+ window.FB.init({
1335
+ appId: restOptions.appId,
1336
+ version: restOptions.version,
1337
+ cookie: restOptions.cookie,
1338
+ status: restOptions.status,
1339
+ xfbml: restOptions.xfbml,
1340
+ frictionlessRequests: _this.frictionlessRequests
1341
+ });
1342
+ resolve(window.FB);
1343
+ };
1344
+
1345
+ if (window.document.getElementById('facebook-jssdk')) {
1346
+ return resolve(window.FB);
1347
+ }
1348
+
1349
+ const js = window.document.createElement('script');
1350
+ js.id = 'facebook-jssdk';
1351
+ js.async = true;
1352
+ js.defer = true;
1353
+ js.src = `https://${domain}/${language}/sdk${chatSupport ? '/xfbml.customerchat' : ''}${debug ? '/debug' : ''}.js`;
1354
+ window.document.body.appendChild(js);
1355
+ });
1356
+ return _this.loadingPromise;
1357
+ })();
1358
+ }
1359
+
1360
+ process(method, before = [], after = []) {
1361
+ var _this2 = this;
1362
+
1363
+ return asyncToGenerator(function* () {
1364
+ const fb = yield _this2.init();
1365
+ return new Promise((resolve, reject) => {
1366
+ fb[method](...before, response => {
1367
+ if (!response) {
1368
+ if (method === 'ui') return;
1369
+ reject(new Error('Response is undefined'));
1370
+ } else if (response.error) {
1371
+ const {
1372
+ code,
1373
+ type,
1374
+ message
1375
+ } = response.error;
1376
+ const error = new Error(message);
1377
+ error.code = code;
1378
+ error.type = type;
1379
+ reject(error);
1380
+ } else {
1381
+ resolve(response);
1382
+ }
1383
+ }, ...after);
1384
+ });
1385
+ })();
1386
+ }
1387
+
1388
+ ui(options) {
1389
+ var _this3 = this;
1390
+
1391
+ return asyncToGenerator(function* () {
1392
+ return _this3.process('ui', [options]);
1393
+ })();
1394
+ }
1395
+
1396
+ api(path, method = Method.GET, params = {}) {
1397
+ var _this4 = this;
1398
+
1399
+ return asyncToGenerator(function* () {
1400
+ return _this4.process('api', [path, method, params]);
1401
+ })();
1402
+ }
1403
+
1404
+ login(opts = null) {
1405
+ var _this5 = this;
1406
+
1407
+ return asyncToGenerator(function* () {
1408
+ return _this5.process('login', [], [opts]);
1409
+ })();
1410
+ }
1411
+
1412
+ logout() {
1413
+ var _this6 = this;
1414
+
1415
+ return asyncToGenerator(function* () {
1416
+ return _this6.process('logout');
1417
+ })();
1418
+ }
1419
+
1420
+ getLoginStatus() {
1421
+ var _this7 = this;
1422
+
1423
+ return asyncToGenerator(function* () {
1424
+ return _this7.process('getLoginStatus');
1425
+ })();
1426
+ }
1427
+
1428
+ getAuthResponse() {
1429
+ var _this8 = this;
1430
+
1431
+ return asyncToGenerator(function* () {
1432
+ return _this8.process('getAuthResponse');
1433
+ })();
1434
+ }
1435
+
1436
+ getTokenDetail(loginResponse) {
1437
+ var _this9 = this;
1438
+
1439
+ return asyncToGenerator(function* () {
1440
+ if (loginResponse.status === LoginStatus.CONNECTED && loginResponse.authResponse) {
1441
+ return loginResponse.authResponse;
1442
+ }
1443
+
1444
+ const response = yield _this9.getLoginStatus();
1445
+
1446
+ if (response.status === LoginStatus.CONNECTED && response.authResponse) {
1447
+ return response.authResponse;
1448
+ }
1449
+
1450
+ throw new Error('Token is undefined');
1451
+ })();
1452
+ }
1453
+
1454
+ getProfile(params) {
1455
+ var _this10 = this;
1456
+
1457
+ return asyncToGenerator(function* () {
1458
+ return _this10.api('/me', Method.GET, params);
1459
+ })();
1460
+ }
1461
+
1462
+ getTokenDetailWithProfile(params, response) {
1463
+ var _this11 = this;
1464
+
1465
+ return asyncToGenerator(function* () {
1466
+ const tokenDetail = yield _this11.getTokenDetail(response);
1467
+ const profile = yield _this11.getProfile(params);
1468
+ return {
1469
+ profile,
1470
+ tokenDetail
1471
+ };
1472
+ })();
1473
+ }
1474
+
1475
+ getToken() {
1476
+ var _this12 = this;
1477
+
1478
+ return asyncToGenerator(function* () {
1479
+ const authResponse = yield _this12.getTokenDetail();
1480
+ return authResponse.accessToken;
1481
+ })();
1482
+ }
1483
+
1484
+ getUserId() {
1485
+ var _this13 = this;
1486
+
1487
+ return asyncToGenerator(function* () {
1488
+ const authResponse = yield _this13.getTokenDetail();
1489
+ return authResponse.userID;
1490
+ })();
1491
+ }
1492
+
1493
+ sendInvite(to, options) {
1494
+ var _this14 = this;
1495
+
1496
+ return asyncToGenerator(function* () {
1497
+ return _this14.ui(_objectSpread({
1498
+ to,
1499
+ method: 'apprequests'
1500
+ }, options));
1501
+ })();
1502
+ }
1503
+
1504
+ postAction(ogNamespace, ogAction, ogObject, ogObjectUrl, noFeedStory) {
1505
+ var _this15 = this;
1506
+
1507
+ return asyncToGenerator(function* () {
1508
+ let url = `/me/${ogNamespace}:${ogAction}?${ogObject}=${encodeURIComponent(ogObjectUrl)}`;
1509
+
1510
+ if (noFeedStory === true) {
1511
+ url += '&no_feed_story=true';
1512
+ }
1513
+
1514
+ return _this15.api(url, Method.POST);
1515
+ })();
1516
+ }
1517
+
1518
+ getPermissions() {
1519
+ var _this16 = this;
1520
+
1521
+ return asyncToGenerator(function* () {
1522
+ const response = yield _this16.api('/me/permissions');
1523
+ return response.data;
1524
+ })();
1525
+ }
1526
+
1527
+ hasPermissions(permissions) {
1528
+ var _this17 = this;
1529
+
1530
+ return asyncToGenerator(function* () {
1531
+ const usersPermissions = yield _this17.getPermissions();
1532
+ const findedPermissions = permissions.filter(p => {
1533
+ const currentPermission = usersPermissions.find(row => {
1534
+ const {
1535
+ permission,
1536
+ status
1537
+ } = row;
1538
+ return status === 'granted' && permission === p;
1539
+ });
1540
+ return !!currentPermission;
1541
+ });
1542
+ return findedPermissions.length === permissions.length;
1543
+ })();
1544
+ }
1545
+
1546
+ subscribe(eventName, callback) {
1547
+ var _this18 = this;
1548
+
1549
+ return asyncToGenerator(function* () {
1550
+ const fb = yield _this18.init();
1551
+ fb.Event.subscribe(eventName, callback);
1552
+ })();
1553
+ }
1554
+
1555
+ unsubscribe(eventName, callback) {
1556
+ var _this19 = this;
1557
+
1558
+ return asyncToGenerator(function* () {
1559
+ const fb = yield _this19.init();
1560
+ fb.Event.unsubscribe(eventName, callback);
1561
+ })();
1562
+ }
1563
+
1564
+ parse(parentNode) {
1565
+ var _this20 = this;
1566
+
1567
+ return asyncToGenerator(function* () {
1568
+ const fb = yield _this20.init();
1569
+
1570
+ if (typeof parentNode === 'undefined') {
1571
+ fb.XFBML.parse();
1572
+ } else {
1573
+ fb.XFBML.parse(parentNode);
1574
+ }
1575
+ })();
1576
+ }
1577
+
1578
+ getRequests() {
1579
+ var _this21 = this;
1580
+
1581
+ return asyncToGenerator(function* () {
1582
+ return _this21.api('/me/apprequests');
1583
+ })();
1584
+ }
1585
+
1586
+ removeRequest(requestID) {
1587
+ var _this22 = this;
1588
+
1589
+ return asyncToGenerator(function* () {
1590
+ return _this22.api(requestID, Method.DELETE);
1591
+ })();
1592
+ }
1593
+
1594
+ setAutoGrow() {
1595
+ var _this23 = this;
1596
+
1597
+ return asyncToGenerator(function* () {
1598
+ const fb = yield _this23.init();
1599
+ fb.Canvas.setAutoGrow();
1600
+ })();
1601
+ }
1602
+
1603
+ paySimple(product, quantity = 1) {
1604
+ var _this24 = this;
1605
+
1606
+ return asyncToGenerator(function* () {
1607
+ return _this24.ui({
1608
+ method: 'pay',
1609
+ action: 'purchaseitem',
1610
+ product,
1611
+ quantity
1612
+ });
1613
+ })();
1614
+ }
1615
+
1616
+ pay(product, options) {
1617
+ var _this25 = this;
1618
+
1619
+ return asyncToGenerator(function* () {
1620
+ return _this25.ui(_objectSpread({
1621
+ method: 'pay',
1622
+ action: 'purchaseitem',
1623
+ product
1624
+ }, options));
1625
+ })();
1626
+ }
1627
+
1628
+ }
1629
+ /*
1630
+ sendToFriends: function(options, callback) {
1631
+ if(!options) {
1632
+ options = {};
1633
+ }
1634
+
1635
+ options.method = 'send';
1636
+
1637
+ this.afterLoad(function(err, fbApi) {
1638
+ if(err) {
1639
+ return callback(err);
1640
+ }
1641
+
1642
+ FB.ui(options, function(response) {
1643
+ fbApi._callCallbackByResponse(callback, response);
1644
+ });
1645
+ });
1646
+ },
1647
+
1648
+ sendMessage: function(message, name, caption, description, url, imgUrl, callback) {
1649
+ this.afterLoad(function(err, fbApi) {
1650
+ if(err) {
1651
+ return callback(err);
1652
+ }
1653
+
1654
+ FB.ui({
1655
+ method: 'stream.publish',
1656
+ message: message,
1657
+ attachment: {
1658
+ name: name,
1659
+ caption: caption,
1660
+ description: description,
1661
+ href: url,
1662
+ media:[{
1663
+ type: 'image',
1664
+ src: imgUrl,
1665
+ href: url
1666
+ }]
1667
+ },
1668
+ action_links: [{
1669
+ text: 'Code',
1670
+ href: url
1671
+ }],
1672
+ user_prompt_message: message
1673
+ },
1674
+ function(response) {
1675
+ fbApi._callCallbackByResponse(callback, response);
1676
+ });
1677
+ });
1678
+ },
1679
+
1680
+ sendInviteForm: function(options, callback) {
1681
+ if(typeof options === 'function') {
1682
+ callback = options;
1683
+ options = {};
1684
+ }
1685
+
1686
+ this.afterLoad(function(err, fbApi) {
1687
+ if(err) {
1688
+ return callback(err);
1689
+ }
1690
+
1691
+ options.method = options.method || 'apprequests';
1692
+
1693
+
1694
+ FB.ui(options, function(response) {
1695
+ fbApi._callCallbackByResponse(callback, response);
1696
+ });
1697
+ });
1698
+ },
1699
+
1700
+ checkPageLike: function(pageID, callback) {
1701
+ this.afterLoad(function(err, fbApi) {
1702
+ if(err) {
1703
+ return callback(err);
1704
+ }
1705
+
1706
+ fbApi.getUserID(function(err, userID) {
1707
+ if(err) {
1708
+ return callback(err);
1709
+ }
1710
+
1711
+ var fqlQuery = `SELECT uid FROM page_fan WHERE page_id = ${pageID} and uid = ${userID}`;
1712
+ var query = FB.Data.query(fqlQuery);
1713
+
1714
+ query.wait(function(rows) {
1715
+ if (rows.length === 1 && rows[0].uid === userID) {
1716
+ callback(null, true, query);
1717
+ }
1718
+ else {
1719
+ callback(null, false, query);
1720
+ }
1721
+ });
1722
+ });
1723
+ });
1724
+ },
1725
+
1726
+ sendMessageToFriend: function (friendID, link, callback) {
1727
+ this.afterLoad(function(err, fbApi) {
1728
+ if(err) {
1729
+ return callback(err);
1730
+ }
1731
+
1732
+ FB.ui({
1733
+ to: friendID,
1734
+ method: 'send',
1735
+ link: link
1736
+ }, function(response) {
1737
+ fbApi._callCallbackByResponse(callback, response);
1738
+ });
1739
+ });
1740
+ },
1741
+
1742
+ _prepareUsers: function(data) {
1743
+ var users=[];
1744
+
1745
+ for(var index in data) {
1746
+ var userData=data[index];
1747
+
1748
+ var user = {
1749
+ provider_uid: 'facebook'+'_'+userData.uid,
1750
+ provider: 'facebook',
1751
+ id: userData.uid,
1752
+ name: userData.name,
1753
+ first_name: userData.first_name,
1754
+ last_name: userData.last_name,
1755
+ status: (userData.status!==null) ? userData.status : null,
1756
+ image: '//graph.facebook.com/'+userData.uid+'/picture?'
1757
+ };
1758
+
1759
+ users.push(user);
1760
+ }
1761
+
1762
+ return users;
1763
+ },
1764
+
1765
+ getUserList: function(callback) {
1766
+ this.afterLoad(function(err, fbApi) {
1767
+ if(err) {
1768
+ return callback(err);
1769
+ }
1770
+
1771
+ FB.api('fql', {
1772
+ q: `
1773
+ SELECT uid, name, first_name, last_name, online_presence, status
1774
+ FROM user
1775
+ WHERE uid IN
1776
+ ( SELECT uid2 FROM friend WHERE uid1 = me()) ORDER BY name
1777
+ `,
1778
+ }, function (response)
1779
+ {
1780
+ var users = fbApi._prepareUsers(response.data);
1781
+ callback(null, users, response);
1782
+ });
1783
+ });
1784
+ },
1785
+
1786
+ postFeed: function(options, callback) {
1787
+ this.afterLoad(function(err, fbApi) {
1788
+ if(err) {
1789
+ return callback(err);
1790
+ }
1791
+
1792
+ options.method='feed';
1793
+
1794
+ FB.ui(options, function(response) {
1795
+ fbApi._callCallbackByResponse(callback, response);
1796
+ });
1797
+ });
1798
+ },
1799
+
1800
+ //need publish_stream
1801
+ createAlbum: function(name, description, callback) {
1802
+ this.afterLoad(function(err, fbApi) {
1803
+ if(err) {
1804
+ return callback(err);
1805
+ }
1806
+
1807
+ FB.api('/me/albums', 'post', {
1808
+ name: name,
1809
+ description: description
1810
+ },function(response) {
1811
+ fbApi._callCallbackByResponse(callback, response);
1812
+ });
1813
+ });
1814
+ },
1815
+
1816
+ //need publish_stream
1817
+ addImageToAlbum: function(albumID, imageURL, message, callback) {
1818
+ this.afterLoad(function(err, fbApi) {
1819
+ if(err) {
1820
+ return callback(err);
1821
+ }
1822
+
1823
+ FB.api('/'+albumID+'/photos', 'post', {
1824
+ message: message,
1825
+ url: imageURL
1826
+ }, function(response) {
1827
+ fbApi._callCallbackByResponse(callback, response);
1828
+ });
1829
+ });
1830
+ },
1831
+
1832
+ //'user_photos'
1833
+ getAlbums: function(callback) {
1834
+ this.afterLoad(function(err, fbApi) {
1835
+ if(err) {
1836
+ return callback(err);
1837
+ }
1838
+
1839
+ FB.api('/me/albums', function(response) {
1840
+ fbApi._callCallbackByResponse(callback, response);
1841
+ });
1842
+ });
1843
+ },
1844
+
1845
+ //'user_photos'
1846
+ getAlbumPhotos: function(albumID, callback) {
1847
+ this.afterLoad(function(err, fbApi) {
1848
+ if(err) {
1849
+ return callback(err);
1850
+ }
1851
+
1852
+ FB.api('/'+albumID+'/photos', function(response) {
1853
+ fbApi._callCallbackByResponse(callback, response);
1854
+ });
1855
+ });
1856
+ },
1857
+
1858
+ //'user_photos'
1859
+ getAlbumCoverPicture: function(albumID, callback) {
1860
+ this.afterLoad(function(err, fbApi) {
1861
+ if(err) {
1862
+ return callback(err);
1863
+ }
1864
+
1865
+ FB.api('/'+albumID+'/picture', function(response) {
1866
+ fbApi._callCallbackByResponse(callback, response);
1867
+ });
1868
+ });
1869
+ },
1870
+
1871
+ //'publish_stream'
1872
+ postPhoto: function(photoUrl, message, callback) {
1873
+ this.afterLoad(function(err, fbApi) {
1874
+ if(err) {
1875
+ return callback(err);
1876
+ }
1877
+
1878
+ FB.api('/me/photos', 'post', {
1879
+ message: message,
1880
+ url: photoUrl
1881
+ },function(response) {
1882
+ fbApi._callCallbackByResponse(callback, response);
1883
+ });
1884
+ });
1885
+ },
1886
+
1887
+ getPageInfo: function(callback) {
1888
+ this.afterLoad(function(err, fbApi) {
1889
+ if(err) {
1890
+ return callback(err);
1891
+ }
1892
+
1893
+ FB.Canvas.getPageInfo(function(response) {
1894
+ fbApi._callCallbackByResponse(callback, response);
1895
+ });
1896
+ });
1897
+ }
1898
+ */
1899
+
1900
+ var FacebookContext = createContext();
1901
+
1902
+ let api = null;
1903
+ class Facebook$1 extends Component {
1904
+ constructor(...args) {
1905
+ var _this;
1906
+
1907
+ super(...args);
1908
+ _this = this;
1909
+
1910
+ defineProperty(this, "state", {
1911
+ isReady: false
1912
+ });
1913
+
1914
+ defineProperty(this, "handleInit",
1915
+ /*#__PURE__*/
1916
+ asyncToGenerator(function* () {
1917
+ // do not run if SSR
1918
+ if (!canUseDom) {
1919
+ throw new Error('You can not use Facebook without DOM');
1920
+ }
1921
+
1922
+ const {
1923
+ isReady
1924
+ } = _this.state;
1925
+
1926
+ if (isReady) {
1927
+ return api;
1928
+ }
1929
+
1930
+ if (!api) {
1931
+ const {
1932
+ domain,
1933
+ version,
1934
+ appId,
1935
+ cookie,
1936
+ status,
1937
+ xfbml,
1938
+ language,
1939
+ frictionlessRequests,
1940
+ wait,
1941
+ debug,
1942
+ chatSupport
1943
+ } = _this.props;
1944
+ api = new Facebook({
1945
+ domain,
1946
+ appId,
1947
+ version,
1948
+ cookie,
1949
+ status,
1950
+ xfbml,
1951
+ language,
1952
+ frictionlessRequests,
1953
+ wait,
1954
+ debug,
1955
+ chatSupport
1956
+ });
1957
+ }
1958
+
1959
+ yield api.init();
1960
+
1961
+ if (!_this.state.isReady) {
1962
+ _this.setState({
1963
+ isReady: true
1964
+ });
1965
+ }
1966
+
1967
+ return api;
1968
+ }));
1969
+ }
1970
+
1971
+ componentDidMount() {
1972
+ const {
1973
+ wait
1974
+ } = this.props;
1975
+
1976
+ if (!wait) {
1977
+ this.handleInit();
1978
+ }
1979
+ }
1980
+
1981
+ render() {
1982
+ const {
1983
+ children
1984
+ } = this.props;
1985
+ const {
1986
+ isReady,
1987
+ error
1988
+ } = this.state;
1989
+ const {
1990
+ handleInit
1991
+ } = this;
1992
+ const value = {
1993
+ isReady,
1994
+ error,
1995
+ handleInit,
1996
+ api
1997
+ };
1998
+ return React__default.createElement(FacebookContext.Provider, {
1999
+ value: value
2000
+ }, children);
2001
+ }
2002
+
2003
+ }
2004
+
2005
+ defineProperty(Facebook$1, "defaultProps", {
2006
+ version: 'v3.1',
2007
+ cookie: false,
2008
+ status: false,
2009
+ xfbml: false,
2010
+ language: 'en_US',
2011
+ frictionlessRequests: false,
2012
+ domain: 'connect.facebook.net',
2013
+ children: undefined,
2014
+ wait: false,
2015
+ debug: false,
2016
+ chatSupport: false
2017
+ });
2018
+
2019
+ var _extends_1 = createCommonjsModule(function (module) {
2020
+ function _extends() {
2021
+ module.exports = _extends = Object.assign || function (target) {
2022
+ for (var i = 1; i < arguments.length; i++) {
2023
+ var source = arguments[i];
2024
+
2025
+ for (var key in source) {
2026
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
2027
+ target[key] = source[key];
2028
+ }
2029
+ }
2030
+ }
2031
+
2032
+ return target;
2033
+ };
2034
+
2035
+ return _extends.apply(this, arguments);
2036
+ }
2037
+
2038
+ module.exports = _extends;
2039
+ });
2040
+
2041
+ class Initialize extends Component {
2042
+ componentDidMount() {
2043
+ this.$isMounted = true;
2044
+ this.prepare();
2045
+ }
2046
+
2047
+ componentWillUnmount() {
2048
+ this.$isMounted = false;
2049
+ }
2050
+
2051
+ prepare() {
2052
+ var _this = this;
2053
+
2054
+ return asyncToGenerator(function* () {
2055
+ const {
2056
+ onReady,
2057
+ handleInit
2058
+ } = _this.props;
2059
+ const api = yield handleInit();
2060
+
2061
+ if (onReady && _this.$isMounted) {
2062
+ onReady(api);
2063
+ }
2064
+ })();
2065
+ }
2066
+
2067
+ render() {
2068
+ const {
2069
+ children,
2070
+ isReady,
2071
+ api
2072
+ } = this.props;
2073
+ const childrenProps = {
2074
+ isReady,
2075
+ api
2076
+ };
2077
+
2078
+ if (typeof children === 'function') {
2079
+ return children(childrenProps);
2080
+ }
2081
+
2082
+ return children;
2083
+ }
2084
+
2085
+ }
2086
+
2087
+ defineProperty(Initialize, "defaultProps", {
2088
+ onReady: undefined,
2089
+ api: undefined
2090
+ });
2091
+
2092
+ var Initialize$1 = forwardRef((props, ref) => React__default.createElement(FacebookContext.Consumer, null, ({
2093
+ handleInit,
2094
+ isReady,
2095
+ api
2096
+ }) => React__default.createElement(Initialize, _extends_1({}, props, {
2097
+ handleInit: handleInit,
2098
+ isReady: isReady,
2099
+ api: api,
2100
+ ref: ref
2101
+ }))));
2102
+
2103
+ class Parser extends Component {
2104
+ constructor(...args) {
2105
+ super(...args);
2106
+
2107
+ defineProperty(this, "state", {});
2108
+
2109
+ defineProperty(this, "handleReady", api => {
2110
+ this.setState({
2111
+ api
2112
+ }, this.handleParse);
2113
+ });
2114
+
2115
+ defineProperty(this, "handleContainer", container => {
2116
+ this.setState({
2117
+ container
2118
+ }, this.handleParse);
2119
+ });
2120
+
2121
+ defineProperty(this, "handleParse", () => {
2122
+ const {
2123
+ api,
2124
+ container
2125
+ } = this.state;
2126
+
2127
+ if (!api || !container) {
2128
+ return;
2129
+ }
2130
+
2131
+ api.parse(container);
2132
+ });
2133
+ }
2134
+
2135
+ render() {
2136
+ const {
2137
+ className,
2138
+ children
2139
+ } = this.props;
2140
+ return React__default.createElement("div", {
2141
+ className: className,
2142
+ ref: this.handleContainer
2143
+ }, React__default.createElement(Initialize$1, {
2144
+ onReady: this.handleReady
2145
+ }, children({
2146
+ handleParse: this.handleParse
2147
+ })));
2148
+ }
2149
+
2150
+ }
2151
+
2152
+ defineProperty(Parser, "defaultProps", {
2153
+ className: undefined
2154
+ });
2155
+
2156
+ function getCurrentHref() {
2157
+ if (!canUseDom) {
2158
+ return 'https://www.facebook.com';
2159
+ }
2160
+
2161
+ return window.location.href;
2162
+ }
2163
+
2164
+ class Like extends PureComponent {
2165
+ componentDidUpdate() {
2166
+ const {
2167
+ handleParse
2168
+ } = this.props;
2169
+ handleParse();
2170
+ }
2171
+
2172
+ render() {
2173
+ const {
2174
+ href = getCurrentHref(),
2175
+ layout,
2176
+ colorScheme,
2177
+ action,
2178
+ showFaces,
2179
+ share,
2180
+ children,
2181
+ width,
2182
+ size,
2183
+ kidDirectedSite,
2184
+ referral
2185
+ } = this.props;
2186
+ return React__default.createElement("div", {
2187
+ className: "fb-like",
2188
+ "data-ref": referral,
2189
+ "data-href": href,
2190
+ "data-layout": layout,
2191
+ "data-colorscheme": colorScheme,
2192
+ "data-action": action,
2193
+ "data-show-faces": showFaces,
2194
+ "data-share": share,
2195
+ "data-width": width,
2196
+ "data-size": size,
2197
+ "data-kid-directed-site": kidDirectedSite
2198
+ }, children);
2199
+ }
2200
+
2201
+ }
2202
+
2203
+ defineProperty(Like, "defaultProps", {
2204
+ layout: undefined,
2205
+ showFaces: undefined,
2206
+ colorScheme: undefined,
2207
+ action: undefined,
2208
+ share: undefined,
2209
+ size: undefined,
2210
+ kidDirectedSite: undefined,
2211
+ children: undefined,
2212
+ href: undefined,
2213
+ referral: undefined,
2214
+ width: undefined
2215
+ });
2216
+
2217
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
2218
+ handleParse
2219
+ }) => React__default.createElement(Like, _extends_1({}, props, {
2220
+ handleParse: handleParse,
2221
+ ref: ref
2222
+ }))));
2223
+
2224
+ function clearUndefinedProperties(obj) {
2225
+ if (!obj) {
2226
+ return obj;
2227
+ }
2228
+
2229
+ const newObj = {};
2230
+ Object.keys(obj).forEach(propertyName => {
2231
+ const value = obj[propertyName];
2232
+
2233
+ if (value !== undefined) {
2234
+ newObj[propertyName] = value;
2235
+ }
2236
+ });
2237
+ return newObj;
2238
+ }
2239
+
2240
+ class Process extends Component {
2241
+ constructor(...args) {
2242
+ var _this;
2243
+
2244
+ super(...args);
2245
+ _this = this;
2246
+
2247
+ defineProperty(this, "state", {
2248
+ api: undefined
2249
+ });
2250
+
2251
+ defineProperty(this, "handleProcess",
2252
+ /*#__PURE__*/
2253
+ function () {
2254
+ var _ref = asyncToGenerator(function* (fn, handleSuccess = () => {}) {
2255
+ _this.setState({
2256
+ data: undefined,
2257
+ error: undefined,
2258
+ loading: true
2259
+ });
2260
+
2261
+ try {
2262
+ const {
2263
+ api
2264
+ } = _this.state;
2265
+
2266
+ if (!api) {
2267
+ throw new Error('Facebook is not initialized. Wait for isReady');
2268
+ }
2269
+
2270
+ const data = yield fn(api);
2271
+
2272
+ _this.setState({
2273
+ data,
2274
+ loading: false
2275
+ }, handleSuccess);
2276
+
2277
+ return data;
2278
+ } catch (error) {
2279
+ _this.setState({
2280
+ error,
2281
+ loading: false
2282
+ });
2283
+
2284
+ throw error;
2285
+ }
2286
+ });
2287
+
2288
+ return function (_x) {
2289
+ return _ref.apply(this, arguments);
2290
+ };
2291
+ }());
2292
+
2293
+ defineProperty(this, "handleReady", api => {
2294
+ this.setState({
2295
+ api
2296
+ });
2297
+ });
2298
+ }
2299
+
2300
+ render() {
2301
+ const {
2302
+ children
2303
+ } = this.props;
2304
+ const {
2305
+ api,
2306
+ loading,
2307
+ data,
2308
+ error
2309
+ } = this.state;
2310
+ return React__default.createElement(Initialize$1, {
2311
+ onReady: this.handleReady
2312
+ }, children({
2313
+ loading: !api || loading,
2314
+ handleProcess: this.handleProcess,
2315
+ data,
2316
+ error
2317
+ }));
2318
+ }
2319
+
2320
+ }
2321
+
2322
+ class Send extends Component {
2323
+ constructor(...args) {
2324
+ var _this;
2325
+
2326
+ super(...args);
2327
+ _this = this;
2328
+
2329
+ defineProperty(this, "handleClick",
2330
+ /*#__PURE__*/
2331
+ function () {
2332
+ var _ref = asyncToGenerator(function* (evn) {
2333
+ evn.preventDefault();
2334
+ const {
2335
+ handleProcess
2336
+ } = _this.props;
2337
+ return handleProcess(
2338
+ /*#__PURE__*/
2339
+ function () {
2340
+ var _ref2 = asyncToGenerator(function* (api) {
2341
+ const {
2342
+ link = getCurrentHref(),
2343
+ display,
2344
+ appId = api.getAppId(),
2345
+ to,
2346
+ redirectURI
2347
+ } = _this.props;
2348
+ return api.ui(clearUndefinedProperties({
2349
+ method: 'send',
2350
+ link,
2351
+ display,
2352
+ app_id: appId,
2353
+ to,
2354
+ redirect_uri: redirectURI
2355
+ }));
2356
+ });
2357
+
2358
+ return function (_x2) {
2359
+ return _ref2.apply(this, arguments);
2360
+ };
2361
+ }());
2362
+ });
2363
+
2364
+ return function (_x) {
2365
+ return _ref.apply(this, arguments);
2366
+ };
2367
+ }());
2368
+ }
2369
+
2370
+ render() {
2371
+ const {
2372
+ children,
2373
+ loading
2374
+ } = this.props;
2375
+ return children({
2376
+ loading,
2377
+ handleClick: this.handleClick
2378
+ });
2379
+ }
2380
+
2381
+ }
2382
+
2383
+ defineProperty(Send, "defaultProps", {
2384
+ to: undefined,
2385
+ display: undefined,
2386
+ appId: undefined,
2387
+ redirectURI: undefined
2388
+ });
2389
+
2390
+ forwardRef((props, ref) => React__default.createElement(Process, null, ({
2391
+ loading,
2392
+ handleProcess
2393
+ }) => React__default.createElement(Send, _extends_1({}, props, {
2394
+ loading: loading,
2395
+ handleProcess: handleProcess,
2396
+ ref: ref
2397
+ }))));
2398
+
2399
+ class Share extends Component {
2400
+ constructor(...args) {
2401
+ var _this;
2402
+
2403
+ super(...args);
2404
+ _this = this;
2405
+
2406
+ defineProperty(this, "handleClick",
2407
+ /*#__PURE__*/
2408
+ function () {
2409
+ var _ref = asyncToGenerator(function* (evn) {
2410
+ evn.preventDefault();
2411
+ const {
2412
+ handleProcess
2413
+ } = _this.props;
2414
+ return handleProcess(
2415
+ /*#__PURE__*/
2416
+ function () {
2417
+ var _ref2 = asyncToGenerator(function* (api) {
2418
+ const {
2419
+ href = getCurrentHref(),
2420
+ display,
2421
+ appId = api.getAppId(),
2422
+ hashtag,
2423
+ redirectURI,
2424
+ quote,
2425
+ mobileIframe
2426
+ } = _this.props;
2427
+ return api.ui(clearUndefinedProperties({
2428
+ method: 'share',
2429
+ href,
2430
+ display,
2431
+ app_id: appId,
2432
+ hashtag,
2433
+ redirect_uri: redirectURI,
2434
+ quote,
2435
+ mobile_iframe: mobileIframe
2436
+ }));
2437
+ });
2438
+
2439
+ return function (_x2) {
2440
+ return _ref2.apply(this, arguments);
2441
+ };
2442
+ }());
2443
+ });
2444
+
2445
+ return function (_x) {
2446
+ return _ref.apply(this, arguments);
2447
+ };
2448
+ }());
2449
+ }
2450
+
2451
+ render() {
2452
+ const {
2453
+ children,
2454
+ loading,
2455
+ error,
2456
+ data
2457
+ } = this.props;
2458
+ return children({
2459
+ loading,
2460
+ handleClick: this.handleClick,
2461
+ error,
2462
+ data
2463
+ });
2464
+ }
2465
+
2466
+ }
2467
+
2468
+ defineProperty(Share, "defaultProps", {
2469
+ href: undefined,
2470
+ hashtag: undefined,
2471
+ quote: undefined,
2472
+ mobileIframe: undefined,
2473
+ display: undefined,
2474
+ appId: undefined,
2475
+ redirectURI: undefined
2476
+ });
2477
+
2478
+ var Share$1 = forwardRef((props, ref) => React__default.createElement(Process, null, ({
2479
+ loading,
2480
+ handleProcess,
2481
+ data,
2482
+ error
2483
+ }) => React__default.createElement(Share, _extends_1({}, props, {
2484
+ loading: loading,
2485
+ handleProcess: handleProcess,
2486
+ data: data,
2487
+ error: error,
2488
+ ref: ref
2489
+ }))));
2490
+
2491
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2492
+
2493
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2494
+ function ShareButton(props) {
2495
+ const {
2496
+ className,
2497
+ children
2498
+ } = props,
2499
+ rest = objectWithoutProperties(props, ["className", "children"]);
2500
+
2501
+ return React__default.createElement(Share$1, rest, ({
2502
+ loading,
2503
+ handleClick
2504
+ }) => React__default.createElement("button", {
2505
+ type: "button",
2506
+ disabled: loading,
2507
+ className: className,
2508
+ onClick: handleClick
2509
+ }, children));
2510
+ }
2511
+ ShareButton.defaultProps = _objectSpread$1({}, Share$1.defaultProps, {
2512
+ className: undefined
2513
+ });
2514
+
2515
+ class Page extends PureComponent {
2516
+ componentDidUpdate() {
2517
+ const {
2518
+ handleParse
2519
+ } = this.props;
2520
+ handleParse();
2521
+ }
2522
+
2523
+ render() {
2524
+ const {
2525
+ style,
2526
+ href = getCurrentHref(),
2527
+ tabs,
2528
+ hideCover,
2529
+ width,
2530
+ height,
2531
+ showFacepile,
2532
+ hideCTA,
2533
+ smallHeader,
2534
+ adaptContainerWidth,
2535
+ children
2536
+ } = this.props;
2537
+ return React__default.createElement("div", {
2538
+ className: "fb-page",
2539
+ style: style,
2540
+ "data-tabs": tabs,
2541
+ "data-hide-cover": hideCover,
2542
+ "data-show-facepile": showFacepile,
2543
+ "data-hide-cta": hideCTA,
2544
+ "data-href": href,
2545
+ "data-small-header": smallHeader,
2546
+ "data-adapt-container-width": adaptContainerWidth,
2547
+ "data-height": height,
2548
+ "data-width": width
2549
+ }, children);
2550
+ }
2551
+
2552
+ }
2553
+
2554
+ defineProperty(Page, "defaultProps", {
2555
+ width: undefined,
2556
+ height: undefined,
2557
+ tabs: undefined,
2558
+ hideCover: undefined,
2559
+ showFacepile: undefined,
2560
+ hideCTA: undefined,
2561
+ smallHeader: undefined,
2562
+ adaptContainerWidth: undefined,
2563
+ children: undefined,
2564
+ style: undefined,
2565
+ href: undefined
2566
+ });
2567
+
2568
+ var Page$1 = forwardRef((props, ref) => React__default.createElement(Parser, null, ({
2569
+ handleParse
2570
+ }) => React__default.createElement(Page, _extends_1({}, props, {
2571
+ handleParse: handleParse,
2572
+ ref: ref
2573
+ }))));
2574
+
2575
+ // 3.0 fields without app review https://developers.facebook.com/docs/facebook-login/permissions/?locale=en_US#reference-default
2576
+ var Fields = ['id', 'first_name', 'last_name', 'middle_name', 'name', 'name_format', 'picture', 'short_name', 'email'];
2577
+
2578
+ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
2579
+
2580
+ function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2581
+
2582
+ class Login extends Component {
2583
+ constructor(...args) {
2584
+ var _this;
2585
+
2586
+ super(...args);
2587
+ _this = this;
2588
+
2589
+ defineProperty(this, "handleClick",
2590
+ /*#__PURE__*/
2591
+ function () {
2592
+ var _ref = asyncToGenerator(function* (evn) {
2593
+ evn.preventDefault();
2594
+ const {
2595
+ handleProcess,
2596
+ onCompleted,
2597
+ onError,
2598
+ onSuccess
2599
+ } = _this.props;
2600
+
2601
+ try {
2602
+ yield handleProcess(
2603
+ /*#__PURE__*/
2604
+ function () {
2605
+ var _ref2 = asyncToGenerator(function* (api) {
2606
+ const {
2607
+ scope,
2608
+ fields,
2609
+ returnScopes,
2610
+ rerequest,
2611
+ reauthorize,
2612
+ eventKey
2613
+ } = _this.props;
2614
+ const loginQpts = {
2615
+ scope
2616
+ };
2617
+ const authType = [];
2618
+
2619
+ if (returnScopes) {
2620
+ loginQpts.return_scopes = true;
2621
+ }
2622
+
2623
+ if (rerequest) {
2624
+ authType.push('rerequest');
2625
+ }
2626
+
2627
+ if (reauthorize) {
2628
+ authType.push('reauthenticate');
2629
+ }
2630
+
2631
+ if (authType.length) {
2632
+ loginQpts.auth_type = authType.join(',');
2633
+ }
2634
+
2635
+ const loginResponse = yield api.login(loginQpts);
2636
+
2637
+ if (loginResponse.status !== 'connected') {
2638
+ throw new Error('Unauthorized user');
2639
+ }
2640
+
2641
+ const data = yield api.getTokenDetailWithProfile({
2642
+ fields
2643
+ }, loginResponse);
2644
+
2645
+ if (onCompleted) {
2646
+ yield onCompleted(_objectSpread$2({}, data, {
2647
+ eventKey
2648
+ }));
2649
+ }
2650
+
2651
+ return data;
2652
+ });
2653
+
2654
+ return function (_x2) {
2655
+ return _ref2.apply(this, arguments);
2656
+ };
2657
+ }(), onSuccess);
2658
+ } catch (error) {
2659
+ if (onError) {
2660
+ onError(error);
2661
+ }
2662
+ }
2663
+ });
2664
+
2665
+ return function (_x) {
2666
+ return _ref.apply(this, arguments);
2667
+ };
2668
+ }());
2669
+ }
2670
+
2671
+ render() {
2672
+ const {
2673
+ children,
2674
+ loading,
2675
+ error,
2676
+ data
2677
+ } = this.props;
2678
+ return children({
2679
+ loading,
2680
+ handleClick: this.handleClick,
2681
+ error,
2682
+ data
2683
+ });
2684
+ }
2685
+
2686
+ }
2687
+
2688
+ defineProperty(Login, "defaultProps", {
2689
+ scope: '',
2690
+ fields: Fields,
2691
+ returnScopes: false,
2692
+ rerequest: false,
2693
+ reauthorize: false,
2694
+ onCompleted: undefined,
2695
+ onError: undefined,
2696
+ eventKey: undefined
2697
+ });
2698
+
2699
+ var Login$1 = forwardRef((props, ref) => React__default.createElement(Process, null, ({
2700
+ loading,
2701
+ handleProcess,
2702
+ data,
2703
+ error
2704
+ }) => React__default.createElement(Login, _extends_1({}, props, {
2705
+ loading: loading,
2706
+ handleProcess: handleProcess,
2707
+ data: data,
2708
+ error: error,
2709
+ ref: ref
2710
+ }))));
2711
+
2712
+ var spin = createCommonjsModule(function (module) {
2713
+ (function (root, factory) {
2714
+
2715
+ /* CommonJS */
2716
+ if ( module.exports) module.exports = factory();
2717
+
2718
+ /* AMD module */
2719
+ else root.Spinner = factory();
2720
+ }(commonjsGlobal, function () {
2721
+
2722
+ var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */
2723
+ , animations = {} /* Animation rules keyed by their name */
2724
+ , useCssAnimations /* Whether to use CSS animations or setTimeout */
2725
+ , sheet; /* A stylesheet to hold the @keyframe or VML rules. */
2726
+
2727
+ /**
2728
+ * Utility function to create elements. If no tag name is given,
2729
+ * a DIV is created. Optionally properties can be passed.
2730
+ */
2731
+ function createEl (tag, prop) {
2732
+ var el = document.createElement(tag || 'div')
2733
+ , n;
2734
+
2735
+ for (n in prop) el[n] = prop[n];
2736
+ return el
2737
+ }
2738
+
2739
+ /**
2740
+ * Appends children and returns the parent.
2741
+ */
2742
+ function ins (parent /* child1, child2, ...*/) {
2743
+ for (var i = 1, n = arguments.length; i < n; i++) {
2744
+ parent.appendChild(arguments[i]);
2745
+ }
2746
+
2747
+ return parent
2748
+ }
2749
+
2750
+ /**
2751
+ * Creates an opacity keyframe animation rule and returns its name.
2752
+ * Since most mobile Webkits have timing issues with animation-delay,
2753
+ * we create separate rules for each line/segment.
2754
+ */
2755
+ function addAnimation (alpha, trail, i, lines) {
2756
+ var name = ['opacity', trail, ~~(alpha * 100), i, lines].join('-')
2757
+ , start = 0.01 + i/lines * 100
2758
+ , z = Math.max(1 - (1-alpha) / trail * (100-start), alpha)
2759
+ , prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase()
2760
+ , pre = prefix && '-' + prefix + '-' || '';
2761
+
2762
+ if (!animations[name]) {
2763
+ sheet.insertRule(
2764
+ '@' + pre + 'keyframes ' + name + '{' +
2765
+ '0%{opacity:' + z + '}' +
2766
+ start + '%{opacity:' + alpha + '}' +
2767
+ (start+0.01) + '%{opacity:1}' +
2768
+ (start+trail) % 100 + '%{opacity:' + alpha + '}' +
2769
+ '100%{opacity:' + z + '}' +
2770
+ '}', sheet.cssRules.length);
2771
+
2772
+ animations[name] = 1;
2773
+ }
2774
+
2775
+ return name
2776
+ }
2777
+
2778
+ /**
2779
+ * Tries various vendor prefixes and returns the first supported property.
2780
+ */
2781
+ function vendor (el, prop) {
2782
+ var s = el.style
2783
+ , pp
2784
+ , i;
2785
+
2786
+ prop = prop.charAt(0).toUpperCase() + prop.slice(1);
2787
+ if (s[prop] !== undefined) return prop
2788
+ for (i = 0; i < prefixes.length; i++) {
2789
+ pp = prefixes[i]+prop;
2790
+ if (s[pp] !== undefined) return pp
2791
+ }
2792
+ }
2793
+
2794
+ /**
2795
+ * Sets multiple style properties at once.
2796
+ */
2797
+ function css (el, prop) {
2798
+ for (var n in prop) {
2799
+ el.style[vendor(el, n) || n] = prop[n];
2800
+ }
2801
+
2802
+ return el
2803
+ }
2804
+
2805
+ /**
2806
+ * Fills in default values.
2807
+ */
2808
+ function merge (obj) {
2809
+ for (var i = 1; i < arguments.length; i++) {
2810
+ var def = arguments[i];
2811
+ for (var n in def) {
2812
+ if (obj[n] === undefined) obj[n] = def[n];
2813
+ }
2814
+ }
2815
+ return obj
2816
+ }
2817
+
2818
+ /**
2819
+ * Returns the line color from the given string or array.
2820
+ */
2821
+ function getColor (color, idx) {
2822
+ return typeof color == 'string' ? color : color[idx % color.length]
2823
+ }
2824
+
2825
+ // Built-in defaults
2826
+
2827
+ var defaults = {
2828
+ lines: 12 // The number of lines to draw
2829
+ , length: 7 // The length of each line
2830
+ , width: 5 // The line thickness
2831
+ , radius: 10 // The radius of the inner circle
2832
+ , scale: 1.0 // Scales overall size of the spinner
2833
+ , corners: 1 // Roundness (0..1)
2834
+ , color: '#000' // #rgb or #rrggbb
2835
+ , opacity: 1/4 // Opacity of the lines
2836
+ , rotate: 0 // Rotation offset
2837
+ , direction: 1 // 1: clockwise, -1: counterclockwise
2838
+ , speed: 1 // Rounds per second
2839
+ , trail: 100 // Afterglow percentage
2840
+ , fps: 20 // Frames per second when using setTimeout()
2841
+ , zIndex: 2e9 // Use a high z-index by default
2842
+ , className: 'spinner' // CSS class to assign to the element
2843
+ , top: '50%' // center vertically
2844
+ , left: '50%' // center horizontally
2845
+ , shadow: false // Whether to render a shadow
2846
+ , hwaccel: false // Whether to use hardware acceleration (might be buggy)
2847
+ , position: 'absolute' // Element positioning
2848
+ };
2849
+
2850
+ /** The constructor */
2851
+ function Spinner (o) {
2852
+ this.opts = merge(o || {}, Spinner.defaults, defaults);
2853
+ }
2854
+
2855
+ // Global defaults that override the built-ins:
2856
+ Spinner.defaults = {};
2857
+
2858
+ merge(Spinner.prototype, {
2859
+ /**
2860
+ * Adds the spinner to the given target element. If this instance is already
2861
+ * spinning, it is automatically removed from its previous target b calling
2862
+ * stop() internally.
2863
+ */
2864
+ spin: function (target) {
2865
+ this.stop();
2866
+
2867
+ var self = this
2868
+ , o = self.opts
2869
+ , el = self.el = createEl(null, {className: o.className});
2870
+
2871
+ css(el, {
2872
+ position: o.position
2873
+ , width: 0
2874
+ , zIndex: o.zIndex
2875
+ , left: o.left
2876
+ , top: o.top
2877
+ });
2878
+
2879
+ if (target) {
2880
+ target.insertBefore(el, target.firstChild || null);
2881
+ }
2882
+
2883
+ el.setAttribute('role', 'progressbar');
2884
+ self.lines(el, self.opts);
2885
+
2886
+ if (!useCssAnimations) {
2887
+ // No CSS animation support, use setTimeout() instead
2888
+ var i = 0
2889
+ , start = (o.lines - 1) * (1 - o.direction) / 2
2890
+ , alpha
2891
+ , fps = o.fps
2892
+ , f = fps / o.speed
2893
+ , ostep = (1 - o.opacity) / (f * o.trail / 100)
2894
+ , astep = f / o.lines
2895
+
2896
+ ;(function anim () {
2897
+ i++;
2898
+ for (var j = 0; j < o.lines; j++) {
2899
+ alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity);
2900
+
2901
+ self.opacity(el, j * o.direction + start, alpha, o);
2902
+ }
2903
+ self.timeout = self.el && setTimeout(anim, ~~(1000 / fps));
2904
+ })();
2905
+ }
2906
+ return self
2907
+ }
2908
+
2909
+ /**
2910
+ * Stops and removes the Spinner.
2911
+ */
2912
+ , stop: function () {
2913
+ var el = this.el;
2914
+ if (el) {
2915
+ clearTimeout(this.timeout);
2916
+ if (el.parentNode) el.parentNode.removeChild(el);
2917
+ this.el = undefined;
2918
+ }
2919
+ return this
2920
+ }
2921
+
2922
+ /**
2923
+ * Internal method that draws the individual lines. Will be overwritten
2924
+ * in VML fallback mode below.
2925
+ */
2926
+ , lines: function (el, o) {
2927
+ var i = 0
2928
+ , start = (o.lines - 1) * (1 - o.direction) / 2
2929
+ , seg;
2930
+
2931
+ function fill (color, shadow) {
2932
+ return css(createEl(), {
2933
+ position: 'absolute'
2934
+ , width: o.scale * (o.length + o.width) + 'px'
2935
+ , height: o.scale * o.width + 'px'
2936
+ , background: color
2937
+ , boxShadow: shadow
2938
+ , transformOrigin: 'left'
2939
+ , transform: 'rotate(' + ~~(360/o.lines*i + o.rotate) + 'deg) translate(' + o.scale*o.radius + 'px' + ',0)'
2940
+ , borderRadius: (o.corners * o.scale * o.width >> 1) + 'px'
2941
+ })
2942
+ }
2943
+
2944
+ for (; i < o.lines; i++) {
2945
+ seg = css(createEl(), {
2946
+ position: 'absolute'
2947
+ , top: 1 + ~(o.scale * o.width / 2) + 'px'
2948
+ , transform: o.hwaccel ? 'translate3d(0,0,0)' : ''
2949
+ , opacity: o.opacity
2950
+ , animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1 / o.speed + 's linear infinite'
2951
+ });
2952
+
2953
+ if (o.shadow) ins(seg, css(fill('#000', '0 0 4px #000'), {top: '2px'}));
2954
+ ins(el, ins(seg, fill(getColor(o.color, i), '0 0 1px rgba(0,0,0,.1)')));
2955
+ }
2956
+ return el
2957
+ }
2958
+
2959
+ /**
2960
+ * Internal method that adjusts the opacity of a single line.
2961
+ * Will be overwritten in VML fallback mode below.
2962
+ */
2963
+ , opacity: function (el, i, val) {
2964
+ if (i < el.childNodes.length) el.childNodes[i].style.opacity = val;
2965
+ }
2966
+
2967
+ });
2968
+
2969
+
2970
+ function initVML () {
2971
+
2972
+ /* Utility function to create a VML tag */
2973
+ function vml (tag, attr) {
2974
+ return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr)
2975
+ }
2976
+
2977
+ // No CSS transforms but VML support, add a CSS rule for VML elements:
2978
+ sheet.addRule('.spin-vml', 'behavior:url(#default#VML)');
2979
+
2980
+ Spinner.prototype.lines = function (el, o) {
2981
+ var r = o.scale * (o.length + o.width)
2982
+ , s = o.scale * 2 * r;
2983
+
2984
+ function grp () {
2985
+ return css(
2986
+ vml('group', {
2987
+ coordsize: s + ' ' + s
2988
+ , coordorigin: -r + ' ' + -r
2989
+ })
2990
+ , { width: s, height: s }
2991
+ )
2992
+ }
2993
+
2994
+ var margin = -(o.width + o.length) * o.scale * 2 + 'px'
2995
+ , g = css(grp(), {position: 'absolute', top: margin, left: margin})
2996
+ , i;
2997
+
2998
+ function seg (i, dx, filter) {
2999
+ ins(
3000
+ g
3001
+ , ins(
3002
+ css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx})
3003
+ , ins(
3004
+ css(
3005
+ vml('roundrect', {arcsize: o.corners})
3006
+ , { width: r
3007
+ , height: o.scale * o.width
3008
+ , left: o.scale * o.radius
3009
+ , top: -o.scale * o.width >> 1
3010
+ , filter: filter
3011
+ }
3012
+ )
3013
+ , vml('fill', {color: getColor(o.color, i), opacity: o.opacity})
3014
+ , vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change
3015
+ )
3016
+ )
3017
+ );
3018
+ }
3019
+
3020
+ if (o.shadow)
3021
+ for (i = 1; i <= o.lines; i++) {
3022
+ seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)');
3023
+ }
3024
+
3025
+ for (i = 1; i <= o.lines; i++) seg(i);
3026
+ return ins(el, g)
3027
+ };
3028
+
3029
+ Spinner.prototype.opacity = function (el, i, val, o) {
3030
+ var c = el.firstChild;
3031
+ o = o.shadow && o.lines || 0;
3032
+ if (c && i + o < c.childNodes.length) {
3033
+ c = c.childNodes[i + o]; c = c && c.firstChild; c = c && c.firstChild;
3034
+ if (c) c.opacity = val;
3035
+ }
3036
+ };
3037
+ }
3038
+
3039
+ if (typeof document !== 'undefined') {
3040
+ sheet = (function () {
3041
+ var el = createEl('style', {type : 'text/css'});
3042
+ ins(document.getElementsByTagName('head')[0], el);
3043
+ return el.sheet || el.styleSheet
3044
+ }());
3045
+
3046
+ var probe = css(createEl('group'), {behavior: 'url(#default#VML)'});
3047
+
3048
+ if (!vendor(probe, 'transform') && probe.adj) initVML();
3049
+ else useCssAnimations = vendor(probe, 'animation');
3050
+ }
3051
+
3052
+ return Spinner
3053
+
3054
+ }));
3055
+ });
3056
+
3057
+ var dist = createCommonjsModule(function (module, exports) {
3058
+
3059
+ Object.defineProperty(exports, "__esModule", {
3060
+ value: true
3061
+ });
3062
+
3063
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
3064
+
3065
+
3066
+
3067
+ var _react2 = _interopRequireDefault(React__default);
3068
+
3069
+
3070
+
3071
+ var _propTypes2 = _interopRequireDefault(PropTypes);
3072
+
3073
+
3074
+
3075
+ var _spin2 = _interopRequireDefault(spin);
3076
+
3077
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3078
+
3079
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3080
+
3081
+ function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
3082
+
3083
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
3084
+
3085
+ var Spinner = function (_Component) {
3086
+ _inherits(Spinner, _Component);
3087
+
3088
+ function Spinner() {
3089
+ _classCallCheck(this, Spinner);
3090
+
3091
+ return _possibleConstructorReturn(this, (Spinner.__proto__ || Object.getPrototypeOf(Spinner)).apply(this, arguments));
3092
+ }
3093
+
3094
+ _createClass(Spinner, [{
3095
+ key: 'componentDidMount',
3096
+ value: function componentDidMount() {
3097
+ this.updateSpinner();
3098
+ }
3099
+ }, {
3100
+ key: 'componentDidUpdate',
3101
+ value: function componentDidUpdate() {
3102
+ this.updateSpinner();
3103
+ }
3104
+ }, {
3105
+ key: 'componentWillUnmount',
3106
+ value: function componentWillUnmount() {
3107
+ if (this.spinner) {
3108
+ this.spinner.stop();
3109
+ this.spinner = null;
3110
+ }
3111
+ }
3112
+ }, {
3113
+ key: 'updateSpinner',
3114
+ value: function updateSpinner() {
3115
+ var loaded = this.props.loaded;
3116
+
3117
+ if (!loaded && !this.spinner) {
3118
+ this.spinner = new _spin2.default(this.props.config);
3119
+ this.spinner.spin(this.refs.loader);
3120
+ } else if (loaded && this.spinner) {
3121
+ this.spinner.stop();
3122
+ this.spinner = null;
3123
+ }
3124
+ }
3125
+ }, {
3126
+ key: 'render',
3127
+ value: function render() {
3128
+ var _props = this.props,
3129
+ loaded = _props.loaded,
3130
+ className = _props.className;
3131
+
3132
+
3133
+ if (loaded) {
3134
+ return this.props.children ? React__default.Children.only(this.props.children) : null;
3135
+ }
3136
+
3137
+ return _react2.default.createElement('div', { className: className, ref: 'loader' });
3138
+ }
3139
+ }]);
3140
+
3141
+ return Spinner;
3142
+ }(React__default.Component);
3143
+
3144
+ Spinner.propTypes = {
3145
+ className: _propTypes2.default.string,
3146
+ config: _propTypes2.default.object.isRequired,
3147
+ loaded: _propTypes2.default.bool.isRequired,
3148
+ children: _propTypes2.default.node
3149
+ };
3150
+ Spinner.defaultProps = {
3151
+ config: {},
3152
+ loaded: false,
3153
+ className: 'loader'
3154
+ };
3155
+ exports.default = Spinner;
3156
+ });
3157
+
3158
+ var Spinner = unwrapExports(dist);
3159
+
3160
+ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
3161
+
3162
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(source, true).forEach(function (key) { defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
3163
+ function LoginButton(props) {
3164
+ const {
3165
+ children,
3166
+ className,
3167
+ spinner,
3168
+ spinnerConfig
3169
+ } = props,
3170
+ rest = objectWithoutProperties(props, ["children", "className", "spinner", "spinnerConfig"]);
3171
+
3172
+ return React__default.createElement(Login$1, rest, ({
3173
+ loading,
3174
+ handleClick
3175
+ }) => React__default.createElement("button", {
3176
+ type: "button",
3177
+ className: className,
3178
+ onClick: handleClick,
3179
+ disabled: loading
3180
+ }, children, spinner && loading && React__default.createElement(Spinner, {
3181
+ config: spinnerConfig
3182
+ })));
3183
+ }
3184
+ LoginButton.defaultProps = _objectSpread$3({}, Login$1.defaultProps, {
3185
+ className: undefined,
3186
+ spinnerConfig: {},
3187
+ spinner: true
3188
+ });
3189
+
3190
+ class EmbeddedPost extends PureComponent {
3191
+ componentDidUpdate() {
3192
+ const {
3193
+ handleParse
3194
+ } = this.props;
3195
+ handleParse();
3196
+ }
3197
+
3198
+ render() {
3199
+ const {
3200
+ href,
3201
+ width,
3202
+ showText,
3203
+ children
3204
+ } = this.props;
3205
+ return React__default.createElement("div", {
3206
+ className: "fb-post",
3207
+ "data-href": href,
3208
+ "data-width": width,
3209
+ "data-show-text": showText
3210
+ }, children);
3211
+ }
3212
+
3213
+ }
3214
+
3215
+ defineProperty(EmbeddedPost, "defaultProps", {
3216
+ width: undefined,
3217
+ showText: undefined,
3218
+ children: undefined
3219
+ });
3220
+
3221
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3222
+ handleParse
3223
+ }) => React__default.createElement(EmbeddedPost, _extends_1({}, props, {
3224
+ handleParse: handleParse,
3225
+ ref: ref
3226
+ }))));
3227
+
3228
+ class EmbeddedVideo extends PureComponent {
3229
+ componentDidUpdate() {
3230
+ const {
3231
+ handleParse
3232
+ } = this.props;
3233
+ handleParse();
3234
+ }
3235
+
3236
+ render() {
3237
+ const {
3238
+ href,
3239
+ width,
3240
+ showText,
3241
+ allowFullScreen,
3242
+ autoPlay,
3243
+ showCaptions,
3244
+ children
3245
+ } = this.props;
3246
+ return React__default.createElement("div", {
3247
+ className: "fb-video",
3248
+ "data-href": href,
3249
+ "data-width": width,
3250
+ "data-show-text": showText,
3251
+ "data-show-captions": showCaptions,
3252
+ "data-autoplay": autoPlay,
3253
+ "data-allowfullscreen": allowFullScreen
3254
+ }, children);
3255
+ }
3256
+
3257
+ }
3258
+
3259
+ defineProperty(EmbeddedVideo, "defaultProps", {
3260
+ width: undefined,
3261
+ showText: undefined,
3262
+ allowFullScreen: undefined,
3263
+ autoPlay: undefined,
3264
+ showCaptions: undefined,
3265
+ children: undefined
3266
+ });
3267
+
3268
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3269
+ handleParse
3270
+ }) => React__default.createElement(EmbeddedVideo, _extends_1({}, props, {
3271
+ handleParse: handleParse,
3272
+ ref: ref
3273
+ }))));
3274
+
3275
+ class Comments extends PureComponent {
3276
+ componentDidUpdate() {
3277
+ const {
3278
+ handleParse
3279
+ } = this.props;
3280
+ handleParse();
3281
+ }
3282
+
3283
+ render() {
3284
+ const {
3285
+ colorScheme,
3286
+ href = getCurrentHref(),
3287
+ numPosts,
3288
+ orderBy,
3289
+ width,
3290
+ children,
3291
+ mobile
3292
+ } = this.props;
3293
+ return React__default.createElement("div", {
3294
+ className: "fb-comments",
3295
+ "data-colorscheme": colorScheme,
3296
+ "data-numposts": numPosts,
3297
+ "data-href": href,
3298
+ "data-order-by": orderBy,
3299
+ "data-width": width,
3300
+ "data-skin": colorScheme,
3301
+ "data-mobile": mobile
3302
+ }, children);
3303
+ }
3304
+
3305
+ }
3306
+
3307
+ defineProperty(Comments, "defaultProps", {
3308
+ href: undefined,
3309
+ numPosts: undefined,
3310
+ orderBy: undefined,
3311
+ width: undefined,
3312
+ colorScheme: undefined,
3313
+ children: undefined,
3314
+ mobile: undefined
3315
+ });
3316
+
3317
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3318
+ handleParse
3319
+ }) => React__default.createElement(Comments, _extends_1({}, props, {
3320
+ handleParse: handleParse,
3321
+ ref: ref
3322
+ }))));
3323
+
3324
+ class CommentsCount extends PureComponent {
3325
+ componentDidUpdate() {
3326
+ const {
3327
+ handleParse
3328
+ } = this.props;
3329
+ handleParse();
3330
+ }
3331
+
3332
+ render() {
3333
+ const {
3334
+ href = getCurrentHref(),
3335
+ children
3336
+ } = this.props;
3337
+ return React__default.createElement("span", {
3338
+ className: "fb-comments-count",
3339
+ "data-href": href
3340
+ }, children);
3341
+ }
3342
+
3343
+ }
3344
+
3345
+ defineProperty(CommentsCount, "defaultProps", {
3346
+ href: undefined,
3347
+ children: undefined
3348
+ });
3349
+
3350
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3351
+ handleParse
3352
+ }) => React__default.createElement(CommentsCount, _extends_1({}, props, {
3353
+ handleParse: handleParse,
3354
+ ref: ref
3355
+ }))));
3356
+
3357
+ class Feed extends Component {
3358
+ constructor(...args) {
3359
+ var _this;
3360
+
3361
+ super(...args);
3362
+ _this = this;
3363
+
3364
+ defineProperty(this, "handleClick",
3365
+ /*#__PURE__*/
3366
+ function () {
3367
+ var _ref = asyncToGenerator(function* (evn) {
3368
+ evn.preventDefault();
3369
+ const {
3370
+ handleProcess
3371
+ } = _this.props;
3372
+ return handleProcess(
3373
+ /*#__PURE__*/
3374
+ function () {
3375
+ var _ref2 = asyncToGenerator(function* (api) {
3376
+ const {
3377
+ link = getCurrentHref(),
3378
+ display,
3379
+ appId = api.getAppId(),
3380
+ redirectURI,
3381
+ from,
3382
+ to,
3383
+ picture,
3384
+ source,
3385
+ name,
3386
+ caption,
3387
+ description,
3388
+ dataRef
3389
+ } = _this.props;
3390
+ return api.ui(clearUndefinedProperties({
3391
+ method: 'feed',
3392
+ link,
3393
+ display,
3394
+ app_id: appId,
3395
+ redirect_uri: redirectURI,
3396
+ from,
3397
+ to,
3398
+ picture,
3399
+ source,
3400
+ name,
3401
+ caption,
3402
+ description,
3403
+ ref: dataRef
3404
+ }));
3405
+ });
3406
+
3407
+ return function (_x2) {
3408
+ return _ref2.apply(this, arguments);
3409
+ };
3410
+ }());
3411
+ });
3412
+
3413
+ return function (_x) {
3414
+ return _ref.apply(this, arguments);
3415
+ };
3416
+ }());
3417
+ }
3418
+
3419
+ render() {
3420
+ const {
3421
+ children,
3422
+ loading,
3423
+ error,
3424
+ data
3425
+ } = this.props;
3426
+ return children({
3427
+ loading,
3428
+ handleClick: this.handleClick,
3429
+ error,
3430
+ data
3431
+ });
3432
+ }
3433
+
3434
+ }
3435
+
3436
+ defineProperty(Feed, "defaultProps", {
3437
+ link: undefined,
3438
+ display: undefined,
3439
+ appId: undefined,
3440
+ redirectURI: undefined,
3441
+ from: undefined,
3442
+ to: undefined,
3443
+ source: undefined,
3444
+ picture: undefined,
3445
+ name: undefined,
3446
+ caption: undefined,
3447
+ description: undefined,
3448
+ dataRef: undefined
3449
+ });
3450
+
3451
+ forwardRef((props, ref) => React__default.createElement(Process, null, ({
3452
+ loading,
3453
+ handleProcess,
3454
+ error,
3455
+ data
3456
+ }) => React__default.createElement(Feed, _extends_1({}, props, {
3457
+ loading: loading,
3458
+ handleProcess: handleProcess,
3459
+ data: data,
3460
+ error: error,
3461
+ ref: ref
3462
+ }))));
3463
+
3464
+ class Group extends PureComponent {
3465
+ componentDidUpdate() {
3466
+ const {
3467
+ handleParse
3468
+ } = this.props;
3469
+ handleParse();
3470
+ }
3471
+
3472
+ render() {
3473
+ const {
3474
+ style,
3475
+ href = getCurrentHref(),
3476
+ width,
3477
+ showSocialContext,
3478
+ showMetaData,
3479
+ children,
3480
+ skin
3481
+ } = this.props;
3482
+ return React__default.createElement("div", {
3483
+ className: "fb-group",
3484
+ style: style,
3485
+ "data-href": href,
3486
+ "data-width": width,
3487
+ "data-show-social-context": showSocialContext,
3488
+ "data-show-metadata": showMetaData,
3489
+ "data-skin": skin
3490
+ }, children);
3491
+ }
3492
+
3493
+ }
3494
+
3495
+ defineProperty(Group, "defaultProps", {
3496
+ showSocialContext: undefined,
3497
+ showMetaData: undefined,
3498
+ width: undefined,
3499
+ children: undefined,
3500
+ style: undefined,
3501
+ href: undefined,
3502
+ skin: undefined
3503
+ });
3504
+
3505
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3506
+ handleParse
3507
+ }) => React__default.createElement(Group, _extends_1({}, props, {
3508
+ handleParse: handleParse,
3509
+ ref: ref
3510
+ }))));
3511
+
3512
+ class LoginStatus$1 extends Component {
3513
+ constructor(..._args) {
3514
+ var _this;
3515
+
3516
+ super(..._args);
3517
+ _this = this;
3518
+
3519
+ defineProperty(this, "state", {});
3520
+
3521
+ defineProperty(this, "handleReady",
3522
+ /*#__PURE__*/
3523
+ function () {
3524
+ var _ref = asyncToGenerator(function* (api) {
3525
+ const {
3526
+ event
3527
+ } = _this.props;
3528
+
3529
+ _this.setState({
3530
+ api
3531
+ });
3532
+
3533
+ yield api.subscribe(event, _this.handleChange);
3534
+ });
3535
+
3536
+ return function (_x) {
3537
+ return _ref.apply(this, arguments);
3538
+ };
3539
+ }());
3540
+
3541
+ defineProperty(this, "handleChange", (...args) => {
3542
+ const {
3543
+ onChange
3544
+ } = this.props;
3545
+
3546
+ if (onChange) {
3547
+ onChange(...args);
3548
+ }
3549
+ });
3550
+ }
3551
+
3552
+ componentWillUnmount() {
3553
+ const {
3554
+ state: {
3555
+ api
3556
+ },
3557
+ props: {
3558
+ event
3559
+ }
3560
+ } = this;
3561
+
3562
+ if (api) {
3563
+ api.unsubscribe(event, this.handleChange);
3564
+ }
3565
+ }
3566
+
3567
+ render() {
3568
+ const {
3569
+ children
3570
+ } = this.props;
3571
+ return React__default.createElement(Initialize$1, {
3572
+ onReady: this.handleReady
3573
+ }, children);
3574
+ }
3575
+
3576
+ }
3577
+
3578
+ defineProperty(LoginStatus$1, "defaultProps", {
3579
+ onChange: undefined
3580
+ });
3581
+
3582
+ class Profile extends Component {
3583
+ constructor(...args) {
3584
+ var _this;
3585
+
3586
+ super(...args);
3587
+ _this = this;
3588
+
3589
+ defineProperty(this, "state", {
3590
+ loading: true
3591
+ });
3592
+
3593
+ defineProperty(this, "handleReady",
3594
+ /*#__PURE__*/
3595
+ function () {
3596
+ var _ref = asyncToGenerator(function* (api) {
3597
+ _this.api = api;
3598
+
3599
+ _this.updateProfile();
3600
+ });
3601
+
3602
+ return function (_x) {
3603
+ return _ref.apply(this, arguments);
3604
+ };
3605
+ }());
3606
+
3607
+ defineProperty(this, "handleStatusChange", () => {
3608
+ this.updateProfile();
3609
+ });
3610
+ }
3611
+
3612
+ updateProfile() {
3613
+ var _this2 = this;
3614
+
3615
+ return asyncToGenerator(function* () {
3616
+ const {
3617
+ api,
3618
+ props: {
3619
+ fields
3620
+ }
3621
+ } = _this2;
3622
+
3623
+ if (!api) {
3624
+ return;
3625
+ }
3626
+
3627
+ try {
3628
+ const response = yield api.getLoginStatus();
3629
+
3630
+ if (response.status !== LoginStatus.CONNECTED) {
3631
+ _this2.setState({
3632
+ profile: undefined,
3633
+ loading: false,
3634
+ error: undefined
3635
+ });
3636
+
3637
+ return;
3638
+ }
3639
+
3640
+ const profile = yield api.getProfile({
3641
+ fields
3642
+ });
3643
+
3644
+ _this2.setState({
3645
+ profile,
3646
+ loading: false,
3647
+ error: undefined
3648
+ });
3649
+ } catch (error) {
3650
+ _this2.setState({
3651
+ profile: undefined,
3652
+ loading: false,
3653
+ error
3654
+ });
3655
+ }
3656
+ })();
3657
+ }
3658
+
3659
+ render() {
3660
+ const {
3661
+ children
3662
+ } = this.props;
3663
+ const {
3664
+ profile,
3665
+ loading,
3666
+ error
3667
+ } = this.state;
3668
+ return React__default.createElement(Initialize$1, {
3669
+ onReady: this.handleReady
3670
+ }, React__default.createElement(LoginStatus$1, {
3671
+ event: "auth.statusChange",
3672
+ onChange: this.handleStatusChange
3673
+ }, children({
3674
+ profile,
3675
+ loading,
3676
+ error
3677
+ })));
3678
+ }
3679
+
3680
+ }
3681
+
3682
+ defineProperty(Profile, "defaultProps", {
3683
+ fields: Fields
3684
+ });
3685
+
3686
+ class CustomChat extends PureComponent {
3687
+ componentDidUpdate() {
3688
+ const {
3689
+ handleParse
3690
+ } = this.props;
3691
+ handleParse();
3692
+ }
3693
+
3694
+ render() {
3695
+ const {
3696
+ children,
3697
+ pageId,
3698
+ themeColor,
3699
+ loggedInGreeting,
3700
+ loggedOutGreeting,
3701
+ dataRef,
3702
+ greetingDialogDisplay,
3703
+ greetingDialogDelay
3704
+ } = this.props;
3705
+ return React__default.createElement("div", {
3706
+ className: "fb-customerchat",
3707
+ page_id: pageId,
3708
+ theme_color: themeColor,
3709
+ logged_in_greeting: loggedInGreeting,
3710
+ logged_out_greeting: loggedOutGreeting,
3711
+ greeting_dialog_display: greetingDialogDisplay,
3712
+ greeting_dialog_delay: greetingDialogDelay,
3713
+ "data-ref": dataRef
3714
+ }, children);
3715
+ }
3716
+
3717
+ }
3718
+
3719
+ defineProperty(CustomChat, "defaultProps", {
3720
+ children: undefined,
3721
+ themeColor: undefined,
3722
+ loggedInGreeting: undefined,
3723
+ loggedOutGreeting: undefined,
3724
+ dataRef: undefined,
3725
+ greetingDialogDisplay: undefined,
3726
+ greetingDialogDelay: undefined
3727
+ });
3728
+
3729
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3730
+ handleParse
3731
+ }) => React__default.createElement(CustomChat, _extends_1({}, props, {
3732
+ handleParse: handleParse,
3733
+ ref: ref
3734
+ }))));
3735
+
3736
+ class MessageUs extends PureComponent {
3737
+ componentDidUpdate() {
3738
+ const {
3739
+ handleParse
3740
+ } = this.props;
3741
+ handleParse();
3742
+ }
3743
+
3744
+ render() {
3745
+ const {
3746
+ color,
3747
+ messengerAppId,
3748
+ pageId,
3749
+ children,
3750
+ size
3751
+ } = this.props;
3752
+ return React__default.createElement("div", {
3753
+ className: "fb-messengermessageus",
3754
+ messenger_app_id: messengerAppId,
3755
+ page_id: pageId,
3756
+ "data-color": color,
3757
+ "data-size": size
3758
+ }, children);
3759
+ }
3760
+
3761
+ }
3762
+
3763
+ defineProperty(MessageUs, "defaultProps", {
3764
+ color: undefined,
3765
+ size: undefined,
3766
+ children: undefined
3767
+ });
3768
+
3769
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3770
+ handleParse
3771
+ }) => React__default.createElement(MessageUs, _extends_1({}, props, {
3772
+ handleParse: handleParse,
3773
+ ref: ref
3774
+ }))));
3775
+
3776
+ class MessengerCheckbox extends PureComponent {
3777
+ componentDidUpdate() {
3778
+ const {
3779
+ handleParse
3780
+ } = this.props;
3781
+ handleParse();
3782
+ }
3783
+
3784
+ render() {
3785
+ const {
3786
+ origin,
3787
+ prechecked,
3788
+ allowLogin,
3789
+ userRef,
3790
+ messengerAppId,
3791
+ pageId,
3792
+ children,
3793
+ size,
3794
+ centerAlign,
3795
+ skin
3796
+ } = this.props;
3797
+ return React__default.createElement("div", {
3798
+ className: "fb-messenger-checkbox",
3799
+ messenger_app_id: messengerAppId,
3800
+ page_id: pageId,
3801
+ size: size,
3802
+ origin: origin,
3803
+ user_ref: userRef,
3804
+ prechecked: prechecked,
3805
+ allow_login: allowLogin,
3806
+ skin: skin,
3807
+ center_align: centerAlign
3808
+ }, children);
3809
+ }
3810
+
3811
+ }
3812
+
3813
+ defineProperty(MessengerCheckbox, "defaultProps", {
3814
+ size: undefined,
3815
+ allowLogin: undefined,
3816
+ prechecked: undefined,
3817
+ userRef: undefined,
3818
+ children: undefined,
3819
+ origin: undefined,
3820
+ skin: undefined,
3821
+ centerAlign: undefined
3822
+ });
3823
+
3824
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3825
+ handleParse
3826
+ }) => React__default.createElement(MessengerCheckbox, _extends_1({}, props, {
3827
+ handleParse: handleParse,
3828
+ ref: ref
3829
+ }))));
3830
+
3831
+ // import MessengerColor from './constants/MessengerColor';
3832
+
3833
+ class SendToMessenger extends PureComponent {
3834
+ componentDidUpdate() {
3835
+ const {
3836
+ handleParse
3837
+ } = this.props;
3838
+ handleParse();
3839
+ }
3840
+
3841
+ render() {
3842
+ const {
3843
+ color,
3844
+ messengerAppId,
3845
+ pageId,
3846
+ children,
3847
+ dataRef,
3848
+ size
3849
+ } = this.props;
3850
+ return React__default.createElement("div", {
3851
+ className: "fb-send-to-messenger",
3852
+ messenger_app_id: messengerAppId,
3853
+ page_id: pageId,
3854
+ "data-color": color,
3855
+ "data-size": size,
3856
+ "data-ref": dataRef
3857
+ }, children);
3858
+ }
3859
+
3860
+ }
3861
+
3862
+ defineProperty(SendToMessenger, "defaultProps", {
3863
+ color: undefined,
3864
+ size: undefined,
3865
+ dataRef: undefined,
3866
+ children: undefined
3867
+ });
3868
+
3869
+ forwardRef((props, ref) => React__default.createElement(Parser, null, ({
3870
+ handleParse
3871
+ }) => React__default.createElement(SendToMessenger, _extends_1({}, props, {
3872
+ handleParse: handleParse,
3873
+ ref: ref
3874
+ }))));
74
3875
 
75
3876
  var ImageSlider = function ImageSlider(props) {
76
3877
  var innerSlider = useRef(null);
@@ -175,61 +3976,61 @@ var ImageSlider = function ImageSlider(props) {
175
3976
  }, []);
176
3977
 
177
3978
  var variant = 'black';
178
- return React.createElement(
179
- React.Fragment,
3979
+ return React__default.createElement(
3980
+ React__default.Fragment,
180
3981
  null,
181
- React.createElement(
3982
+ React__default.createElement(
182
3983
  'div',
183
3984
  { ref: viewableWindow, id: 'vid-slider', className: 'col' },
184
- React.createElement(
3985
+ React__default.createElement(
185
3986
  'div',
186
3987
  { className: 'row' },
187
- showScroller && React.createElement(
3988
+ showScroller && React__default.createElement(
188
3989
  'div',
189
3990
  { onClick: function onClick(e) {
190
3991
  return scrollSlider(e, 'prev');
191
3992
  }, className: 'tile__slider-prev', style: { color: variant } },
192
- React.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
3993
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow left' })
193
3994
  ),
194
- showScroller && React.createElement(
3995
+ showScroller && React__default.createElement(
195
3996
  'div',
196
3997
  { onClick: function onClick(e) {
197
3998
  return scrollSlider(e, 'next');
198
3999
  }, className: 'tile__slider-next', style: { color: variant } },
199
- React.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
4000
+ React__default.createElement('i', { style: { border: 'solid ' + variant, borderWidth: '0 4px 4px 0' }, className: 'arrow right' })
200
4001
  ),
201
- React.createElement(
4002
+ React__default.createElement(
202
4003
  'div',
203
4004
  { ref: innerSlider, className: 'row__inner' },
204
4005
  props.data.slides.map(function (img, index) {
205
4006
  var thumbnail = urlFor({ client: client, source: img.slideshowImage, imageWidth: 250 });
206
4007
  if (!img.slideshowImage.link) {
207
- return React.createElement(
4008
+ return React__default.createElement(
208
4009
  'div',
209
4010
  { ref: tile, key: index, className: 'tile', style: { width: tileSize + 'px' } },
210
- React.createElement(
4011
+ React__default.createElement(
211
4012
  'div',
212
4013
  { className: 'tile__media' },
213
- React.createElement('img', { className: 'tile__img', src: thumbnail, alt: img.slideshowImage.alt ? img.slideshowImage.alt : '', style: { width: tileSize + 'px' } })
4014
+ React__default.createElement('img', { className: 'tile__img', src: thumbnail, alt: img.slideshowImage.alt ? img.slideshowImage.alt : '', style: { width: tileSize + 'px' } })
214
4015
  ),
215
- React.createElement('div', { style: { color: variant }, className: 'tile__info' })
4016
+ React__default.createElement('div', { style: { color: variant }, className: 'tile__info' })
216
4017
  );
217
4018
  } else {
218
- return React.createElement(
4019
+ return React__default.createElement(
219
4020
  'a',
220
4021
  { ref: tile, key: index, href: img.slideshowImage.link, target: img.slideshowImage.blank ? '_target' : '_self', className: 'tile', style: { width: tileSize + 'px' } },
221
- React.createElement(
4022
+ React__default.createElement(
222
4023
  'div',
223
4024
  { className: 'tile__media' },
224
- React.createElement('img', { className: 'tile__img', src: thumbnail, alt: img.slideshowImage.alt ? img.slideshowImage.alt : '', style: { width: tileSize + 'px' } })
4025
+ React__default.createElement('img', { className: 'tile__img', src: thumbnail, alt: img.slideshowImage.alt ? img.slideshowImage.alt : '', style: { width: tileSize + 'px' } })
225
4026
  ),
226
- React.createElement('div', { style: { color: variant }, className: 'tile__info' })
4027
+ React__default.createElement('div', { style: { color: variant }, className: 'tile__info' })
227
4028
  );
228
4029
  }
229
4030
  })
230
4031
  )
231
4032
  ),
232
- React.createElement(
4033
+ React__default.createElement(
233
4034
  'style',
234
4035
  { jsx: 'true' },
235
4036
  '\n #vid-slider * {\n box-sizing: border-box;\n -ms-overflow-style: none;\n }\n #vid-slider::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar {\n display: none;\n }\n #vid-slider .row::-webkit-scrollbar-thumb {\n display: none;\n }\n #vid-slider {\n position: relative;\n -ms-overflow-style: none;\n padding: 0 1.5rem;\n margin-bottom: 0 !important;\n }\n #vid-slider .now-playing {\n position: absolute;\n top: 0.5rem;\n left: 1rem;\n color: white;\n background: rgba(0, 0, 0, 0.75);\n }\n #vid-slider h1,\n #vid-slider p {\n text-align: center;\n width: 100%;\n max-width: 500px;\n margin: auto;\n }\n #vid-slider,\n #vidHolder {\n max-width: 805px;\n }\n #vid-slider a:link,\n #vid-slider a:hover,\n #vid-slider a:active,\n #vid-slider a:visited {\n transition: color 150ms;\n color: #95a5a6;\n text-decoration: none;\n }\n #vid-slider a:hover {\n color: #7f8c8d;\n text-decoration: underline;\n }\n #vid-slider .contain {\n width: 100%;\n }\n #vid-slider .row {\n overflow-x: scroll;\n width: 100%;\n -ms-overflow-style: none;\n overflow-y: hidden !important;\n }\n #vid-slider .tile__info {\n white-space: normal !important;\n position: absolute;\n text-align: center;\n color: ' + (props.dark ? 'white' : '#383838') + ';\n opacity: 1;\n font-size: 0.9rem;\n font-weight: bold;\n transition: opacity 0.25s;\n }\n #vid-slider .row__inner {\n transition: 450ms -webkit-transform;\n transition: 450ms transform;\n transition: 450ms transform, 450ms -webkit-transform;\n font-size: 0;\n white-space: nowrap;\n margin: 25px 0 70px !important;\n padding-bottom: 10px;\n padding-left: 0;\n }\n #vid-slider .tile {\n position: relative;\n display: inline-block;\n margin: 0 12px;\n font-size: 20px;\n transition: 450ms all;\n -webkit-transform-origin: center left;\n transform-origin: center left;\n }\n \n #vid-slider .tile:first-child {\n margin-left: 15px;\n }\n #vid-slider .tile__img {\n height: auto;\n -o-object-fit: contain;\n object-fit: contain;\n object-position: center;\n }\n #vid-slider .tile__details {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n top: 0;\n font-size: 10px;\n opacity: 0;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 100%);\n transition: 450ms opacity;\n }\n #vid-slider .tile__details:after,\n #vid-slider .tile__details:before {\n content: \'\';\n \n position: absolute;\n top: 50%;\n left: 50%;\n display: #000;\n }\n #vid-slider .tile__details:after {\n margin-top: -25px;\n margin-left: -25px;\n width: 50px;\n height: 50px;\n border: 3px solid #ecf0f1;\n line-height: 50px;\n text-align: center;\n border-radius: 100%;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1;\n }\n #vid-slider .tile__details:before {\n content: \'\';\n background: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 64 64\' width=\'64\' height=\'64\' fill=\'white\'><path d=\'M26 46 L46 32 L26 18 Z\'/></svg>")\n no-repeat center center;\n left: 0;\n width: 100%;\n height: 3rem;\n font-size: 30px;\n margin-right: 12px;\n margin-top: -24px;\n text-align: center;\n z-index: 2;\n color: white;\n }\n \n #vid-slider .tile__title {\n position: absolute;\n bottom: 0;\n padding: 10px;\n max-width: 250px;\n }\n #vid-slider .tile__title_text {\n position: relative;\n left: 0;\n white-space: normal;\n }\n \n #vid-slider .tile__slider-prev,\n #vid-slider .tile__slider-next {\n width: 30px;\n background: transparent;\n border: none;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n z-index: 99;\n cursor: pointer;\n color: ' + (props.dark ? 'white' : 'black') + ';\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 2rem;\n }\n #vid-slider .tile__slider-prev {\n left: -0.5rem;\n padding: 1rem;\n }\n #vid-slider .tile__slider-next {\n right: -0.5rem;\n padding: 1rem;\n }\n #vid-slider,\n #vid-slider .row {\n margin: 0;\n }\n \n #vid-slider .row::-webkit-scrollbar-thumb {\n background-color: transparent !important;\n }\n #vid-slider i {\n border: solid ' + (props.dark ? 'white' : 'black') + ';\n border-width: 0 4px 4px 0;\n display: inline-block;\n padding: 4px;\n pointer-events: none;\n }\n #vid-slider .right {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n #vid-slider .left {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n @media screen and (min-width: 1399px) {\n .block-content #vid-slider .tile__img {\n height: auto;\n }\n .block-content #vid-slider .tile {\n height: auto;\n }\n }\n \n @media screen and (max-width: 1399px) {\n #vid-slider,\n #vidHolder {\n max-width: 620px;\n }\n }\n @media screen and (max-width: 1200px) {\n #vid-slider,\n #vidHolder {\n max-width: 580px;\n }\n }\n @media screen and (max-width: 967px) {\n #vid-slider {\n max-width: 100%;\n }\n \n #vid-slider .row__inner {\n margin: 60px 0 50px !important;\n }\n }\n \n @media screen and (max-width: 768px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n }\n @media screen and (max-width: 568px) {\n #vidHolder {\n position: unset;\n width: 100%;\n }\n \n #vid-slider .row__inner {\n margin: 30px 0 70px;\n }\n }\n '
@@ -250,97 +4051,125 @@ var PartnerDetails = function PartnerDetails(_ref) {
250
4051
  client = _ref.client,
251
4052
  Settings = _ref.Settings,
252
4053
  pageview = _ref.pageview,
253
- page = _ref.page;
4054
+ page = _ref.page,
4055
+ connectWithLinkedinLogo = _ref.connectWithLinkedinLogo;
254
4056
 
255
- return React.createElement(
256
- React.Fragment,
4057
+ return React__default.createElement(
4058
+ React__default.Fragment,
257
4059
  null,
258
- React.createElement(Breadcrumbs, null),
259
- React.createElement(
4060
+ React__default.createElement(Breadcrumbs, null),
4061
+ React__default.createElement(
260
4062
  'div',
261
4063
  { className: 'partners-page' },
262
- React.createElement(
4064
+ React__default.createElement(
263
4065
  'div',
264
4066
  { className: 'my-5 partner-logo-wrap', style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center' } },
265
- partnerDetails.thumbnail && partnerDetails.thumbnail.link ? React.createElement(
4067
+ partnerDetails.thumbnail && partnerDetails.thumbnail.link ? React__default.createElement(
266
4068
  'a',
267
4069
  { className: 'partners-logo', style: { width: '25%', minWidth: '25%' }, href: partnerDetails.thumbnail.link, target: partnerDetails.thumbnail.blank ? '_blank' : '' },
268
- React.createElement(
4070
+ React__default.createElement(
269
4071
  'figure',
270
4072
  { style: { width: '100%', textAlign: 'center' } },
271
- React.createElement('img', {
4073
+ React__default.createElement('img', {
272
4074
  alt: partnerDetails.thumbnail && partnerDetails.thumbnail.alt ? partnerDetails.thumbnail.alt : partnerDetails.name,
273
4075
  style: { maxWidth: '100%' },
274
4076
  src: partnerDetails.thumbnail ? urlFor({ client: client, source: partnerDetails.thumbnail.asset }) : '' }),
275
- partnerDetails.thumbnail && partnerDetails.thumbnail.caption && React.createElement(
4077
+ partnerDetails.thumbnail && partnerDetails.thumbnail.caption && React__default.createElement(
276
4078
  'figcaption',
277
4079
  null,
278
4080
  partnerDetails.thumbnail.caption
279
4081
  )
280
4082
  )
281
- ) : React.createElement(
4083
+ ) : React__default.createElement(
282
4084
  'figure',
283
4085
  { className: 'partners-logo', style: { width: '25%', minWidth: '25%', textAlign: 'center' } },
284
- React.createElement('img', {
4086
+ React__default.createElement('img', {
285
4087
  alt: partnerDetails.thumbnail && partnerDetails.thumbnail.alt ? partnerDetails.thumbnail.alt : partnerDetails.name,
286
4088
  style: { maxWidth: '100%' },
287
4089
  src: partnerDetails.thumbnail ? urlFor({ client: client, source: partnerDetails.thumbnail.asset }) : '' }),
288
- partnerDetails.thumbnail && partnerDetails.thumbnail.caption && React.createElement(
4090
+ partnerDetails.thumbnail && partnerDetails.thumbnail.caption && React__default.createElement(
289
4091
  'figcaption',
290
4092
  null,
291
4093
  partnerDetails.thumbnail.caption
292
4094
  )
293
4095
  ),
294
- React.createElement(
4096
+ React__default.createElement(
295
4097
  'style',
296
4098
  { jsx: 'true' },
297
4099
  '\n @media screen and (max-width: 768px) {\n .partners-logo {\n width: 100%;\n min-width: 100%;\n }\n .partner-logo-wrap {\n flex-wrap: wrap;\n }\n .block-content-partners {\n padding-left: 0 !important;\n }\n }\n '
298
4100
  ),
299
- partnerDetails.description && React.createElement(
4101
+ (partnerDetails.description || partnerDetails.linkedin) && React__default.createElement(
300
4102
  'div',
301
4103
  { className: 'block-content-partners my-4', style: { maxWidth: '100%', paddingLeft: '2rem', flex: '1 1 auto' } },
302
- React.createElement(BlockContent, _extends({ serializers: getSerializers(client), blocks: partnerDetails.description, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config()))
4104
+ partnerDetails.description && React__default.createElement(BlockContent, _extends({ serializers: getSerializers(client), blocks: partnerDetails.description, imageOptions: { w: 320, h: 240, fit: 'max' } }, client.config())),
4105
+ partnerDetails.linkedin && connectWithLinkedinLogo && React__default.createElement(
4106
+ 'a',
4107
+ { href: partnerDetails.linkedin, target: '_blank', rel: 'noopener noreferrer' },
4108
+ React__default.createElement(
4109
+ 'div',
4110
+ { className: 'embed-responsive embed-responsive-21by9' },
4111
+ React__default.createElement(
4112
+ 'div',
4113
+ { className: 'embed-responsive-item d-flex justify-content-center align-items-center' },
4114
+ React__default.createElement('img', { src: connectWithLinkedinLogo, alt: 'connect with us on LinkedIn', className: 'w-75' })
4115
+ )
4116
+ )
4117
+ )
303
4118
  )
304
4119
  ),
305
- partnerDetails.affiliates && partnerDetails.affiliates[0] && partnerDetails.affiliates[0].slides && React.createElement(
4120
+ partnerDetails.affiliates && partnerDetails.affiliates[0] && partnerDetails.affiliates[0].slides && React__default.createElement(
306
4121
  'div',
307
4122
  { className: 'mb-4', style: { padding: '0 15px' } },
308
- partnerDetails.affiliates[0].title && React.createElement(
4123
+ partnerDetails.affiliates[0].title && React__default.createElement(
309
4124
  'h2',
310
4125
  { className: 'bb-gold' },
311
4126
  partnerDetails.affiliates[0].title
312
4127
  ),
313
- React.createElement(ImageSlider, { client: client, data: partnerDetails.affiliates[0] })
4128
+ React__default.createElement(ImageSlider, { client: client, data: partnerDetails.affiliates[0] })
314
4129
  ),
315
- features.length > 0 && React.createElement(
4130
+ features.length > 0 && React__default.createElement(
316
4131
  'div',
317
4132
  { className: ' mb-5' },
318
- React.createElement(Feature, { dataset: features, client: client })
4133
+ React__default.createElement(Feature, { dataset: features, client: client })
319
4134
  ),
320
- partnerDetails.twitter && React.createElement(
321
- React.Fragment,
4135
+ partnerDetails.twitter && React__default.createElement(
4136
+ React__default.Fragment,
322
4137
  null,
323
- React.createElement(
4138
+ React__default.createElement(
324
4139
  'div',
325
4140
  { className: 'mb-5', style: { width: '100%', textAlign: 'center', padding: '0 15px', border: '2px solid #aaa', borderRadius: '15px' } },
326
- React.createElement(TwitterTimelineEmbed, { sourceType: 'url', url: partnerDetails.twitter, options: { height: 400 } })
4141
+ React__default.createElement(TwitterTimelineEmbed, { sourceType: 'url', url: partnerDetails.twitter, options: { height: 400 } })
4142
+ )
4143
+ ),
4144
+ partnerDetails.facebook && React__default.createElement(
4145
+ 'div',
4146
+ {
4147
+ className: 'mb-5 w-100 text-center p-3',
4148
+ style: {
4149
+ border: '2px solid #aaa',
4150
+ borderRadius: '15px'
4151
+ } },
4152
+ React__default.createElement(
4153
+ Facebook$1,
4154
+ { appId: ' ' },
4155
+ React__default.createElement(Page$1, { href: partnerDetails.facebook, tabs: 'timeline', width: '500', height: '500' })
327
4156
  )
328
4157
  ),
329
- React.createElement(
4158
+ React__default.createElement(
330
4159
  'div',
331
4160
  null,
332
- posts && posts.length > 0 && React.createElement(
333
- React.Fragment,
4161
+ posts && posts.length > 0 && React__default.createElement(
4162
+ React__default.Fragment,
334
4163
  null,
335
- React.createElement(
4164
+ React__default.createElement(
336
4165
  'h2',
337
4166
  { className: 'bb-gold mb-2' },
338
4167
  'Latest from ',
339
4168
  partnerDetails.name
340
4169
  ),
341
- React.createElement('hr', null)
4170
+ React__default.createElement('hr', null)
342
4171
  ),
343
- React.createElement(QueueDeckExpanded, {
4172
+ React__default.createElement(QueueDeckExpanded, {
344
4173
  client: client,
345
4174
  mapping: Settings.mapping,
346
4175
  dataRecord: posts,
@@ -363,7 +4192,7 @@ var PartnerDetails = function PartnerDetails(_ref) {
363
4192
  };
364
4193
 
365
4194
  PartnerDetails.returnGetInitialProps = function () {
366
- var _ref2 = _asyncToGenerator( /*#__PURE__*/regenerator.mark(function _callee(identifier, partnerPageUrl, partnerDocumentGroupID, params, currentPage, client) {
4195
+ var _ref2 = _asyncToGenerator$1( /*#__PURE__*/regenerator.mark(function _callee(identifier, partnerPageUrl, partnerDocumentGroupID, params, currentPage, client) {
367
4196
  var category = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
368
4197
 
369
4198
  var today, featureQuery, partnerQuery, taxonomyQuery, _ref3, _ref4, features, partnerDetails, taxonomyDetails, articlesQuery, articles;
@@ -374,14 +4203,14 @@ PartnerDetails.returnGetInitialProps = function () {
374
4203
  case 0:
375
4204
  today = moment().utc().format();
376
4205
  featureQuery = '*[_type == \'feature\' && is_active == true && feature_url == \'/' + partnerPageUrl + '/' + (category ? category + '/' : null) + identifier + '\'] | order(_updatedAt asc)[0..5]{\n ...,\n \'feature_img\' : feature_img.asset->url\n }';
377
- partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n description,\n name,\n identifier,\n thumbnail,\n twitter,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
4206
+ partnerQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && identifier.current == \'' + identifier + '\'] | order(name asc) [0] {\n description,\n name,\n identifier,\n thumbnail,\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n }';
378
4207
 
379
4208
 
380
4209
  if (category) {
381
4210
  //if partners page has a sub category such as onclive
382
4211
  //e.g. /sap-partner/[category]/[partner]
383
4212
 
384
- partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n description,\n name,\n identifier,\n thumbnail,\n twitter,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
4213
+ partnerQuery = '*[_type == \'documentGroup\' && !(_id in path("drafts.**")) && identifier.current == \'' + category + '\' && references(\'' + partnerDocumentGroupID + '\')] [0] {\n ...,\n \'partner\': *[_type == \'documentGroup\' && identifier.current == \'' + identifier + '\' && references(^._id)] [0] {\n description,\n name,\n identifier,\n thumbnail,\n twitter,\n facebook,\n linkedin,\n "affiliates": description[_type==\'slideshows\']{\n ...,\n slides->{...}\n }\n \n }\n }';
385
4214
  }
386
4215
 
387
4216
  taxonomyQuery = '*[_type == \'documentGroup\' \n && !(_id in path("drafts.**"))\n && references(\'' + partnerDocumentGroupID + '\')\n && isShow != false\n && identifier.current == \'' + identifier + '\'] [0] {\n \'id\': _id,\n \'title\': name\n }';