Created
April 10, 2016 05:57
-
-
Save fluffywaffles/9f5367f9232e4452d22c73e481cb4f7b to your computer and use it in GitHub Desktop.
Blendle js source (mangled, webpack)
This file has been truncated, but you can view the full file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| webpackJsonp([2], { | |
| 0: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| n(657); | |
| var s = n(5929) | |
| , r = i(s) | |
| , a = n(34) | |
| , o = i(a) | |
| , l = n(25) | |
| , u = i(l) | |
| , c = n(16) | |
| , d = i(c) | |
| , p = n(105) | |
| , f = i(p); | |
| f["default"].applicationBooting(), | |
| o["default"].Deferred = function() { | |
| return u["default"].defer() | |
| } | |
| , | |
| d["default"].embedded = !1, | |
| "BlendleEmbedded" in window && (d["default"].embedded = window.BlendleEmbedded.embedded, | |
| d["default"].embeddedOrigin = window.BlendleEmbedded.origin, | |
| d["default"].embeddedDomain = window.BlendleEmbedded.domain), | |
| d["default"].open = document.location.href.match(/\?open/), | |
| d["default"].url = r["default"].api; | |
| var h = n(140); | |
| h.load() | |
| }, | |
| 14: function(e, t, n) { | |
| var i = n(42) | |
| , s = n(96) | |
| , r = n(85) | |
| , a = n(73) | |
| , o = n(83) | |
| , l = "prototype" | |
| , u = function(e, t, n) { | |
| var c, d, p, f, h = e & u.F, m = e & u.G, g = e & u.S, v = e & u.P, y = e & u.B, _ = m ? i : g ? i[t] || (i[t] = {}) : (i[t] || {})[l], b = m ? s : s[t] || (s[t] = {}), w = b[l] || (b[l] = {}); | |
| m && (n = t); | |
| for (c in n) | |
| d = !h && _ && c in _, | |
| p = (d ? _ : n)[c], | |
| f = y && d ? o(p, i) : v && "function" == typeof p ? o(Function.call, p) : p, | |
| _ && !d && a(_, c, p), | |
| b[c] != p && r(b, c, f), | |
| v && w[c] != p && (w[c] = p) | |
| } | |
| ; | |
| i.core = s, | |
| u.F = 1, | |
| u.G = 2, | |
| u.S = 4, | |
| u.P = 8, | |
| u.B = 16, | |
| u.W = 32, | |
| e.exports = u | |
| }, | |
| 20: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(11) | |
| , l = s(o) | |
| , u = a["default"].createClass({ | |
| displayName: "Button", | |
| propTypes: { | |
| disabled: a["default"].PropTypes.bool, | |
| loading: a["default"].PropTypes.bool, | |
| children: a["default"].PropTypes.oneOfType([a["default"].PropTypes.array, a["default"].PropTypes.string]), | |
| className: a["default"].PropTypes.string, | |
| type: a["default"].PropTypes.string, | |
| onSubmit: a["default"].PropTypes.func, | |
| onClick: a["default"].PropTypes.func | |
| }, | |
| _onSubmit: function(e) { | |
| this.props.loading || this.props.onSubmit && this.props.onSubmit(e) | |
| }, | |
| _onClick: function(e) { | |
| this.props.loading || this.props.onClick && this.props.onClick(e) | |
| }, | |
| render: function() { | |
| var e, t = (0, | |
| l["default"])((e = { | |
| btn: !0 | |
| }, | |
| i(e, this.props.className, this.props.className), | |
| i(e, "s-inactive", this.props.disabled), | |
| i(e, "s-loading", this.props.loading), | |
| e)); | |
| return a["default"].createElement("button", { | |
| onSubmit: this._onSubmit, | |
| onClick: this._onClick, | |
| className: t, | |
| type: this.props.type | |
| }, this.props.children) | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 29: 45, | |
| 33: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(558) | |
| , o = i(a) | |
| , l = n(11) | |
| , u = i(l) | |
| , c = n(8); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "Dialogue", | |
| propTypes: { | |
| className: r["default"].PropTypes.string, | |
| onClose: r["default"].PropTypes.func, | |
| allowClose: r["default"].PropTypes.bool, | |
| hideClose: r["default"].PropTypes.bool, | |
| closeOnEscapeKey: r["default"].PropTypes.bool, | |
| onKeyDown: r["default"].PropTypes.func, | |
| children: r["default"].PropTypes.any | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| allowClose: !0, | |
| hideClose: !1, | |
| closeOnEscapeKey: !0 | |
| } | |
| }, | |
| getInitialState: function() { | |
| return {} | |
| }, | |
| componentDidMount: function() { | |
| window.addEventListener("keydown", this._onKeyDown) | |
| }, | |
| componentWillUnmount: function() { | |
| window.removeEventListener("keydown", this._onKeyDown) | |
| }, | |
| _onKeyDown: function(e) { | |
| return e.keyCode === c.keyCode.ESC && this.props.closeOnEscapeKey ? this._onClose(e) : void (this.props.onKeyDown && this.props.onKeyDown(e)) | |
| }, | |
| _onClose: function(e) { | |
| var t = this; | |
| this.props.allowClose && (this.setState({ | |
| willClose: !0 | |
| }), | |
| setTimeout(function() { | |
| t.setState({ | |
| closed: !0 | |
| }), | |
| t.props.onClose && t.props.onClose(e) | |
| }, 200)) | |
| }, | |
| _renderCloseButton: function() { | |
| return this.props.hideClose || !this.props.allowClose ? !1 : r["default"].createElement("div", { | |
| className: "btn btn-close", | |
| "aria-label": "Close", | |
| onClick: this._onClose | |
| }) | |
| }, | |
| render: function() { | |
| if (this.state.closed) | |
| return !1; | |
| var e = (0, | |
| u["default"])({ | |
| "will-close": this.state.willClose | |
| }); | |
| return r["default"].createElement(o["default"], { | |
| onClick: this._onClose, | |
| className: e | |
| }, r["default"].createElement("dialog", { | |
| className: this.props.className + " dialog-animation", | |
| open: "open" | |
| }, this._renderCloseButton(), this.props.children)) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 36: 125, | |
| 39: [5930, 36], | |
| 40: [5964, 436, 130, 42], | |
| 42: 70, | |
| 46: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = o(c) | |
| , p = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(d["default"].TranslateElement, { | |
| node: u["default"].DOM[this.props.nodeName](this.props), | |
| sanitize: this.props.sanitize, | |
| args: this.props.args, | |
| path: this.props.find | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| find: u["default"].PropTypes.string.isRequired, | |
| args: u["default"].PropTypes.array, | |
| sanitize: u["default"].PropTypes.bool, | |
| nodeName: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| sanitize: !0, | |
| nodeName: "span", | |
| args: [], | |
| find: "" | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = p, | |
| e.exports = t["default"] | |
| }, | |
| 51: 148, | |
| 56: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(94)["default"] | |
| , l = n(21)["default"] | |
| , u = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var c = n(2) | |
| , d = u(c) | |
| , p = n(77) | |
| , f = u(p) | |
| , h = n(8) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = this.props | |
| , t = e.fallback | |
| , n = o(e, ["fallback"]); | |
| return d["default"].createElement(f["default"], l({ | |
| fallback: t || h.DEFAULT_AVATAR | |
| }, n)) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| src: d["default"].PropTypes.string.isRequired, | |
| fallback: d["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(d["default"].Component); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 58: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(15) | |
| , r = n(11); | |
| e.exports = { | |
| propTypes: { | |
| onSubmit: i.PropTypes.func.isRequired | |
| }, | |
| getInitialState: function() { | |
| return { | |
| valid: !0, | |
| loading: !1, | |
| navigateNext: !1 | |
| } | |
| }, | |
| componentDidMount: function() { | |
| this.updateNavigationState(), | |
| this.props.disabled || this.focusAndSelectMainField() | |
| }, | |
| componentDidUpdate: function(e) { | |
| this.props.disabled || !e.disabled && e || this.focusAndSelectMainField(), | |
| this.props.disabled && !e.disabled && this.blurMainField() | |
| }, | |
| getField: function(e, t) { | |
| return t || (t = s.findDOMNode(this)), | |
| t.elements[e] | |
| }, | |
| getMainField: function() { | |
| return this.refs.mainField ? s.findDOMNode(this.refs.mainField) : void 0 | |
| }, | |
| getFieldClassNames: function() { | |
| return r({ | |
| "main-input": !0, | |
| "main-input-valid": this.state.valid, | |
| "main-input-invalid": !this.state.valid | |
| }) | |
| }, | |
| getFieldValue: function(e) { | |
| return e ? "checkbox" === e.type ? e.checked : e.value : void 0 | |
| }, | |
| onMainFieldChange: function() { | |
| this.resetValidation(), | |
| this.updateNavigationState() | |
| }, | |
| updateNavigationState: function() { | |
| var e = this.getFieldValue(this.getMainField()) | |
| , t = !0; | |
| "string" == typeof e && (t = e.length > 0), | |
| this.setState({ | |
| navigateNext: t | |
| }) | |
| }, | |
| resetValidation: function() { | |
| this.setState({ | |
| valid: !0 | |
| }) | |
| }, | |
| onSubmit: function(e, t) { | |
| var n = this; | |
| if (e && e.preventDefault && e.preventDefault(), | |
| !this.state.loading) { | |
| this.setState({ | |
| loading: !0 | |
| }); | |
| var i = []; | |
| this.getMainField() && i.push(this.getFieldValue(this.getMainField())), | |
| t && (i = i.concat(t)), | |
| this.props.onSubmit.apply(this, i).then(function(e) { | |
| n.isMounted() && (n.setState({ | |
| valid: !0, | |
| loading: !1 | |
| }), | |
| n.blurMainField()), | |
| n.onSubmitValid && n.onSubmitValid(e) | |
| }, function(e) { | |
| if (n.isMounted() && (n.setState({ | |
| valid: !1, | |
| loading: !1 | |
| }), | |
| n.focusAndSelectMainField()), | |
| n.onSubmitError && n.onSubmitError(e), | |
| !(!e || e && e.xhr)) | |
| throw e | |
| }).done() | |
| } | |
| }, | |
| focusAndSelectMainField: function() { | |
| this.refs.mainField && "checkbox" !== s.findDOMNode(this.refs.mainField).type && "iPhone" !== window.BrowserDetect.device && ("Explorer" === window.BrowserDetect.browser && window.BrowserDetect.version <= 11 || this._focusAndSelect(this.refs.mainField)) | |
| }, | |
| _focusAndSelect: function(e) { | |
| s.findDOMNode(e).focus(), | |
| s.findDOMNode(e).select() | |
| }, | |
| blurMainField: function() { | |
| this.refs.mainField && s.findDOMNode(this.refs.mainField).blur() | |
| } | |
| } | |
| }, | |
| 60: 191, | |
| 61: [5962, 156], | |
| 65: function(e, t, n) { | |
| "use strict"; | |
| var i = n(21)["default"] | |
| , s = n(24)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(35) | |
| , o = r(a) | |
| , l = n(4) | |
| , u = r(l) | |
| , c = n(16) | |
| , d = r(c) | |
| , p = n(244) | |
| , f = r(p) | |
| , h = n(47) | |
| , m = r(h) | |
| , g = n(8) | |
| , v = n(13) | |
| , y = r(v) | |
| , _ = { | |
| _errors: { | |
| "Id already exists": { | |
| type: g.USER_ID_TAKEN, | |
| message: "Provided ID for user already exists" | |
| }, | |
| "email blank": { | |
| type: g.EMAIL_INVALID, | |
| message: "Provided e-mail address is blank" | |
| }, | |
| "invalid email": { | |
| type: g.EMAIL_INVALID, | |
| message: "Provided e-mail address is invalid" | |
| }, | |
| "Email already exists": { | |
| type: g.EMAIL_EXISTS, | |
| message: "Provided e-mail address already exists" | |
| }, | |
| "id too long": { | |
| type: "IDTooLong", | |
| message: "ID is too long" | |
| }, | |
| "Temporary email service detected": { | |
| type: "TemporaryEmailServiceUsed", | |
| message: "Temporary email service detected" | |
| }, | |
| "Facebook id already exists": { | |
| type: "FacebookIDTaken", | |
| message: "Facebook ID already exists" | |
| }, | |
| "email not allowed": { | |
| type: g.EMAIL_INVALID, | |
| message: "Provided e-mail address is invalid" | |
| } | |
| }, | |
| emailIsAvailable: function(e) { | |
| return this.userIdIsAvailable(e.trim().toLowerCase()) | |
| }, | |
| emailIsAllowed: function(e) { | |
| var t = e.split("@")[0].trim().toLowerCase() | |
| , n = e.split("@")[1].trim().toLowerCase(); | |
| return -1 !== t.indexOf("+") && "blendle" !== n.split(".")[0] ? (y["default"].track("SignUp", { | |
| event: "signup_error", | |
| message: "plus sign in email" | |
| }), | |
| s.reject(new o["default"](g.EMAIL_CONTAINS_PLUS_SIGN,"Email is not allowed"))) : u["default"].ajax({ | |
| url: "https://static.blendle.com/blacklisted_domains.json" | |
| }).then(function(t) { | |
| var i = t.data.find(function(e) { | |
| return n === e.toLowerCase() | |
| }); | |
| return i ? (y["default"].track("SignUp", { | |
| event: "signup_error", | |
| message: "blacklisted domain" | |
| }), | |
| s.reject(new o["default"](g.EMAIL_BLACKLISTED,"Email is not allowed"))) : e | |
| }) | |
| }, | |
| userIdIsAvailable: function(e) { | |
| return u["default"].ajax({ | |
| url: d["default"].getLink("user", { | |
| user_id: e | |
| }) + "?q=exists" | |
| }).then(function() { | |
| return s.reject(new o["default"](g.USER_ID_TAKEN,"User ID Unavailable")) | |
| }, function() { | |
| return s.resolve(e) | |
| }) | |
| }, | |
| signup: function(e) { | |
| var t = ""; | |
| return t = m["default"].get("signUpCode") ? m["default"].get("signUpCode").exportForSignUp(e) : e.toJSON(), | |
| u["default"].ajax({ | |
| url: d["default"].getLink("users"), | |
| type: "POST", | |
| data: JSON.stringify(i({ | |
| referrer: window.document.referrer | |
| }, t)) | |
| }).then(function(e) { | |
| return _._constructToken(e) | |
| }).then(function(e) { | |
| return y["default"].signup(e.getEmbedded("user")), | |
| e | |
| })["catch"](function(e) { | |
| var t = _._errors[e.data.message]; | |
| if (422 === e.status && t) | |
| throw new o["default"](t.type,t.message,e); | |
| throw e | |
| }) | |
| }, | |
| confirmEmail: function(e) { | |
| return u["default"].ajax({ | |
| url: d["default"].getLink("confirm_email", { | |
| token: e | |
| }), | |
| type: "GET" | |
| }).then(function(e) { | |
| return s.resolve(new f["default"](e.data,{ | |
| parse: !0, | |
| track: !0 | |
| })) | |
| }, function(e) { | |
| return 404 === e.status ? s.reject(new o["default"]("ConfirmationTokenDoesNotExit","Confirmation token doesn't exist")) : s.reject(new o["default"]("InvalidConfirmationToken","Invalid confirmation token provided")) | |
| }) | |
| }, | |
| resendEmailConfirmation: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; | |
| return u["default"].ajax({ | |
| url: d["default"].getLink("user_resend_confirmation_email", { | |
| user_id: u["default"].Helpers.modelId(e) | |
| }), | |
| type: "POST", | |
| data: JSON.stringify(t) | |
| }) | |
| }, | |
| getSignUpRewards: function(e) { | |
| return u["default"].ajax({ | |
| url: d["default"].getLink("signup_rewards", { | |
| user_id: e | |
| }), | |
| type: "get" | |
| }).then(function(e) { | |
| return e.data.rewards | |
| }) | |
| }, | |
| _constructToken: function(e) { | |
| return new f["default"](e.data,{ | |
| parse: !0, | |
| track: !0 | |
| }) | |
| } | |
| }; | |
| t["default"] = _, | |
| e.exports = t["default"] | |
| }, | |
| 66: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = n(5) | |
| , r = n(25) | |
| , a = n(16) | |
| , o = n(12) | |
| , l = n(244) | |
| , u = n(67) | |
| , c = (n(3), | |
| { | |
| requestResetToken: function(e) { | |
| return i.ajax({ | |
| url: a.get("links").request_password_reset_token.href, | |
| type: "post", | |
| data: JSON.stringify({ | |
| email: e | |
| }) | |
| }) | |
| }, | |
| resetPassword: function(e, t) { | |
| return i.ajax({ | |
| url: a.get("links").password_reset.href, | |
| type: "post", | |
| data: JSON.stringify({ | |
| password: t, | |
| token: e | |
| }) | |
| }).then(function(e) { | |
| return o.loginWithToken(new l(e.data,{ | |
| track: !0, | |
| parse: !0 | |
| })) | |
| }) | |
| }, | |
| followUser: function(e, t) { | |
| return t = i.Helpers.toArray(t), | |
| i.ajax({ | |
| url: a.getLink("follows", { | |
| user_id: e.id | |
| }), | |
| data: JSON.stringify({ | |
| user_uids: t.map(function(e) { | |
| return { | |
| id: i.Helpers.modelId(e) | |
| } | |
| }) | |
| }), | |
| type: "POST" | |
| }).then(function() { | |
| return t.forEach(function(t) { | |
| e.increaseFollowCount && e.increaseFollowCount(), | |
| t.setFollowed && t.setFollowed() | |
| }), | |
| r.resolve(t) | |
| }) | |
| }, | |
| unfollowUser: function(e, t) { | |
| return i.ajax({ | |
| url: a.getLink("follows", { | |
| user_id: e.id | |
| }) + "/" + t.id, | |
| type: "DELETE" | |
| }).then(function() { | |
| return e.decreaseFollowCount(), | |
| t.unsetFollowed && t.unsetFollowed(), | |
| r.resolve(t) | |
| }) | |
| }, | |
| toggleFollow: function(e, t) { | |
| return t.get("following") ? this.unfollowUser(e, t) : this.followUser(e, t) | |
| }, | |
| saveFacebookCredentials: function(e, t) { | |
| return i.ajax({ | |
| url: a.getLink("user", { | |
| user_id: e.id | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| facebook_id: t.userID, | |
| facebook_access_token: t.accessToken | |
| }) | |
| }).then(function() { | |
| return e.set("facebook_id", t.userID), | |
| e.set("facebook_access_token", t.accessToken), | |
| r.resolve(e) | |
| }) | |
| }, | |
| disconnectFromFacebook: function(e) { | |
| return this.saveFacebookCredentials(e, { | |
| userID: null , | |
| accessToken: null | |
| }) | |
| }, | |
| followUsers: function(e, t) { | |
| var n = t.filter(function(t) { | |
| return i.Helpers.modelId(t) !== i.Helpers.modelId(e) | |
| }); | |
| return r.all(s.map(n, function(t) { | |
| return c.followUser(e, t).fail(r.resolve) | |
| })).then(function() { | |
| return r.resolve(n) | |
| }) | |
| }, | |
| getUser: function(e) { | |
| var t = new u({ | |
| id: e | |
| },{ | |
| track: !0 | |
| }); | |
| return t.get("fullname") ? r.resolve(t) : c.fetchUser(e) | |
| }, | |
| fetchUser: function(e) { | |
| return i.ajax({ | |
| url: a.getLink("user", { | |
| user_id: e | |
| }) | |
| }).then(function(e) { | |
| return new u(e.data,{ | |
| track: !0, | |
| parse: !0 | |
| }) | |
| }) | |
| }, | |
| setAvatarByURL: function(e, t) { | |
| return i.ajax({ | |
| url: a.getLink("user", { | |
| user_id: i.Helpers.modelId(e) | |
| }) + "/avatars", | |
| type: "POST", | |
| contentType: "application/x-www-form-urlencoded", | |
| data: "avatar_url=" + encodeURIComponent(t) | |
| }).then(function() { | |
| return r.resolve(e) | |
| }) | |
| }, | |
| resendConfirmationEmail: function(e) { | |
| return i.ajax({ | |
| url: a.getLink("user_resend_confirmation_email", { | |
| user_id: e | |
| }), | |
| type: "POST" | |
| }) | |
| } | |
| }); | |
| e.exports = c | |
| }, | |
| 68: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(25) | |
| , s = (n(5), | |
| n(3)) | |
| , r = n(66) | |
| , a = n(708) | |
| , o = n(841) | |
| , l = t.Module.extend({ | |
| name: "dialogue", | |
| type: "dialogue", | |
| afterLoadOrWake: function() {}, | |
| openDialogue: function(e, t) { | |
| this.setController(new a({ | |
| module: this, | |
| area: this.getArea(), | |
| callback: t | |
| })), | |
| this.getController().showDialogue(e), | |
| this.load() | |
| }, | |
| openDialogueWithView: function(e, t, n) { | |
| this.setController(new a({ | |
| module: this, | |
| area: this.getArea(), | |
| callback: n | |
| })), | |
| this.getController().showDialogueWithView(e, t), | |
| this.load() | |
| }, | |
| resetPassword: function(e) { | |
| var t = this; | |
| return i.promise(function(n, i) { | |
| t.openDialogueWithView(new o({ | |
| title: s.locale.settings.profile.no_password_set_title, | |
| more: s.translate("settings.profile.no_password_set_more", e.get("email")), | |
| hideCancelButton: !0, | |
| confirmButton: s.locale.settings.profile.no_password_set_button, | |
| confirmCallback: function() { | |
| r.requestResetToken(e.get("email")).then(function() { | |
| t.openDialogue({ | |
| title: s.locale.app.buttons.submitted, | |
| message: s.translate("settings.profile.password_reset_token_sent", e.get("email")), | |
| buttonText: s.locale.app.buttons.ok, | |
| className: "password-reset-token-sent", | |
| rootViewClassName: "v-password-reset-token-sent" | |
| }), | |
| n() | |
| }, i).done() | |
| }, | |
| cancelCallback: i | |
| }), { | |
| ignoreCloseView: !1, | |
| className: "v-confirm reset-password white-close" | |
| }), | |
| t.load() | |
| }) | |
| } | |
| }); | |
| return new l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 71: [5935, 51], | |
| 72: [5952, 14, 96, 51], | |
| 73: function(e, t, n) { | |
| var i = n(42) | |
| , s = n(85) | |
| , r = n(130)("src") | |
| , a = "toString" | |
| , o = Function[a] | |
| , l = ("" + o).split(a); | |
| n(96).inspectSource = function(e) { | |
| return o.call(e) | |
| } | |
| , | |
| (e.exports = function(e, t, n, a) { | |
| "function" == typeof n && (n.hasOwnProperty(r) || s(n, r, e[t] ? "" + e[t] : l.join(String(t))), | |
| n.hasOwnProperty("name") || s(n, "name", t)), | |
| e === i ? e[t] = n : (a || delete e[t], | |
| s(e, t, n)) | |
| } | |
| )(Function.prototype, a, function() { | |
| return "function" == typeof this && this[r] || o.call(this) | |
| }) | |
| }, | |
| 74: [5961, 198, 84], | |
| 77: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(94)["default"] | |
| , u = n(21)["default"] | |
| , c = n(93)["default"] | |
| , d = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var p = n(2) | |
| , f = d(p) | |
| , h = n(11) | |
| , m = d(h) | |
| , g = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| ready: !1, | |
| error: !1, | |
| usesFallback: !1 | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentWillMount", | |
| value: function() { | |
| this._onLoad = this._onLoad.bind(this), | |
| this._onError = this._onError.bind(this), | |
| this._image = new Image, | |
| this._image.addEventListener("load", this._onLoad), | |
| this._image.addEventListener("error", this._onError), | |
| this._image.src = this.props.src | |
| } | |
| }, { | |
| key: "componentWillUnmount", | |
| value: function() { | |
| this._image.removeEventListener("load", this._onLoad), | |
| this._image.removeEventListener("error", this._onError), | |
| this._image = null | |
| } | |
| }, { | |
| key: "_onLoad", | |
| value: function() { | |
| this.setState({ | |
| ready: !0 | |
| }), | |
| this.props.onLoad && this.props.onLoad(this.props.src) | |
| } | |
| }, { | |
| key: "_onError", | |
| value: function() { | |
| return this.props.fallback && !this.state.usesFallback ? (this._image.src = this.props.fallback, | |
| this.setState({ | |
| usesFallback: !0 | |
| }), | |
| void (this.props.onFallback && this.props.onFallback(this._image.src))) : (this.setState({ | |
| error: !0 | |
| }), | |
| void (this.props.onError && this.props.onError(this._image.src))) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e, t = this.props, n = (t.src, | |
| t.className), i = (t.animate, | |
| t.alt), s = void 0 === i ? "" : i, r = t.style, a = void 0 === r ? {} : r, d = l(t, ["src", "className", "animate", "alt", "style"]); | |
| this.props.animate && c(a, { | |
| opacity: this.state.ready ? 1 : 0, | |
| transition: "opacity 0.5s" | |
| }); | |
| var p = (0, | |
| m["default"])((e = {}, | |
| o(e, n, n), | |
| o(e, "s-fallback", this.state.usesFallback), | |
| o(e, "s-error", this.state.error), | |
| o(e, "s-ready", this.state.ready), | |
| o(e, "s-loading", !this.state.ready), | |
| e)) | |
| , h = this.state.usesFallback ? this.props.fallback : this.props.src; | |
| return f["default"].createElement("img", u({ | |
| className: p, | |
| style: a, | |
| alt: s | |
| }, d, { | |
| src: h | |
| })) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| src: f["default"].PropTypes.string.isRequired, | |
| width: f["default"].PropTypes.number, | |
| animate: f["default"].PropTypes.bool, | |
| height: f["default"].PropTypes.number, | |
| alt: f["default"].PropTypes.any, | |
| className: f["default"].PropTypes.string, | |
| style: f["default"].PropTypes.object, | |
| fallback: f["default"].PropTypes.string, | |
| onLoad: f["default"].PropTypes.func, | |
| onFallback: f["default"].PropTypes.func, | |
| onError: f["default"].PropTypes.func | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(f["default"].Component); | |
| t["default"] = g, | |
| e.exports = t["default"] | |
| }, | |
| 78: function(e, t, n) { | |
| "use strict"; | |
| var i = n(94)["default"] | |
| , s = n(21)["default"] | |
| , r = n(2) | |
| , a = n(15) | |
| , o = n(11) | |
| , l = r.createClass({ | |
| displayName: "Input", | |
| getInitialState: function() { | |
| return { | |
| value: this.props.value || this.props.defaultValue | |
| } | |
| }, | |
| render: function() { | |
| var e = this.props | |
| , t = e.className | |
| , n = (e.onChange, | |
| i(e, ["className", "onChange"])); | |
| return t = o(t, { | |
| "l-value": this.state.value | |
| }), | |
| r.createElement("input", s({}, n, { | |
| className: t, | |
| onChange: this._onChange | |
| })) | |
| }, | |
| _onChange: function(e) { | |
| this.setState({ | |
| value: a.findDOMNode(this).value || null | |
| }), | |
| this.props.onChange(e) | |
| } | |
| }); | |
| e.exports = l | |
| }, | |
| 79: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"] | |
| , s = n(575) | |
| , r = i(s) | |
| , a = n(35) | |
| , o = i(a) | |
| , l = n(8) | |
| , u = n(4) | |
| , c = n(2) | |
| , d = n(15) | |
| , p = n(13) | |
| , f = n(12) | |
| , h = n(844) | |
| , m = n(68) | |
| , g = n(3) | |
| , v = (n(5), | |
| n(16)) | |
| , y = n(101) | |
| , _ = n(587) | |
| , b = n(588) | |
| , w = n(66) | |
| , S = n(584) | |
| , k = n(585) | |
| , E = { | |
| _close: function() { | |
| m.getController().close() | |
| }, | |
| openComponent: function(e) { | |
| var t = document.querySelector(".a-dialogue"); | |
| return d.render(e, t), | |
| function() { | |
| d.unmountComponentAtNode(t) | |
| } | |
| }, | |
| openUserFollowers: function(e, t, n) { | |
| w.getUser(t).then(function(i) { | |
| var s = ""; | |
| s = 1 === i.get("followers") ? g.translate("profile.title.user_followed_by_one", i.get("username")) : g.translate("profile.title.user_followed_by_many", [i.get("followers"), i.getFormattedFollowers(), i.get("username")]); | |
| var r = new y(null ,{ | |
| url: v.getLink("followers", { | |
| user_id: t | |
| }) | |
| }); | |
| d.render(c.createElement(S, { | |
| users: r, | |
| title: s, | |
| analytics: { | |
| type: e + "/followers", | |
| user_id: i.id | |
| }, | |
| onClose: function() { | |
| d.unmountComponentAtNode(document.querySelector(".a-dialogue")), | |
| u.history.navigate(n, { | |
| trigger: !0 | |
| }) | |
| } | |
| }), document.querySelector(".a-dialogue")) | |
| }) | |
| }, | |
| openUserFollowing: function(e, t, n) { | |
| w.getUser(t).then(function(i) { | |
| var s = ""; | |
| s = 1 === i.get("follows") ? g.translate("profile.title.user_follows_one", i.get("username")) : g.translate("profile.title.user_follows_many", [i.get("username"), i.get("follows"), i.getFormattedFollowing()]); | |
| var r = new y(null ,{ | |
| url: v.getLink("follows", { | |
| user_id: t | |
| }) | |
| }); | |
| d.render(c.createElement(S, { | |
| users: r, | |
| title: s, | |
| analytics: { | |
| type: e + "/follows", | |
| user_id: i.id | |
| }, | |
| onClose: function() { | |
| d.unmountComponentAtNode(document.querySelector(".a-dialogue")), | |
| u.history.navigate(n, { | |
| trigger: !0 | |
| }) | |
| } | |
| }), document.querySelector(".a-dialogue")) | |
| }) | |
| }, | |
| openUsers: function(e, t) { | |
| d.render(c.createElement(S, { | |
| users: t, | |
| title: e, | |
| analytics: { | |
| type: "users" | |
| }, | |
| onClose: function() { | |
| d.unmountComponentAtNode(document.querySelector(".a-dialogue")) | |
| } | |
| }), document.querySelector(".a-dialogue")) | |
| }, | |
| openUserVerified: function(e, t) { | |
| d.render(c.createElement(k, { | |
| user: e, | |
| rewards: t, | |
| onClose: function() { | |
| d.unmountComponentAtNode(document.querySelector(".a-dialogue")), | |
| u.history.navigate("", { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| }, | |
| onClickProvider: function(e) { | |
| d.unmountComponentAtNode(document.querySelector(".a-dialogue")), | |
| u.history.navigate("/issue/" + e, { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| } | |
| }), document.querySelector(".a-dialogue")) | |
| }, | |
| openSignupProgress: function(e) { | |
| var t = new h({ | |
| user: e | |
| }); | |
| m.openDialogueWithView(t, { | |
| ignoreCloseView: !1, | |
| className: "v-confirm v-fb-signup-confirm white-close large-close" | |
| }) | |
| }, | |
| openSignUpEnterPassword: function(e) { | |
| var t = this | |
| , n = !1 | |
| , i = !1 | |
| , s = void 0 | |
| , r = function(t) { | |
| return n = !1, | |
| i = !0, | |
| t.length < 5 ? (n = g.locale.error.password_too_short, | |
| i = !1, | |
| s.render()) : void e.saveProperty({ | |
| password: t | |
| }).then(function() { | |
| p.track("Open Item Password Saved", { | |
| reads: e.get("reads") | |
| }), | |
| f.getUser().save("has_password", !0), | |
| E._close() | |
| }).fail(function(e) { | |
| n = e, | |
| i = !1, | |
| s.render() | |
| }) | |
| } | |
| ; | |
| s = new u.ReactView({ | |
| className: "enter-password pane s-success", | |
| renderComponent: function() { | |
| return c.createElement(_, { | |
| error: n, | |
| onSubmit: r.bind(t), | |
| loading: i | |
| }) | |
| } | |
| }), | |
| m.openDialogueWithView(s, { | |
| hideCancelButton: !0, | |
| disableClose: !0, | |
| className: "v-enter-password white-close l-no-animation v-module-dialogue s-success" | |
| }) | |
| }, | |
| openVerifyEmail: function(e, t, n) { | |
| var i = this | |
| , s = function(e) { | |
| E._close(), | |
| t(e) | |
| } | |
| , r = function() { | |
| E._close(), | |
| n && n(new o["default"](l.USER_REJECTED_EMAIL,"Users rejected email " + e)) | |
| } | |
| , a = new u.ReactView({ | |
| className: "dialogue-content s-success", | |
| renderComponent: function() { | |
| return c.createElement(b, { | |
| email: e, | |
| onCancel: r.bind(i), | |
| onSubmit: s.bind(i) | |
| }) | |
| } | |
| }); | |
| m.openDialogueWithView(a, { | |
| className: "v-dialogue vertical-center white-close l-no-animation v-module-dialogue s-success" | |
| }) | |
| }, | |
| openFacebookConnectExistingEmail: function(e) { | |
| p.track("Open Dialogue Facebook Connect Existing Email", { | |
| hasEmail: !!e | |
| }); | |
| var t = this.openComponent(c.createElement(r["default"], { | |
| email: e, | |
| onClose: function() { | |
| return t() | |
| } | |
| })) | |
| } | |
| }; | |
| e.exports = E | |
| }, | |
| 80: function(e, t, n) { | |
| var i, s = n(24)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(25) | |
| , r = n(5) | |
| , a = n(348) | |
| , o = n(5929) | |
| , l = "//connect.facebook.net/en_US/sdk.js" | |
| , u = (n(47), | |
| n(35)) | |
| , c = n(8); | |
| "test" === o.name && (l = "http://localhost:3000/static/scripts/facebook-js-stub.js"); | |
| var d = new a(l,{ | |
| libVar: "FB" | |
| }); | |
| return r.extend(d, { | |
| appId: "157559707786240", | |
| version: "v2.1", | |
| scope: "email,user_birthday,user_friends,public_profile,user_hometown,user_about_me", | |
| avatarUrl: "https://graph.facebook.com/%s/picture", | |
| _authResponse: null , | |
| _me: !1, | |
| _getFriendsLimit: 1e3, | |
| getAvatar: function(e, t) { | |
| return r.sprintf(this.avatarUrl + "?type=%s", r.escape(e), t || "square") | |
| }, | |
| getAvatarWithDimensions: function(e, t, n) { | |
| return r.sprintf(this.avatarUrl + "?width=%s&height=%s", r.escape(e), t, n) | |
| }, | |
| getAuthResponse: function() { | |
| return this._authResponse | |
| }, | |
| getFriendIDs: function() { | |
| return i.promise(function(e) { | |
| d.lib.api("/me/friends?limit=100", function(t) { | |
| e(d._fetchFacebookIDs([], t)) | |
| }) | |
| }) | |
| }, | |
| _fetchFacebookIDs: function(e, n) { | |
| var s = this; | |
| return e = e.concat(d._processFacebookIDs(n.data)), | |
| n.paging && n.paging.next ? t.ajax({ | |
| url: n.paging.next | |
| }).then(function(t) { | |
| return s._fetchFacebookIDs(e, t.data) | |
| }) : i.resolve(e) | |
| }, | |
| _processFacebookIDs: function(e) { | |
| return r.map(e, function(e) { | |
| return { | |
| id: parseInt(e.id, 10) | |
| } | |
| }) | |
| }, | |
| redirectLoginUrl: function() { | |
| var e = r.sprintf("https://www.facebook.com/dialog/oauth?client_id=%s&redirect_uri=%s&scope=%s&response_type=none", this.appId, encodeURIComponent(window.location), this.scope); | |
| return e | |
| }, | |
| loggedIn: function() { | |
| return this._authResponse ? s.resolve(this._authResponse) : this.load().then(this._loggedIn.bind(this)) | |
| }, | |
| _loggedIn: function() { | |
| var e = this; | |
| return new s(function(t, n) { | |
| var i = setTimeout(function() { | |
| n(new u(c.LIBRARY_UNAVAILABLE)) | |
| }, 4e3); | |
| e.lib.getLoginStatus(function(s) { | |
| return clearTimeout(i), | |
| "connected" === s.status ? (e._authResponse = s.authResponse, | |
| t(s.authResponse)) : n(new u("UnableToLogin","Unable to get login status from Facebook",s.data)) | |
| }) | |
| } | |
| ) | |
| }, | |
| login: function() { | |
| return new s(function(e, t) { | |
| d.lib.login(function(n) { | |
| return n.authResponse && n.authResponse.accessToken ? (d._authResponse = n.authResponse, | |
| e(n)) : t(new u("UnableToLogin","Unable to log into Facebook",n)) | |
| }, { | |
| scope: d.scope | |
| }) | |
| } | |
| ) | |
| }, | |
| logout: function() { | |
| var e = this | |
| , t = i.defer(); | |
| return this.execute("logout", function(n) { | |
| e._me = !1, | |
| e._authResponse = !1, | |
| t.resolve(n) | |
| }), | |
| t.promise | |
| }, | |
| getMe: function() { | |
| var e = this; | |
| return this._me ? s.resolve(this._me) : new s(function(t, n) { | |
| e.loggedIn().then(function() { | |
| e.execute("api", "/me", function(i) { | |
| i && !i.error ? (e._me = i, | |
| t(i)) : n(i) | |
| }) | |
| })["catch"](n) | |
| } | |
| ) | |
| }, | |
| getFriends: function(e) { | |
| e = e || this._getFriendsLimit; | |
| var t = i.defer() | |
| , n = []; | |
| return this.execute("api", "/me/friends?limit=" + e, this._processFriends.bind(this, n, t)), | |
| t.promise | |
| }, | |
| execute: function() { | |
| a.prototype.execute.apply(this, arguments)["catch"](function(e) { | |
| if (e.type !== c.LIBRARY_UNAVAILABLE) | |
| throw e | |
| }) | |
| }, | |
| _processFriends: function(e, n, i) { | |
| if (!i || !i.data) | |
| return void n.reject(new Error("Unable to fetch Facebook friends")); | |
| for (var s in i.data) | |
| e.push(i.data[s]); | |
| i.paging && i.paging.next ? t.ajax({ | |
| url: i.paging.next | |
| }).then(this._processFriends.bind(this, e, n)).done() : n.resolve(e) | |
| } | |
| }), | |
| d | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 81: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = (n(46), | |
| n(3).locale) | |
| , r = (n(20), | |
| n(28), | |
| i.createClass({ | |
| displayName: "SubmitPaneButton", | |
| propTypes: { | |
| onClick: i.PropTypes.func.isRequired | |
| }, | |
| onClick: function(e) { | |
| e.preventDefault(), | |
| this.props.onClick() | |
| }, | |
| render: function() { | |
| return i.createElement("div", { | |
| className: "v-navigate-prev" | |
| }, i.createElement("a", { | |
| onClick: this.onClick | |
| }, s.signup.back)) | |
| } | |
| })); | |
| e.exports = r | |
| }, | |
| 82: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(114) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = a.STATUS_INITIAL, | |
| this.user = null , | |
| this.bindActions(c["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onAuthenticateUser", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| user: e | |
| }) | |
| } | |
| }, { | |
| key: "onLogout", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_INITIAL, | |
| user: null | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "AuthStore"), | |
| e.exports = t["default"] | |
| }, | |
| 83: [5934, 128], | |
| 84: 189, | |
| 85: [5940, 29, 108, 71], | |
| 90: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(16) | |
| , s = n(12) | |
| , r = n(144) | |
| , a = n(537) | |
| , o = n(380) | |
| , l = t.Model.extend({ | |
| name: "issue", | |
| mappings: { | |
| manifest: { | |
| resource: r | |
| }, | |
| "b:manifest": { | |
| resource: r | |
| }, | |
| "b:issue-acquisition": { | |
| resource: o, | |
| options: { | |
| track: !0 | |
| } | |
| }, | |
| pages: { | |
| resource: a | |
| }, | |
| items: { | |
| resource: function(e, t) { | |
| var i = n(318); | |
| return new i(e,t) | |
| } | |
| } | |
| }, | |
| getRepresentation: function() { | |
| return this.getLink("cover_image") ? "pages" : this.get("representations") ? this.get("representations")[0] : "default" | |
| }, | |
| getCoverURL: function() { | |
| return this.getLink(this.getCoverKey()) | |
| }, | |
| getCoverWidth: function() { | |
| return this.getLinkAttribute(this.getCoverKey(), "width") | |
| }, | |
| getCoverHeight: function() { | |
| return this.getLinkAttribute(this.getCoverKey(), "height") | |
| }, | |
| getCoverKey: function() { | |
| return this.getLink("cover_image") ? "cover_image" : this.getLink("page_preview") ? "page_preview" : void 0 | |
| }, | |
| parse: function(e) { | |
| if (e._links || (e._links = {}), | |
| !e._links["b:issue-acquisition"]) { | |
| var t = { | |
| issue_id: e.id | |
| }; | |
| s.getId() && (t.user_context = s.getId()), | |
| e._links["b:issue-acquisition"] = { | |
| href: i.getLink("issue_acquisition", t) | |
| } | |
| } | |
| return "tiles" === e.representations[0] && (e._links.items = { | |
| href: i.getLink("issue_items", { | |
| issue_id: e.id | |
| }) | |
| }), | |
| this.parseHal(e) | |
| } | |
| }); | |
| return l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 91: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = n(44) | |
| , r = n(12) | |
| , a = n(16) | |
| , o = n(638) | |
| , l = n(43) | |
| , u = n(144) | |
| , c = n(669) | |
| , d = n(90) | |
| , p = n(666) | |
| , f = n(376) | |
| , h = i.Model.extend({ | |
| autoRefundTimeout: 10, | |
| name: "item", | |
| defaults: { | |
| type: "item", | |
| acquirable: !0 | |
| }, | |
| mappings: { | |
| "b:acquisition": { | |
| resource: function(e, t) { | |
| return e.id = e._links.self.href, | |
| new p(e,t) | |
| } | |
| }, | |
| item_content: { | |
| resource: c | |
| }, | |
| manifest: { | |
| resource: u | |
| }, | |
| issue: { | |
| resource: d | |
| }, | |
| "item-tracker": { | |
| resource: f, | |
| track: !0 | |
| } | |
| }, | |
| initialize: function(e) { | |
| var t = this; | |
| e && e.id && (this.url = a.getLink("item", { | |
| item_id: e.id | |
| })), | |
| this.on("change:post_count", function() { | |
| t.set("posts", t.get("post_count")), | |
| t.set("posts_count", t.get("post_count")) | |
| }) | |
| }, | |
| getLink: function(e) { | |
| var t = i.Model.prototype.getLink.apply(this, arguments); | |
| return s.subItems && "item_content" === e ? new l(t).addSearch({ | |
| subitems: !0 | |
| }).toString() : t | |
| }, | |
| parse: function(e) { | |
| var t = a.getLink("item", { | |
| item_id: e.id | |
| }) | |
| , n = t + "/acquisition"; | |
| return r.getId() && (n += "?user_context=" + r.getId()), | |
| e._links || (e._links = {}), | |
| e._embedded || (e._embedded = {}), | |
| e.id || (e.id = e._embedded.manifest.id), | |
| r.getId() && void 0 !== e.acquired && void 0 !== e.price && void 0 !== e.refundable && void 0 !== e.subscription && (e._embedded["b:acquisition"] = { | |
| _links: { | |
| self: { | |
| href: n | |
| }, | |
| "b:issue-acquisition": { | |
| href: a.getLink("issue_acquisition", { | |
| user_context: r.getId(), | |
| issue_id: e._embedded.manifest.issue.id | |
| }) | |
| } | |
| }, | |
| price: e.price, | |
| refundable: e.refundable, | |
| subscription: e.subscription, | |
| acquired: e.acquired | |
| }), | |
| !r.getId() && e.price && (e._embedded["b:acquisition"] = { | |
| _links: { | |
| self: { | |
| href: n | |
| }, | |
| "b:issue-acquisition": { | |
| href: a.getLink("issue_acquisition", { | |
| issue_id: e._embedded.manifest.issue.id | |
| }) | |
| } | |
| }, | |
| price: e.price | |
| }), | |
| e._links["b:acquisition"] || (e._links["b:acquisition"] = { | |
| href: n | |
| }), | |
| r.getId() && !e._links["b:pin"] && (e._links["b:pin"] = { | |
| href: a.getLink("user", { | |
| user_id: r.getId() | |
| }) + "/pin/" + e.id | |
| }), | |
| e._embedded["item-tracker"] = { | |
| id: e.id | |
| }, | |
| e.posts && (e.post_count = e.posts, | |
| e.posts_count = e.posts), | |
| e.posts_count && (e.posts = e.posts_count, | |
| e.post_count = e.posts_count), | |
| e.post_count && (e.posts = e.post_count, | |
| e.posts_count = e.post_count), | |
| this.parseHal(e) | |
| }, | |
| getURI: function() { | |
| return o.createItemUri(this) | |
| }, | |
| getFeaturedImage: function() { | |
| var e = this.get("manifest").get("images"); | |
| return t.find(e, { | |
| featured: !0 | |
| }) | |
| }, | |
| getImageHrefByDimension: function(e, n) { | |
| var i = this.getFeaturedImage(); | |
| if (i) { | |
| var s = i._links.original || i._links.large || i._links.medium || i._links.small; | |
| if (s.width < 300 || s.height < 300) | |
| return; | |
| var r = t.find(i._links, function(t) { | |
| return t.width >= e && t.height >= n && t.width > t.height && t.width / t.height < e / n | |
| }); | |
| if (r) | |
| return r.href | |
| } | |
| }, | |
| isAcquirable: function() { | |
| return this.get("acquirable") | |
| } | |
| }); | |
| return h | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 92: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(3).locale | |
| , r = n(20) | |
| , a = i.createClass({ | |
| displayName: "SubmitPaneButton", | |
| propTypes: { | |
| disabled: i.PropTypes.bool, | |
| onClick: i.PropTypes.func, | |
| loading: i.PropTypes.bool, | |
| value: i.PropTypes.string, | |
| children: i.PropTypes.array | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| disabled: !1, | |
| loading: !1, | |
| value: null | |
| } | |
| }, | |
| render: function() { | |
| return i.createElement("div", { | |
| className: "v-navigate-next" | |
| }, i.createElement(r, { | |
| type: "submit", | |
| loading: this.props.loading, | |
| disabled: this.props.disabled, | |
| onClick: this.props.onClick | |
| }, this.props.value || s.signup.next), this.props.children) | |
| } | |
| }); | |
| e.exports = a | |
| }, | |
| 95: 147, | |
| 96: 50, | |
| 97: [5963, 84], | |
| 102: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = n(351) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = n(12) | |
| , p = i(d) | |
| , f = n(115) | |
| , h = i(f) | |
| , m = n(20) | |
| , g = i(m) | |
| , v = n(28) | |
| , y = i(v) | |
| , _ = n(77) | |
| , b = i(_) | |
| , w = n(553) | |
| , S = i(w) | |
| , k = r["default"].createClass({ | |
| displayName: "Manifest", | |
| propTypes: { | |
| item: r["default"].PropTypes.object.isRequired, | |
| analytics: r["default"].PropTypes.object.isRequired, | |
| top: r["default"].PropTypes.number, | |
| hideImage: r["default"].PropTypes.bool, | |
| disableClick: r["default"].PropTypes.bool, | |
| hideDropdown: r["default"].PropTypes.bool, | |
| className: r["default"].PropTypes.string, | |
| showPin: r["default"].PropTypes.bool, | |
| showButton: r["default"].PropTypes.bool, | |
| onPinChanged: r["default"].PropTypes.func | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| hideImage: !1, | |
| className: "v-manifest item-manifest item", | |
| disableClick: !1, | |
| showButton: !1, | |
| showPin: !0 | |
| } | |
| }, | |
| getInitialState: function() { | |
| var e = this.props.item.getEmbedded("b:acquisition") | |
| , t = this.props.item.getEmbedded("b:pin"); | |
| return { | |
| acquisition: e, | |
| pinned: t ? t.get("pinned") : null | |
| } | |
| }, | |
| componentWillMount: function() { | |
| this._hasAcquisition() || this._fetchAcquisition(), | |
| null === this.state.pinned && this._fetchPin() | |
| }, | |
| _hasAcquisition: function() { | |
| var e = this.props.item.getEmbedded("b:acquisition"); | |
| return e && e.getEmbedded("b:issue-acquisition") | |
| }, | |
| _fetchAcquisition: function() { | |
| var e = this; | |
| this.props.item.getRelation("b:acquisition").then(function(e) { | |
| return e.getRelation("b:issue-acquisition") | |
| }).then(function() { | |
| e.setState({ | |
| acquisition: e.props.item.getEmbedded("b:acquisition") | |
| }) | |
| }) | |
| }, | |
| _fetchPin: function() { | |
| var e = this | |
| , t = this.props.item; | |
| t.getLink("b:pin") && t.getRelation("b:pin").then(function(t) { | |
| e.setState({ | |
| pinned: t.get("pinned") | |
| }) | |
| }) | |
| }, | |
| _onOpenItem: function(e) { | |
| e.preventDefault(), | |
| h["default"].navigateToItem(this.props.item.id, { | |
| analytics: this.props.analytics || { | |
| type: "manifest" | |
| }, | |
| lastEvent: e | |
| }) | |
| }, | |
| _onPinChange: function(e) { | |
| this.setState({ | |
| pinned: e | |
| }), | |
| this.props.onPinChanged && this.props.onPinChanged(e) | |
| }, | |
| _renderButton: function() { | |
| return this.props.showButton ? r["default"].createElement(g["default"], { | |
| className: "btn-green btn-text btn-acquire", | |
| onClick: this._onOpenItem | |
| }, (0, | |
| c.translate)("item.buttons.read")) : void 0 | |
| }, | |
| _renderImage: function(e) { | |
| return e ? r["default"].createElement("div", { | |
| className: "item-image" | |
| }, r["default"].createElement("div", { | |
| className: "image-canvas" | |
| }, r["default"].createElement(y["default"], { | |
| href: "/" + this.props.item.getURI(), | |
| onClick: this._onOpenItem | |
| }, r["default"].createElement(b["default"], { | |
| src: e | |
| }))), this._renderImageCredits()) : void 0 | |
| }, | |
| _renderImageCredits: function() { | |
| var e = this.props.item.getFeaturedImage().credit; | |
| if (e) | |
| return r["default"].createElement("div", { | |
| className: "credits" | |
| }, e) | |
| }, | |
| _renderProvider: function(e) { | |
| return this.props.disableClick ? r["default"].createElement("div", { | |
| className: "item-provider" | |
| }, e.get("name")) : r["default"].createElement(y["default"], { | |
| href: "/issue/" + this.props.item.getEmbedded("manifest").get("provider").id, | |
| className: "item-provider" | |
| }, e.get("name")) | |
| }, | |
| _renderExcerpt: function(e) { | |
| return this.props.disableClick ? r["default"].createElement("div", { | |
| className: "item-excerpt" | |
| }, e) : r["default"].createElement(y["default"], { | |
| href: "/" + this.props.item.getURI(), | |
| className: "item-excerpt", | |
| onClick: this._onOpenItem | |
| }, e) | |
| }, | |
| _renderPrice: function() { | |
| var e = this.state.acquisition; | |
| if (e) { | |
| var t = e.getEmbedded("b:issue-acquisition") | |
| , n = ["item-price"] | |
| , i = (0, | |
| c.formatCurrency)(e.get("price")) | |
| , s = this.props.item.getEmbedded("b:acquisition"); | |
| return e.get("subscription") ? (n.push("subscription"), | |
| i = (0, | |
| c.translate)("timeline.tiles.subscriber")) : s.get("acquired") ? (n.push("acquired"), | |
| i = "Acquired") : t && t.get("acquired") && (n.push("issue-acquired"), | |
| i = (0, | |
| c.translate)("timeline.tiles.edition")), | |
| r["default"].createElement("div", { | |
| className: (0, | |
| o["default"])(n) | |
| }, i) | |
| } | |
| }, | |
| _renderDropdown: function() { | |
| return this.props.hideDropdown ? null : r["default"].createElement(S["default"], { | |
| showPin: p["default"].getUser() && this.props.showPin, | |
| onPin: this._onPinChange, | |
| item: this.props.item, | |
| pinned: this.state.pinned, | |
| analytics: this.props.analytics | |
| }) | |
| }, | |
| render: function() { | |
| var e = {}; | |
| "number" == typeof this.props.top && (e.top = this.props.top + "px"); | |
| var t = this.props.item.getEmbedded("manifest") | |
| , n = t.getProvider() | |
| , i = (0, | |
| u["default"])(t.getBody(), n.getTemplate("tile")) | |
| , s = void 0; | |
| this.props.hideImage || (s = this.props.item.getImageHrefByDimension(310, 200)); | |
| var a = (0, | |
| o["default"])(this.props.className, "s-success", "provider-" + n.id, { | |
| "has-image": s | |
| }); | |
| return r["default"].createElement("div", { | |
| className: a, | |
| style: e | |
| }, this._renderProvider(n), this._renderPrice(), this._renderDropdown(), this._renderImage(s), this._renderExcerpt(i), this._renderButton()) | |
| } | |
| }); | |
| t["default"] = k, | |
| e.exports = t["default"] | |
| }, | |
| 103: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = n(11) | |
| , p = o(d) | |
| , f = n(41) | |
| , h = o(f) | |
| , m = n(56) | |
| , g = o(m) | |
| , v = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = this.props.user.get("balance") | |
| , t = this.props.user.getAvatarHref() | |
| , n = (0, | |
| p["default"])(["balance", { | |
| "s-low": 1 >= e | |
| }]) | |
| , i = (0, | |
| h["default"])(e); | |
| return u["default"].createElement("div", { | |
| className: "v-avatar-balance-header" | |
| }, u["default"].createElement("div", { | |
| className: "title" | |
| }, u["default"].createElement("div", { | |
| className: "avatar" | |
| }, u["default"].createElement(g["default"], { | |
| src: t | |
| })), u["default"].createElement("div", { | |
| className: "current-balance" | |
| }, c.locale.payment.text.current_balance, u["default"].createElement("span", { | |
| className: n | |
| }, i)))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| user: u["default"].PropTypes.object.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 104: function(e, t, n) { | |
| var i; | |
| i = function() { | |
| "use strict"; | |
| return function(e, t) { | |
| if (!e) | |
| throw new Error(t || "Assertion failed") | |
| } | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 105: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = arguments.length <= 2 || void 0 === arguments[2] ? window.__perfInitTime : arguments[2]; | |
| t.event = e, | |
| t.timing = Date.now() - n, | |
| l["default"].trackPerformance && a["default"].trackPerformance(t) | |
| } | |
| var s = n(1)["default"] | |
| , r = n(13) | |
| , a = s(r) | |
| , o = n(44) | |
| , l = s(o) | |
| , u = {}; | |
| i.once = function(e, t) { | |
| u[e] || (i(e, t), | |
| u[e] = !0) | |
| } | |
| , | |
| i.applicationBooting = function() { | |
| i.once("Application Booting") | |
| } | |
| , | |
| i.applicationRunning = function() { | |
| i.once("Application Running") | |
| } | |
| , | |
| i.applicationReady = function(e) { | |
| i.once("Application Ready", { | |
| view: e | |
| }) | |
| } | |
| , | |
| i.readerReady = function(e) { | |
| i("Reader Ready", {}, e) | |
| } | |
| , | |
| e.exports = i | |
| }, | |
| 108: 257, | |
| 111: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(345) | |
| , o = r["default"].createClass({ | |
| displayName: "Logo", | |
| getDefaultProps: function() { | |
| return { | |
| href: "/" | |
| } | |
| }, | |
| _renderLogo: function() { | |
| return (0, | |
| a.getException)("showBetaLogo", !1) ? r["default"].createElement("svg", { | |
| id: "logo", | |
| viewBox: "0 0 130 36", | |
| version: "1.1", | |
| xmlns: "http://www.w3.org/2000/svg" | |
| }, r["default"].createElement("g", { | |
| id: "Blendle", | |
| transform: "translate(41.131667, 6.056782)", | |
| fill: "#000000" | |
| }, r["default"].createElement("path", { | |
| d: "M0.0705833333,19.4321767 L0.0705833333,0 L6.19116667,0 C8.21791667,0 9.84133333,0.444164038 11.011,1.3022082 C12.2008333,2.16025237 12.8058333,3.43217666 12.8058333,5.15835962 C12.8058333,6.87444795 12.0899167,8.26750789 10.6379167,9.31735016 C12.3924167,10.3974763 13.2696667,11.9520505 13.2696667,13.9205047 C13.2696667,17.3324921 10.6883333,19.4422713 6.66508333,19.4422713 L0.0705833333,19.4422713 L0.0705833333,19.4321767 Z M3.33758333,2.98801262 L3.33758333,8.00504732 L5.53575,8.00504732 C8.1675,8.00504732 9.47833333,7.14700315 9.47833333,5.4511041 C9.47833333,3.56340694 7.96583333,2.98801262 5.36433333,2.98801262 L3.33758333,2.98801262 L3.33758333,2.98801262 Z M3.33758333,16.444164 L5.72733333,16.444164 C8.55066667,16.444164 9.97241667,15.5053628 9.97241667,13.6176656 C9.97241667,11.9015773 8.60108333,11.0435331 5.82816667,11.0435331 L3.3275,11.0435331 L3.3275,16.444164 L3.33758333,16.444164 Z", | |
| id: "B" | |
| }), r["default"].createElement("path", { | |
| d: "M15.15525,19.4927445 L15.15525,0.0504731861 L18.2810833,0.0504731861 L18.2810833,19.4826498 L15.15525,19.4826498 L15.15525,19.4927445 Z", | |
| id: "l" | |
| }), r["default"].createElement("path", { | |
| d: "M32.5288333,13.6277603 L23.3429167,13.6277603 C23.4840833,15.6567823 24.8755833,16.9287066 26.8821667,16.9287066 C28.3341667,16.9287066 29.4836667,16.2927445 30.34075,15.0107256 L32.4481667,17.0094637 C31.0264167,18.8769716 29.161,19.785489 26.8821667,19.785489 C24.8856667,19.785489 23.232,19.1495268 22.0018333,17.8473186 C20.7716667,16.5451104 20.1364167,14.8492114 20.1364167,12.7697161 C20.1364167,10.740694 20.7111667,9.02460568 21.8405,7.64164038 C22.99,6.25867508 24.5226667,5.56214511 26.4183333,5.56214511 C30.7743333,5.56214511 32.5590833,9.0851735 32.5590833,12.5173502 L32.5288333,13.6277603 L32.5288333,13.6277603 Z M23.5143333,11.1041009 L29.2416667,11.1041009 C29.2114167,9.69085174 28.3341667,8.43911672 26.4485833,8.43911672 C24.7949167,8.44921136 23.8168333,9.64037855 23.5143333,11.1041009 L23.5143333,11.1041009 Z", | |
| id: "e" | |
| }), r["default"].createElement("path", { | |
| d: "M40.3030833,5.55205047 C40.0409167,5.54195584 34.3135833,5.41072555 34.3135833,10.9829653 L34.3135833,19.5028391 L37.631,19.5028391 L37.631,11.1343849 C37.631,9.64037855 38.8309167,8.43911672 40.3030833,8.43911672 C41.77525,8.43911672 42.9751667,9.65047319 42.9751667,11.1343849 L42.9751667,19.5028391 L46.2825,19.5028391 L46.2825,10.9829653 C46.2825,5.40063091 40.5551667,5.54195584 40.3030833,5.55205047 L40.3030833,5.55205047 Z", | |
| id: "n" | |
| }), r["default"].createElement("path", { | |
| d: "M58.3724167,0.0403785489 L58.3724167,6.88454259 C57.354,5.99621451 56.0935833,5.55205047 54.6214167,5.55205047 C52.7055833,5.55205047 51.1426667,6.21829653 49.9024167,7.58107256 C48.67225,8.94384858 48.06725,10.629653 48.06725,12.6788644 C48.06725,14.7280757 48.67225,16.4239748 49.9024167,17.7766562 C51.1325833,19.1091483 52.6955,19.7753943 54.6214167,19.7753943 C56.1843333,19.7753943 57.475,19.2807571 58.4329167,18.2511041 L58.4329167,19.4826498 L61.49825,19.4826498 L61.49825,0.0403785489 L58.3724167,0.0403785489 L58.3724167,0.0403785489 Z M54.84325,17.0094637 C52.5644167,17.0094637 51.2535833,15.1217666 51.2535833,12.6788644 C51.2535833,10.2359621 52.5644167,8.35835962 54.84325,8.35835962 C57.14225,8.35835962 58.4329167,10.2460568 58.4329167,12.6788644 C58.4329167,15.1217666 57.14225,17.0094637 54.84325,17.0094637 L54.84325,17.0094637 Z", | |
| id: "d" | |
| }), r["default"].createElement("path", { | |
| d: "M63.73675,19.4927445 L63.73675,0.0504731861 L66.8625833,0.0504731861 L66.8625833,19.4826498 L63.73675,19.4826498 L63.73675,19.4927445 Z", | |
| id: "l_1_" | |
| }), r["default"].createElement("path", { | |
| d: "M80.8380833,13.6277603 L71.6521667,13.6277603 C71.7933333,15.6567823 73.1848333,16.9287066 75.1914167,16.9287066 C76.6434167,16.9287066 77.7929167,16.2927445 78.65,15.0107256 L80.7574167,17.0094637 C79.3356667,18.866877 77.47025,19.785489 75.1914167,19.785489 C73.1949167,19.785489 71.54125,19.1495268 70.3110833,17.8473186 C69.0809167,16.5451104 68.4456667,14.8492114 68.4456667,12.7697161 C68.4456667,10.740694 69.0204167,9.02460568 70.14975,7.64164038 C71.29925,6.25867508 72.8319167,5.56214511 74.7275833,5.56214511 C79.0835833,5.56214511 80.8683333,9.0851735 80.8683333,12.5173502 L80.8380833,13.6277603 L80.8380833,13.6277603 Z M71.8235833,11.1041009 L77.5509167,11.1041009 C77.5206667,9.69085174 76.6434167,8.43911672 74.7578333,8.43911672 C73.11425,8.44921136 72.1260833,9.64037855 71.8235833,11.1041009 L71.8235833,11.1041009 Z", | |
| id: "e_1_" | |
| })), r["default"].createElement("g", { | |
| id: "Icon" | |
| }, r["default"].createElement("path", { | |
| d: "M31.581,15.9697161 C31.5305833,21.0271293 30.3911667,25.3072555 27.67875,27.992429 C25.01675,30.7381703 20.7918333,31.888959 15.7905,31.9394322 C10.7891667,31.888959 6.56425,30.7381703 3.90225,27.992429 C1.18983333,25.3072555 0.0504166667,21.0271293 0,15.9697161 C0.0504166667,10.9123028 1.18983333,6.63217666 3.90225,3.94700315 C6.56425,1.20126183 10.7891667,0.0504731861 15.7905,0 C20.7918333,0.0504731861 25.01675,1.20126183 27.67875,3.94700315 C30.3810833,6.63217666 31.5305833,10.9123028 31.581,15.9697161 L31.581,15.9697161 Z", | |
| id: "supercircle", | |
| fill: "#FF6255" | |
| }), r["default"].createElement("g", { | |
| id: "Guillemet", | |
| transform: "translate(7.764167, 7.974763)", | |
| fill: "#FFFFFF" | |
| }, r["default"].createElement("path", { | |
| d: "M9.3775,7.99495268 L9.3775,7.99495268 C6.87683333,5.28958991 4.43666667,2.66498423 1.98641667,0.0302839117 C1.089,0.736908517 0.87725,0.90851735 0.03025,1.56466877 C0.03025,1.56466877 2.19816667,5.19873817 3.29725,6.93501577 C3.55941667,7.35899054 3.72075,7.68201893 3.751,7.99495268 C3.73083333,8.30788644 3.5695,8.63091483 3.29725,9.05488959 C2.20825,10.7911672 0.03025,14.4252366 0.03025,14.4252366 C0.867166667,15.081388 1.07891667,15.2529968 1.98641667,15.9596215 C4.43666667,13.3249211 6.87683333,10.7003155 9.3775,7.99495268 L9.3775,7.99495268", | |
| id: "Shape" | |
| }), r["default"].createElement("path", { | |
| d: "M18.05925,7.99495268 L18.05925,7.99495268 C15.3770833,5.0977918 13.3301667,2.89716088 10.6681667,0.0302839117 C9.77075,0.736908517 9.559,0.90851735 8.712,1.56466877 C8.712,1.56466877 10.8799167,5.19873817 11.979,6.93501577 C12.2411667,7.35899054 12.4025,7.68201893 12.43275,7.99495268 C12.4125833,8.30788644 12.25125,8.63091483 11.979,9.05488959 C10.89,10.7911672 8.712,14.4252366 8.712,14.4252366 C9.54891667,15.081388 9.76066667,15.2529968 10.6681667,15.9596215 C13.1083333,13.3249211 15.5485,10.7003155 18.05925,7.99495268 L18.05925,7.99495268", | |
| id: "Shape" | |
| }))), r["default"].createElement("path", { | |
| d: "M104.72,34 L106.776,34 C107.824,34 108.736,33.488 108.736,32.352 C108.736,31.776 108.44,31.2 107.816,31.016 L107.816,31 C108.248,30.768 108.504,30.312 108.504,29.784 C108.504,28.848 107.776,28.32 106.752,28.32 L104.72,28.32 L104.72,34 Z M105.752,30.64 L105.752,29.208 L106.736,29.208 C107.216,29.208 107.456,29.504 107.456,29.912 C107.456,30.32 107.2,30.64 106.752,30.64 L105.752,30.64 Z M105.752,33.112 L105.752,31.472 L106.856,31.472 C107.376,31.472 107.68,31.816 107.68,32.288 C107.68,32.768 107.384,33.112 106.856,33.112 L105.752,33.112 Z M109.856,34 L113.384,34 L113.384,33.112 L110.888,33.112 L110.888,31.584 L112.8,31.584 L112.8,30.696 L110.888,30.696 L110.888,29.208 L113.256,29.208 L113.256,28.32 L109.856,28.32 L109.856,34 Z M115.632,34 L116.664,34 L116.664,29.208 L118.528,29.208 L118.528,28.32 L113.768,28.32 L113.768,29.208 L115.632,29.208 L115.632,34 Z M122.584,34 L123.648,34 L121.648,28.32 L120.568,28.32 L118.568,34 L119.632,34 L120.112,32.544 L122.104,32.544 L122.584,34 Z M121.12,29.304 C121.12,29.304 121.24,29.864 121.344,30.184 L121.848,31.704 L120.36,31.704 L120.864,30.184 C120.976,29.864 121.104,29.304 121.104,29.304 L121.12,29.304 Z", | |
| id: "BETA", | |
| fill: "#948784" | |
| })) : r["default"].createElement("svg", { | |
| version: "1.1", | |
| id: "logo", | |
| xmlns: "http://www.w3.org/2000/svg", | |
| x: "0px", | |
| y: "0px", | |
| viewBox: "0 0 1200 316.4", | |
| "enable-background": "new 0 0 1200 316.4" | |
| }, r["default"].createElement("g", { | |
| id: "Blendle" | |
| }, r["default"].createElement("path", { | |
| id: "B", | |
| d: "M398.7,252.5V60h60.7c20.1,0,36.2,4.4,47.8,12.9C519,81.4,525,94,525,111.1c0,17-7.1,30.8-21.5,41.2 c17.4,10.7,26.1,26.1,26.1,45.6c0,33.8-25.6,54.7-65.5,54.7H398.7z M431.1,89.6v49.7h21.8c26.1,0,39.1-8.5,39.1-25.3 c0-18.7-15-24.4-40.8-24.4H431.1z M431.1,222.9h23.7c28,0,42.1-9.3,42.1-28c0-17-13.6-25.5-41.1-25.5h-24.8V222.9z" | |
| }), r["default"].createElement("path", { | |
| id: "l", | |
| d: "M548.3,253.1V60.5h31v192.5H548.3z" | |
| }), r["default"].createElement("path", { | |
| id: "e", | |
| d: "M720.6,195h-91.1c1.4,20.1,15.2,32.7,35.1,32.7c14.4,0,25.8-6.3,34.3-19l20.9,19.8C705.7,247,687.2,256,664.6,256 c-19.8,0-36.2-6.3-48.4-19.2c-12.2-12.9-18.5-29.7-18.5-50.3c0-20.1,5.7-37.1,16.9-50.8c11.4-13.7,26.6-20.6,45.4-20.6 c43.2,0,60.9,34.9,60.9,68.9L720.6,195z M631.2,170H688c-0.3-14-9-26.4-27.7-26.4C643.9,143.7,634.2,155.5,631.2,170z" | |
| }), r["default"].createElement("path", { | |
| id: "n", | |
| d: "M797.7,115c-2.6-0.1-59.4-1.4-59.4,53.8c0,56.5,0,84.4,0,84.4h32.9v-82.9c0-14.8,11.9-26.7,26.5-26.7 c14.6,0,26.5,12,26.5,26.7v82.9H857c0,0,0-27.9,0-84.4C857,113.5,800.2,114.9,797.7,115z" | |
| }), r["default"].createElement("path", { | |
| id: "d", | |
| d: "M976.9,60.4v67.8c-10.1-8.8-22.6-13.2-37.2-13.2c-19,0-34.5,6.6-46.8,20.1c-12.2,13.5-18.2,30.2-18.2,50.5 c0,20.3,6,37.1,18.2,50.5c12.2,13.2,27.7,19.8,46.8,19.8c15.5,0,28.3-4.9,37.8-15.1V253h30.4V60.4H976.9z M941.9,228.5 c-22.6,0-35.6-18.7-35.6-42.9c0-24.2,13-42.8,35.6-42.8c22.8,0,35.6,18.7,35.6,42.8C977.5,209.8,964.7,228.5,941.9,228.5z" | |
| }), r["default"].createElement("path", { | |
| id: "l_1_", | |
| d: "M1030.1,253.1V60.5h31v192.5H1030.1z" | |
| }), r["default"].createElement("path", { | |
| id: "e_1_", | |
| d: "M1199.7,195h-91.1c1.4,20.1,15.2,32.7,35.1,32.7c14.4,0,25.8-6.3,34.3-19l20.9,19.8 c-14.1,18.4-32.6,27.5-55.2,27.5c-19.8,0-36.2-6.3-48.4-19.2c-12.2-12.9-18.5-29.7-18.5-50.3c0-20.1,5.7-37.1,16.9-50.8 c11.4-13.7,26.6-20.6,45.4-20.6c43.2,0,60.9,34.9,60.9,68.9L1199.7,195z M1110.3,170h56.8c-0.3-14-9-26.4-27.7-26.4 C1123.1,143.7,1113.3,155.5,1110.3,170z" | |
| })), r["default"].createElement("g", { | |
| id: "Icon" | |
| }, r["default"].createElement("path", { | |
| id: "supercircle", | |
| "fill-rule": "evenodd", | |
| fill: "#FF6255", | |
| "clip-rule": "evenodd", | |
| d: "M313.2,158.2c-0.5,50.1-11.8,92.5-38.7,119.1 c-26.4,27.2-68.3,38.6-117.9,39.1c-49.6-0.5-91.5-11.9-117.9-39.1C11.8,250.7,0.5,208.3,0,158.2c0.5-50.1,11.8-92.5,38.7-119.1 C65.1,11.9,107,0.5,156.6,0c49.6,0.5,91.5,11.9,117.9,39.1C301.3,65.7,312.7,108.1,313.2,158.2z" | |
| }), r["default"].createElement("g", { | |
| id: "Guillemet" | |
| }, r["default"].createElement("path", { | |
| "fill-rule": "evenodd", | |
| "clip-rule": "evenodd", | |
| fill: "#FFFFFF", | |
| d: "M170,158.2C170,158.2,170.1,158.2,170,158.2 c-24.8-26.8-49-52.8-73.3-78.9c-8.9,7-11,8.7-19.4,15.2c0,0,21.5,36,32.4,53.2c2.6,4.2,4.2,7.4,4.5,10.5 c-0.2,3.1-1.8,6.3-4.5,10.5c-10.8,17.2-32.4,53.2-32.4,53.2c8.3,6.5,10.4,8.2,19.4,15.2C121,211,145.2,185,170,158.2 C170.1,158.2,170,158.2,170,158.2" | |
| }), r["default"].createElement("path", { | |
| "fill-rule": "evenodd", | |
| "clip-rule": "evenodd", | |
| fill: "#FFFFFF", | |
| d: "M256.1,158.2C256.1,158.2,256.1,158.2,256.1,158.2 c-26.6-28.7-46.9-50.5-73.3-78.9c-8.9,7-11,8.7-19.4,15.2c0,0,21.5,36,32.4,53.2c2.6,4.2,4.2,7.4,4.5,10.5 c-0.2,3.1-1.8,6.3-4.5,10.5c-10.8,17.2-32.4,53.2-32.4,53.2c8.3,6.5,10.4,8.2,19.4,15.2C207,211,231.2,185,256.1,158.2 C256.1,158.2,256.1,158.2,256.1,158.2" | |
| })))) | |
| }, | |
| render: function() { | |
| return r["default"].createElement("a", { | |
| className: "logo", | |
| href: this.props.href | |
| }, this._renderLogo()) | |
| } | |
| }); | |
| t["default"] = o, | |
| e.exports = t["default"] | |
| }, | |
| 112: function(e, t, n) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var i = n(2) | |
| , s = n(15) | |
| , r = n(11) | |
| , a = n(235) | |
| , o = i.createClass({ | |
| displayName: "BackboneView", | |
| propTypes: { | |
| view: i.PropTypes.object.isRequired, | |
| className: i.PropTypes.string | |
| }, | |
| componentDidMount: function() { | |
| var e = this.props.view; | |
| s.findDOMNode(this).appendChild(e.render().el), | |
| e.load(), | |
| e.afterRender() | |
| }, | |
| compontentDidUpdate: function() { | |
| this.options.preventReplace || (a(s.findDOMNode(this)), | |
| s.findDOMNode(this).appendChild(this.props.view.render().el)) | |
| }, | |
| componentWillUnmount: function() { | |
| var e = this; | |
| setTimeout(function() { | |
| return e.props.view.unload() | |
| }) | |
| }, | |
| render: function() { | |
| var e = r("v-backbone-view", this.props.className); | |
| return i.createElement("div", { | |
| className: e | |
| }) | |
| } | |
| }); | |
| t["default"] = o, | |
| e.exports = t["default"] | |
| }, | |
| 115: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(21)["default"] | |
| , a = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = n(19) | |
| , l = a(o) | |
| , u = n(4) | |
| , c = a(u) | |
| , d = n(8) | |
| , p = n(179) | |
| , f = a(p) | |
| , h = n(91) | |
| , m = a(h) | |
| , g = n(373) | |
| , v = a(g) | |
| , y = n(13) | |
| , _ = a(y) | |
| , b = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchItemSuccess", "fetchItemError") | |
| } | |
| return i(e, [{ | |
| key: "fetchItem", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| var i = new m["default"]({ | |
| id: e | |
| }); | |
| n({ | |
| item: i | |
| }), | |
| i.fetch().then(function() { | |
| t.fetchItemSuccess({ | |
| item: i | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type === d.XHR_STATUS) | |
| return t.fetchItemError({ | |
| item: i, | |
| error: e | |
| }); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "navigateToItem", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; | |
| return function(n) { | |
| var i = r({ | |
| urlAfterItemClose: c["default"].history.fragment | |
| }, t); | |
| f["default"].openItem(e, i), | |
| n({ | |
| itemId: e, | |
| config: i | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "pinItem", | |
| value: function(e, t, n, i) { | |
| return function(s) { | |
| v["default"].updatePin(e, t, n); | |
| var r = n ? "Pin Item" : "Unpin Item"; | |
| _["default"].trackItemEvent(t, i, r), | |
| s({ | |
| itemId: t.id, | |
| pinned: n | |
| }) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createActions(b), | |
| e.exports = t["default"] | |
| }, | |
| 116: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(2) | |
| , r = n(86) | |
| , a = (n(17), | |
| n(11)) | |
| , o = s.createClass({ | |
| displayName: "Tile", | |
| mixins: [r], | |
| getInitialState: function() { | |
| return {} | |
| }, | |
| componentDidMount: function() { | |
| this.props.onDidMount && this.props.onDidMount() | |
| }, | |
| render: function() { | |
| return s.createElement("div", { | |
| className: this._getClassName(), | |
| style: this._getStyle() | |
| }, this._getChildren()) | |
| }, | |
| _getClassName: function() { | |
| return a(i({ | |
| "v-pane-tile": !0 | |
| }, "l-" + this.props.type, this.props.type)) | |
| }, | |
| _getChildren: function() { | |
| var e = this; | |
| return s.Children.toArray(this.props.children).filter(function(e) { | |
| return e | |
| }).map(function(t) { | |
| return s.cloneElement(t, { | |
| disabled: e.props.disabled || !e.props.visible | |
| }) | |
| }) | |
| }, | |
| _getStyle: function(e) { | |
| return this.props.width && this.props.height ? "horizontal" === this.props.orientation ? this._getHorizontalDimensions() : this._getVerticalDimensions() : {} | |
| }, | |
| _getHorizontalDimensions: function() { | |
| var e = this.props.baseHeight; | |
| return { | |
| height: e, | |
| width: Math.round(e / this.props.height * this.props.width) | |
| } | |
| }, | |
| _getVerticalDimensions: function() { | |
| var e = this.props.baseWidth / 2 - 6; | |
| return { | |
| width: e, | |
| height: Math.round(e / this.props.width * this.props.height) | |
| } | |
| } | |
| }); | |
| e.exports = o | |
| }, | |
| 117: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(2) | |
| , r = n(15) | |
| , a = n(346) | |
| , o = s.createClass({ | |
| displayName: "Portal", | |
| componentWillUnmount: function() { | |
| this.props.onWillUnmount && this.props.onWillUnmount() | |
| }, | |
| componentDidMount: function() { | |
| this.props.onDidMount && this.props.onDidMount(r.findDOMNode(this)) | |
| }, | |
| componentWillMount: function() { | |
| this.props.onWillMount && this.props.onWillMount() | |
| }, | |
| render: function() { | |
| return s.Children.only(this.props.children) | |
| } | |
| }) | |
| , l = function(e) { | |
| return { | |
| getInitialState: function() { | |
| return { | |
| portalKey: i.uniqueId("portal") | |
| } | |
| }, | |
| componentWillMount: function() { | |
| this.props.portal ? this._target = this.props.portal : this._target = this._createPortal(), | |
| this._target._portalKey = this.state.portalKey | |
| }, | |
| componentDidMount: function() { | |
| this._renderLayer(), | |
| this.props.onScroll && (this._scrollParent = a(r.findDOMNode(this)), | |
| this._scrollParent.addEventListener("scroll", this.props.onScroll)) | |
| }, | |
| componentDidUpdate: function() { | |
| this._renderLayer() | |
| }, | |
| componentWillUnmount: function() { | |
| this.getLayerDOMNode() && this.getLayerDOMNode().parentNode === this._target && this.unrenderLayer(), | |
| this.props.onScroll && this._scrollParent.removeEventListener("scroll", this.props.onScroll) | |
| }, | |
| getLayerDOMNode: function() { | |
| return this._layerDOMNode | |
| }, | |
| _renderLayer: function() { | |
| r.render(s.createElement(o, { | |
| key: this.state.portalKey, | |
| onWillMount: this.layerWillMount, | |
| onDidMount: this._layerDidMount, | |
| onDidUnmount: this.layerDidUnmount | |
| }, this.renderLayer()), this._target) | |
| }, | |
| unrenderLayer: function() { | |
| var e = this; | |
| setTimeout(function() { | |
| e.state.portalKey === e._target._portalKey && r.unmountComponentAtNode(e._target) | |
| }) | |
| }, | |
| _layerDidMount: function(e) { | |
| this._layerDOMNode = e, | |
| this.layerDidMount && this.layerDidMount() | |
| }, | |
| _createPortal: function() { | |
| var t; | |
| return e && (t = document.getElementById(e)), | |
| t || (t = document.createElement("div"), | |
| e && (t.id = e)), | |
| t.parentNode || document.body.appendChild(t), | |
| t | |
| } | |
| } | |
| } | |
| ; | |
| e.exports = l | |
| }, | |
| 119: function(e, t, n) { | |
| "use strict"; | |
| var i = n(24)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(4) | |
| , a = s(r) | |
| , o = n(80) | |
| , l = s(o) | |
| , u = n(12) | |
| , c = s(u) | |
| , d = n(66) | |
| , p = s(d) | |
| , f = n(16) | |
| , h = s(f) | |
| , m = n(101) | |
| , g = s(m) | |
| , v = n(52) | |
| , y = s(v) | |
| , _ = n(8) | |
| , b = n(35) | |
| , w = s(b) | |
| , S = { | |
| statusCodes: { | |
| 200: "authorized", | |
| 401: "unauthorized", | |
| 403: "authorized_new_user", | |
| 429: "throttled" | |
| }, | |
| login: function(e) { | |
| var t = this; | |
| return e = e || l["default"].getAuthResponse(), | |
| e ? this._processAuthResponse(e) : l["default"].login().then(function(e) { | |
| return t._processAuthResponse(e.authResponse) | |
| }) | |
| }, | |
| authorize: function(e) { | |
| return new i(function(e, t) { | |
| return l["default"].getAuthResponse() ? e(l["default"].getAuthResponse()) : void l["default"].login().then(e)["catch"](t) | |
| } | |
| ).then(function(t) { | |
| var n = t.authResponse || t; | |
| return p["default"].saveFacebookCredentials(e, n) | |
| }) | |
| }, | |
| getFriends: function(e) { | |
| return l["default"].getFriendIDs().then(function(t) { | |
| return a["default"].ajax({ | |
| url: h["default"].getLink("follows", { | |
| user_id: e.id | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| facebook_friends: t | |
| }) | |
| }) | |
| }).then(function(e) { | |
| return i.resolve(new g["default"](e.data,{ | |
| parse: !0 | |
| })) | |
| }) | |
| }, | |
| loginIfAuthorized: function() { | |
| return y["default"].get(_.MANUAL_LOGOUT) ? i.reject(new w["default"](_.MANUAL_LOGOUT)) : l["default"].loggedIn().then(S._processAuthResponse.bind(S)) | |
| }, | |
| authorizeAndGetFriends: function(e) { | |
| return this.authorize(e).then(this.getFriends) | |
| }, | |
| _processAuthResponse: function(e) { | |
| var t = this; | |
| return c["default"].loginWithCredentials({ | |
| facebook_id: e.userID, | |
| facebook_access_token: e.accessToken | |
| })["catch"](function(n) { | |
| if (n.status) | |
| return i.reject({ | |
| authResponse: e, | |
| status: t.statusCodes[n.status] | |
| }); | |
| throw n | |
| }) | |
| } | |
| }; | |
| t["default"] = S, | |
| e.exports = t["default"] | |
| }, | |
| 120: function(e, t, n) { | |
| var i, s = n(53)["default"], r = n(24)["default"], a = n(93)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| function t() { | |
| return s(m).length ? r.resolve(m) : l.ajax({ | |
| url: c.getLink("microservice_subscriptions"), | |
| type: "GET", | |
| headers: { | |
| Accept: "application/hal+json" | |
| } | |
| }).then(function(e) { | |
| return a(m, e.data), | |
| m | |
| }) | |
| } | |
| var i = n(44) | |
| , o = n(5) | |
| , l = n(34) | |
| , u = n(25) | |
| , c = n(16) | |
| , d = n(12) | |
| , p = n(622) | |
| , f = n(635).getLink | |
| , h = n(18); | |
| p = o.filter(p, function(e) { | |
| return e.id in i.subscriptions ? i.subscriptions[e.id] : !0 | |
| }); | |
| var m = {} | |
| , g = { | |
| getProviders: function() { | |
| return p | |
| }, | |
| addSubscriptionWithUsernameAndPassword: function(e, t, n) { | |
| var i = u.defer(); | |
| return l.ajax({ | |
| url: c.getLink("user_provider_accounts", { | |
| user_id: d.getId() | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| provider: e, | |
| username: t, | |
| password: n | |
| }) | |
| }).then(function(e) { | |
| 201 === e.status ? i.resolve(e) : i.reject(new Error("Unknown status code")) | |
| }, function(e) { | |
| i.reject(e) | |
| }).done(), | |
| i.promise | |
| }, | |
| addSubscriptionWithAuthorizationCode: function(e, t) { | |
| var n = u.defer(); | |
| return l.ajax({ | |
| url: c.getLink("user_provider_accounts", { | |
| user_id: d.getId() | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| provider: e, | |
| authorization_code: t | |
| }) | |
| }).then(function(e) { | |
| 201 === e.status ? n.resolve(e) : n.reject(new Error("Unknown status code")) | |
| }, function(e) { | |
| n.reject(e) | |
| }), | |
| n.promise | |
| }, | |
| addSubscriptionWithAuthURI: function(e, t) { | |
| var n = u.defer(); | |
| return l.ajax({ | |
| url: c.getLink("user_provider_accounts", { | |
| user_id: d.getId() | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| provider: e, | |
| auth_uri: t | |
| }) | |
| }).then(function(e) { | |
| 201 === e.status ? n.resolve(e) : n.reject(new Error("Unknown status code")) | |
| }, function(e) { | |
| n.reject(e) | |
| }), | |
| n.promise | |
| }, | |
| stopSubscription: function(e, n) { | |
| return t().then(function() { | |
| var t = f(m, "user_subscription", { | |
| user_uid: e, | |
| subscription_uid: n | |
| }); | |
| return l.ajax({ | |
| url: t, | |
| type: "POST", | |
| headers: { | |
| Accept: "application/hal+json" | |
| }, | |
| data: { | |
| renew: !1 | |
| } | |
| }) | |
| }) | |
| }, | |
| deleteSubscription: function(e) { | |
| var t = u.defer(); | |
| return l.ajax({ | |
| url: c.getLink("user_provider_accounts", { | |
| user_id: d.getId() | |
| }) + "/" + e, | |
| type: "DELETE" | |
| }).then(function(e) { | |
| 204 === e.status ? t.resolve(e) : t.reject(new Error("Unknown status code")) | |
| }, function(e) { | |
| t.reject(e) | |
| }), | |
| t.promise | |
| }, | |
| getUserSubscriptions: function(e) { | |
| return t().then(function() { | |
| return r.all([l.ajax({ | |
| url: c.getLink("user_provider_accounts", { | |
| user_id: e | |
| }), | |
| type: "GET" | |
| }), l.ajax({ | |
| url: f(m, "user_subscriptions", { | |
| user_uid: e | |
| }), | |
| type: "GET", | |
| headers: { | |
| Accept: "application/hal+json" | |
| } | |
| })]) | |
| }) | |
| }, | |
| fetchSubscription: function(e, n) { | |
| return t().then(function() { | |
| return l.ajax({ | |
| url: f(m, "user_subscription", { | |
| subscription_uid: e, | |
| user_uid: n | |
| }), | |
| type: "GET", | |
| headers: { | |
| Accept: "application/hal+json" | |
| } | |
| }) | |
| }).then(function(e) { | |
| return 200 === e.status ? e.data : r.reject() | |
| }) | |
| }, | |
| fetchProduct: function(e) { | |
| return t().then(function() { | |
| return l.ajax({ | |
| url: f(m, "subscription_product", { | |
| subscription_product_uid: e | |
| }), | |
| type: "GET", | |
| headers: { | |
| Accept: "application/hal+json" | |
| } | |
| }) | |
| }).then(function(e) { | |
| return 200 === e.status ? e.data : r.reject() | |
| }) | |
| }, | |
| createOrder: function(e, n, i) { | |
| return t().then(function() { | |
| return l.ajax({ | |
| url: f(m, "user_orders", { | |
| user_uid: i | |
| }), | |
| type: "POST", | |
| headers: { | |
| Accept: "application/jwt" | |
| }, | |
| data: JSON.stringify({ | |
| subscription_uid: e, | |
| start_date: h(n).format() | |
| }) | |
| }) | |
| }).then(function(e) { | |
| return 201 === e.status ? e.data : r.reject() | |
| }) | |
| } | |
| }; | |
| return g | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 121: function(e, t, n) { | |
| var i, s; | |
| i = [n(4), n(67), n(91), n(144)], | |
| s = function(e, t, n, i) { | |
| "use strict"; | |
| var s = e.Model.extend({ | |
| name: "post", | |
| mappings: { | |
| manifest: { | |
| resource: i | |
| }, | |
| user: { | |
| resource: t, | |
| track: !0 | |
| }, | |
| "b:user": { | |
| resource: t, | |
| track: !0 | |
| }, | |
| "b:manager": { | |
| resource: t, | |
| track: !0 | |
| }, | |
| manager: { | |
| resource: t, | |
| track: !0 | |
| }, | |
| item: { | |
| resource: n | |
| } | |
| } | |
| }); | |
| return s | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 123: function(e, t, n) { | |
| var i, s = n(53)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , r = i.View.extend({ | |
| className: "v-input v-dropdown frm-field-wrapper", | |
| constructor: function(e, t) { | |
| i.View.call(this, t), | |
| this._items = e, | |
| this.options.selected ? this._selected = this.options.selected : this.options.key && this.options.value ? this._selected = this._items[0][this.options.key] : this._selected = s(this._items)[0] | |
| }, | |
| render: function() { | |
| return this.delegateEvents(), | |
| this._renderItems(), | |
| this | |
| }, | |
| setItems: function(e) { | |
| this._items = e | |
| }, | |
| reset: function() { | |
| this.setSelected(this.options.selected) | |
| }, | |
| setSelected: function(e) { | |
| this._selected = e, | |
| this._selectedItemView.setValue(e), | |
| this._selectedItemView.setTitle(this.getSelectedLabel()), | |
| this.inputElement && (this.inputElement.value = e) | |
| }, | |
| setValue: function(e) { | |
| this.setSelected(e) | |
| }, | |
| setSelectedTitle: function(e, t) { | |
| this._selectedItemView.setTitle(e), | |
| t && (this._selected = t, | |
| this._selectedItemView.setValue(t), | |
| this.inputElement && (this.inputElement.value = t)) | |
| }, | |
| getSelected: function() { | |
| return this._selected | |
| }, | |
| getValue: function() { | |
| return this._selected | |
| }, | |
| getSelectedLabel: function() { | |
| if (this.options.key && this.options.value) { | |
| var e = {}; | |
| return e[this.options.key] = this._selected, | |
| t.findWhere(this._items, e)[this.options.value] | |
| } | |
| return this._items[this._selected] | |
| }, | |
| toggle: function() { | |
| this._open ? this.close() : this.open() | |
| }, | |
| open: function() { | |
| this.addEventListener(window, "click", this._eCloseDropdown.bind(this)), | |
| this._open = !0; | |
| var e = this.el.querySelector(".selected-item") | |
| , t = this.el.querySelector(".v-dropdown-items"); | |
| t.classList.add("s-open"), | |
| this._setBestPosition(e, t), | |
| e.classList.add("s-open") | |
| }, | |
| _setBestPosition: function(e, t) { | |
| t.style.maxHeight = ""; | |
| var n = e.getBoundingClientRect() | |
| , i = t.offsetHeight | |
| , s = !0 | |
| , r = window.innerHeight - n.bottom; | |
| n.bottom + i > window.innerHeight && n.top > r && (s = !1, | |
| r = n.top), | |
| t.style.maxHeight = Math.min(r - 20, 300) + "px", | |
| t.style.top = s ? n.height + "px" : "auto", | |
| t.style.bottom = s ? "auto" : n.height + "px", | |
| t.classList.add(s ? "below" : "above"), | |
| t.classList.remove(s ? "above" : "below") | |
| }, | |
| close: function() { | |
| var e = this; | |
| this.el && (this.removeEventListener(window, "click"), | |
| e._open = !1, | |
| t.each(this.el.querySelectorAll(".v-dropdown-item"), function(e) { | |
| e.style.top = "0px" | |
| }), | |
| e.el.querySelector(".v-dropdown-items").classList.remove("s-open"), | |
| setTimeout(function() { | |
| e.el && !e._open && (e.el.querySelector(".selected-item").classList.remove("s-open"), | |
| e.el.querySelector(".v-dropdown-items").style.height = "") | |
| }, 200)) | |
| }, | |
| addSeperator: function(e) { | |
| this.getView("item-" + e).addSeperator() | |
| }, | |
| _renderItems: function() { | |
| var e = this; | |
| this.removeAllChildren(), | |
| this.el.innerHTML = "", | |
| this._selectedItemView = new a({ | |
| value: this._selected, | |
| title: this.getSelectedLabel(), | |
| onClick: this.toggle.bind(this) | |
| }), | |
| this.addView(this._selectedItemView, "selected-item"), | |
| this.el.appendChild(this._selectedItemView.render().el), | |
| this._selectedItemView.el.className = "selected-item"; | |
| var n = document.createElement("div"); | |
| n.className = "v-dropdown-items", | |
| t.forIn(this._items, function(t, i) { | |
| if (e.options.key && e.options.value) { | |
| var s = t; | |
| i = s[e.options.key], | |
| t = s[e.options.value] | |
| } | |
| var r = new a({ | |
| value: i, | |
| title: t, | |
| onClick: e._changeSelected.bind(e) | |
| }); | |
| e.addView(r, "item-" + i), | |
| n.appendChild(r.render().el) | |
| }), | |
| this.el.appendChild(n), | |
| this.options.name && (this.inputElement = document.createElement("input"), | |
| this.inputElement.type = "hidden", | |
| this.inputElement.value = this._selected, | |
| this.inputElement.className = "inp", | |
| this.inputElement.name = this.options.name, | |
| this.el.appendChild(this.inputElement), | |
| this.el.classList.add("dropdown-" + this.options.name)) | |
| }, | |
| _changeSelected: function(e) { | |
| var t = !1; | |
| this.getSelected() !== e && (t = !0), | |
| this.setSelected(e), | |
| t && this._changed(), | |
| this.close() | |
| }, | |
| _changed: function() { | |
| this.options.onChange && this.options.onChange(this.getSelected()) | |
| }, | |
| _eCloseDropdown: function(e) { | |
| this.el.contains(e.target) || e.target === this.el || this.close() | |
| } | |
| }) | |
| , a = i.View.extend({ | |
| className: "v-dropdown-item dropdown-item", | |
| events: { | |
| click: "_eClick", | |
| mousewheel: "_eMousewheel" | |
| }, | |
| render: function() { | |
| return this.el.innerHTML = this.options.title, | |
| this.el.setAttribute("data-value", this.options.value), | |
| this | |
| }, | |
| setValue: function(e) { | |
| this.options.value = e, | |
| this.render() | |
| }, | |
| setTitle: function(e) { | |
| this.options.title = e, | |
| this.render() | |
| }, | |
| addSeperator: function() { | |
| this.setLayout("seperator") | |
| }, | |
| removeSeperator: function() { | |
| this.removeLayout("seperator") | |
| }, | |
| _eClick: function() { | |
| this.options.onClick(this.options.value) | |
| }, | |
| _eMousewheel: function(e) { | |
| e.stopPropagation() | |
| } | |
| }); | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 128: 254, | |
| 129: function(e, t, n) { | |
| var i = n(40)("unscopables") | |
| , s = Array.prototype; | |
| void 0 == s[i] && n(85)(s, i, {}), | |
| e.exports = function(e) { | |
| s[i][e] = !0 | |
| } | |
| }, | |
| 130: 262, | |
| 133: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(12) | |
| , u = r(l) | |
| , c = n(241) | |
| , d = r(c) | |
| , p = n(13) | |
| , f = r(p) | |
| , h = n(8) | |
| , m = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchChannelsSuccess", "fetchChannelsError", "fetchChannelDetailsSuccess", "fetchChannelDetailsError") | |
| } | |
| return i(e, [{ | |
| key: "fetchChannels", | |
| value: function() { | |
| var e = this; | |
| return function(t) { | |
| t(), | |
| d["default"].fetchChannels().then(function(t) { | |
| e.fetchChannelsSuccess({ | |
| data: t | |
| }) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchChannelDetails", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n({ | |
| channelId: e | |
| }), | |
| d["default"].fetchChannel(e).then(function(n) { | |
| t.fetchChannelDetailsSuccess({ | |
| channelId: e, | |
| data: n | |
| }) | |
| })["catch"](function(n) { | |
| if (n.type === h.XHR_STATUS && 404 === n.status) | |
| return t.fetchChannelDetailsError({ | |
| channelId: e | |
| }); | |
| throw n | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "followChannel", | |
| value: function(e, t, n) { | |
| return function(i) { | |
| i({ | |
| userId: e, | |
| channelId: t, | |
| isFollowing: n | |
| }), | |
| n ? (d["default"].follow(u["default"].getUser(), [{ | |
| id: t | |
| }]), | |
| f["default"].track("Channel Subscribe", { | |
| channel: t | |
| })) : (d["default"].unfollow(u["default"].getUser(), [{ | |
| id: t | |
| }]), | |
| f["default"].track("Channel Unsubscribe", { | |
| channel: t | |
| })) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(m), | |
| e.exports = t["default"] | |
| }, | |
| 134: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(21)["default"] | |
| , a = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = n(19) | |
| , l = a(o) | |
| , u = n(12) | |
| , c = a(u) | |
| , d = n(8) | |
| , p = n(350) | |
| , f = a(p) | |
| , h = n(4) | |
| , m = n(13) | |
| , g = a(m) | |
| , v = n(113) | |
| , y = a(v) | |
| , _ = n(16) | |
| , b = a(_) | |
| , w = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("parseTokenSuccess", "parseTokenError", "sendLoginEmailSuccess", "sendLoginEmailError") | |
| } | |
| return i(e, [{ | |
| key: "loginWithEmailTokenAndRedirect", | |
| value: function(e) { | |
| var t = this | |
| , n = (0, | |
| f["default"])(e); | |
| c["default"].loginWithCredentials({ | |
| email_token: e | |
| }).then(function() { | |
| var e = n.item_id ? "/item/" + n.item_id : "/"; | |
| g["default"].track("Login Successful", { | |
| login_type: "email" | |
| }), | |
| h.history.navigate(e, { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type === d.INVALID_TOKEN) | |
| return t.loginError(e); | |
| throw e | |
| }) | |
| } | |
| }, { | |
| key: "loginWithCredentials", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n(), | |
| c["default"].loginWithCredentials(e).then(t.loginSuccess)["catch"](function(e) { | |
| if (e.type === d.INVALID_TOKEN || e.type === d.MISSING_PASSWORD) | |
| return t.loginError(e); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "loginSuccess", | |
| value: function(e) { | |
| return function(t) { | |
| g["default"].track("Login Blendle"), | |
| g["default"].track("Login Successful", { | |
| platform: "blendle" | |
| }), | |
| t(e) | |
| } | |
| } | |
| }, { | |
| key: "loginError", | |
| value: function(e) { | |
| return function(t) { | |
| g["default"].track("Login Error", { | |
| event: e.message || e.type, | |
| platform: "blendle" | |
| }), | |
| t(e) | |
| } | |
| } | |
| }, { | |
| key: "sendLoginEmail", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2]; | |
| return function(s) { | |
| s(); | |
| var a = r({}, e.includes("@") ? { | |
| email: e | |
| } : { | |
| user_id: e | |
| }, { | |
| item_id: t, | |
| force_send: i | |
| }); | |
| return y["default"].post(b["default"].getLink("email_tokens"), a).then(n.sendLoginEmailSuccess)["catch"](function(e) { | |
| if (e.type === d.XHR_STATUS && 404 === e.status) | |
| return n.sendLoginEmailError(e); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "setEmail", | |
| value: function(e) { | |
| return e | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createActions(w), | |
| e.exports = t["default"] | |
| }, | |
| 135: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return w["default"].get(e.getLink("rewards")).then(function(e) { | |
| return e.data._embedded.rewards | |
| }) | |
| } | |
| function s(e, t) { | |
| var n = t.redeem_token | |
| , i = t.provider_uid; | |
| return w["default"].post(e.getLink("rewards"), { | |
| redeem_token: n, | |
| provider_uid: i | |
| }).then(function() { | |
| return !0 | |
| }) | |
| } | |
| function r(e) { | |
| var t = e.find(function(e) { | |
| return e.pick_a_subscription | |
| }); | |
| return t ? (t._embedded.providers = t._embedded.providers.map(function(e) { | |
| return e.most_recent_issue = new k["default"](e.most_recent_issue), | |
| e | |
| }), | |
| t) : null | |
| } | |
| var a = n(7)["default"] | |
| , o = n(6)["default"] | |
| , l = n(21)["default"] | |
| , u = n(146)["default"] | |
| , c = n(24)["default"] | |
| , d = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var p = n(19) | |
| , f = d(p) | |
| , h = n(142) | |
| , m = d(h) | |
| , g = n(13) | |
| , v = d(g) | |
| , y = n(52) | |
| , _ = d(y) | |
| , b = n(113) | |
| , w = d(b) | |
| , S = n(90) | |
| , k = d(S) | |
| , E = n(4) | |
| , C = n(3) | |
| , T = d(C) | |
| , P = function() { | |
| function e() { | |
| o(this, e), | |
| this.generateActions("fetchPaymentMethodsSuccess", "fetchPaymentMethodsError", "setActiveStep", "setReturnUrl", "setRewardSubscription", "redeemSubscriptionRewardSuccess", "redeemSubscriptionRewardError") | |
| } | |
| return a(e, [{ | |
| key: "redeemSubscriptionReward", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(a) { | |
| a(), | |
| i(e).then(r).then(function(n) { | |
| return s(e, { | |
| redeem_token: n.redeem_token, | |
| provider_uid: t | |
| }) | |
| }).then(function() { | |
| return n.redeemSubscriptionRewardSuccess() | |
| })["catch"](function(e) { | |
| throw n.redeemSubscriptionRewardError({ | |
| error: !0 | |
| }), | |
| e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchPaymentMethods", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| return n(), | |
| c.all([m["default"].getPaymentMethodsProcessed(e), m["default"].getRecurringContract(e), i(e)]).then(function(n) { | |
| var i = u(n, 3) | |
| , s = i[0] | |
| , a = i[1] | |
| , o = i[2] | |
| , c = "options"; | |
| o && o.length > 0 && (c = "rewards"); | |
| var d = r(o) | |
| , p = e.get("preferences").last_payment_method | |
| , f = e.get("preferences").last_bank | |
| , h = s.find(function(e) { | |
| return e.code === p | |
| }) | |
| , m = void 0; | |
| return h && h.banks && (m = h.banks.find(function(e) { | |
| return e.code === f | |
| })), | |
| t.setPaymentMethod(h ? h.code : void 0, m ? m.code : void 0, s), | |
| v["default"].track("Start Payment", l({ | |
| balance: e.get("balance") | |
| }, null !== d ? { | |
| reward: "pick_a_subscription" | |
| } : void 0)), | |
| { | |
| paymentMethods: s, | |
| recurring: a.recurring_enabled, | |
| reward: d, | |
| activeStep: c, | |
| recurring_contracts: a._embedded.recurring_contracts | |
| } | |
| }).then(function(e) { | |
| return t.fetchPaymentMethodsSuccess(e), | |
| e | |
| })["catch"](function(e) { | |
| throw t.fetchPaymentMethodsError(e), | |
| e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "setAmount", | |
| value: function(e) { | |
| return parseInt(e) | |
| } | |
| }, { | |
| key: "setPaymentMethod", | |
| value: function(e, t, n) { | |
| if (void 0 === e && (e = "0"), | |
| void 0 === t && (t = "0"), | |
| "creditcard" === e && "0" === t) { | |
| var i = n.find(function(t) { | |
| return t.code === e | |
| }).banks; | |
| t = i[0].code | |
| } | |
| return { | |
| selectedPaymentMethod: e, | |
| selectedBank: t | |
| } | |
| } | |
| }, { | |
| key: "setRecurringRequestContract", | |
| value: function(e) { | |
| return { | |
| recurringRequest: e | |
| } | |
| } | |
| }, { | |
| key: "setRecurringContract", | |
| value: function(e, t) { | |
| return function(n) { | |
| m["default"].setRecurringContract(e, t).then(function(e) { | |
| return m["default"].getRecurringState(e) | |
| }).then(function(e) { | |
| return n({ | |
| recurring: e | |
| }) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchPaymentURL", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(i) { | |
| i(); | |
| var s = e.selectedReward | |
| , r = { | |
| success_url: s ? "payment/success/pick-a-subscription/" + s.providerUid : "payment/success", | |
| pending_url: "payment/pending", | |
| cancel_url: "payment/cancelled", | |
| method: e.selectedPaymentMethod, | |
| amount: e.selectedAmount, | |
| recurring: e.recurringRequest | |
| }; | |
| e.selectedBanks[e.selectedPaymentMethod] && (r.bank = e.selectedBanks[e.selectedPaymentMethod]), | |
| t.savePreferences({ | |
| last_payment_method: r.method, | |
| last_bank: r.bank | |
| }), | |
| m["default"].fetchPaymentURL(t, r).then(function(t) { | |
| n.fetchPaymentURLSuccess(e, t) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchPaymentURLSuccess", | |
| value: function(e, t) { | |
| var n = { | |
| bank: e.selectedBanks[e.selectedPaymentMethod] | |
| }; | |
| return v["default"].track("Payment Request", l({ | |
| method: e.selectedPaymentMethod, | |
| amount: e.selectedAmount, | |
| recurring: !!e.recurring_enabled | |
| }, "0" !== n.bank ? n : void 0, null !== e.selectedReward ? { | |
| reward: "pick_a_subscription" | |
| } : void 0, null !== e.selectedReward ? { | |
| rewardSubscription: e.selectedReward.providerUid | |
| } : void 0)), | |
| _["default"].set("paymentRequest", JSON.stringify(l({ | |
| method: e.selectedPaymentMethod, | |
| amount: e.selectedAmount, | |
| recurring: !!e.recurring_enabled, | |
| returnUrl: e.returnUrl | |
| }, "0" !== n.bank ? n : void 0, null !== e.selectedReward ? { | |
| reward: "pick_a_subscription" | |
| } : void 0, null !== e.selectedReward ? { | |
| rewardSubscription: e.selectedReward.providerUid | |
| } : void 0))), | |
| { | |
| paymentURL: t, | |
| activeStep: "confirmation" | |
| } | |
| } | |
| }, { | |
| key: "fetchSubscriptionPaymentURL", | |
| value: function(e, t, n) { | |
| var i = this | |
| , s = t.product | |
| , r = t.jwt | |
| , a = "payment/success/subscription/" + s.uid | |
| , o = { | |
| success_url: a, | |
| pending_url: "payment/pending", | |
| cancel_url: "payment/cancelled", | |
| payment: r | |
| }; | |
| return e && e.selectedBanks[e.selectedPaymentMethod] && (o.bank = e.selectedBanks[e.selectedPaymentMethod]), | |
| e && e.selectedPaymentMethod && (o.method = e.selectedPaymentMethod), | |
| n.savePreferences({ | |
| last_payment_method: o.method, | |
| last_bank: o.bank | |
| }), | |
| m["default"].fetchOrderURL(o).then(function(t) { | |
| var n = null ; | |
| t._links.payment && (n = t._links.payment.href), | |
| i.fetchSubscriptionPaymentURLSuccess(e, n, a, s) | |
| })["catch"](function(e) { | |
| throw i.fetchSubscriptionPaymentURLError(e), | |
| e | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "fetchSubscriptionPaymentURLSuccess", | |
| value: function(e, t, n, i) { | |
| var s = { | |
| bank: e.selectedBanks[e.selectedPaymentMethod] | |
| } | |
| , r = i._links["b:providers"][0].href.split("/").pop() | |
| , a = i._embedded["b:tier"]._embedded["b:tier-prices"].find(function(e) { | |
| return e.currency === T["default"].currentCurrency | |
| }).amount | |
| , o = { | |
| method: e.selectedPaymentMethod, | |
| recurring: e.recurring_contracts.length > 0, | |
| offer: a, | |
| provider_uid: r, | |
| subscription: i.uid | |
| }; | |
| return s && "0" !== s.bank && (o.bank = s.bank), | |
| _["default"].set("paymentRequest", JSON.stringify(o)), | |
| v["default"].track("Provider Subscription/Payment Request", o), | |
| t || E.history.navigate(n, { | |
| trigger: !0, | |
| replace: !0 | |
| }), | |
| { | |
| paymentURL: t, | |
| activeStep: "confirmation" | |
| } | |
| } | |
| }, { | |
| key: "fetchSubscriptionPaymentURLError", | |
| value: function(e) { | |
| return v["default"].track("Provider Subscription/Payment Request Error", { | |
| error: e.message | |
| }), | |
| e | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = f["default"].createActions(P), | |
| e.exports = t["default"] | |
| }, | |
| 136: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return E["default"].getProviderOrDefault(e).get("name") | |
| } | |
| function s(e) { | |
| return { | |
| isLegacy: !0, | |
| uid: e._embedded.provider.id, | |
| renew: !e.expires_at, | |
| trial: !!e.expires_at, | |
| expired: e.expires_at ? (0, | |
| b["default"])(e.expires_at).isBefore(new Date) : !1, | |
| startDate: (0, | |
| b["default"])(e.created_at), | |
| endDate: (0, | |
| b["default"])(e.expires_at), | |
| provider: { | |
| uid: e._embedded.provider.id | |
| } | |
| } | |
| } | |
| function r(e) { | |
| return { | |
| uid: e.subscription_uid, | |
| renew: e.renew, | |
| trial: e.trial, | |
| expired: e.expired, | |
| startDate: (0, | |
| b["default"])(e.start_date), | |
| endDate: (0, | |
| b["default"])(e.end_date), | |
| provider: { | |
| uid: e._embedded["b:providers"][0].uid | |
| }, | |
| product: e._embedded["b:subscription-product"] | |
| } | |
| } | |
| function a(e, t) { | |
| var n = e.map(function(e) { | |
| return r(e) | |
| }) | |
| , i = t.map(function(e) { | |
| return s(e) | |
| }); | |
| return n.concat(i) | |
| } | |
| var o = n(7)["default"] | |
| , l = n(6)["default"] | |
| , u = n(21)["default"] | |
| , c = n(146)["default"] | |
| , d = n(24)["default"] | |
| , p = n(1)["default"] | |
| , f = n(145)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var h = n(19) | |
| , m = p(h) | |
| , g = n(120) | |
| , v = f(g) | |
| , y = n(5) | |
| , _ = n(18) | |
| , b = p(_) | |
| , w = n(13) | |
| , S = p(w) | |
| , k = n(30) | |
| , E = p(k) | |
| , C = function() { | |
| function e() { | |
| l(this, e), | |
| this.generateActions("fetchUserSubscriptionsSuccess", "fetchUserSubscriptionsError", "fetchUserSubscriptionSuccess") | |
| } | |
| return o(e, [{ | |
| key: "stopSubscription", | |
| value: function(e, t, n) { | |
| var i = this; | |
| return function(s) { | |
| s({ | |
| subscriptionUid: t | |
| }); | |
| var r = { | |
| subscriptionUid: t, | |
| reason: n, | |
| subscription_type: "internal" | |
| }; | |
| v.stopSubscription(e, t).then(function() { | |
| i.fetchUserSubscriptions(e), | |
| S["default"].track("Subscription Cancel", r) | |
| })["catch"](function() { | |
| S["default"].track("Subscription Cancel Failed", r) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "cancelSubscription", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(s) { | |
| s({ | |
| providerId: t | |
| }); | |
| var r = { | |
| providerId: t, | |
| provider: i(t), | |
| subscription_type: "external" | |
| }; | |
| v.deleteSubscription(t).then(function() { | |
| n.fetchUserSubscriptions(e), | |
| S["default"].track("Subscription Cancel", r), | |
| S["default"].track("Subscription Remove", r) | |
| })["catch"](function() { | |
| S["default"].track("Subscription Cancel Failed", r), | |
| S["default"].track("Subscription Remove Failed", r) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchUserSubscription", | |
| value: function(e, t) { | |
| return v.fetchSubscription(e, t).then(r.bind(this)).then(this.fetchUserSubscriptionSuccess)["catch"](this.fetchUserSubscriptionError), | |
| null | |
| } | |
| }, { | |
| key: "fetchUserSubscriptionError", | |
| value: function(e) { | |
| var t = e.data && e.data.hasOwnProperty("subscription_uid") | |
| , n = void 0; | |
| return 402 === e.status && t && (n = r(e.data)), | |
| { | |
| error: e, | |
| subscription: n | |
| } | |
| } | |
| }, { | |
| key: "pollFetchUserSubscription", | |
| value: function(e, t) { | |
| var n = this | |
| , i = 10 | |
| , s = 0; | |
| return function(a) { | |
| return a({ | |
| userId: t | |
| }), | |
| new d(function(n, r) { | |
| var a = function o() { | |
| v.fetchSubscription(e, t).then(n, function() { | |
| i > s ? (s++, | |
| setTimeout(o, 500 + 250 * s)) : r(new Error("Cannot fetch valid subscription after " + (s + 1) + " times.")) | |
| }) | |
| } | |
| ; | |
| setTimeout(a, 500) | |
| } | |
| ).then(r.bind(n)).then(n.fetchUserSubscriptionSuccess)["catch"](n.fetchUserSubscriptionError) | |
| } | |
| } | |
| }, { | |
| key: "fetchUserSubscriptions", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n({ | |
| userId: e | |
| }), | |
| v.getUserSubscriptions(e).then(function(e) { | |
| var n = c(e, 2) | |
| , i = n[0] | |
| , s = n[1] | |
| , r = (0, | |
| y.get)(s.data, ["_embedded", "b:subscriptions"], []) | |
| , o = (0, | |
| y.get)(i.data, ["_embedded", "provider_accounts"], []).map(function(e) { | |
| return u({}, e, { | |
| isLegacy: !0 | |
| }) | |
| }) | |
| , l = a(r, o); | |
| t.fetchUserSubscriptionsSuccess(l) | |
| })["catch"](function(e) { | |
| t.fetchUserSubscriptionsError(e) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "updateCancelReason", | |
| value: function(e) { | |
| return e | |
| } | |
| }, { | |
| key: "selectSubscription", | |
| value: function(e) { | |
| return { | |
| subscription: e | |
| } | |
| } | |
| }, { | |
| key: "deselectSubscription", | |
| value: function() { | |
| return {} | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = m["default"].createActions(C), | |
| e.exports = t["default"] | |
| }, | |
| 137: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(543) | |
| , r = i(s); | |
| t["default"] = r["default"], | |
| e.exports = t["default"] | |
| }, | |
| 138: function(e, t, n) { | |
| "use strict"; | |
| var i = n(21)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(550) | |
| , l = s(o) | |
| , u = n(571) | |
| , c = s(u) | |
| , d = n(17) | |
| , p = s(d) | |
| , f = a["default"].createClass({ | |
| displayName: "TilePaneView", | |
| propTypes: { | |
| version: a["default"].PropTypes.number, | |
| orientation: a["default"].PropTypes.oneOf(["horizontal", "vertical"]), | |
| onNearEnd: a["default"].PropTypes.func.isRequired | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| active: !0, | |
| showButtons: p["default"].isDesktop() && !p["default"].hasTouch(), | |
| orientation: p["default"].isMobile() ? "vertical" : "horizontal" | |
| } | |
| }, | |
| scrollTo: function(e) { | |
| this.refs.pane.setScrollPosition(e) | |
| }, | |
| render: function() { | |
| return "horizontal" === this.props.orientation ? a["default"].createElement(l["default"], i({ | |
| ref: "pane" | |
| }, this.props)) : a["default"].createElement(c["default"], i({ | |
| ref: "pane" | |
| }, this.props)) | |
| } | |
| }); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 139: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(94)["default"] | |
| , r = n(21)["default"] | |
| , a = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = n(2) | |
| , l = a(o) | |
| , u = n(33) | |
| , c = a(u) | |
| , d = n(11) | |
| , p = a(d) | |
| , f = n(8); | |
| t["default"] = l["default"].createClass({ | |
| displayName: "Alert", | |
| propTypes: { | |
| onClose: l["default"].PropTypes.func, | |
| onConfirm: l["default"].PropTypes.func.isRequired, | |
| className: l["default"].PropTypes.string, | |
| children: l["default"].PropTypes.any | |
| }, | |
| _onKeyDown: function(e) { | |
| e.keyCode === f.keyCode.RETURN && this.props.onConfirm && this.props.onConfirm(e) | |
| }, | |
| render: function() { | |
| var e = this.props | |
| , t = e.className | |
| , n = (s(e, ["className"]), | |
| (0, | |
| p["default"])(i({ | |
| "v-alert": !0 | |
| }, t, t))); | |
| return l["default"].createElement(c["default"], r({}, this.props, { | |
| onKeyDown: this._onKeyDown, | |
| className: n | |
| }), this.props.children) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 140: function(e, t, n) { | |
| "use strict"; | |
| var i = n(24)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(44) | |
| , a = s(r) | |
| , o = n(8) | |
| , l = s(o) | |
| , u = n(5929) | |
| , c = s(u) | |
| , d = n(4) | |
| , p = s(d) | |
| , f = n(3) | |
| , h = s(f) | |
| , m = n(38) | |
| , g = s(m) | |
| , v = n(47) | |
| , y = s(v) | |
| , _ = n(13) | |
| , b = s(_) | |
| , w = n(105) | |
| , S = s(w) | |
| , k = n(17) | |
| , E = s(k) | |
| , C = n(16) | |
| , T = s(C) | |
| , P = n(12) | |
| , N = s(P) | |
| , x = n(178) | |
| , R = s(x) | |
| , L = n(230) | |
| , I = n(35) | |
| , M = s(I) | |
| , A = n(175) | |
| , D = s(A) | |
| , O = n(165) | |
| , U = s(O) | |
| , q = n(114) | |
| , F = s(q) | |
| , j = n(828) | |
| , V = s(j) | |
| , B = n(179) | |
| , W = s(B) | |
| , z = n(384) | |
| , H = s(z) | |
| , G = n(181) | |
| , K = s(G) | |
| , Y = n(739) | |
| , X = s(Y) | |
| , J = n(715) | |
| , Q = s(J) | |
| , Z = n(784) | |
| , $ = s(Z) | |
| , ee = n(180) | |
| , te = s(ee) | |
| , ne = n(392) | |
| , ie = s(ne) | |
| , se = n(694) | |
| , re = s(se) | |
| , ae = n(679) | |
| , oe = s(ae) | |
| , le = n(741) | |
| , ue = s(le) | |
| , ce = n(68) | |
| , de = s(ce) | |
| , pe = n(769) | |
| , fe = s(pe) | |
| , he = n(701) | |
| , me = s(he) | |
| , ge = n(685) | |
| , ve = s(ge) | |
| , ye = n(712) | |
| , _e = s(ye) | |
| , be = n(696) | |
| , we = s(be) | |
| , Se = n(816) | |
| , ke = s(Se) | |
| , Ee = n(819) | |
| , Ce = s(Ee) | |
| , Te = n(661) | |
| , Pe = s(Te) | |
| , Ne = n(241) | |
| , xe = s(Ne) | |
| , Re = n(80) | |
| , Le = s(Re) | |
| , Ie = n(838) | |
| , Me = s(Ie) | |
| , Ae = n(642) | |
| , De = s(Ae) | |
| , Oe = n(5685) | |
| , Ue = s(Oe); | |
| n(349); | |
| var qe = p["default"].RootController.extend({ | |
| loaded: !1, | |
| moduleTypeStackOrder: ["content", "item", "overlay", "dialogue"], | |
| modules: [K["default"], oe["default"], $["default"], W["default"], H["default"], V["default"], X["default"], Q["default"], te["default"], ie["default"], fe["default"], re["default"], ue["default"], de["default"], me["default"], _e["default"], we["default"], ke["default"], Ce["default"]], | |
| initialize: function() { | |
| a["default"].accesspage && this.modules.push(ve["default"]), | |
| this.on("route", this._onRoute), | |
| this.on("activeModuleChange", this._trackActiveModule), | |
| navigator.standalone && p["default"].history.on("navigate", this._rememberLastVisitedURL), | |
| this._addRoutes(), | |
| this._initializeSocial(), | |
| this._addModules(), | |
| this._setupView(), | |
| y["default"].loadFromCookie() | |
| }, | |
| getNavigation: function() { | |
| return this.view.getModuleNavigation() | |
| }, | |
| getPrimaryNavigation: function() { | |
| return this.view.getPrimaryNavigation() | |
| }, | |
| load: function() { | |
| i.all([this._loadUserAndValidateCountry(), this._loadSettings(), this._loadFonts()]).then(this.run.bind(this), this.error.bind(this)).done(), | |
| this._requestMaintenanceStatus() | |
| }, | |
| _loadUserAndValidateCountry: function() { | |
| return i.all([this._loadUser(), this._loadSupportedLocales()]).then(function() { | |
| return !N["default"].getUser() && D["default"].shouldRedirect() ? new i(function() { | |
| D["default"].redirectToLaunchSite() | |
| } | |
| ) : void 0 | |
| }).then(function() { | |
| g["default"].isSupportedCountry() || g["default"].setCountryCode(g["default"].getDefaultCountryCode()) | |
| }).then(this._loadLocale.bind(this)) | |
| }, | |
| error: function(e) { | |
| if (e.type === l["default"].MAINTENANCE) | |
| return this.view.showMaintenanceMessage(e.message), | |
| i.resolve(); | |
| if (!this._inMaintenance) | |
| return window.ErrorLogger.captureException(e), | |
| window.navigator.userAgent.match(/googlebot/i) || (e.type === l["default"].XHR ? this.view.showApiFailMessage(e.message) : this.view.showFailMessage(e.message)), | |
| "production" === c["default"].name ? (console.error(e.message), | |
| i.resolve()) : i.reject(e) | |
| }, | |
| _authHandler: function() { | |
| var e = N["default"].getUser(); | |
| F["default"].authenticateUser(e), | |
| window.Raven.setTagsContext({ | |
| user_id: e.id | |
| }), | |
| b["default"].setUser(e), | |
| g["default"].setCountryCode(e.get("country")), | |
| h["default"].load(e.get("primary_language")), | |
| h["default"].setCurrency(e.get("currency")), | |
| Ue["default"].syncExperiments(N["default"].getUser()) | |
| }, | |
| run: function() { | |
| var e = this; | |
| N["default"].getUser() ? this._authHandler() : (Ue["default"].syncExperiments(), | |
| this.listenTo(N["default"], "login", function() { | |
| e._authHandler() | |
| })); | |
| var t = (0, | |
| De["default"])(); | |
| b["default"].setSession(t), | |
| b["default"].track("Session", { | |
| browser: window.BrowserDetect.browser, | |
| device: window.BrowserDetect.device, | |
| os: window.BrowserDetect.operatingSystem, | |
| version: window.BrowserDetect.version, | |
| orientation: E["default"].getOrientation(), | |
| app: window.BrowserDetect.app, | |
| appVersion: window.BrowserDetect.appVersion, | |
| standalone: void 0 !== navigator.standalone ? navigator.standalone : "unknown" | |
| }), | |
| S["default"].applicationRunning(), | |
| R["default"].removeTrailingSlash(document.location.href, !0), | |
| p["default"].history.start({ | |
| pushState: !T["default"].embedded, | |
| silent: !0 | |
| }), | |
| navigator.standalone && window.BrowserDetect.localStorageEnabled() && p["default"].history.navigate(localStorage.getItem("standaloneUrl"), { | |
| replace: !0 | |
| }), | |
| p["default"].history.loadUrl(), | |
| U["default"].setActiveUrl(p["default"].history.fragment), | |
| window.addEventListener("orientationchange", this._trackOrientation.bind(this)), | |
| this.listenTo(N["default"], "logout", h["default"].resetCookie) | |
| }, | |
| _addRoutes: function() { | |
| this.route("*notFound", function(e) { | |
| return xe["default"].fetchChannels().then(function(t) { | |
| var n = t.find(function(t) { | |
| var n = t.get("id").replace("blendle", "") || t.get("id"); | |
| return n === e | |
| }); | |
| n ? p["default"].history.navigate("/channel/" + n.get("id"), { | |
| trigger: !0, | |
| replace: !0 | |
| }) : p["default"].history.navigate("/404", { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| }) | |
| }), | |
| this.route("cadeaubon(/:code)", function(e) { | |
| var t = "coupon"; | |
| e && (t += "/" + e), | |
| p["default"].history.navigate(t, { | |
| trigger: !0 | |
| }) | |
| }), | |
| this.route("cadeautje", function() { | |
| p["default"].history.navigate("coupon/gift", { | |
| trigger: !0 | |
| }) | |
| }), | |
| this.route("logout(/:loginEmail)", function(e) { | |
| N["default"].getUser() ? N["default"].logout().then(function() { | |
| e ? window.location = "/login?email=" + e : window.location = "/" | |
| }) : p["default"].history.navigate("", { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| }); | |
| var e = function() { | |
| p["default"].history.navigate("user/" + N["default"].getId() + "/items", { | |
| trigger: !0 | |
| }) | |
| } | |
| ; | |
| this.route("archive", e) | |
| }, | |
| _initializeSocial: function() { | |
| Le["default"].execute("init", { | |
| appId: Le["default"].appId, | |
| version: Le["default"].version, | |
| status: !0 | |
| }) | |
| }, | |
| _setupView: function() { | |
| this.view = new Me["default"], | |
| this.view.render(), | |
| this.view.load() | |
| }, | |
| _addModules: function() { | |
| var e = this; | |
| this.modules.forEach(function(t) { | |
| e.addModule(t) | |
| }) | |
| }, | |
| _onRoute: function() { | |
| p["default"].history.add(p["default"].history.fragment), | |
| b["default"].urlChange(p["default"].history.fragment), | |
| U["default"].setActiveUrl(p["default"].history.fragment) | |
| }, | |
| _trackActiveModule: function(e) { | |
| y["default"].set({ | |
| activeModule: e.name | |
| }), | |
| U["default"].setActiveModule(e.name) | |
| }, | |
| _rememberLastVisitedURL: function() { | |
| if (window.BrowserDetect.localStorageEnabled()) { | |
| var e = p["default"].history.fragment; | |
| "logout" === p["default"].history.fragment && (e = ""), | |
| window.localStorage.setItem("standaloneUrl", e) | |
| } | |
| }, | |
| _requestMaintenanceStatus: function() { | |
| var e = this; | |
| c["default"].maintenanceFile && p["default"].ajax({ | |
| url: c["default"].maintenanceFile + "?" + (new Date).getTime() | |
| }).then(function(t) { | |
| var n = "We're tinkering with our machines at the moment. We'll be back shortly!"; | |
| t && t.data && t.data.message && (n = t.data.message), | |
| e._inMaintenance = !0, | |
| e.error(new M["default"](l["default"].MAINTENANCE,t.data.message,t)) | |
| })["catch"](function() { | |
| return !0 | |
| }) | |
| }, | |
| _loadSettings: function() { | |
| return T["default"].fetch()["catch"](function(e) { | |
| return i.reject(new M["default"](l["default"].XHR,"Unable to load api.json",e)) | |
| }) | |
| }, | |
| _loadUser: function() { | |
| return N["default"].autoLogin()["catch"](function(e) { | |
| if (e.type === l["default"].INVALID_TOKEN) | |
| return b["default"].track("JWT Expired", { | |
| type: "autologin" | |
| }), | |
| i.resolve(null ); | |
| if (e.type === l["default"].NO_TOKEN) | |
| return i.resolve(null ); | |
| if (e.status) | |
| throw new M["default"](l["default"].MAINTENANCE,e.message,e); | |
| throw e | |
| }) | |
| }, | |
| _loadLocale: function() { | |
| var e = g["default"].getLocale(); | |
| return h["default"].load(e).then(function() { | |
| h["default"].currentCurrency || h["default"].setCurrencyBasedOnLocale(e) | |
| })["catch"](function(e) { | |
| return e instanceof Error || (e = new M["default"](l["default"].XHR,"Unable to load locale (" + g["default"].getLocale() + ")",e)), | |
| i.reject(e) | |
| }) | |
| }, | |
| _loadSupportedLocales: function() { | |
| return Pe["default"].getSupported().then(function(e) { | |
| return h["default"].setSupportedOptionsFromResponse(e), | |
| g["default"].getCountryCode() || g["default"].setCountryCode(e.countryHeader), | |
| e | |
| }) | |
| }, | |
| _loadFonts: function() { | |
| return E["default"].isMobile() ? i.resolve() : (0, | |
| L.load)([{ | |
| family: "Proxima Nova", | |
| weight: 400, | |
| style: "normal" | |
| }], 3e3)["catch"](function() { | |
| return i.resolve() | |
| }) | |
| }, | |
| _trackOrientation: function() { | |
| b["default"].track("Change orientation", { | |
| orientation: E["default"].getOrientation(), | |
| location: p["default"].history.fragment | |
| }) | |
| } | |
| }); | |
| t["default"] = new qe, | |
| e.exports = t["default"] | |
| }, | |
| 141: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t, n) { | |
| return s(e).map(function(i) { | |
| return { | |
| size: i, | |
| offset: e[i][t] - n | |
| } | |
| }).filter(function(e) { | |
| return e.offset >= 0 | |
| }).sort(function(e, t) { | |
| return e.offset - t.offset | |
| }).map(function(e) { | |
| return e.size | |
| }) | |
| } | |
| var s = n(53)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(5); | |
| t["default"] = { | |
| getXHD: function(e, t) { | |
| if (void 0 === e && (e = {}), | |
| !window.BrowserDetect.isXHD() || "original" === t) | |
| return e[t]; | |
| var n = e[t].width * e[t].height | |
| , i = 4 * n; | |
| return s(e).reduce(function(n, s) { | |
| var a = e[s].width * e[s].height | |
| , o = Math.abs(a - i) | |
| , l = n; | |
| return ("string" == typeof n || n._xhdOffset >= o) && (l = (0, | |
| r.merge)(e[s], { | |
| _xhdOffset: o, | |
| isXHD: s !== t | |
| })), | |
| l | |
| }) | |
| }, | |
| getSizeForHeight: function(e, t) { | |
| void 0 === e && (e = {}); | |
| var n = i(e, "height", t); | |
| return n[0] || "original" | |
| }, | |
| getSizeForWidth: function(e, t) { | |
| void 0 === e && (e = {}); | |
| var n = i(e, "width", t); | |
| return n[0] || "original" | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 142: function(e, t, n) { | |
| var i, s = n(24)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| function t(e) { | |
| var t = l.uri2url(e); | |
| return window.BrowserDetect.iOS && "Chrome" === window.BrowserDetect.browser ? t.replace(/https?/, "googlechrome") : t | |
| } | |
| function i(e) { | |
| return e.success_url && (e.success_url = t(e.success_url)), | |
| e.pending_url && (e.pending_url = t(e.pending_url)), | |
| e.cancel_url && (e.cancel_url = t(e.cancel_url)), | |
| e | |
| } | |
| var r = n(5) | |
| , a = n(4) | |
| , o = n(16) | |
| , l = n(178) | |
| , u = { | |
| ideal: ["0031", "0021", "0721", "0751", "0511", "0161"] | |
| } | |
| , c = { | |
| getAmounts: function() { | |
| return [5, 10, 20, 50] | |
| }, | |
| getTransactionFees: function() { | |
| return { | |
| 5: .3 | |
| } | |
| }, | |
| getDefaultPaymentMethod: function() { | |
| return "ideal" | |
| }, | |
| getPaymentMethods: function(e) { | |
| return a.ajax({ | |
| url: o.getLink("adyen_payment_methods", { | |
| user_id: e.id | |
| }) | |
| }).then(function(e) { | |
| return s.resolve(e.data) | |
| }) | |
| }, | |
| getPaymentMethodsProcessed: function(e) { | |
| return this.getPaymentMethods(e).then(this._processPaymentMethods.bind(this))["catch"](function() { | |
| return new Error("Unable to fetch payment methods.") | |
| }) | |
| }, | |
| _processPaymentMethods: function(e) { | |
| var t = this | |
| , n = { | |
| name: "Creditcard", | |
| code: "creditcard", | |
| banks: [] | |
| } | |
| , i = r.reduce(e, function(e, i) { | |
| return "directdebit_NL" === i.code ? e : "mc" === i.code || "visa" === i.code || "amex" === i.code ? (n.banks.push(i), | |
| e) : (i.banks && (i.banks = t._orderBanks(i.code, i.banks)), | |
| e.push(i), | |
| e) | |
| }, [n]) | |
| , s = ["directEbanking", "paypal", "ideal", "creditcard"]; | |
| return i.sort(function(e, t) { | |
| var n = s.indexOf(e.code) | |
| , i = s.indexOf(t.code); | |
| return i > n ? -1 : n > i ? 1 : 0 | |
| }), | |
| i | |
| }, | |
| getRecurringContract: function(e) { | |
| return a.ajax({ | |
| url: o.getLink("user_payment", { | |
| user_id: e.id | |
| }), | |
| type: "GET" | |
| }).then(function(e) { | |
| return e.data | |
| }) | |
| }, | |
| setRecurringContract: function(e, t) { | |
| return a.ajax({ | |
| url: o.getLink("user_payment", { | |
| user_id: e.id | |
| }), | |
| type: "PUT", | |
| data: JSON.stringify({ | |
| recurring_enabled: t | |
| }) | |
| }).then(function(e) { | |
| return e.data | |
| }) | |
| }, | |
| getRecurringState: function(e) { | |
| var t = e.recurring_enabled | |
| , n = r.get(e, "_embedded.recurring_contracts", []) | |
| , i = "norecurring_nocontracts"; | |
| return t && n.length ? i = "recurring" : t && !n.length ? i = "recurring_nocontracts" : !t && n.length && (i = "norecurring_hascontracts"), | |
| { | |
| state: i, | |
| enabled: t, | |
| recurringContracts: n, | |
| data: e | |
| } | |
| }, | |
| upgradeRecurring: function(e) { | |
| return a.ajax({ | |
| url: o.getLink("adyen_place_order", { | |
| user_id: e.id | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| amount: 10 | |
| }) | |
| }) | |
| }, | |
| fetchPaymentURL: function(e, t) { | |
| var n = i(t); | |
| return "creditcard" === n.method && (n.method = n.bank), | |
| a.ajax({ | |
| type: "POST", | |
| url: o.getLink("adyen_payment_proposal", { | |
| user_id: e.id | |
| }), | |
| data: JSON.stringify(n) | |
| }).then(function(e) { | |
| return e.data.location | |
| }) | |
| }, | |
| fetchOrderURL: function(e) { | |
| var t = i(e); | |
| return "creditcard" === t.method && (t.method = t.bank), | |
| a.ajax({ | |
| type: "POST", | |
| url: o.getLink("orders"), | |
| data: JSON.stringify(t), | |
| skipJWTRefresh: !!t.payment | |
| }).then(function(e) { | |
| return e.data | |
| }) | |
| }, | |
| _orderBanks: function(e, t) { | |
| if (!u[e]) | |
| return t; | |
| var n = r.reduce(u[e], function(e, n) { | |
| var i = r.findWhere(t, { | |
| code: n | |
| }); | |
| return i && e.push(i), | |
| e | |
| }, []); | |
| return n.concat(r.filter(t, function(t) { | |
| return -1 === u[e].indexOf(t.code) | |
| })) | |
| } | |
| }; | |
| return c | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 143: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(25) | |
| , s = n(16) | |
| , r = n(121) | |
| , a = { | |
| requestUniqueAccessURL: function(e, n) { | |
| var r = this | |
| , a = i.defer() | |
| , o = { | |
| url: s.getLink("onetimelink", { | |
| item_id: e, | |
| service: n | |
| }), | |
| type: "POST" | |
| }; | |
| return navigator.standalone && (o.async = !1, | |
| o.success = function(e) { | |
| var t = document.createElement("a"); | |
| t.setAttribute("href", r._createPocketUrl(e.data.url)), | |
| t.setAttribute("target", "_blank"); | |
| var n = document.createEvent("HTMLEvents"); | |
| n.initEvent("click", !0, !0), | |
| t.dispatchEvent(n), | |
| a.resolve(e.data.url) | |
| } | |
| ), | |
| t.ajax(o).then(function(e) { | |
| 201 === e.status ? a.resolve(e.data.url) : a.reject(e) | |
| }, function(e) { | |
| a.reject(e) | |
| }).done(), | |
| a.promise | |
| }, | |
| shareToPocket: function(e) { | |
| var t, n = this; | |
| return navigator.standalone || (t = window.open("about:blank", "pocket", "width=550,height=300")), | |
| a.requestUniqueAccessURL(e, "getpocket.com").then(function(e) { | |
| navigator.standalone || (t.location.href = n._createPocketUrl(e)) | |
| }, function() { | |
| console.error("Something went wrong then requesting sharing URL from manager.") | |
| }) | |
| }, | |
| shareToEmail: function(e, n, i, r) { | |
| return t.ajax({ | |
| url: s.getLink("email_share", { | |
| user_id: e | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| item_id: n, | |
| emails: i, | |
| message: r | |
| }) | |
| }) | |
| }, | |
| shareToChannel: function(e, n, r, o, l) { | |
| var u = _.merge({}, { | |
| id: r.id, | |
| text: o, | |
| published_at: l | |
| }) | |
| , c = 1; | |
| return this.previousShared === r && (c = 0), | |
| this.previousShared = r, | |
| t.ajax({ | |
| url: s.getLink("posts", { | |
| user_id: n.id | |
| }), | |
| data: JSON.stringify(u), | |
| type: "POST" | |
| }).then(function(t) { | |
| return n.set("posts", (n.get("posts") || 0) + c), | |
| r.set("post_count", r.get("post_count") + c), | |
| r.trigger("posts_change"), | |
| i.resolve(a._newPost(e, n, r, t.data)) | |
| }) | |
| }, | |
| removePost: function(e, t) { | |
| var n = this; | |
| return e.destroy().then(function() { | |
| return t.set("post_count", t.get("post_count") - 1), | |
| n.previousShared = void 0, | |
| t.trigger("posts_change"), | |
| i.resolve(e) | |
| }) | |
| }, | |
| _newPost: function(e, t, n, i) { | |
| var s = new r(i,{ | |
| parse: !0, | |
| track: !0 | |
| }); | |
| return s.set("manifest", n.getEmbedded("manifest")), | |
| s | |
| }, | |
| _createPocketUrl: function(e) { | |
| return "https://getpocket.com/edit?url=" + encodeURIComponent(e) | |
| } | |
| }; | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 144: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , s = n(347) | |
| , r = n(30) | |
| , a = t.Model.extend({ | |
| name: "manifest", | |
| parse: function(e) { | |
| return e._links && e._links.self && (this.url = e._links.self.href), | |
| e.images && !s.allowImages(e.date, e.id, e.provider.id) && (e.images = []), | |
| "telegraaf" === e.provider.id && (e.body = i.map(e.body, function(e) { | |
| return "hl1" === e.type ? { | |
| type: e.type, | |
| content: "<b>" + e.content + "</b>" | |
| } : e | |
| })), | |
| this.parseHal(e) | |
| }, | |
| getProvider: function() { | |
| return r.getProviderOrDefault(this.get("provider").id) | |
| }, | |
| getTitle: function() { | |
| try { | |
| return (i.findWhere(this.get("body"), { | |
| type: "hl1" | |
| }) || i.findWhere(this.get("body"), { | |
| type: "hl2" | |
| })).content | |
| } catch (e) { | |
| return "Unknown title format" | |
| } | |
| }, | |
| getReadingTime: function() { | |
| var e = 275; | |
| return Math.ceil(this.get("length").words / e) | |
| }, | |
| getTitleAsText: function() { | |
| return i.unescape(i.stripTags(this.getTitle())).trim() | |
| }, | |
| getByline: function() { | |
| var e = i.findWhere(this.get("body"), { | |
| type: "byline" | |
| }); | |
| return e ? e.content : "" | |
| }, | |
| getIntro: function() { | |
| try { | |
| return (i.findWhere(this.get("body"), { | |
| type: "intro" | |
| }) || i.findWhere(this.get("body"), { | |
| type: "lead" | |
| }) || i.findWhere(this.get("body"), { | |
| type: "paragraph" | |
| }) || i.findWhere(this.get("body"), { | |
| type: "p" | |
| })).content | |
| } catch (e) { | |
| return "" | |
| } | |
| }, | |
| getIntroAsText: function() { | |
| return i.unescape(i.stripTags(this.getIntro())) | |
| }, | |
| getBody: function() { | |
| return this.get("format_version") >= 4 ? this.get("body") : [{ | |
| type: "kicker", | |
| content: this.get("kicker") | |
| }, { | |
| type: "head", | |
| content: this.get("head") | |
| }, { | |
| type: "byline", | |
| content: this.get("byline") | |
| }, { | |
| type: "dateline", | |
| content: this.get("dateline") | |
| }, { | |
| type: "intro", | |
| content: this.get("intro") | |
| }, { | |
| type: "lead", | |
| content: this.get("lead") | |
| }] | |
| } | |
| }); | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 145: function(e, t) { | |
| "use strict"; | |
| t["default"] = function(e) { | |
| if (e && e.__esModule) | |
| return e; | |
| var t = {}; | |
| if (null != e) | |
| for (var n in e) | |
| Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); | |
| return t["default"] = e, | |
| t | |
| } | |
| , | |
| t.__esModule = !0 | |
| }, | |
| 146: function(e, t, n) { | |
| "use strict"; | |
| var i = n(866)["default"] | |
| , s = n(867)["default"]; | |
| t["default"] = function() { | |
| function e(e, t) { | |
| var n = [] | |
| , s = !0 | |
| , r = !1 | |
| , a = void 0; | |
| try { | |
| for (var o, l = i(e); !(s = (o = l.next()).done) && (n.push(o.value), | |
| !t || n.length !== t); s = !0) | |
| ; | |
| } catch (u) { | |
| r = !0, | |
| a = u | |
| } finally { | |
| try { | |
| !s && l["return"] && l["return"]() | |
| } finally { | |
| if (r) | |
| throw a | |
| } | |
| } | |
| return n | |
| } | |
| return function(t, n) { | |
| if (Array.isArray(t)) | |
| return t; | |
| if (s(Object(t))) | |
| return e(t, n); | |
| throw new TypeError("Invalid attempt to destructure non-iterable instance") | |
| } | |
| }(), | |
| t.__esModule = !0 | |
| }, | |
| 152: [5938, 83, 429, 426, 39, 61, 440], | |
| 153: 126, | |
| 154: [5956, 29, 60, 40], | |
| 155: function(e, t, n) { | |
| var i = n(156) | |
| , s = Math.max | |
| , r = Math.min; | |
| e.exports = function(e, t) { | |
| return e = i(e), | |
| 0 > e ? s(e + t, 0) : r(e, t) | |
| } | |
| }, | |
| 156: 416, | |
| 163: function(e, t) { | |
| "use strict"; | |
| function n() { | |
| document.activeElement && document.activeElement.blur() | |
| } | |
| function i(e) { | |
| return document.activeElement ? e in document.activeElement : !1 | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.blurActiveElement = n, | |
| t.inActiveElement = i | |
| }, | |
| 164: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(66) | |
| , u = r(l) | |
| , c = n(119) | |
| , d = r(c) | |
| , p = (n(3), | |
| n(13)) | |
| , f = r(p) | |
| , h = n(12) | |
| , m = r(h) | |
| , g = n(15) | |
| , v = r(g) | |
| , y = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("loginAndConnectFacebookError", "loginAndConnectFacebookSuccess") | |
| } | |
| return i(e, [{ | |
| key: "connectFacebook", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n(), | |
| d["default"].authorizeAndGetFriends(e).then(function(e) { | |
| return t.facebookConnectSuccess(e) | |
| })["catch"](function(e) { | |
| return t.facebookError(e) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "toggleFacebook", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n(), | |
| e.get("facebook_id") ? u["default"].disconnectFromFacebook(e).then(function() { | |
| return t.facebookDisconnectSuccess() | |
| })["catch"](function(e) { | |
| return t.facebookError(e) | |
| }) : t.connectFacebook(e) | |
| } | |
| } | |
| }, { | |
| key: "facebookConnectSuccess", | |
| value: function(e) { | |
| return f["default"].track("Social Connect", { | |
| platform: "facebook" | |
| }), | |
| e | |
| } | |
| }, { | |
| key: "facebookDisconnectSuccess", | |
| value: function() { | |
| return f["default"].track("Social Disconnect", { | |
| platform: "facebook" | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "facebookError", | |
| value: function(e) { | |
| var t = e.message; | |
| return f["default"].track("Social Connect Error", { | |
| platform: "facebook", | |
| error: t | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "loginAndConnectFacebook", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(i) { | |
| i(), | |
| m["default"].loginWithCredentials({ | |
| login: e.trim(), | |
| password: t | |
| }).then(function() { | |
| f["default"].track("Login Blendle"), | |
| f["default"].track("Login Successful", { | |
| platform: "facebook" | |
| }) | |
| }).then(function() { | |
| n.connectFacebook(m["default"].getUser()), | |
| m["default"].navigateToReturnURL(), | |
| v["default"].unmountComponentAtNode(document.querySelector(".a-dialogue")) | |
| })["catch"](function(e) { | |
| return n.loginAndConnectFacebookError(e) | |
| }) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(y), | |
| e.exports = t["default"] | |
| }, | |
| 166: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(319) | |
| , u = r(l) | |
| , c = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchNotificationsSuccess", "fetchNotificationsError", "fetchNextNotificationsSuccess", "fetchNextNotificationsError") | |
| } | |
| return i(e, [{ | |
| key: "fetchNotifications", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(i) { | |
| if (!(t && t.length > 0)) { | |
| var s = new u["default"](e); | |
| i(s), | |
| s.fetch().then(function() { | |
| n.fetchNotificationsSuccess(s) | |
| })["catch"](function(e) { | |
| n.fetchNotificationsError(e) | |
| }) | |
| } | |
| } | |
| } | |
| }, { | |
| key: "fetchNextNotifications", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| e instanceof u["default"] && e.hasNext() && !e.isFetching() && (n(), | |
| e.fetchNext().then(function() { | |
| t.fetchNextNotificationsSuccess(e) | |
| })["catch"](function(e) { | |
| throw t.fetchNextNotificationsError(e), | |
| e | |
| })) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(c), | |
| e.exports = t["default"] | |
| }, | |
| 167: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| var n = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2] | |
| , i = o(n).map(function(e) { | |
| return encodeURIComponent(e) + "=" + encodeURIComponent(n[e]) | |
| }).join("&"); | |
| return [window.location.protocol, "//", window.location.host, "/", e.getURI(), "/r/", t, "?", i].join("") | |
| } | |
| var s = n(7)["default"] | |
| , r = n(6)["default"] | |
| , a = n(21)["default"] | |
| , o = n(53)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(5) | |
| , c = l(u) | |
| , d = n(18) | |
| , p = l(d) | |
| , f = n(19) | |
| , h = l(f) | |
| , m = n(358) | |
| , g = l(m) | |
| , v = n(3) | |
| , y = n(80) | |
| , _ = l(y) | |
| , b = n(645) | |
| , w = l(b) | |
| , S = n(13) | |
| , k = l(S) | |
| , E = n(143) | |
| , C = l(E) | |
| , T = n(68) | |
| , P = l(T) | |
| , N = n(845) | |
| , x = l(N) | |
| , R = function() { | |
| function e() { | |
| r(this, e), | |
| this.generateActions("shareItemToEmailSuccess", "shareItemToEmailError", "loadPlatform", "loadPlatformSuccess") | |
| } | |
| return s(e, [{ | |
| key: "loadPlatforms", | |
| value: function() { | |
| var e = this; | |
| return this.loadPlatform("twitter"), | |
| this.loadPlatform("facebook"), | |
| w["default"].load().then(function() { | |
| return e.loadPlatformSuccess("twitter") | |
| })["catch"](function() { | |
| return null | |
| }), | |
| _["default"].load().then(function() { | |
| return e.loadPlatformSuccess("facebook") | |
| })["catch"](function() { | |
| return null | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "shareItemToPlaform", | |
| value: function(e, t, n) { | |
| return "twitter" === e ? this.shareItemToTwitter(t, n) : "facebook" === e ? this.shareItemToFacebook(t, n) : "linkedin" === e ? this.shareItemToLinkedIn(t, n) : "whatsapp" === e ? this.shareItemToWhatsApp(t, n) : "email" === e ? (n.provider_id = t.getEmbedded("manifest").get("provider").id, | |
| this.openEmailDialog(t, n)) : void 0 | |
| } | |
| }, { | |
| key: "shareItemToFacebook", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = e.get("manifest") | |
| , s = (0, | |
| p["default"])(n.get("date")) | |
| , r = e.getFeaturedImage() | |
| , o = void 0; | |
| r && (o = c["default"].get(r, "_links.medium.href")); | |
| var l = i(e, "sh-fb", { | |
| medium: "facebook", | |
| campaign: "social-share", | |
| source: "blendle" | |
| }); | |
| return _["default"].lib.ui({ | |
| method: "feed", | |
| display: "popup", | |
| name: n.getTitleAsText(), | |
| caption: c["default"].sprintf("Blendle: %s %s", n.getProvider().get("name"), s.format("L")), | |
| description: n.getIntroAsText(), | |
| link: l, | |
| picture: o | |
| }), | |
| k["default"].track("Start Social Share Item", a({}, t, { | |
| type: "facebook" | |
| })), | |
| e | |
| } | |
| }, { | |
| key: "openEmailDialog", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; | |
| return P["default"].openDialogueWithView(new x["default"]({ | |
| item: e | |
| }), { | |
| ignoreCloseView: !1, | |
| className: "v-share-email white-close" | |
| }), | |
| k["default"].track("Share Email: Open dialogue", t), | |
| e | |
| } | |
| }, { | |
| key: "shareItemToEmail", | |
| value: function(e, t, n, i) { | |
| var s = this; | |
| return C["default"].shareToEmail(e, t.id, n, i).then(function() { | |
| s.shareItemToEmailSuccess(n) | |
| })["catch"](function(e) { | |
| s.shareItemToEmailError({ | |
| error: e | |
| }) | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "shareItemToTwitter", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = i(e, "sh-tw", { | |
| medium: "twitter", | |
| campaign: "social-share", | |
| source: "blendle" | |
| }) | |
| , s = e.get("manifest") | |
| , r = (0, | |
| v.translate)("item.text.sharing.twitter", [s.getProvider().get("name"), s.getTitleAsText()]); | |
| return w["default"].openTweet(n, c["default"].unescape(r)), | |
| k["default"].track("Start Social Share Item", a({}, t, { | |
| type: "twitter" | |
| })), | |
| e | |
| } | |
| }, { | |
| key: "shareItemToLinkedIn", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = e.get("manifest") | |
| , s = n.getProvider().get("name") | |
| , r = i(e, "sh-in", { | |
| medium: "linkedin", | |
| campaign: "social-share", | |
| source: "blendle" | |
| }) | |
| , o = c["default"].sprintf("http://www.linkedin.com/shareArticle?mini=true&url=%s&title=%s&summary=%s&source=%s", encodeURIComponent(r), encodeURIComponent(n.getTitleAsText() + " (" + s + ")"), encodeURIComponent(n.getIntroAsText()), "Blendle"); | |
| return (0, | |
| g["default"])({ | |
| src: o, | |
| name: "intent", | |
| width: 550, | |
| height: 542 | |
| }), | |
| k["default"].track("Start Social Share Item", a({}, t, { | |
| type: "linkedin" | |
| })), | |
| e | |
| } | |
| }, { | |
| key: "shareItemToWhatsApp", | |
| value: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = e.get("manifest") | |
| , s = i(e, "sh-wa", { | |
| medium: "whatsapp", | |
| campaign: "social-share", | |
| source: "blendle" | |
| }) | |
| , r = (0, | |
| v.translate)("item.text.sharing.general", [n.getProvider().get("name"), n.getTitleAsText(), s]) | |
| , o = "whatsapp://send?text=" + encodeURIComponent(c["default"].unescape(r)); | |
| return "Android" === window.BrowserDetect.device ? window.open(o, "_blank") : window.location = o, | |
| k["default"].track("Start Social Share Item", a({}, t, { | |
| type: "whatsapp" | |
| })), | |
| e | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = h["default"].createActions(R), | |
| e.exports = t["default"] | |
| }, | |
| 168: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(21)["default"] | |
| , a = n(24)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(19) | |
| , u = o(l) | |
| , c = n(12) | |
| , d = o(c) | |
| , p = n(8) | |
| , f = n(13) | |
| , h = o(f) | |
| , m = n(38) | |
| , g = o(m) | |
| , v = n(3) | |
| , y = o(v) | |
| , _ = n(65) | |
| , b = o(_) | |
| , w = n(305) | |
| , S = o(w) | |
| , k = n(35) | |
| , E = o(k) | |
| , C = n(79) | |
| , T = o(C) | |
| , P = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("signUpError", "resendEmailConfirmSuccess", "signUpChangeEmail") | |
| } | |
| return i(e, [{ | |
| key: "signUpSuccess", | |
| value: function() { | |
| return function(e) { | |
| e(), | |
| h["default"].track("Signup/Send Confirmation") | |
| } | |
| } | |
| }, { | |
| key: "signUp", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? "SignUp" : arguments[2] | |
| , s = arguments.length <= 3 || void 0 === arguments[3] ? !1 : arguments[3]; | |
| return function(o) { | |
| return o({ | |
| email: e | |
| }), | |
| new a(function(t) { | |
| if (!e.match(/^.+@.+$/)) | |
| throw new E["default"](p.EMAIL_INVALID); | |
| t() | |
| } | |
| ).then(function() { | |
| return a.all([b["default"].emailIsAllowed(e), b["default"].emailIsAvailable(e)]) | |
| }).then(function() { | |
| return s ? new a(function(t, n) { | |
| T["default"].openVerifyEmail(e, t, n) | |
| } | |
| ) : a.resolve() | |
| }).then(function() { | |
| var n = new S["default"](r({ | |
| email: e, | |
| country: g["default"].getCountryCode(), | |
| primary_language: y["default"].currentLocale | |
| }, t)); | |
| return b["default"].signup(n) | |
| }).then(function(e) { | |
| d["default"].loginWithToken(e), | |
| h["default"].track(i), | |
| n.signUpSuccess() | |
| })["catch"](function(e) { | |
| if (e.type && e.type === p.USER_REJECTED_EMAIL) | |
| return n.signUpChangeEmail(); | |
| h["default"].track(i, { | |
| event: "signup_error", | |
| message: e.message || e.type | |
| }); | |
| var t = e.type; | |
| if ("ExistingEmail" === t ? t = p.USER_ID_TAKEN : "TemporaryEmailServiceUsed" === t && (t = p.EMAIL_INVALID), | |
| [p.EMAIL_INVALID, p.EMAIL_BLACKLISTED, p.USER_ID_TAKEN, p.EMAIL_CONTAINS_PLUS_SIGN].includes(t)) | |
| return n.signUpError(t); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "resendEmailConfirm", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? "SignUp" : arguments[2]; | |
| return function(s) { | |
| s(), | |
| h["default"].track(i, { | |
| event: "Signup/Resend Confirmation" | |
| }), | |
| b["default"].resendEmailConfirmation(e, t).then(function() { | |
| return n.resendEmailConfirmSuccess() | |
| }) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = u["default"].createActions(P), | |
| e.exports = t["default"] | |
| }, | |
| 169: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t, n) { | |
| switch (e) { | |
| case "following": | |
| return p["default"].fetchFollowing(t); | |
| case "pins": | |
| return p["default"].fetchPins(t); | |
| case "trending": | |
| return m["default"].getUser().updateLastViewedTrendingTime(), | |
| p["default"].fetchTrending(t, n.details); | |
| case "channel": | |
| return p["default"].fetchChannel(t, n.details); | |
| case "user": | |
| return p["default"].fetchUser(n.details); | |
| case "userArchive": | |
| return p["default"].fetchUserArchive(t, n.details); | |
| default: | |
| throw new Error("undefined timeline " + e) | |
| } | |
| } | |
| function s(e) { | |
| var t = e.filter(function(e) { | |
| return e.get("b:item") ? !1 : (window.ErrorLogger.captureMessage("TimelineResource: invalid tile", { | |
| extra: { | |
| data: { | |
| message: e.get("message"), | |
| keys: o(e.attributes) | |
| } | |
| } | |
| }), | |
| !0) | |
| }); | |
| return e.remove(t), | |
| e | |
| } | |
| var r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(53)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(19) | |
| , c = l(u) | |
| , d = n(243) | |
| , p = l(d) | |
| , f = n(8) | |
| , h = n(12) | |
| , m = l(h) | |
| , g = n(118) | |
| , v = l(g) | |
| , y = function() { | |
| function e() { | |
| a(this, e), | |
| this.generateActions("fetchTimelineSuccess", "fetchTimelineError", "fetchNextItemsSuccess", "fetchNextItemsError") | |
| } | |
| return r(e, [{ | |
| key: "changeVisibility", | |
| value: function(e) { | |
| return e | |
| } | |
| }, { | |
| key: "fetchTimeline", | |
| value: function(e, t) { | |
| var n = this | |
| , r = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2]; | |
| return function(a) { | |
| "trending" !== e || r.details || (r.details = p["default"].getUserTrendingFilter(m["default"].getUser())), | |
| a({ | |
| name: e, | |
| options: r | |
| }), | |
| i(e, t, r).then(function(t) { | |
| n.fetchTimelineSuccess({ | |
| name: e, | |
| options: r, | |
| items: s(t) | |
| }) | |
| })["catch"](function(t) { | |
| if (t.type === f.XHR_STATUS && 404 === t.status) | |
| return n.fetchTimelineSuccess({ | |
| name: e, | |
| items: new v["default"], | |
| options: r | |
| }); | |
| if (t.type === f.XHR_STATUS) | |
| return n.fetchTimelineError({ | |
| name: e, | |
| err: t, | |
| options: r | |
| }); | |
| throw t | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchNextItems", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2]; | |
| return function(r) { | |
| t instanceof v["default"] && t.hasNext() && !t.isFetching() && (r({ | |
| name: e, | |
| options: i | |
| }), | |
| t.fetchNext().then(function() { | |
| n.fetchNextItemsSuccess({ | |
| name: e, | |
| options: i, | |
| collection: s(t) | |
| }) | |
| })["catch"](function(t) { | |
| if (t.type !== f.STATUS_PENDING) { | |
| if (t.type === f.XHR_STATUS) | |
| return void n.fetchNextItemsError({ | |
| name: e, | |
| err: t, | |
| options: i | |
| }); | |
| throw t | |
| } | |
| })) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = c["default"].createActions(y), | |
| e.exports = t["default"] | |
| }, | |
| 170: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , s = n(16) | |
| , r = n(676) | |
| , a = n(343) | |
| , o = a.getProviderUid | |
| , l = n(30) | |
| , u = t.Collection.extend({ | |
| model: r, | |
| type: "tiles", | |
| key: "_embedded.b:tiles", | |
| parse: function(e) { | |
| return e._embedded = i.reduce(e._embedded, this._convert.bind(this), { | |
| "b:tiles": [] | |
| }), | |
| this.parseHal(e) | |
| }, | |
| _addID: function(e) { | |
| if (!e._links) | |
| return e; | |
| var t = decodeURI(e._links.self.href); | |
| return t.indexOf("?zoom=") > -1 ? e.id = t.substring(0, t.indexOf("?zoom=")) : t.indexOf("&zoom=") > -1 ? e.id = t.substring(0, t.indexOf("&zoom=")) : e.id = t, | |
| e | |
| }, | |
| _convert: function(e, t, n) { | |
| return this._converters[n] ? e["b:tiles"] = this._convertValue(this._converters[n], t) : e[n] = t, | |
| e | |
| }, | |
| _convertValue: function(e, t) { | |
| return t.map(e.bind(this)).filter(function(e) { | |
| return e | |
| }).filter(this._isDisabled) | |
| }, | |
| _isDisabled: function(e) { | |
| var t = i.get(e, ["_embedded", "b:item", "id"]); | |
| if (!t) | |
| return !0; | |
| var n = l.getProvider(o(t)); | |
| return !n || n && !n.getCapability("disableIssue", !1) | |
| }, | |
| _converters: { | |
| "b:tiles": function(e) { | |
| return this._addID(e) | |
| }, | |
| items: function(e) { | |
| var t; | |
| if (e._embedded) | |
| return t = e._embedded.posts ? e._embedded.posts : { | |
| id: i.uniqueId(), | |
| date: e._embedded.manifest, | |
| _embedded: { | |
| user: { | |
| id: "blendle" | |
| } | |
| } | |
| }, | |
| this._addID({ | |
| _links: { | |
| self: { | |
| href: e._links.self.href | |
| } | |
| }, | |
| _embedded: { | |
| "b:recent-post": t, | |
| "b:item": { | |
| _links: { | |
| self: { | |
| href: e._links.self.href | |
| } | |
| }, | |
| _embedded: { | |
| manifest: e._embedded.manifest | |
| }, | |
| id: e.id, | |
| price: e.price, | |
| refundable: e.refundable, | |
| subscription: e.subscription, | |
| acquired: e.acquired | |
| } | |
| } | |
| }) | |
| }, | |
| posts: function(e) { | |
| if (e._embedded) { | |
| var t = e._embedded.manifest; | |
| return delete e._embedded.manifest, | |
| this._addID({ | |
| _links: { | |
| self: { | |
| href: s.getLink("item", { | |
| item_id: t.id | |
| }) | |
| } | |
| }, | |
| _embedded: { | |
| "b:recent-post": e, | |
| "b:item": { | |
| _links: { | |
| self: { | |
| href: t._links.self.href | |
| } | |
| }, | |
| _embedded: { | |
| manifest: t | |
| }, | |
| id: t.id | |
| } | |
| } | |
| }) | |
| } | |
| } | |
| } | |
| }); | |
| return u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 171: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(186)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(2) | |
| , o = r(a) | |
| , l = n(15) | |
| , u = r(l) | |
| , c = n(117) | |
| , d = r(c) | |
| , p = n(11) | |
| , f = r(p) | |
| , h = n(346) | |
| , m = r(h) | |
| , g = n(556) | |
| , v = r(g) | |
| , y = o["default"].createClass({ | |
| displayName: "PortalTooltip", | |
| propTypes: { | |
| pointerSize: o["default"].PropTypes.number, | |
| position: o["default"].PropTypes.string, | |
| layout: o["default"].PropTypes.string, | |
| name: o["default"].PropTypes.string, | |
| onScroll: o["default"].PropTypes.func, | |
| className: o["default"].PropTypes.string, | |
| onMouseEnter: o["default"].PropTypes.func, | |
| truncate: o["default"].PropTypes.oneOfType([o["default"].PropTypes.func, o["default"].PropTypes.bool]) | |
| }, | |
| mixins: [(0, | |
| d["default"])("tooltip-portal")], | |
| getInitialState: function() { | |
| return { | |
| pos: { | |
| x: 0, | |
| y: 0, | |
| maxHeight: window.innerHeight, | |
| yPos: "bottom", | |
| xPos: "left" | |
| }, | |
| truncateCount: null | |
| } | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| truncate: !1, | |
| truncateMessage: null , | |
| pointerSize: 5 | |
| } | |
| }, | |
| render: function() { | |
| return o["default"].createElement("span", null ) | |
| }, | |
| componentDidMount: function() { | |
| this._updatePosition(), | |
| this.props.onScroll && (this._scrollParent = (0, | |
| m["default"])(u["default"].findDOMNode(this)), | |
| this._scrollParent.addEventListener("scroll", this.props.onScroll)) | |
| }, | |
| componentWillUnmount: function() { | |
| this.props.onScroll && this._scrollParent.removeEventListener("scroll", this.props.onScroll) | |
| }, | |
| _updatePosition: function() { | |
| var e = this._getPosition(); | |
| this.props.truncate && this._truncateChildren(e.maxHeight), | |
| this.setState({ | |
| pos: e | |
| }) | |
| }, | |
| _getPosition: function() { | |
| var e = u["default"].findDOMNode(this).parentNode.getBoundingClientRect() | |
| , t = { | |
| width: window.innerWidth, | |
| height: window.innerHeight | |
| } | |
| , n = this.getLayerDOMNode().getBoundingClientRect() | |
| , i = window.getComputedStyle(this.getLayerDOMNode()) | |
| , s = { | |
| x: parseInt(i.marginLeft, 0) + parseInt(i.marginRight, 0), | |
| y: parseInt(i.marginTop, 0) + parseInt(i.marginBottom, 0) | |
| } | |
| , r = { | |
| width: n.width + s.x, | |
| height: n.height + s.y | |
| } | |
| , a = this._getFitPosition(e, t, r); | |
| return a.maxHeight = t.height - a.y - s.y, | |
| a | |
| }, | |
| _getFitPosition: function(e, t, n) { | |
| var i, s, r = { | |
| top: e.top - n.height > 0, | |
| bottom: e.top + e.height + n.height < t.height, | |
| left: e.left - n.width > 0, | |
| right: e.right + e.width + n.width < t.width | |
| }; | |
| r.right ? (i = e.left, | |
| s = "right") : r.left ? (i = e.left - n.width + e.width, | |
| s = "left") : (i = e.left - n.width / 2 + e.width / 2, | |
| s = "center"); | |
| var a = void 0 | |
| , o = void 0 | |
| , l = this.props.position; | |
| return l && r[l] && (a = e[l] + n.height * ("top" === l ? -1 : 1), | |
| o = "top" === l ? "above" : "below"), | |
| a && o || (!r.bottom && r.top ? (a = e.top - n.height, | |
| o = "above") : (a = e.top + e.height, | |
| o = "below")), | |
| { | |
| x: Math.round(i), | |
| y: Math.round(a), | |
| xPos: s, | |
| yPos: o | |
| } | |
| }, | |
| _truncateChildren: function(e) { | |
| if (null === this.state.truncateCount) { | |
| var t = this.getLayerDOMNode() | |
| , n = s(t.children) | |
| , i = 0 | |
| , r = 0 | |
| , a = 0; | |
| n.forEach(function(t, n) { | |
| i > e ? r++ : (i = t.offsetHeight + t.offsetTop, | |
| i > e && r++), | |
| 0 === r && (a = n) | |
| }), | |
| r && "function" == typeof this.props.truncate && r++, | |
| this.setState({ | |
| truncateCount: r | |
| }) | |
| } | |
| }, | |
| _getPointerOffset: function(e) { | |
| var t = u["default"].findDOMNode(this).parentNode; | |
| return Math.round(t.offsetWidth / 2 - e) | |
| }, | |
| renderLayer: function() { | |
| var e = (0, | |
| f["default"])(["v-portal-tooltip", "pos-" + this.state.pos.xPos, "pos-" + this.state.pos.yPos, i({}, "l-" + this.props.layout, this.props.layout), i({}, "tooltip-" + this.props.name, this.props.name)]) | |
| , t = { | |
| position: "fixed", | |
| zIndex: 1e5, | |
| left: this.state.pos.x + "px", | |
| top: this.state.pos.y + "px", | |
| maxHeight: this.state.pos.maxHeight + "px" | |
| } | |
| , n = {} | |
| , s = void 0; | |
| "function" == typeof this.props.truncate && this.state.truncateCount && (s = this.props.truncate(this.state.truncateCount)); | |
| var r = void 0; | |
| this.props.pointerSize && (r = o["default"].createElement(v["default"], { | |
| position: "above" === this.state.pos.yPos ? "bottom" : "top", | |
| direction: this.state.pos.xPos, | |
| offset: this._getPointerOffset(this.props.pointerSize), | |
| width: this.props.pointerSize | |
| }), | |
| "above" === this.state.pos.yPos ? n.marginBottom = 3 + this.props.pointerSize + "px" : n.marginTop = 3 + this.props.pointerSize + "px"); | |
| var a = this.props.children.length - (this.state.truncateCount || 0); | |
| return o["default"].createElement("div", { | |
| className: e, | |
| style: t, | |
| onMouseEnter: this.props.onMouseEnter, | |
| onMouseLeave: this.props.onMouseLeave | |
| }, r, o["default"].createElement("div", { | |
| className: this.props.className, | |
| style: n | |
| }, this.props.children.slice(0, a), s)) | |
| } | |
| }); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 172: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(11) | |
| , p = l(d) | |
| , f = n(13) | |
| , h = l(f) | |
| , m = n(3) | |
| , g = n(12) | |
| , v = l(g) | |
| , y = n(17) | |
| , _ = l(y) | |
| , b = n(133) | |
| , w = l(b) | |
| , S = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| hover: !1, | |
| buttonState: "" | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentWillMount", | |
| value: function() { | |
| this._render = this.render.bind(this), | |
| this.props.user.on("change:following", this._render) | |
| } | |
| }, { | |
| key: "componentWillUnmount", | |
| value: function() { | |
| this.props.user.off("change:following", this._render), | |
| clearTimeout(this._delayedLoadingState) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e; | |
| if (this.props.user.id === v["default"].getId()) | |
| return null ; | |
| var t = ""; | |
| t = this.props.user.get("following") && this.state.hover && !this.props.isProfile ? m.locale.user.buttons.unfollow : this.props.user.get("following") ? m.locale.user.buttons.following : m.locale.user.buttons.follow; | |
| var n = (0, | |
| p["default"])("btn btn-text", "btn-follow", (e = { | |
| profile: this.props.isProfile, | |
| "btn-following": this.props.user.get("following"), | |
| "btn-follow": !this.props.user.get("following") | |
| }, | |
| o(e, "s-" + this.state.buttonState, this.state.buttonState), | |
| o(e, "s-" + this.props.size, this.props.size && "large" !== this.props.size), | |
| o(e, this.props.className, this.props.className), | |
| e)); | |
| return c["default"].createElement("button", { | |
| className: n, | |
| onClick: this._click.bind(this), | |
| onMouseEnter: this._mouseEnter.bind(this), | |
| onMouseLeave: this._mouseLeave.bind(this) | |
| }, t) | |
| } | |
| }, { | |
| key: "_resetLoadingState", | |
| value: function() { | |
| var e = this; | |
| clearTimeout(this._delayedLoadingState), | |
| this._delayedLoadingState = setTimeout(function() { | |
| e.setState({ | |
| buttonState: "" | |
| }) | |
| }, 500) | |
| } | |
| }, { | |
| key: "_click", | |
| value: function(e) { | |
| var t = this; | |
| e.preventDefault(); | |
| var n = this.props.user; | |
| this.setState({ | |
| buttonState: "loading" | |
| }), | |
| n.get("following") ? n.unfollow(v["default"].getUser(), function(e) { | |
| t._resetLoadingState(), | |
| t._trackAnalytics(!1), | |
| e ? t.props.user.isChannel && w["default"].fetchChannels(v["default"].getUser().id) : t.setState({ | |
| buttonState: "error" | |
| }) | |
| }) : n.follow(v["default"].getUser(), function(e) { | |
| t._resetLoadingState(), | |
| t._trackAnalytics(!0), | |
| e ? t.props.user.isChannel && w["default"].fetchChannels(v["default"].getUser().id) : t.setState({ | |
| buttonState: "error" | |
| }) | |
| }) | |
| } | |
| }, { | |
| key: "_mouseEnter", | |
| value: function() { | |
| _["default"].hasTouch() || this.setState({ | |
| hover: !0 | |
| }) | |
| } | |
| }, { | |
| key: "_mouseLeave", | |
| value: function() { | |
| _["default"].hasTouch() || this.setState({ | |
| hover: !1 | |
| }) | |
| } | |
| }, { | |
| key: "_trackAnalytics", | |
| value: function(e) { | |
| var t = this.props.user; | |
| if (this.props.analytics) | |
| if ("channel" === this.props.analytics.type) { | |
| var n = { | |
| type: "profile", | |
| channel: t.id | |
| }; | |
| h["default"].track(e ? "Channel Subscribe" : "Channel Unsubscribe", n) | |
| } else { | |
| var n = { | |
| type: this.props.analytics.type, | |
| user_id: t.id, | |
| user_name: t.get("username") | |
| }; | |
| this.props.analytics.item_id && (n.item_id = this.props.analytics.item_id), | |
| this.props.analytics.item_title && (n.item_title = this.props.analytics.item_title), | |
| h["default"].track(e ? "Follow User" : "Unfollow User", n) | |
| } | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| user: c["default"].PropTypes.object.isRequired, | |
| isProfile: c["default"].PropTypes.bool, | |
| analytics: c["default"].PropTypes.object, | |
| size: c["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = S, | |
| e.exports = t["default"] | |
| }, | |
| 174: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(117) | |
| , o = i(a) | |
| , l = n(173) | |
| , u = i(l) | |
| , c = n(233); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "ModuleNavigationPortal", | |
| mixins: [(0, | |
| o["default"])()], | |
| getDefaultProps: function() { | |
| return { | |
| portal: document.querySelector(".a-navigation") | |
| } | |
| }, | |
| renderLayer: function() { | |
| var e = this.props.children; | |
| return this.props.items && (e = (0, | |
| c.getComponents)(this.props.items)), | |
| r["default"].createElement(u["default"], null , e) | |
| }, | |
| render: function() { | |
| return null | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 175: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(52) | |
| , r = i(s) | |
| , a = n(38) | |
| , o = i(a) | |
| , l = n(5929) | |
| , u = i(l) | |
| , c = n(13) | |
| , d = i(c) | |
| , p = n(89) | |
| , f = (i(p), | |
| !0) | |
| , h = "redirect_to_launch" | |
| , m = "redeemed_access_code" | |
| , g = /^(\/login|\/access|\/about|\/i(tem)?\/)/; | |
| t["default"] = { | |
| shouldRedirect: function() { | |
| return "approval" === u["default"].name ? !1 : g.test(window.location.pathname) ? !1 : r["default"].get(m) ? !1 : f || !r["default"].get(h) || o["default"].isBetaCountry() ? !o["default"].isSupportedCountry() || o["default"].isBetaCountry() : !1 | |
| }, | |
| setAccessCookie: function() { | |
| r["default"].set(m, !0, { | |
| expires: 31536e3, | |
| secure: u["default"].ssl | |
| }) | |
| }, | |
| redirectToLaunchSite: function() { | |
| r["default"].set(h, !0, { | |
| expires: 31536e3, | |
| secure: u["default"].ssl | |
| }), | |
| d["default"].track("Redirect to international launch", { | |
| country: o["default"].getCountryCode(), | |
| href: window.location.href, | |
| referrer: document.referrer | |
| }), | |
| setTimeout(function() { | |
| window.location = "https://launch.blendle.com" | |
| }, 100) | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 177: function(e, t, n) { | |
| var i; | |
| (function(s) { | |
| "use strict"; | |
| i = function(e) { | |
| var t = n(299) | |
| , i = 250 | |
| , r = "easeOutQuad" | |
| , a = { | |
| y: "scrollTop", | |
| x: "scrollLeft" | |
| } | |
| , o = { | |
| horizontal: function(e, t, n) { | |
| this._scroll("x", e, t, n) | |
| }, | |
| vertical: function(e, t, n) { | |
| this._scroll("y", e, t, n) | |
| }, | |
| _scroll: function(e, n, o, l) { | |
| l = l || {}, | |
| n === window && (n = "Windows Phone" === s.BrowserDetect.device ? document.querySelector("html") : document.body); | |
| var u = new t | |
| , c = a[e] | |
| , d = {} | |
| , p = {} | |
| , f = l.duration || i | |
| , h = l.easing || r; | |
| d[e] = n[c], | |
| p[e] = o, | |
| u.tween({ | |
| from: d, | |
| to: p, | |
| duration: f, | |
| easing: h, | |
| step: function(t) { | |
| n[c] = t[e] | |
| }, | |
| start: l.startCb, | |
| finish: l.finishCb | |
| }) | |
| } | |
| }; | |
| return o | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| } | |
| ).call(t, function() { | |
| return this | |
| }()) | |
| }, | |
| 178: function(e, t, n) { | |
| var i, s = n(53)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(3).locale | |
| , r = { | |
| hostUrl: function(e, n, i) { | |
| return t.sprintf("%s//%s%s", e || window.location.protocol, n || window.location.host, i !== !1 ? "/" : "") | |
| }, | |
| uri2url: function(e, n, i) { | |
| return t.sprintf("%s//%s/%s", i || window.location.protocol, n || window.location.host, e) | |
| }, | |
| param: function(e) { | |
| return s(e).map(function(t) { | |
| return encodeURIComponent(t) + "=" + encodeURIComponent(e[t]) | |
| }).join("&") | |
| }, | |
| getParams: function() { | |
| for (var e = {}, t = location.hash.substring(1), n = /([^&=]+)=([^&]*)/g, i = n.exec(t); i; ) | |
| e[decodeURIComponent(i[1])] = decodeURIComponent(i[2]), | |
| i = n.exec(t); | |
| return e | |
| }, | |
| removeTrailingSlash: function() { | |
| var e = arguments.length <= 0 || void 0 === arguments[0] ? "" : arguments[0] | |
| , t = arguments.length <= 1 || void 0 === arguments[1] ? !1 : arguments[1] | |
| , n = e.split("?"); | |
| return n[0] = n[0].replace(/\/$/, ""), | |
| e = n.join("?"), | |
| t && window.history.replaceState({}, i.app.text.page_title, e), | |
| e | |
| }, | |
| removeProtocol: function() { | |
| var e = arguments.length <= 0 || void 0 === arguments[0] ? "" : arguments[0]; | |
| return e.replace(/^https?:\/\//, "") | |
| }, | |
| createURLForFragment: function(e) { | |
| return window.location.protocol + "//" + window.location.host + "/" + e | |
| } | |
| }; | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 179: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = n(34) | |
| , r = n(52) | |
| , a = n(727) | |
| , o = n(726) | |
| , l = n(5929) | |
| , u = n(12) | |
| , c = n(13) | |
| , d = n(16) | |
| , p = n(47) | |
| , f = n(180) | |
| , h = n(181) | |
| , m = n(178) | |
| , g = i.Module.extend({ | |
| name: "item", | |
| type: "item", | |
| initialize: function() { | |
| this.setRouter(new a({ | |
| module: this | |
| })), | |
| this.listenToOnce(this, "unload", function() { | |
| if (this._showOnBoardingAfterClose) | |
| return h.markAsDeeplinkSignUp(), | |
| void h.show(); | |
| if (r.get("urlAfterItemClose")) { | |
| var e = r.get("urlAfterItemClose"); | |
| i.history.navigate(e, { | |
| trigger: !0 | |
| }), | |
| r.expire("urlAfterItemClose") | |
| } | |
| } | |
| .bind(this)) | |
| }, | |
| showOnBoardingAfterClose: function() { | |
| this._showOnBoardingAfterClose = !0 | |
| }, | |
| openItem: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; | |
| this.__perfStartTime = (new Date).getTime(); | |
| var n = void 0 === i.history.getPrevious(); | |
| n && !i.history.fragment.match(/^(i|item)\//) && (n = !1); | |
| var s = "Android Browser" === window.BrowserDetect.browser; | |
| s && Number(window.BrowserDetect.version) <= 4.3 && (n = !0), | |
| this.getArea().classList.toggle("no-animation", n), | |
| u.getId() ? this._afterAuth(u.getUser(), e, t) : i.history.navigate("", { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| }, | |
| _afterAuth: function(e, n, i) { | |
| var s = i.lastEvent | |
| , r = s && (s.metaKey || s.ctrlKey); | |
| if (i && i.newWindow !== !1 && r) | |
| return c.track("Open Item New Window", { | |
| item_id: n | |
| }), | |
| void window.open(m.uri2url("item/" + n)); | |
| i && i.urlAfterItemClose && (this._urlAfterItemClose = i.urlAfterItemClose); | |
| var a = "deeplink"; | |
| d.embedded && (a = "widget"), | |
| i = i || {}, | |
| i.analytics = t.defaults(i.analytics || {}, { | |
| type: a, | |
| referrer: document.referrer | |
| }), | |
| this.getController() && this.getController() instanceof o || this.setController(new o({ | |
| module: this, | |
| area: this.getArea() | |
| })), | |
| this.getController().openItem(n, i, this.__perfStartTime), | |
| this.loadOrWake() | |
| }, | |
| openDeeplinkSignup: function(e) { | |
| p.set({ | |
| requireAuthUrl: i.history.fragment | |
| }); | |
| var t = n(384); | |
| t.openSignup(e) | |
| }, | |
| openItemOnSocial: function(e) { | |
| return this.openItem(e, { | |
| openOnSocial: !0 | |
| }) | |
| }, | |
| openEmailVerification: function(e, n, r) { | |
| var a; | |
| r && r.urlAfterItemClose && (this._urlAfterItemClose = r.urlAfterItemClose), | |
| a = t.sprintf("%s/%s", this.getRouter().getPrefix(), e); | |
| var l = "deeplink"; | |
| d.embedded ? l = "widget" : i.history.fragment !== a && (l = i.history.fragment + ""), | |
| r = t.defaults(r || {}, { | |
| analytics: { | |
| type: l, | |
| referrer: document.referrer | |
| } | |
| }), | |
| s.history.fragment !== a && i.history.navigate(a), | |
| this.setController(new o({ | |
| module: this, | |
| area: this.getArea() | |
| })), | |
| this.loadOrWake(), | |
| this.getController().openEmailVerification(e, n, r) | |
| }, | |
| insufficientFunds: function(e) { | |
| this._urlAfterItemClose && r.set("urlAfterItemClose", this._urlAfterItemClose, { | |
| secure: l.ssl, | |
| expires: 600 | |
| }), | |
| c.track("Balance too low"), | |
| this.openPaymentDialogue(e) | |
| }, | |
| openPaymentDialogue: function(e) { | |
| f.openPayment({ | |
| cancelCallback: this.unload.bind(this), | |
| returnUrl: e.getURI() | |
| }) | |
| } | |
| }); | |
| return new g | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 180: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(4) | |
| , u = n(2) | |
| , c = o(u) | |
| , d = n(12) | |
| , p = o(d) | |
| , f = n(13) | |
| , h = o(f) | |
| , m = n(37) | |
| , g = o(m) | |
| , v = n(135) | |
| , y = o(v) | |
| , _ = n(182) | |
| , b = o(_) | |
| , w = n(136) | |
| , S = o(w) | |
| , k = n(250) | |
| , E = o(k) | |
| , C = n(578) | |
| , T = o(C) | |
| , P = n(579) | |
| , N = o(P) | |
| , x = n(577) | |
| , R = o(x) | |
| , L = n(742) | |
| , I = o(L) | |
| , M = n(743) | |
| , A = o(M) | |
| , D = n(52) | |
| , O = o(D) | |
| , U = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), | |
| this.name = "payment", | |
| this.type = "dialogue", | |
| this._cancelCallback = null , | |
| this.setupModuleRouter() | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "beforeUnload", | |
| value: function() { | |
| i(Object.getPrototypeOf(t.prototype), "beforeUnload", this).call(this); | |
| var e = this._getPaymentCookie(); | |
| e.returnUrl && l.history.navigate(e.returnUrl, { | |
| trigger: !0 | |
| }), | |
| "function" == typeof this._cancelCallback && this._cancelCallback(), | |
| this._cancelCallback = null | |
| } | |
| }, { | |
| key: "_getPaymentCookie", | |
| value: function() { | |
| var e = O["default"].get("paymentRequest"); | |
| return e && JSON.parse(e) ? JSON.parse(e) : {} | |
| } | |
| }, { | |
| key: "_onClosePaymentDialogue", | |
| value: function() { | |
| O["default"].expire("paymentRequest"), | |
| this.unload() | |
| } | |
| }, { | |
| key: "requireAuth", | |
| value: function() { | |
| return !p["default"].getUser() | |
| } | |
| }, { | |
| key: "getModuleRoutes", | |
| value: function() { | |
| return { | |
| "": this.openPayment.bind(this), | |
| "subscription/:subscriptionProductId/:startDate": this.openSubscription.bind(this), | |
| success: this.openPaymentResult.bind(this, "success"), | |
| "success/pick-a-subscription/:providerUid": this.openPaymentResult.bind(this, "success"), | |
| "success/subscription/:subscriptionProductId": this.openSubscriptionPaymentResult.bind(this, "success"), | |
| cancelled: this.openPaymentResult.bind(this, "cancelled"), | |
| pending: this.openPaymentResult.bind(this, "pending"), | |
| recurring: this.openPaymentRecurring.bind(this), | |
| "recurring/activate": this.openPaymentRecurring.bind(this, !0) | |
| } | |
| } | |
| }, { | |
| key: "openSubscription", | |
| value: function(e, t) { | |
| this.load(), | |
| this.render(c["default"].createElement(I["default"], { | |
| subscriptionProductId: e, | |
| startDate: t, | |
| onClose: this._onClosePaymentDialogue.bind(this) | |
| })) | |
| } | |
| }, { | |
| key: "openPayment", | |
| value: function() { | |
| var e = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; | |
| this.load(), | |
| y["default"].fetchPaymentMethods(p["default"].getUser()), | |
| e.returnUrl && y["default"].setReturnUrl(e.returnUrl), | |
| this._cancelCallback = e.cancelCallback, | |
| this.render(c["default"].createElement(A["default"], { | |
| onClose: this._onClosePaymentDialogue.bind(this) | |
| })) | |
| } | |
| }, { | |
| key: "openPaymentResult", | |
| value: function(e, t) { | |
| var n = this; | |
| this.load(), | |
| t && y["default"].redeemSubscriptionReward(p["default"].getUser(), t), | |
| this.render(c["default"].createElement(g["default"], { | |
| store: b["default"], | |
| render: function(i) { | |
| return c["default"].createElement(T["default"], { | |
| user: p["default"].getUser(), | |
| condition: e, | |
| onClose: function(e) { | |
| return e.preventDefault(), | |
| t ? l.history.navigate("issue/" + t, { | |
| trigger: !0, | |
| replace: !0 | |
| }) : void n.unload() | |
| }, | |
| redeemStatus: i.redeemStatus, | |
| providerUid: t | |
| }) | |
| } | |
| })), | |
| h["default"].track("Payment Result:" + e, this._getPaymentCookie()) | |
| } | |
| }, { | |
| key: "openSubscriptionPaymentResult", | |
| value: function(e, t) { | |
| var n = this; | |
| this.load(), | |
| S["default"].pollFetchUserSubscription(t, p["default"].getId()), | |
| this.render(c["default"].createElement(g["default"], { | |
| store: E["default"], | |
| render: function(i) { | |
| return c["default"].createElement(N["default"], { | |
| user: p["default"].getUser(), | |
| condition: e, | |
| onClose: function(e) { | |
| e.preventDefault(); | |
| var s = i.subscriptions.find(function(e) { | |
| return e.uid === t | |
| }); | |
| return s ? l.history.navigate("issue/" + s.provider.uid, { | |
| trigger: !0, | |
| replace: !0 | |
| }) : (O["default"].expire("paymentRequest"), | |
| void n.unload()) | |
| }, | |
| subscription: i.subscriptions.find(function(e) { | |
| return e.uid === t | |
| }), | |
| status: i.status | |
| }) | |
| } | |
| }), function() { | |
| h["default"].track("Provider Subscription/Subscription Upgrade Success", n._getPaymentCookie()) | |
| }) | |
| } | |
| }, { | |
| key: "openPaymentRecurring", | |
| value: function() { | |
| this.load(); | |
| var e = p["default"].getUser(); | |
| y["default"].setRecurringContract(e, !0), | |
| h["default"].track("Enabled Recurring Contract"), | |
| this.render(c["default"].createElement(R["default"], { | |
| user: p["default"].getUser(), | |
| onClose: this.unload.bind(this) | |
| })) | |
| } | |
| }]), | |
| t | |
| }(l.ReactModule); | |
| t["default"] = new U, | |
| e.exports = t["default"] | |
| }, | |
| 181: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = n(5) | |
| , r = n(25) | |
| , a = n(2) | |
| , o = n(15) | |
| , l = (n(44), | |
| n(38)) | |
| , u = (n(3), | |
| n(13)) | |
| , c = n(47) | |
| , d = n(65) | |
| , p = n(12) | |
| , f = n(797) | |
| , h = n(79) | |
| , m = n(175) | |
| , g = n(43) | |
| , v = n(134) | |
| , y = i.Module.extend({ | |
| name: "signup", | |
| type: "content", | |
| initialize: function() { | |
| var e = new i.ModuleRouter({ | |
| module: this, | |
| routes: this._getRoutes() | |
| }); | |
| e.route("login", this._onLoginRoute.bind(this), ""), | |
| e.route("login/warning", this._onLoginWarningRoute.bind(this), ""), | |
| e.route("login/reset(/:resetToken)", this._onResetPasswordRoute.bind(this), ""), | |
| c.set("requireAuthUrl", "/"), | |
| this.setRouter(e) | |
| }, | |
| getScenario: function() { | |
| var e = p.getUser(); | |
| return e ? e.didOnboarding() ? "verify" : "onboard" : "signup" | |
| }, | |
| _renderRootComponent: function() { | |
| var e = p.getUser() | |
| , t = this._scenario || this.getScenario(); | |
| this._rootComponent = o.render(a.createElement(f, { | |
| onPaneChange: this._onPaneChange.bind(this), | |
| scenario: t, | |
| user: e | |
| }), this.getArea()) | |
| }, | |
| loadOrWake: function() { | |
| return l.isBetaCountry() && !c.get("signUpCode") && m.shouldRedirect() ? void m.redirectToLaunchSite() : (i.Module.prototype.loadOrWake.apply(this, arguments), | |
| void this._setScenarioAndRender()) | |
| }, | |
| load: function() { | |
| i.Module.prototype.load.apply(this, arguments), | |
| this._setScenarioAndRender() | |
| }, | |
| reset: function() { | |
| this._scenario = this.getScenario(), | |
| this._renderRootComponent(), | |
| this._rootComponent.setState({ | |
| currentPane: s.find(this._rootComponent.state.panes, { | |
| enabled: !0 | |
| }) | |
| }) | |
| }, | |
| _setScenarioAndRender: function() { | |
| this._scenario || (this._scenario = this.getScenario()), | |
| this._renderRootComponent() | |
| }, | |
| beforeUnload: function() { | |
| o.unmountComponentAtNode(this.getArea()), | |
| this._rootComponent = null | |
| }, | |
| show: function() { | |
| return this._rerouteToKiosk() | |
| }, | |
| markAsDeeplinkSignUp: function() { | |
| this._deeplinkSignUp = !0, | |
| this._rootComponent && (this._rootComponent.state.analyticsDeeplink = !0) | |
| }, | |
| _getRoutes: function() { | |
| return { | |
| "": this._rerouteToKiosk.bind(this), | |
| kiosk: this._onKioskRoute.bind(this), | |
| channels: this._onProgressPaneRoute.bind(this, "channels"), | |
| about: this._onProgressPaneRoute.bind(this, "about"), | |
| account: this._onProgressPaneRoute.bind(this, "accountEmail"), | |
| "first-name": this._onProgressPaneRoute.bind(this, "accountFirstName"), | |
| "last-name": this._onProgressPaneRoute.bind(this, "accountLastName"), | |
| password: this._onProgressPaneRoute.bind(this, "accountPassword"), | |
| "sign-in": this._onProgressPaneRoute.bind(this, "accountSignIn"), | |
| social: this._onSocialRoute.bind(this), | |
| "send-confirm": this._onProgressPaneRoute.bind(this, "verifyEmail"), | |
| "verify/:confirmationToken": this._onVerifyCodeRoute.bind(this), | |
| verified: this._onVerifyRoute.bind(this, null ), | |
| unverified: this._onUnverifiedRoute.bind(this, "verifyRequired") | |
| } | |
| }, | |
| _rerouteToKiosk: function() { | |
| i.history.navigate(this.name + "/kiosk", { | |
| trigger: !0, | |
| replace: !0 | |
| }) | |
| }, | |
| _onPaneChange: function(e, t) { | |
| var n = { | |
| kiosk: "/kiosk", | |
| channels: "/channels", | |
| about: "/about", | |
| accountEmail: "/account", | |
| accountFirstName: "/first-name", | |
| accountLastName: "/last-name", | |
| accountPassword: "/password", | |
| accountSignIn: "/sign-in", | |
| social: "/social", | |
| verifyEmail: "/send-confirm", | |
| verifyRequired: "/unverified", | |
| verifyFinalize: "/verified" | |
| }; | |
| t && void 0 !== n[t.name] && i.history.navigate("/" + this.name + n[t.name], { | |
| replace: !1, | |
| trigger: !0 | |
| }) | |
| }, | |
| _onPaneRoute: function(e) { | |
| this.loadOrWake(), | |
| this._setCurrentPaneByName(e) | |
| }, | |
| _onProgressPaneRoute: function(e) { | |
| if (this.loadOrWake(), | |
| !this._entryPaneVisited) { | |
| this._entryPaneVisited = !0; | |
| var t = this._rootComponent.state.panes | |
| , n = s.find(t, { | |
| enabled: !0 | |
| }); | |
| if (n && n.name !== e) | |
| return void this._setCurrentPaneByName(n.name) | |
| } | |
| return "accountPassword" === e && p.getUser() ? void i.history.navigate("/" + this.name + "/social", { | |
| replace: !1, | |
| trigger: !0 | |
| }) : void this._setCurrentPaneByName(e) | |
| }, | |
| _onSinglePaneRoute: function(e) { | |
| this.loadOrWake(), | |
| this._rootComponent.state.panes.forEach(function(t) { | |
| t.enabled = t.name === e | |
| }), | |
| this._setCurrentPaneByName(e) | |
| }, | |
| _onUnverifiedRoute: function() { | |
| var e = p.getUser(); | |
| return !e || e.get("email_confirmed") ? i.history.navigate("/", { | |
| replace: !0, | |
| trigger: !0 | |
| }) : this._onSinglePaneRoute("verifyRequired") | |
| }, | |
| _onKioskRoute: function() { | |
| var e = p.getUser(); | |
| return e && e.didOnboarding() && !this._deeplinkSignUp ? void i.history.navigate("/", { | |
| replace: !0, | |
| trigger: !0 | |
| }) : (this._onProgressPaneRoute("kiosk"), | |
| void (!e || this._welcomeUserPopupShown || e.didOnboarding() || (this._welcomeUserPopupShown = !0, | |
| h.openSignupProgress(e)))) | |
| }, | |
| _onSocialRoute: function() { | |
| var e = p.getUser(); | |
| if (e && e.didOnboarding() && !this._deeplinkSignUp && !this._entryPaneVisited) { | |
| this.loadOrWake(); | |
| for (var t = this._rootComponent.state.panes, n = 0; n < t.length && "social" !== t[n].name; n++) | |
| t[n].enabled = !1; | |
| return this._rootComponent.setState({ | |
| showTimelineGift: !1, | |
| allowSkipEmail: !1, | |
| panes: t | |
| }), | |
| void this._setCurrentPaneByName("social") | |
| } | |
| e || c.set("requireAuthUrl", "/signup/social"), | |
| this._onProgressPaneRoute("social") | |
| }, | |
| _onVerifyRoute: function() { | |
| this._onSinglePaneRoute("verifyFinalize"); | |
| var e = p.getUser(); | |
| this._rootComponent.setState({ | |
| userVerified: e ? e.get("email_confirmed") : !1 | |
| }) | |
| }, | |
| _onVerifyCodeRoute: function(e) { | |
| var t = this | |
| , n = g(location.href).query(!0); | |
| this._onSinglePaneRoute("verifyFinalize"), | |
| t._rootComponent.setState({ | |
| userVerified: null , | |
| hidden: "true" === n.skip_personalizing | |
| }), | |
| d.confirmEmail(e).then(function(e) { | |
| return u.track("Signup/Verify email", { | |
| platform: "blendle" | |
| }), | |
| p.getToken() ? r.resolve(p.getToken()) : p.loginWithToken(e) | |
| }).then(function(e) { | |
| t._rootComponent.setState({ | |
| userVerified: !0, | |
| analyticsPlatform: "blendle", | |
| analyticsType: "signup", | |
| user: e.get("user") | |
| }) | |
| }).fail(function(e) { | |
| var n = p.getUser(); | |
| t._rootComponent.setState({ | |
| userVerified: n ? n.get("email_confirmed") : !1 | |
| }) | |
| }).done() | |
| }, | |
| _onResetPasswordRoute: function(e) { | |
| if (e) | |
| this._onSinglePaneRoute("accountResetPassword"), | |
| this._rootComponent.setState({ | |
| resetToken: e | |
| }); | |
| else { | |
| this._onProgressPaneRoute("kiosk"); | |
| var t = n(140); | |
| t.getPrimaryNavigation().openLogin("resetpassword") | |
| } | |
| }, | |
| _onLoginRoute: function() { | |
| if (p.getUser()) | |
| return void i.history.navigate("/", { | |
| trigger: !0, | |
| replace: !0 | |
| }); | |
| this._onProgressPaneRoute("kiosk"); | |
| var e = g(location.href).query(!0); | |
| e.email && v.setEmail(e.email); | |
| var t = n(140); | |
| t.getPrimaryNavigation().openLogin("login") | |
| }, | |
| _onLoginWarningRoute: function() { | |
| if (p.getUser()) | |
| return void i.history.navigate("/", { | |
| trigger: !0, | |
| replace: !0 | |
| }); | |
| this._onProgressPaneRoute("kiosk"); | |
| var e = n(140); | |
| e.getPrimaryNavigation().openLoginWarning("login") | |
| }, | |
| _setCurrentPaneByName: function(e) { | |
| var t = this._rootComponent.state | |
| , n = { | |
| kiosk: ["Browse Publications", { | |
| deeplink: t.analyticsDeeplink | |
| }], | |
| channels: ["Browse Channels", { | |
| deeplink: t.analyticsDeeplink | |
| }], | |
| about: ["View about Blendle", { | |
| deeplink: t.analyticsDeeplink | |
| }] | |
| }; | |
| n[e] && u.track.apply(u, n[e]); | |
| var i = s.find(t.panes, { | |
| name: e | |
| }); | |
| this._rootComponent.setState({ | |
| currentPane: i | |
| }) | |
| } | |
| }); | |
| e.exports = new y | |
| }, | |
| 182: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(21)["default"] | |
| , a = n(26)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(8) | |
| , u = n(19) | |
| , c = o(u) | |
| , d = n(135) | |
| , p = o(d) | |
| , f = function() { | |
| function e() { | |
| s(this, e), | |
| this.bindActions(p["default"]), | |
| this.paymentMethods = [], | |
| this.status = l.STATUS_INITIAL, | |
| this.selectedPaymentMethod = "0", | |
| this.selectedBanks = {}, | |
| this.amounts = [5, 10, 20, 50], | |
| this.selectedAmount = 10, | |
| this.transactionFees = { | |
| 5: .3 | |
| }, | |
| this.activeStep = "options", | |
| this.paymentURL = "", | |
| this.paymentURLStatus = l.STATUS_INITIAL, | |
| this.recurring = !1, | |
| this.reward = {}, | |
| this.selectedReward = null , | |
| this.recurringRequest = !1, | |
| this.returnUrl = "", | |
| this.redeemStatus = l.STATUS_INITIAL, | |
| this.recurring_contracts = [] | |
| } | |
| return i(e, [{ | |
| key: "onSetReturnUrl", | |
| value: function(e) { | |
| this.setState({ | |
| returnUrl: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchPaymentMethods", | |
| value: function() { | |
| this.setState({ | |
| status: l.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchPaymentMethodsSuccess", | |
| value: function(e) { | |
| var t = e.paymentMethods | |
| , n = e.recurring | |
| , i = e.reward | |
| , s = e.activeStep | |
| , r = e.recurring_contracts; | |
| this.setState({ | |
| status: l.STATUS_OK, | |
| paymentMethods: t, | |
| recurring: n, | |
| recurringRequest: n, | |
| reward: i, | |
| activeStep: s, | |
| recurring_contracts: r | |
| }) | |
| } | |
| }, { | |
| key: "onFetchPaymentMethodsError", | |
| value: function() { | |
| this.setState({ | |
| status: l.STATUS_ERROR | |
| }) | |
| } | |
| }, { | |
| key: "onSetPaymentMethod", | |
| value: function(e) { | |
| var t = e.selectedPaymentMethod | |
| , n = e.selectedBank; | |
| this.setState({ | |
| selectedPaymentMethod: t, | |
| selectedBanks: r({}, this.selectedBanks, a({}, t, n)) | |
| }) | |
| } | |
| }, { | |
| key: "onSetRecurringRequestContract", | |
| value: function(e) { | |
| var t = e.recurringRequest; | |
| this.setState({ | |
| recurringRequest: t | |
| }) | |
| } | |
| }, { | |
| key: "onSetRecurringContract", | |
| value: function(e) { | |
| var t = e.recurring; | |
| this.setState({ | |
| recurring: t | |
| }) | |
| } | |
| }, { | |
| key: "onSetAmount", | |
| value: function(e) { | |
| this.setState({ | |
| selectedAmount: e | |
| }) | |
| } | |
| }, { | |
| key: "onSetActiveStep", | |
| value: function(e) { | |
| this.setState({ | |
| activeStep: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchPaymentURL", | |
| value: function() { | |
| this.setState({ | |
| paymentURLStatus: l.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchPaymentURLSuccess", | |
| value: function(e) { | |
| var t = e.paymentURL | |
| , n = e.activeStep; | |
| this.setState({ | |
| paymentURL: t, | |
| activeStep: n, | |
| paymentURLStatus: l.STATUS_OK | |
| }) | |
| } | |
| }, { | |
| key: "onFetchSubscriptionPaymentURL", | |
| value: function() { | |
| this.setState({ | |
| paymentURLStatus: l.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchSubscriptionPaymentURLSuccess", | |
| value: function(e) { | |
| var t = e.paymentURL | |
| , n = e.activeStep; | |
| this.setState({ | |
| paymentURL: t, | |
| activeStep: n, | |
| paymentURLStatus: l.STATUS_OK | |
| }) | |
| } | |
| }, { | |
| key: "fetchSubscriptionPaymentURLError", | |
| value: function() { | |
| this.setState({ | |
| paymentURLStatus: l.STATUS_ERROR | |
| }) | |
| } | |
| }, { | |
| key: "onSetRewardSubscription", | |
| value: function(e) { | |
| var t = e.providerUid | |
| , n = { | |
| providerUid: t | |
| }; | |
| this.setState({ | |
| selectedReward: n | |
| }) | |
| } | |
| }, { | |
| key: "onRedeemSubscriptionReward", | |
| value: function() { | |
| this.setState({ | |
| redeemStatus: l.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onRedeemSubscriptionRewardSuccess", | |
| value: function() { | |
| this.setState({ | |
| redeemStatus: l.STATUS_OK | |
| }) | |
| } | |
| }, { | |
| key: "onRedeemSubscriptionRewardError", | |
| value: function() { | |
| this.setState({ | |
| redeemStatus: l.STATUS_ERROR | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = c["default"].createStore(f, "PaymentStore"), | |
| e.exports = t["default"] | |
| }, | |
| 183: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , s = n(104) | |
| , r = t.View.extend({ | |
| tagName: "button", | |
| className: "v-button btn", | |
| events: { | |
| click: "_onClick" | |
| }, | |
| initialize: function(e) { | |
| s(i.isObject(e), "ButtonView.initialize: Requires options object"), | |
| s(i.isFunction(e.onClick), "ButtonView.initialize: Requires onClick method in options object"), | |
| e.className && this.el.setAttribute("class", this.options.className), | |
| e.type && this.el.setAttribute("type", this.options.type), | |
| e.layout && this.el.classList.add("l-" + this.options.layout), | |
| e.text && (this.el.innerHTML = e.text), | |
| this._disabled = e.disabled, | |
| this._disabled && this.disable() | |
| }, | |
| setLayout: function(e) { | |
| this.el.classList.add("l-" + e) | |
| }, | |
| disable: function() { | |
| this._disabled = !0, | |
| this.el.setAttribute("disabled", ""), | |
| this.setState("inactive") | |
| }, | |
| enable: function() { | |
| this._disabled = !1, | |
| this.el.removeAttribute("disabled"), | |
| this.removeState("inactive") | |
| }, | |
| setSuccess: function() { | |
| this.setState("success") | |
| }, | |
| setError: function() { | |
| this.setState("error") | |
| }, | |
| setLoading: function() { | |
| this.setState("loading") | |
| }, | |
| setText: function(e) { | |
| this.el.innerHTML = e | |
| }, | |
| _onClick: function(e) { | |
| this._disabled || this.options.onClick(e) | |
| } | |
| }); | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 184: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(25) | |
| , i = n(4) | |
| , s = n(5) | |
| , r = n(18) | |
| , a = n(299) | |
| , o = n(17) | |
| , l = n(12) | |
| , u = n(41) | |
| , c = n(30) | |
| , d = n(368) | |
| , p = n(68) | |
| , f = n(180) | |
| , h = n(181) | |
| , m = n(388) | |
| , g = n(402) | |
| , v = n(863) | |
| , y = n(3).locale | |
| , _ = n(3).translate | |
| , b = n(1049) | |
| , w = n(13) | |
| , S = i.View.extend({ | |
| className: "v-acquire-issue", | |
| events: { | |
| "click .acquire-button": "_showConfirmationView", | |
| "click .btn-acquire:not(.s-confirm)": "_eShowButtonConfirmation", | |
| "click .btn-acquire.s-confirm": "_eAcquireIssue", | |
| "mouseout .btn-acquire.s-confirm .confirm": "_eResetConfirmation", | |
| "click .v-cover": "_openIssue" | |
| }, | |
| initialize: function(e) { | |
| var t = this; | |
| e && void 0 === e.button && (e.button = !0), | |
| this.options.issue.track(), | |
| this.listenTo(this.options.issue.getEmbedded("b:issue-acquisition"), "change", function() { | |
| t._drawPrice(), | |
| t._drawProgress() | |
| }) | |
| }, | |
| resetState: function() { | |
| var e = this; | |
| this.options.issue.fetch().then(function() { | |
| return e.options.issue.fetchRelation("b:issue-acquisition") | |
| }).then(function() { | |
| e._drawPrice(), | |
| e._drawProgress() | |
| }).done() | |
| }, | |
| afterUnload: function() { | |
| this.options.issue.untrack(), | |
| i.View.prototype.afterUnload.apply(this, arguments) | |
| }, | |
| beforeUnload: function() { | |
| clearTimeout(this._tooltipTimeout) | |
| }, | |
| render: function() { | |
| var e = this; | |
| this.options.button ? this.el.classList.add("l-button") : this.el.classList.remove("l-button"); | |
| var t, n, i = this.options.issue.getEmbedded("b:issue-acquisition"), s = c.getProviderOrDefault(this.options.issue.get("provider").id).get("name"), a = r(this.options.issue.get("date")).calendar(), d = u(Math.max(0, i.get("price"))); | |
| return o.isMobile() ? (n = _("item.text.acquire_and_read_issue", a), | |
| t = y.item.text.read_for_free_mobile) : (n = _("item.text.from_issue", [s, a]), | |
| t = _("item.text.read_for_free", [s, a])), | |
| this.el.innerHTML = b({ | |
| i18n: y, | |
| expanded: this.options.expanded, | |
| acquired: i.get("acquired"), | |
| price: d, | |
| notAcquiredTitle: n, | |
| acquiredTitle: t, | |
| button: this.options.button, | |
| buttonAcquireText: y.app.buttons.acquire_issue_mobile, | |
| buttonConfirmText: _("app.buttons.confirm_acquire_issue", d) | |
| }), | |
| this._prepareProgressCircle(), | |
| this._drawProgress(), | |
| this.options.expanded && (this.el.classList.add("l-expanded"), | |
| this._loadCover()), | |
| o.isMobile() || !l.getId() || l.getUser().get("preferences").hide_acquire_issue_tooltip || (this._tooltipTimeout = setTimeout(function() { | |
| if (!e.options.hidePingu) { | |
| var t = e.addView(new v({ | |
| onClose: function() { | |
| e.removeView(e.getView("acquire-issue-tooltip")), | |
| l.getId() && l.getUser().savePreferences({ | |
| hide_acquire_issue_tooltip: "1" | |
| }) | |
| } | |
| }), "acquire-issue-tooltip"); | |
| e.el.appendChild(t.render().el) | |
| } | |
| }, 1500)), | |
| this | |
| }, | |
| setFloating: function() { | |
| this.el.classList.add("l-floating") | |
| }, | |
| unsetFloating: function() { | |
| this.el.classList.remove("l-floating") | |
| }, | |
| showButton: function() { | |
| this.el.classList.add("l-button") | |
| }, | |
| hideButton: function() { | |
| this.el.classList.remove("l-button") | |
| }, | |
| _drawProgress: function() { | |
| var e = this.options.issue.getEmbedded("b:issue-acquisition"); | |
| e.get("acquired") ? this.el.classList.add("s-acquired") : this.el.classList.remove("s-acquired"), | |
| this._setProgressCircle(e.getPercentagePurchased()) | |
| }, | |
| _drawPrice: function() { | |
| var e = Math.max(0, this.options.issue.getEmbedded("b:issue-acquisition").get("price")) | |
| , t = u(e, { | |
| symbol: "" | |
| }); | |
| s.each(this.el.querySelectorAll(".amount"), function(e) { | |
| e.innerHTML = t | |
| }) | |
| }, | |
| _loadCover: function() { | |
| var e = this.addView(new g({ | |
| issue: this.options.issue, | |
| hasHoverState: this.options.expanded, | |
| ignoreSize: !0 | |
| }), "cover"); | |
| this.el.insertBefore(e.render().el, this.el.querySelector(".acquire-message")) | |
| }, | |
| _openIssue: function() { | |
| i.history.navigate("issue/" + this.options.issue.get("provider").id + "/" + this.options.issue.id, { | |
| trigger: !0 | |
| }) | |
| }, | |
| _prepareProgressCircle: function() { | |
| var e = this.el.querySelector(".progress-circle") | |
| , t = e.getContext("2d") | |
| , n = 55; | |
| e.width = 2 * n, | |
| e.height = 2 * n, | |
| e.style.width = n + "px", | |
| e.style.height = n + "px", | |
| t.scale(2, 2), | |
| t.lineCap = "square", | |
| t.lineWidth = 4 | |
| }, | |
| _setProgressCircle: function(e) { | |
| var t = this; | |
| this._progressTween && this._progressTween.stop(), | |
| e > 1 && (e = 1), | |
| this.el && ("undefined" != typeof this._currentPercentage && 1 === e ? this.el.classList.add("s-acquired-now") : this.el.classList.remove("s-acquired-now"), | |
| this._progressTween = new a, | |
| this._progressTween.tween({ | |
| from: { | |
| x: this._currentPercentage | |
| }, | |
| to: { | |
| x: e | |
| }, | |
| duration: 300, | |
| easing: "easeOutQuad", | |
| step: function(e) { | |
| t._drawProgressCircle(e.x) | |
| }, | |
| finish: function() { | |
| t._currentPercentage = e | |
| } | |
| })) | |
| }, | |
| _drawProgressCircle: function(e) { | |
| if (this.el) { | |
| var t = this.el.querySelector(".progress-circle").getContext("2d") | |
| , n = 27.5 | |
| , i = 4 | |
| , s = 2 * Math.PI | |
| , r = Math.PI / 2; | |
| t.clearRect(0, 0, 2 * n, 2 * n), | |
| t.strokeStyle = "#eaeaea", | |
| t.beginPath(), | |
| t.arc(n, n, n - i / 2, -r, s - r, !1), | |
| t.stroke(), | |
| e > 0 && (t.strokeStyle = "#61b376", | |
| t.beginPath(), | |
| t.arc(n, n, n - i / 2, -r, s * e - r, !1), | |
| t.stroke()) | |
| } | |
| }, | |
| _eShowButtonConfirmation: function(e) { | |
| o.isMobile() || (e.preventDefault(), | |
| setTimeout(function() { | |
| this.el.querySelector(".btn-acquire").classList.add("s-confirm") | |
| } | |
| .bind(this))) | |
| }, | |
| _eAcquireIssue: function(e) { | |
| e.preventDefault(), | |
| this._checkBalance() && this._acquireIssue() | |
| }, | |
| _acquireIssue: function() { | |
| var e = this | |
| , n = this; | |
| d.acquireIssue(this.options.issue).then(function() { | |
| return n.options.item ? n.options.item.fetch() : t.resolve() | |
| }).then(function() { | |
| w.track("Acquire Full Issue", { | |
| type: "kiosk", | |
| percentage_purchased: e.options.issue.getEmbedded("b:issue-acquisition").getRealPercentagePurchased(), | |
| issue_price: e.options.issue.getEmbedded("b:issue-acquisition").get("original_price"), | |
| issue_id: e.options.issue.get("id") | |
| }), | |
| e.options && e.options.onAcquireIssue && e.options.onAcquireIssue(e.options.issue) | |
| }).done() | |
| }, | |
| _checkBalance: function() { | |
| var e = l.getUser(); | |
| return e ? e.get("email_confirmed") ? e.get("balance") <= 0 ? (f.openPayment({ | |
| returnUrl: i.history.fragment, | |
| negativeBalance: !0 | |
| }), | |
| !1) : !0 : (p.openDialogue({ | |
| rootViewClassName: "medium-dialogue", | |
| title: _("signup.verifyRequired.title"), | |
| message: _("signup.verifyRequired.body", [e.get("email")]), | |
| buttonText: _("app.buttons.close_window") | |
| }), | |
| !1) : (h.show(), | |
| !1) | |
| }, | |
| _eResetConfirmation: function(e) { | |
| e.target === e.delegateTarget && this.el.querySelector(".btn-acquire").classList.remove("s-confirm") | |
| }, | |
| _showConfirmationView: function() { | |
| if (o.isMobile()) { | |
| var e = this; | |
| this._checkBalance() && p.openDialogueWithView(new m({ | |
| issue: this.options.issue, | |
| onClick: function(t) { | |
| t.preventDefault(), | |
| e._acquireIssue(), | |
| p.unload() | |
| }, | |
| onClose: function(e) { | |
| e.preventDefault(), | |
| p.unload() | |
| } | |
| }), { | |
| ignoreCloseView: !1, | |
| className: "v-acquire-issue-dialogue white-close" | |
| }) | |
| } | |
| } | |
| }); | |
| return S | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 185: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(357) | |
| , i = n(253) | |
| , s = i.extend({ | |
| defaultClassName: "v-dialogue", | |
| viewDirector: new t({ | |
| viewType: "dialogue" | |
| }) | |
| }); | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 193: function(e, t, n) { | |
| var i = n(83) | |
| , s = n(198) | |
| , r = n(97) | |
| , a = n(61) | |
| , o = n(922); | |
| e.exports = function(e) { | |
| var t = 1 == e | |
| , n = 2 == e | |
| , l = 3 == e | |
| , u = 4 == e | |
| , c = 6 == e | |
| , d = 5 == e || c; | |
| return function(p, f, h) { | |
| for (var m, g, v = r(p), y = s(v), _ = i(f, h, 3), b = a(y.length), w = 0, S = t ? o(p, b) : n ? o(p, 0) : void 0; b > w; w++) | |
| if ((d || w in y) && (m = y[w], | |
| g = _(m, w, v), | |
| e)) | |
| if (t) | |
| S[w] = g; | |
| else if (g) | |
| switch (e) { | |
| case 3: | |
| return !0; | |
| case 5: | |
| return m; | |
| case 6: | |
| return w; | |
| case 2: | |
| S.push(m) | |
| } | |
| else if (u) | |
| return !1; | |
| return c ? -1 : l || u ? u : S | |
| } | |
| } | |
| }, | |
| 194: [5931, 95, 40], | |
| 195: function(e, t, n) { | |
| "use strict"; | |
| var i = n(42) | |
| , s = n(14) | |
| , r = n(73) | |
| , a = n(199) | |
| , o = n(152) | |
| , l = n(201) | |
| , u = n(36) | |
| , c = n(51) | |
| , d = n(268) | |
| , p = n(154); | |
| e.exports = function(e, t, n, f, h, m) { | |
| var g = i[e] | |
| , v = g | |
| , y = h ? "set" : "add" | |
| , _ = v && v.prototype | |
| , b = {} | |
| , w = function(e) { | |
| var t = _[e]; | |
| r(_, e, "delete" == e ? function(e) { | |
| return m && !u(e) ? !1 : t.call(this, 0 === e ? 0 : e) | |
| } | |
| : "has" == e ? function(e) { | |
| return m && !u(e) ? !1 : t.call(this, 0 === e ? 0 : e) | |
| } | |
| : "get" == e ? function(e) { | |
| return m && !u(e) ? void 0 : t.call(this, 0 === e ? 0 : e) | |
| } | |
| : "add" == e ? function(e) { | |
| return t.call(this, 0 === e ? 0 : e), | |
| this | |
| } | |
| : function(e, n) { | |
| return t.call(this, 0 === e ? 0 : e, n), | |
| this | |
| } | |
| ) | |
| } | |
| ; | |
| if ("function" == typeof v && (m || _.forEach && !c(function() { | |
| (new v).entries().next() | |
| }))) { | |
| var S, k = new v, E = k[y](m ? {} : -0, 1) != k, C = c(function() { | |
| k.has(1) | |
| }), T = d(function(e) { | |
| new v(e) | |
| }); | |
| T || (v = t(function(t, n) { | |
| l(t, v, e); | |
| var i = new g; | |
| return void 0 != n && o(n, h, i[y], i), | |
| i | |
| }), | |
| v.prototype = _, | |
| _.constructor = v), | |
| m || k.forEach(function(e, t) { | |
| S = 1 / t === -(1 / 0) | |
| }), | |
| (C || S) && (w("delete"), | |
| w("has"), | |
| h && w("get")), | |
| (S || E) && w(y), | |
| m && _.clear && delete _.clear | |
| } else | |
| v = f.getConstructor(t, e, h, y), | |
| a(v.prototype, n); | |
| return p(v, e), | |
| b[e] = v, | |
| s(s.G + s.W + s.F * (v != g), b), | |
| m || f.setStrong(v, e, h), | |
| v | |
| } | |
| }, | |
| 196: function(e, t, n) { | |
| "use strict"; | |
| var i = n(85) | |
| , s = n(73) | |
| , r = n(51) | |
| , a = n(84) | |
| , o = n(40); | |
| e.exports = function(e, t, n) { | |
| var l = o(e) | |
| , u = ""[e]; | |
| r(function() { | |
| var t = {}; | |
| return t[l] = function() { | |
| return 7 | |
| } | |
| , | |
| 7 != ""[e](t) | |
| }) && (s(String.prototype, e, n(a, l, u)), | |
| i(RegExp.prototype, l, 2 == t ? function(e, t) { | |
| return u.call(e, this, t) | |
| } | |
| : function(e) { | |
| return u.call(e, this) | |
| } | |
| )) | |
| } | |
| }, | |
| 197: 896, | |
| 198: [5942, 95], | |
| 199: [5954, 73], | |
| 200: function(e, t, n) { | |
| "use strict"; | |
| var i = n(42) | |
| , s = n(29) | |
| , r = n(71) | |
| , a = n(40)("species"); | |
| e.exports = function(e) { | |
| var t = i[e]; | |
| r && t && !t[a] && s.setDesc(t, a, { | |
| configurable: !0, | |
| get: function() { | |
| return this | |
| } | |
| }) | |
| } | |
| }, | |
| 201: 260, | |
| 202: function(e, t, n) { | |
| var i = n(14) | |
| , s = n(84) | |
| , r = n(51) | |
| , a = " \n\x0B\f\r \u2028\u2029\ufeff" | |
| , o = "[" + a + "]" | |
| , l = " " | |
| , u = RegExp("^" + o + o + "*") | |
| , c = RegExp(o + o + "*$") | |
| , d = function(e, t) { | |
| var n = {}; | |
| n[e] = t(p), | |
| i(i.P + i.F * r(function() { | |
| return !!a[e]() || l[e]() != l | |
| }), "String", n) | |
| } | |
| , p = d.trim = function(e, t) { | |
| return e = String(s(e)), | |
| 1 & t && (e = e.replace(u, "")), | |
| 2 & t && (e = e.replace(c, "")), | |
| e | |
| } | |
| ; | |
| e.exports = d | |
| }, | |
| 218: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(24)["default"] | |
| , a = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = n(19) | |
| , l = a(o) | |
| , u = n(5) | |
| , c = a(u) | |
| , d = n(16) | |
| , p = a(d) | |
| , f = n(242) | |
| , h = a(f) | |
| , m = n(8) | |
| , g = n(372) | |
| , v = a(g) | |
| , y = n(221) | |
| , _ = a(y) | |
| , b = n(536) | |
| , w = a(b) | |
| , S = n(118) | |
| , k = a(S) | |
| , E = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchNewsStandSuccess", "fetchNewsStandError", "fetchCategorySuccess", "fetchCategoryError", "fetchAcquiredIssuesSuccess", "fetchAcquiredIssuesError", "fetchNextAcquiredIssuesSuccess", "fetchNextAcquiredIssuesError") | |
| } | |
| return i(e, [{ | |
| key: "setInactive", | |
| value: function() { | |
| return { | |
| active: !1 | |
| } | |
| } | |
| }, { | |
| key: "setActive", | |
| value: function() { | |
| return { | |
| active: !0 | |
| } | |
| } | |
| }, { | |
| key: "fetchAcquiredIssues", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n({ | |
| categoryId: "my-issues" | |
| }); | |
| var i = new _["default"]; | |
| i.fetch({ | |
| url: p["default"].getLink("user_issues", { | |
| user_id: e | |
| }) | |
| }).then(function() { | |
| return t.fetchAcquiredIssuesSuccess({ | |
| issues: i | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type === m.XHR_STATUS) | |
| return t.fetchAcquiredIssuesError({ | |
| message: e.message | |
| }); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchNextAcquiredIssues", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| e instanceof k["default"] && e.hasNext() && !e.isFetching() && (n({ | |
| categoryId: "my-issues" | |
| }), | |
| e.fetchNext().then(function() { | |
| t.fetchNextAcquiredIssuesSuccess({ | |
| issues: e | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type !== m.STATUS_PENDING) { | |
| if (e.type === m.XHR_STATUS) | |
| return void t.fetchNextAcquiredIssuesError({ | |
| err: e | |
| }); | |
| throw e | |
| } | |
| })) | |
| } | |
| } | |
| }, { | |
| key: "fetchKiosk", | |
| value: function(e, t, n) { | |
| var i = this; | |
| return function(s) { | |
| s(); | |
| var a = void 0; | |
| a = e ? r.resolve(e) : v["default"].getNewsStand(n).then(function(e) { | |
| return i.fetchNewsStandSuccess({ | |
| newsStand: e | |
| }), | |
| e | |
| })["catch"](function(e) { | |
| if (e.type === m.XHR_STATUS) | |
| return i.fetchNewsStandError({ | |
| message: e.message | |
| }); | |
| throw e | |
| }), | |
| a.then(function(e) { | |
| i.fetchCategory(e, t, n) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchNewsStand", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| return n(), | |
| v["default"].getNewsStand(e).then(function(e) { | |
| return t.fetchNewsStandSuccess({ | |
| newsStand: e | |
| }), | |
| e | |
| })["catch"](function(e) { | |
| if (e.type === m.XHR_STATUS) | |
| return t.fetchNewsStandError({ | |
| message: e.message | |
| }); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchCategory", | |
| value: function(e, t, n) { | |
| var i = this; | |
| return function(s) { | |
| var r = new _["default"] | |
| , a = new w["default"]; | |
| r.setFavourites(a); | |
| var o = c["default"].find(e.categories, { | |
| id: t | |
| }) || e[t]; | |
| o ? s({ | |
| categoryId: t | |
| }) : i.fetchCategoryError({ | |
| message: "ID not found" | |
| }); | |
| var l = o.href.replace("{user_id}", n) | |
| , u = p["default"].getLink("user_favourites", { | |
| user_id: n | |
| }); | |
| h["default"].set("kiosk_favs", a.fetch({ | |
| url: u | |
| })).then(function() { | |
| return h["default"].set("kiosk_issues", r.fetch({ | |
| url: l | |
| })) | |
| }).then(function() { | |
| i.fetchCategorySuccess({ | |
| issues: r | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type !== m.XHR_ABORT) { | |
| if (e.type === m.XHR_STATUS) | |
| return i.fetchCategoryError({ | |
| message: e.message | |
| }); | |
| throw e | |
| } | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "rememberScrollPosition", | |
| value: function(e) { | |
| return { | |
| position: e | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createActions(E), | |
| e.exports = t["default"] | |
| }, | |
| 219: function(e, t, n) { | |
| "use strict"; | |
| var i = n(146)["default"] | |
| , s = n(24)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(120) | |
| , u = r(l) | |
| , c = n(135) | |
| , d = r(c) | |
| , p = n(13) | |
| , f = r(p) | |
| , h = n(3) | |
| , m = r(h); | |
| t["default"] = o["default"].createActions({ | |
| fetchProduct: function(e) { | |
| var t = this; | |
| return function(n) { | |
| return n(), | |
| u["default"].fetchProduct(e).then(t.fetchProductSuccess)["catch"](t.fetchProductError) | |
| } | |
| }, | |
| fetchProductSuccess: function(e) { | |
| return e | |
| }, | |
| fetchProductError: function(e) { | |
| return e | |
| }, | |
| createOrder: function(e, t, n) { | |
| var i = this; | |
| return function(s) { | |
| return s(), | |
| u["default"].createOrder(e, t, n).then(i.createOrderSuccess) | |
| } | |
| }, | |
| retry: function(e, t, n, i, s) { | |
| return f["default"].track("Provider Subscription/Subscription Upgrade Retry"), | |
| this.createOrder(i, s, n.id).then(function(i) { | |
| d["default"].fetchSubscriptionPaymentURL(e, { | |
| product: t, | |
| jwt: i | |
| }, n) | |
| })["catch"](function(e) { | |
| throw f["default"].track("Provider Subscription/Subscription Upgrade Retry Error", { | |
| error: e.message | |
| }), | |
| e | |
| }), | |
| null | |
| }, | |
| startSubscriptionOrder: function(e, t, n) { | |
| var r = this; | |
| return s.all([d["default"].fetchPaymentMethods(e), this.fetchProduct(t)]).then(function(s) { | |
| var a = i(s, 2) | |
| , o = a[0] | |
| , l = a[1]; | |
| return r.createOrder(t, n, e.id).then(function(e) { | |
| return [o, l, e] | |
| }) | |
| }).then(function(e) { | |
| var t = i(e, 3) | |
| , s = t[0] | |
| , r = t[1]; | |
| t[2]; | |
| s.recurring_contracts.length > 0 && d["default"].setActiveStep("confirmation"); | |
| var a = r._links["b:providers"][0].href.split("/").pop() | |
| , o = r._embedded["b:tier"]._embedded["b:tier-prices"].find(function(e) { | |
| return e.currency === m["default"].currentCurrency | |
| }).amount; | |
| f["default"].track("Provider Subscription/Subscription Upgrade Started", { | |
| provider_uid: r.uid, | |
| subscription: a, | |
| offer: o, | |
| recurring: s.recurring_contracts.length > 0, | |
| start_date: n | |
| }) | |
| })["catch"](function(e) { | |
| throw f["default"].track("Provider Subscription/Subscription Upgrade Error", { | |
| error: e.message | |
| }), | |
| e | |
| }), | |
| null | |
| }, | |
| createOrderSuccess: function(e) { | |
| return e | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 220: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(375) | |
| , u = r(l) | |
| , c = n(13) | |
| , d = r(c) | |
| , p = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchTwitterFriendsSuccess") | |
| } | |
| return i(e, [{ | |
| key: "connectTwitter", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(i) { | |
| i(), | |
| u["default"].authorize(e).then(function() { | |
| n.twitterConnectSuccess(), | |
| t && n.fetchTwitterFriends(e) | |
| })["catch"](function(e) { | |
| return n.twitterError(e) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "toggleTwitter", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n(), | |
| "string" != typeof e.get("twitter_id") ? t.connectTwitter(e) : u["default"].unauthorize(e).then(function() { | |
| return t.twitterDisconnectSuccess() | |
| })["catch"](function(e) { | |
| return t.twitterError(e) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "twitterConnectSuccess", | |
| value: function() { | |
| return d["default"].track("Social Connect", { | |
| platform: "twitter" | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "twitterDisconnectSuccess", | |
| value: function() { | |
| return d["default"].track("Social Disconnect", { | |
| platform: "twitter" | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "twitterError", | |
| value: function(e) { | |
| return d["default"].track("Social Connect Error", { | |
| platform: "twitter", | |
| error: e.message | |
| }), | |
| null | |
| } | |
| }, { | |
| key: "fetchTwitterFriends", | |
| value: function(e) { | |
| var t = this; | |
| u["default"].getFriends(e).then(function(e) { | |
| return t.fetchTwitterFriendsSuccess(e) | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(p), | |
| e.exports = t["default"] | |
| }, | |
| 221: function(e, t, n) { | |
| var i, s; | |
| i = [n(4), n(90)], | |
| s = function(e, t) { | |
| "use strict"; | |
| var i = n(229) | |
| , s = e.Collection.extend({ | |
| model: t, | |
| parse: function(e) { | |
| e._links.self && (this.url = e._links.self.href), | |
| e._links.next ? this.next = e._links.next.href : this.next = void 0, | |
| e._links.prev ? this.prev = e._links.prev.href : this.prev = void 0; | |
| var t = !1; | |
| if (e._links.self.href.toLowerCase().indexOf("most_recent.json") > -1 && (t = !0), | |
| -1 === e._links.self.href.toLowerCase().indexOf("popular") && -1 === e._links.self.href.toLowerCase().indexOf("user") && e._embedded.issues && (e._embedded.issues = e._embedded.issues.reverse()), | |
| this._favourites) { | |
| var n = [] | |
| , s = [] | |
| , r = void 0; | |
| for (r = 0; r < e._embedded.issues.length; r++) { | |
| var a = this._favourites.findWhere({ | |
| provider_id: e._embedded.issues[r].provider.id | |
| }); | |
| a ? (e._embedded.issues[r].favourite = !0, | |
| t ? s.push(e._embedded.issues[r]) : n.push(e._embedded.issues[r])) : (e._embedded.issues[r].favourite = !1, | |
| s.push(e._embedded.issues[r])) | |
| } | |
| if (!t) | |
| for (r = n.length; r > 0; r--) | |
| s.unshift(n[r - 1]); | |
| e._embedded.issues = s, | |
| n = null , | |
| s = null | |
| } | |
| var o = e._embedded.issues.filter(function(e) { | |
| return !i(e.provider).disableIssue | |
| }); | |
| return o | |
| }, | |
| setFavourites: function(e) { | |
| this._favourites = e | |
| } | |
| }); | |
| return s | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 222: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(15) | |
| , l = s(o) | |
| , u = n(11) | |
| , c = s(u) | |
| , d = n(231) | |
| , p = s(d) | |
| , f = a["default"].createClass({ | |
| displayName: "Select2", | |
| propTypes: { | |
| children: a["default"].PropTypes.any, | |
| name: a["default"].PropTypes.string, | |
| selected: a["default"].PropTypes.string, | |
| onChange: a["default"].PropTypes.func.isRequired, | |
| className: a["default"].PropTypes.string | |
| }, | |
| _dropdownStyle: {}, | |
| getInitialState: function() { | |
| return { | |
| open: !1 | |
| } | |
| }, | |
| componentDidMount: function() { | |
| window.addEventListener("click", this._onCloseDropdown) | |
| }, | |
| componentWillUpdate: function() { | |
| this._dropdownStyle = this._calculatePosition() | |
| }, | |
| componentWillUnmount: function() { | |
| window.removeEventListener("click", this._onCloseDropdown) | |
| }, | |
| _onToggle: function() { | |
| this.setState({ | |
| open: !this.state.open | |
| }) | |
| }, | |
| _onCloseDropdown: function(e) { | |
| e && (l["default"].findDOMNode(this).contains(e.target) || e.target === l["default"].findDOMNode(this)) || this.setState({ | |
| open: !1 | |
| }) | |
| }, | |
| _onChange: function(e) { | |
| var t = (0, | |
| p["default"])(e.target, ".v-dropdown-item") | |
| , n = t.getAttribute("data-value"); | |
| this.props.onChange(n), | |
| this._onCloseDropdown() | |
| }, | |
| _calculatePosition: function() { | |
| if (!this.props.children) | |
| return {}; | |
| var e = l["default"].findDOMNode(this) | |
| , t = e.getBoundingClientRect() | |
| , n = Math.min(300, 46 * this.props.children.length); | |
| if (t.bottom + n < window.innerHeight) | |
| return {}; | |
| if (t.top - n > 0) | |
| return { | |
| top: -n | |
| }; | |
| var i = t.top | |
| , s = window.innerHeight - t.bottom | |
| , r = 63; | |
| return i > s ? { | |
| top: -Math.max(i, r), | |
| height: Math.max(i, r) | |
| } : { | |
| height: Math.max(s, r) | |
| } | |
| }, | |
| _renderSelected: function() { | |
| var e = this; | |
| return this.props.children ? this.props.children.filter(function(e) { | |
| return e.props.selected | |
| }).map(function(t) { | |
| var n = (0, | |
| c["default"])("v-dropdown-item dropdown-item selected-item", { | |
| "s-open": e.state.open | |
| }); | |
| return a["default"].createElement("div", { | |
| className: n, | |
| "data-value": t.props.value, | |
| key: t.props.value, | |
| onClick: e._onToggle | |
| }, t.props.children) | |
| }) : void 0 | |
| }, | |
| _renderOptions: function() { | |
| var e = this; | |
| return this.props.children ? this.props.children.map(function(t) { | |
| return a["default"].createElement("div", { | |
| className: "v-dropdown-item dropdown-item", | |
| "data-value": t.props.value, | |
| key: t.props.value, | |
| onClick: e._onChange | |
| }, t.props.children) | |
| }) : void 0 | |
| }, | |
| render: function() { | |
| var e = (0, | |
| c["default"])("v-input v-dropdown frm-field-wrapper", i({}, this.props.className, this.props.className)) | |
| , t = (0, | |
| c["default"])("v-dropdown-items", { | |
| "s-open": this.state.open, | |
| above: this._dropdownStyle.top < 0 | |
| }); | |
| return a["default"].createElement("div", { | |
| className: e | |
| }, this._renderSelected(), a["default"].createElement("div", { | |
| className: t, | |
| style: this._dropdownStyle | |
| }, this._renderOptions())) | |
| } | |
| }); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 223: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(57) | |
| , o = i(a) | |
| , l = n(171) | |
| , u = i(l); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "UsernameTooltip", | |
| propTypes: { | |
| username: r["default"].PropTypes.string.isRequired, | |
| className: r["default"].PropTypes.string, | |
| children: r["default"].PropTypes.object | |
| }, | |
| mixins: [(0, | |
| o["default"])()], | |
| _openTimer: null , | |
| _showTooltip: function() { | |
| clearTimeout(this._openTimer), | |
| this._openTimer = setTimeout(this.openDropdown, 200) | |
| }, | |
| _hideTooltip: function() { | |
| clearTimeout(this._openTimer), | |
| this.closeDropdown() | |
| }, | |
| _renderTooltip: function() { | |
| return this.state.open ? r["default"].createElement(u["default"], { | |
| name: "username", | |
| className: "tooltip", | |
| onScroll: this._hideTooltip, | |
| position: "top" | |
| }, this.props.username) : !1 | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: this.props.className, | |
| onClick: this._showTooltip, | |
| onMouseEnter: this._showTooltip, | |
| onMouseLeave: this._hideTooltip | |
| }, this.props.children, this._renderTooltip()) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 224: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = n(334) | |
| , p = o(d) | |
| , f = n(13) | |
| , h = o(f) | |
| , m = n(80) | |
| , g = o(m) | |
| , v = n(79) | |
| , y = o(v) | |
| , _ = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| error: null | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onError", | |
| value: function(e) { | |
| h["default"].track(this.props.analyticsName, { | |
| event: "signup_error_facebook", | |
| message: e.message | |
| }), | |
| 422 === e.status ? this._onConnectFacebook() : this._setError("app.error.error_default") | |
| } | |
| }, { | |
| key: "_onConnectFacebook", | |
| value: function() { | |
| var e = this; | |
| g["default"].getMe().then(function(t) { | |
| y["default"].openFacebookConnectExistingEmail(t.email), | |
| e.props.onConnectDialogueOpen && e.props.onConnectDialogueOpen() | |
| }) | |
| } | |
| }, { | |
| key: "_onSignUp", | |
| value: function() { | |
| var e; | |
| h["default"].track("SignUp Facebook"), | |
| h["default"].track("SignUp Successful", { | |
| platform: "facebook" | |
| }), | |
| (e = this.props).onSignUp.apply(e, arguments) | |
| } | |
| }, { | |
| key: "_onLogin", | |
| value: function() { | |
| var e; | |
| h["default"].track("Login Facebook"), | |
| h["default"].track("Login Successful", { | |
| platform: "facebook" | |
| }), | |
| (e = this.props).onLogin.apply(e, arguments) | |
| } | |
| }, { | |
| key: "_setError", | |
| value: function(e) { | |
| var t = void 0; | |
| e && (t = (0, | |
| c.translate)(e)), | |
| this.setState({ | |
| error: t | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(p["default"], { | |
| error: this.state.error, | |
| buttonText: this.props.buttonText, | |
| onSignUp: this._onSignUp.bind(this), | |
| onLogin: this._onLogin.bind(this), | |
| onError: this._onError.bind(this), | |
| signUpContext: this.props.signUpContext | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| buttonText: u["default"].PropTypes.string, | |
| analyticsName: u["default"].PropTypes.string, | |
| onLogin: u["default"].PropTypes.func, | |
| onSignUp: u["default"].PropTypes.func, | |
| onConnectDialogueOpen: u["default"].PropTypes.func, | |
| signUpContext: u["default"].PropTypes.object | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| analyticsName: "Login Form", | |
| signUpContext: {} | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = _, | |
| e.exports = t["default"] | |
| }, | |
| 225: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = i(a) | |
| , l = n(371) | |
| , u = i(l); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "EmailSuggestion", | |
| propTypes: { | |
| email: r["default"].PropTypes.string.isRequired, | |
| onClick: r["default"].PropTypes.func.isRequired, | |
| delay: r["default"].PropTypes.number | |
| }, | |
| getInitialState: function() { | |
| return { | |
| suggestion: this.getSuggestion(this.props.email) | |
| } | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| var t = this; | |
| return this.props.delay ? (clearTimeout(this._suggestionTimeout), | |
| void (this._suggestionTimeout = setTimeout(function() { | |
| t.setState({ | |
| suggestion: t.getSuggestion(e.email) | |
| }) | |
| }, this.props.delay))) : void this.setState({ | |
| suggestion: this.getSuggestion(e.email) | |
| }) | |
| }, | |
| getSuggestion: function(e) { | |
| return u["default"].checkForCommonMistakes(e) | |
| }, | |
| onClick: function() { | |
| this.props.onClick(this.state.suggestion) | |
| }, | |
| render: function() { | |
| return this.state.suggestion ? r["default"].createElement("div", { | |
| className: "v-email-suggestion" | |
| }, o["default"].locale.app.did_you_mean, " ", r["default"].createElement("strong", { | |
| onClick: this.onClick | |
| }, this.state.suggestion), "?") : null | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 226: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = (n(4), | |
| n(2)) | |
| , u = o(l) | |
| , c = n(37) | |
| , d = o(c) | |
| , p = (n(3), | |
| n(590)) | |
| , f = o(p) | |
| , h = n(35) | |
| , m = (o(h), | |
| n(13)) | |
| , g = (o(m), | |
| n(134)) | |
| , v = o(g) | |
| , y = n(82) | |
| , _ = o(y) | |
| , b = n(395) | |
| , w = o(b) | |
| , S = n(8) | |
| , k = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), | |
| w["default"].listen(this._onLoginStore.bind(this)) | |
| } | |
| return s(t, e), | |
| r(t, null , [{ | |
| key: "propTypes", | |
| value: { | |
| analyticsName: u["default"].PropTypes.string, | |
| onToReset: u["default"].PropTypes.func, | |
| onLogin: u["default"].PropTypes.func, | |
| buttonHTML: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| analyticsName: "Login Form" | |
| }, | |
| enumerable: !0 | |
| }]), | |
| r(t, [{ | |
| key: "_onLoginStore", | |
| value: function(e) { | |
| var t = this; | |
| e.login.status === S.STATUS_OK && setTimeout(function() { | |
| t.props.onLogin && t.props.onLogin(_["default"].getState().user) | |
| }) | |
| } | |
| }, { | |
| key: "_onLogin", | |
| value: function(e, t) { | |
| v["default"].loginWithCredentials({ | |
| login: e, | |
| password: t | |
| }) | |
| } | |
| }, { | |
| key: "_onSendLoginEmail", | |
| value: function(e) { | |
| v["default"].sendLoginEmail(e) | |
| } | |
| }, { | |
| key: "_renderLoginForm", | |
| value: function(e) { | |
| return u["default"].createElement(f["default"], { | |
| initialUsername: e.login.email, | |
| loginState: e.login, | |
| emailLoginState: e.loginEmail, | |
| buttonHTML: this.props.buttonHTML, | |
| onToReset: this.props.onToReset, | |
| onLogin: this._onLogin.bind(this), | |
| onSendLoginEmail: this._onSendLoginEmail.bind(this) | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(d["default"], { | |
| store: w["default"], | |
| render: this._renderLoginForm.bind(this) | |
| }) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = k, | |
| e.exports = t["default"] | |
| }, | |
| 227: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(47) | |
| , r = { | |
| getInitialState: function() { | |
| return { | |
| inElement: !1, | |
| inPopover: !1 | |
| } | |
| }, | |
| enterElement: function(e) { | |
| e && "Android" === window.BrowserDetect.device || e && "Windows Phone" === window.BrowserDetect.device || s.get("touch") || this.setPositionInElement(e) | |
| }, | |
| leaveElement: function(e) { | |
| e && "Android" === window.BrowserDetect.device || e && "Windows Phone" === window.BrowserDetect.device || s.get("touch") || this.determinePopover({ | |
| inElement: !1 | |
| }) | |
| }, | |
| enterPopover: function(e) { | |
| e && "Android" === window.BrowserDetect.device || e && "Windows Phone" === window.BrowserDetect.device || s.get("touch") || this.determinePopover({ | |
| inPopover: !0, | |
| inElement: !1 | |
| }) | |
| }, | |
| leavePopover: function(e) { | |
| var t = this; | |
| e && "Android" === window.BrowserDetect.device || e && "Windows Phone" === window.BrowserDetect.device || setTimeout(function() { | |
| return t.determinePopover({ | |
| inPopover: !1 | |
| }) | |
| }) | |
| }, | |
| closePopover: function() { | |
| this.determinePopover({ | |
| inElement: !1, | |
| inPopover: !1 | |
| }) | |
| }, | |
| onElementClick: function(e) { | |
| var t = this; | |
| return this.props.disabled ? void e.preventDefault() : this.state.popover ? void setTimeout(function() { | |
| return t.determinePopover({ | |
| inElement: !1 | |
| }) | |
| }) : (e.preventDefault(), | |
| void this.setPositionInElement(e)) | |
| }, | |
| setPositionInElement: function(e) { | |
| this.determinePopover({ | |
| inElement: !0, | |
| x: e.clientX, | |
| y: e.clientY | |
| }) | |
| }, | |
| determinePopover: function(e) { | |
| if (!this.props.disabled) { | |
| var t = i.defaults(e, this.state); | |
| (t.inElement || t.inPopover) && (t.popover = !0, | |
| this.onPopoverOpen && this.onPopoverOpen()), | |
| t.inPopover || t.inElement || (t.popover = !1, | |
| this.onPopoverClose && this.onPopoverClose()), | |
| this.setState(t) | |
| } | |
| } | |
| }; | |
| e.exports = r | |
| }, | |
| 228: function(e, t, n) { | |
| "use strict"; | |
| var i = n(11) | |
| , s = n(12) | |
| , r = n(13) | |
| , a = n(17) | |
| , o = n(2) | |
| , l = n(15) | |
| , u = n(57) | |
| , c = n(3) | |
| , d = n(112) | |
| , p = n(251) | |
| , f = n(181) | |
| , h = n(224) | |
| , m = n(226) | |
| , g = n(28) | |
| , v = o.createClass({ | |
| displayName: "Login", | |
| propTypes: { | |
| active: o.PropTypes.bool, | |
| onResetPasswordLink: o.PropTypes.func, | |
| onFacebookConnectDialogueOpen: o.PropTypes.func | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| active: !0 | |
| } | |
| }, | |
| _onLogin: function() { | |
| s.getUser().didOnboarding() ? s.navigateToReturnURL() : f.reset() | |
| }, | |
| _onFacebookError: function(e) { | |
| window.Raven.captureException(e) | |
| }, | |
| render: function() { | |
| return this.props.active ? o.createElement("div", { | |
| className: "v-login" | |
| }, o.createElement("div", { | |
| className: "form-container" | |
| }, o.createElement("div", { | |
| className: "v-dropdown-login" | |
| }, o.createElement("div", { | |
| className: "v-login-form" | |
| }, o.createElement("h2", null , c.translate("login.dropdown.fb.title")), o.createElement(h, { | |
| analyticsName: "Login Dropdown", | |
| onLogin: this._onLogin, | |
| onSignUp: this._onLogin, | |
| onConnectDialogueOpen: this.props.onFacebookConnectDialogueOpen | |
| }), o.createElement("h2", null , c.translate("login.dropdown.blendle.title")), o.createElement(m, { | |
| analyticsName: "Login Dropdown", | |
| onLogin: this._onLogin, | |
| onToReset: this.props.onResetPasswordLink | |
| }))))) : null | |
| } | |
| }) | |
| , y = o.createClass({ | |
| displayName: "ResetPassword", | |
| propTypes: { | |
| active: o.PropTypes.bool, | |
| onLoginLink: o.PropTypes.func | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| active: !0 | |
| } | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| var t = this; | |
| e.active && !this.props.active && (this._autofocusTimeout = setTimeout(function() { | |
| return t._resetTokenForm.focus() | |
| }, 200)) | |
| }, | |
| componentWillMount: function() { | |
| this._resetTokenForm = new p, | |
| this._resetTokenForm.render() | |
| }, | |
| componentWillUnmount: function() { | |
| clearTimeout(this._autofocusTimeout) | |
| }, | |
| render: function() { | |
| var e; | |
| return this._resetTokenForm.setDisabled(!this.props.active), | |
| this.props.showBack && (e = o.createElement(g, { | |
| className: "lnk-toggle-pane lnk-login", | |
| onClick: this.props.onLoginLink | |
| }, c.locale.login.dropdown.to_login)), | |
| o.createElement("div", { | |
| className: "v-reset-password" | |
| }, o.createElement(d, { | |
| view: this._resetTokenForm | |
| }), e) | |
| } | |
| }) | |
| , _ = o.createClass({ | |
| displayName: "PanelSection", | |
| propTypes: { | |
| onBack: o.PropTypes.func | |
| }, | |
| render: function() { | |
| var e, t = i({ | |
| "s-active": this.props.active | |
| }, "v-panel-section"); | |
| return this.props.showTitle && (e = o.createElement("div", { | |
| className: "v-panel-title" | |
| }, o.createElement(g, { | |
| className: "btn-back", | |
| onClick: this.props.onBack | |
| }), this.props.title)), | |
| o.createElement("div", { | |
| className: t | |
| }, e, o.createElement("div", { | |
| className: "v-panel-content" | |
| }, this.props.children)) | |
| } | |
| }) | |
| , b = o.createClass({ | |
| displayName: "LoginDropdown", | |
| mixins: [u(".a-sidebar")], | |
| propTypes: { | |
| onOpen: o.PropTypes.func, | |
| onClose: o.PropTypes.func, | |
| text: o.PropTypes.string | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| mobile: a.isMobile() | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| active: this.props.active || "login" | |
| } | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| this.props.active !== e.active && this.setState({ | |
| active: e.active | |
| }) | |
| }, | |
| componentDidMount: function() { | |
| s.once("login", function() { | |
| document.body.classList.remove("l-mobile-menu-open-full") | |
| }) | |
| }, | |
| componentDidUpdate: function(e, t) { | |
| this.props.mobile && (l.render(this._getPanel(), document.querySelector(".a-sidebar")), | |
| this.state.open ? document.body.classList.add("l-mobile-menu-open-full") : document.body.classList.remove("l-mobile-menu-open-full")) | |
| }, | |
| _getPanel: function() { | |
| var e = "login" === this.state.active | |
| , t = "resetpassword" === this.state.active; | |
| return o.createElement("div", { | |
| onClick: this._backToLogin, | |
| className: "v-panel v-login-panel" | |
| }, o.createElement(_, { | |
| key: "login", | |
| active: e, | |
| title: c.locale.app.text.login, | |
| showTitle: this.props.mobile, | |
| onBack: this.closeDropdown | |
| }, this.state.open ? o.createElement(v, { | |
| active: e, | |
| onResetPasswordLink: this._showResetPassword, | |
| onFacebookConnectDialogueOpen: this.closeDropdown | |
| }) : ""), o.createElement(_, { | |
| key: "resetpassword", | |
| active: t, | |
| title: c.locale.signup.signin.forgotPassword, | |
| showTitle: this.props.mobile, | |
| onBack: this._showLogin | |
| }, this.state.open ? o.createElement(y, { | |
| active: t, | |
| onLoginLink: this._showLogin, | |
| showBack: !this.props.mobile | |
| }) : "")) | |
| }, | |
| _toggleLoginForm: function(e) { | |
| e.preventDefault(), | |
| this.state.open ? r.track("Close Login") : r.track("Open Login"), | |
| this.toggleDropdown() | |
| }, | |
| render: function() { | |
| var e, t = i({ | |
| "s-active": this.state.open | |
| }, "v-login-dropdown"); | |
| this.props.mobile || (e = o.createElement("div", { | |
| className: "overlay" | |
| }, o.createElement("div", { | |
| className: "container" | |
| }, this.state.open && this._getPanel()))); | |
| var n = this.props.text || c.translate("app.buttons.login"); | |
| return o.createElement("div", { | |
| className: t | |
| }, o.createElement(g, { | |
| className: "btn btn-green btn-login", | |
| onClick: this._toggleLoginForm | |
| }, n), e) | |
| }, | |
| _showResetPassword: function(e) { | |
| e.preventDefault(), | |
| this.setState({ | |
| active: "resetpassword" | |
| }) | |
| }, | |
| _showLogin: function() { | |
| this.setState({ | |
| active: "login" | |
| }) | |
| } | |
| }); | |
| e.exports = b | |
| }, | |
| 230: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| var n = new window.FontFaceObserver(e.family,e); | |
| return n.check(null , t).then(function() { | |
| return e | |
| })["catch"](function(t) { | |
| if (t === n) | |
| return d.reject({ | |
| font: e | |
| }); | |
| throw t | |
| }) | |
| } | |
| function s(e) { | |
| var t = e.getPropertyValue("font-family").replace(/'|"/g, ""); | |
| return t.indexOf(",") > -1 ? t.substring(0, t.indexOf(",")) : t | |
| } | |
| function r(e) { | |
| var t = e.getPropertyValue("font-weight"); | |
| if (!isNaN(t)) | |
| return t; | |
| switch (t) { | |
| case "bold": | |
| return 700; | |
| case "normal": | |
| return 400; | |
| default: | |
| return | |
| } | |
| } | |
| function a(e) { | |
| return e.getPropertyValue("font-style") || "normal" | |
| } | |
| function o(e) { | |
| var t = g["default"].map(e.children, function(e) { | |
| var t = window.getComputedStyle(e); | |
| return { | |
| family: s(t), | |
| weight: r(t), | |
| style: a(t) | |
| } | |
| }); | |
| return g["default"].unique(t, function(e) { | |
| return JSON.stringify(e) | |
| }) | |
| } | |
| function l(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? 3e3 : arguments[1] | |
| , n = new d(function(n, s) { | |
| function r() { | |
| o.length + l.length < e.length || (o.length ? s(new h["default"]("WebFontsNotLoaded","Selected web fonts could not loaded or timed out",{ | |
| loadedFonts: l, | |
| failedFonts: o | |
| })) : n(l)) | |
| } | |
| function a(e) { | |
| if (e.font) | |
| return o.push(e.font), | |
| d.resolve(); | |
| throw e | |
| } | |
| var o = [] | |
| , l = []; | |
| e.forEach(function(e) { | |
| i(e, t).then(function(e) { | |
| return l.push(e) | |
| }, a).then(r) | |
| }) | |
| } | |
| ); | |
| return n["catch"](function(e) { | |
| if ("WebFontsNotLoaded" !== e.type) | |
| throw e | |
| }) | |
| } | |
| function u(e, t) { | |
| return l(o(e), t) | |
| } | |
| function c(e, t) { | |
| return g["default"].filter(e.children, function(e) { | |
| var n = window.getComputedStyle(e); | |
| return g["default"].where(t, { | |
| family: s(n), | |
| weight: r(n), | |
| style: a(n) | |
| }).length | |
| }) | |
| } | |
| var d = n(24)["default"] | |
| , p = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.load = l, | |
| t.loadFromElement = u, | |
| t.getElementsWithFonts = c, | |
| n(865); | |
| var f = n(35) | |
| , h = p(f) | |
| , m = n(5) | |
| , g = p(m) | |
| }, | |
| 231: function(e, t, n) { | |
| var i; | |
| i = function() { | |
| "use strict"; | |
| function e(e, n) { | |
| for (var i = "string" == typeof n; e; ) { | |
| if (i && t(e, n) || e === n) | |
| return e; | |
| e = e.parentNode | |
| } | |
| return null | |
| } | |
| var t = function(e, t) { | |
| var n = e.matches || e.matchesSelector || e.mozMatchesSelector || e.msMatchesSelector || e.oMatchesSelector || e.webkitMatchesSelector; | |
| return n ? n.call(e, t) : void 0 | |
| } | |
| ; | |
| return e | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 232: function(e, t, n) { | |
| var i, s = n(53)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(25) | |
| , i = n(141) | |
| , r = function() { | |
| this.initialize.apply(this, arguments) | |
| } | |
| ; | |
| return r.prototype = { | |
| initialize: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; | |
| this.options = t, | |
| "string" == typeof e ? this._variants = { | |
| original: { | |
| href: e | |
| } | |
| } : this._variants = e._links, | |
| this.el = new Image, | |
| this.el.classList.add("s-loading"), | |
| this._caption = e.caption | |
| }, | |
| load: function(e) { | |
| var n = t.defer() | |
| , i = this._getVariantOrDefault(e); | |
| return this.el.onabort = this._error.bind(this, n), | |
| this.el.onerror = this._error.bind(this, n), | |
| this.el.onload = this._success.bind(this, n), | |
| this.el.src = i.href, | |
| n.promise | |
| }, | |
| getWidthMultiplier: function(e) { | |
| return this.getWidth(e) / this.getHeight(e) | |
| }, | |
| getHeightMultiplier: function(e) { | |
| return this.getHeight(e) / this.getWidth(e) | |
| }, | |
| getWidth: function(e) { | |
| var t = this._getVariantOrDefault(e); | |
| return t.width | |
| }, | |
| getHeight: function(e) { | |
| var t = this._getVariantOrDefault(e); | |
| return t.height | |
| }, | |
| _getDefaultVariant: function() { | |
| var e = s(this._variants); | |
| return this._variants[e[e.length - 1]] | |
| }, | |
| _getVariantOrDefault: function(e) { | |
| if (this._variants[e]) { | |
| var t = e; | |
| return this.options.height && this.options.height > 0 && (t = i.getSizeForHeight(this._variants, this.options.height)), | |
| i.getXHD(this._variants, t) | |
| } | |
| return this._getDefaultVariant() | |
| }, | |
| _error: function(e) { | |
| this.el.classList.remove("s-loading"), | |
| this.el.classList.add("s-error"), | |
| e.reject(new Error("Image at url " + this.el.src + " could not be loaded")) | |
| }, | |
| _success: function(e) { | |
| this.el.classList.remove("s-loading"), | |
| this.el.classList.add("s-success"), | |
| this.el.removeAttribute("width"), | |
| this.el.removeAttribute("height"), | |
| e.resolve(this) | |
| } | |
| }, | |
| r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 234: function(e, t) { | |
| "use strict"; | |
| function n(e, t) { | |
| var n, i, s = ""; | |
| for (i = 0; i < t.length; i++) { | |
| var r = !0; | |
| for (n = 0; e > n && n + i + e < t.length; n++) | |
| r = r && t.charAt(n + i) === t.charAt(n + i + e); | |
| e > n && (r = !1), | |
| r ? (i += e - 1, | |
| r = !1) : s += t.charAt(i) | |
| } | |
| return s | |
| } | |
| function i(e) { | |
| var t = 0; | |
| return e.length < 5 ? r : (t += 4 * e.length, | |
| t += n(1, e).length - e.length, | |
| t += n(2, e).length - e.length, | |
| t += n(3, e).length - e.length, | |
| t += n(4, e).length - e.length, | |
| e.match(/(.*[0-9].*[0-9].*[0-9])/) && (t += 5), | |
| e.match(/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/) && (t += 5), | |
| e.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/) && (t += 10), | |
| e.match(/([a-zA-Z])/) && e.match(/([0-9])/) && (t += 15), | |
| e.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && e.match(/([0-9])/) && (t += 15), | |
| e.match(/([!,@,#,$,%,^,&,*,?,_,~])/) && e.match(/([a-zA-Z])/) && (t += 15), | |
| (e.match(/^\w+$/) || e.match(/^\d+$/)) && (t -= 10), | |
| 0 > t ? r : 34 > t ? a : 68 > t ? o : l) | |
| } | |
| function s(e) { | |
| return u[e] | |
| } | |
| var r = 1 | |
| , a = 2 | |
| , o = 3 | |
| , l = 4 | |
| , u = {}; | |
| u[r] = "#FF0000", | |
| u[a] = "#FFD900", | |
| u[o] = "#FFD900", | |
| u[l] = "#64B278", | |
| e.exports = { | |
| getScore: i, | |
| getScoreColor: s, | |
| colors: u, | |
| SHORT: r, | |
| WEAK: a, | |
| GOOD: o, | |
| STRONG: l | |
| } | |
| }, | |
| 235: function(e, t) { | |
| "use strict"; | |
| e.exports = function(e) { | |
| for (; e.firstChild; ) | |
| e.removeChild(e.firstChild) | |
| } | |
| }, | |
| 241: function(e, t, n) { | |
| "use strict"; | |
| var i = n(24)["default"] | |
| , s = n(5) | |
| , r = n(4) | |
| , a = n(16) | |
| , o = n(534) | |
| , l = n(378) | |
| , u = n(66) | |
| , c = n(43); | |
| e.exports = { | |
| fetchChannels: function() { | |
| var e = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0] | |
| , t = new c(a.getLink("channels")).addSearch(s.defaults(e, { | |
| amount: 50 | |
| })) | |
| , n = new o(null ,{ | |
| url: t.toString(), | |
| parse: !0 | |
| }); | |
| return n.fetch().then(function() { | |
| return n | |
| }) | |
| }, | |
| fetchChannel: function(e) { | |
| return r.ajax({ | |
| url: a.getLink("user", { | |
| user_id: e | |
| }) | |
| }).then(function(e) { | |
| return new l(e.data,{ | |
| parse: !0 | |
| }) | |
| }) | |
| }, | |
| follow: function(e, t) { | |
| return u.followUser(e, t) | |
| }, | |
| unfollow: function(e, t) { | |
| return t = r.Helpers.toArray(t), | |
| i.all(t.map(function(t) { | |
| return u.unfollowUser(e, t) | |
| })).then(function() { | |
| return t | |
| }) | |
| } | |
| } | |
| }, | |
| 242: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(25) | |
| , s = n(35) | |
| , r = n(8) | |
| , a = { | |
| _requests: {}, | |
| abort: function(e) { | |
| a._requests = t.reduce(a._requests, function(t, n, i) { | |
| return e && e !== i ? (t[i] = n, | |
| t) : (n.abort && n.abort(), | |
| t) | |
| }, {}) | |
| }, | |
| get: function(e) { | |
| return a._requests[e] | |
| }, | |
| set: function(e, t) { | |
| var n = a.get(e); | |
| return n && a.abort(e), | |
| a._requests[e] = t, | |
| t.then(function(n) { | |
| return a.get(e) === t ? i.resolve(n) : i.reject(new s(r.XHR_ABORT,"Request has been aborted")) | |
| }) | |
| } | |
| }; | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 243: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| var t = (0, | |
| d["default"])(); | |
| switch (e) { | |
| case "now": | |
| return t.subtract(1, "h"); | |
| case "today": | |
| return t.subtract(24, "h"); | |
| case "week": | |
| return t.subtract(7, "d"); | |
| default: | |
| return null | |
| } | |
| } | |
| function s() { | |
| var e = (new Date).getHours(); | |
| return e >= 3 && 12 > e ? (0, | |
| g.translate)("timeline.trending.morning") : e >= 18 ? (0, | |
| g.translate)("timeline.trending.evening") : (0, | |
| g.translate)("timeline.trending.afternoon") | |
| } | |
| var r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(16) | |
| , o = r(a) | |
| , l = n(170) | |
| , u = r(l) | |
| , c = n(18) | |
| , d = r(c) | |
| , p = n(43) | |
| , f = r(p) | |
| , h = n(38) | |
| , m = r(h) | |
| , g = n(3) | |
| , v = n(345) | |
| , y = ["b:tiles", "b:item", "b:pin", "b:acquisition", "b:issue-acquisition", "b:relevant-posts", "b:requested-user-post", "manifest", "b:user", "b:manager"]; | |
| t["default"] = { | |
| fetchTilesByUrl: function(e) { | |
| var t = new u["default"](null ,{ | |
| track: !0 | |
| }); | |
| return t.fetch({ | |
| url: e, | |
| accept: "application/hal+json" | |
| }).then(function() { | |
| return t | |
| }) | |
| }, | |
| fetchPins: function(e) { | |
| return this.fetchTilesByUrl(o["default"].getLink("user_pins_timeline", { | |
| user_id: e | |
| }, y)) | |
| }, | |
| fetchFollowing: function(e) { | |
| return this.fetchTilesByUrl(o["default"].getLink("user_following_tiles", { | |
| user_id: e, | |
| user_context: e | |
| }, y)) | |
| }, | |
| fetchUser: function(e) { | |
| return this.fetchTilesByUrl(o["default"].getLink("user_posted_tiles", { | |
| user_context: e, | |
| user_id: e | |
| }, y)) | |
| }, | |
| fetchUserArchive: function(e) { | |
| return this.fetchTilesByUrl(o["default"].getLink("user_items", { | |
| user_id: e | |
| }, y)) | |
| }, | |
| fetchChannel: function(e, t) { | |
| return this.fetchTilesByUrl(o["default"].getLink("user_posted_tiles", { | |
| user_context: e, | |
| user_id: t | |
| }, y)) | |
| }, | |
| fetchTrending: function(e, t) { | |
| var n = o["default"].getLink("user_trending_tiles", { | |
| user_id: e, | |
| user_context: e | |
| }, y) | |
| , s = i(t) | |
| , r = (0, | |
| f["default"])(n).addSearch({ | |
| from: s ? s.toISOString() : null , | |
| type: s ? null : t, | |
| version: 2 | |
| }); | |
| return this.fetchTilesByUrl(r.toString()) | |
| }, | |
| getUserTrendingFilter: function(e) { | |
| var t = (0, | |
| d["default"])() | |
| , n = (0, | |
| d["default"])(e.get("trending_viewed_at")); | |
| return !m["default"].isBetaCountry(e.get("country")) && n.isAfter(t.subtract(1, "h")) ? "now" : n.isAfter(t.subtract(24, "h")) ? "today" : "week" | |
| }, | |
| getTrendingFilters: function() { | |
| var e = (0, | |
| v.getException)("hiddenTrendingTimelines", []) | |
| , t = [{ | |
| label: (0, | |
| g.translate)("timeline.trending.now", [s()]), | |
| trending: "now" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.today"), | |
| trending: "today" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.week"), | |
| trending: "week" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.international"), | |
| trending: "international" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.dutch"), | |
| trending: "dutch", | |
| countryCode: "NL" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.german"), | |
| trending: "german", | |
| countryCode: "DE" | |
| }, { | |
| label: (0, | |
| g.translate)("timeline.trending.belgian"), | |
| trending: "belgian", | |
| countryCode: "BE" | |
| }]; | |
| return t.filter(function(t) { | |
| return (m["default"].isBetaCountry(t.countryCode) && m["default"].isBetaCountry() || !m["default"].isBetaCountry(t.countryCode) && !m["default"].isBetaCountry()) && !e.includes(t.trending) | |
| }) | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 245: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(77) | |
| , o = i(a) | |
| , l = n(11) | |
| , u = i(l) | |
| , c = r["default"].createClass({ | |
| displayName: "SelectableIssue", | |
| propTypes: { | |
| issue: r["default"].PropTypes.object.isRequired, | |
| onChange: r["default"].PropTypes.func.isRequired, | |
| height: r["default"].PropTypes.oneOf([115, 180]), | |
| selected: r["default"].PropTypes.bool, | |
| disabled: r["default"].PropTypes.bool, | |
| checked: r["default"].PropTypes.bool | |
| }, | |
| render: function() { | |
| if (!this.props.issue.get) | |
| return null ; | |
| var e = this.props.issue._links.cover_image || this.props.issue._links.page_preview || (this.props.issue.get("_links") ? this.props.issue.get("_links").page_preview : void 0) | |
| , t = this.props.height / e.height * e.width | |
| , n = { | |
| width: Math.ceil(t), | |
| height: Math.ceil(this.props.height) | |
| } | |
| , i = void 0 | |
| , s = this.props.issue.get("manifest"); | |
| s && (i = s.getProvider().get("name")), | |
| i || (i = this.props.issue.get("provider").id); | |
| var a = (0, | |
| u["default"])("v-selectable-issue", { | |
| selected: this.props.selected | |
| }, { | |
| small: 115 === this.props.height | |
| }); | |
| return r["default"].createElement("div", { | |
| className: "selectable-issue" | |
| }, r["default"].createElement("label", { | |
| "aria-label": i, | |
| className: a, | |
| style: n | |
| }, r["default"].createElement("input", { | |
| type: "checkbox", | |
| onChange: this.props.onChange, | |
| disabled: this.props.disabled, | |
| checked: this.props.selected | |
| }), r["default"].createElement(o["default"], { | |
| src: e.href, | |
| alt: i, | |
| width: t, | |
| height: this.props.height | |
| }))) | |
| } | |
| }); | |
| t["default"] = c, | |
| e.exports = t["default"] | |
| }, | |
| 246: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(21)["default"] | |
| , a = n(26)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(8) | |
| , u = n(19) | |
| , c = o(u) | |
| , d = n(133) | |
| , p = o(d) | |
| , f = function() { | |
| function e() { | |
| s(this, e), | |
| this.channels = { | |
| status: l.STATUS_INITIAL, | |
| data: [] | |
| }, | |
| this.details = {}, | |
| this.bindActions(p["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onFetchChannels", | |
| value: function() { | |
| this.setState({ | |
| channels: { | |
| status: l.STATUS_PENDING, | |
| data: [] | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onFetchChannelsSuccess", | |
| value: function(e) { | |
| var t = e.data; | |
| this.setState({ | |
| channels: { | |
| status: l.STATUS_OK, | |
| data: t | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onFetchChannelsError", | |
| value: function(e) { | |
| var t = e.error; | |
| this.setState({ | |
| channels: { | |
| status: l.STATUS_ERROR, | |
| error: t | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onFetchChannelDetails", | |
| value: function(e) { | |
| var t = e.channelId; | |
| this.setState({ | |
| details: r({}, this.details, a({}, t, r({ | |
| data: {} | |
| }, this.details[t], { | |
| status: l.STATUS_PENDING | |
| }))) | |
| }) | |
| } | |
| }, { | |
| key: "onFetchChannelDetailsSuccess", | |
| value: function(e) { | |
| var t = e.channelId | |
| , n = e.data; | |
| this.setState({ | |
| details: r({}, this.details, a({}, t, { | |
| status: l.STATUS_OK, | |
| data: n | |
| })) | |
| }) | |
| } | |
| }, { | |
| key: "onFetchChannelDetailsError", | |
| value: function(e) { | |
| var t = e.channelId | |
| , n = e.error; | |
| this.setState({ | |
| details: r({}, this.details, a({}, t, { | |
| status: l.STATUS_ERROR, | |
| error: n | |
| })) | |
| }) | |
| } | |
| }, { | |
| key: "followChannel", | |
| value: function(e) { | |
| var t = e.channelId | |
| , n = e.isFollowing | |
| , i = this.details[t]; | |
| i && (i.data.set("following", n), | |
| this.setState({ | |
| details: r({}, this.details, a({}, t, r({}, i, { | |
| data: i.data | |
| }))) | |
| })); | |
| var s = this.channels.data.map(function(e) { | |
| return e.id === t && e.set("following", n), | |
| e | |
| }); | |
| this.setState({ | |
| channels: r({}, this.channels, { | |
| data: s | |
| }) | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = c["default"].createStore(f, "ChannelsStore"), | |
| e.exports = t["default"] | |
| }, | |
| 247: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(164) | |
| , c = r(u) | |
| , d = n(114) | |
| , p = r(d) | |
| , f = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = a.STATUS_INITIAL, | |
| this.connected = !1, | |
| this.friends = [], | |
| this.error = null , | |
| this.bindActions(c["default"]), | |
| this.bindAction(p["default"].UPDATE, this.onUpdateUser) | |
| } | |
| return i(e, [{ | |
| key: "onUpdateUser", | |
| value: function(e) { | |
| this.setState({ | |
| connected: !!e.get("facebook_id") | |
| }) | |
| } | |
| }, { | |
| key: "onToggleFacebook", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onConnectFacebook", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onFacebookError", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_ERROR | |
| }) | |
| } | |
| }, { | |
| key: "onFacebookConnectSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| error: null , | |
| connected: !0, | |
| friends: e | |
| }) | |
| } | |
| }, { | |
| key: "onFacebookDisconnectSuccess", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| error: null , | |
| connected: !1 | |
| }) | |
| } | |
| }, { | |
| key: "onLoginAndConnectFacebook", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onLoginAndConnectFacebookError", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_ERROR, | |
| error: e | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(f, "FacebookStore"), | |
| e.exports = t["default"] | |
| }, | |
| 248: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = r(a) | |
| , l = n(19) | |
| , u = r(l) | |
| , c = n(218) | |
| , d = r(c) | |
| , p = n(314) | |
| , f = r(p) | |
| , h = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = o["default"].STATUS_INITIAL, | |
| this.latestIssue = null , | |
| this.bindActions(d["default"]), | |
| this.bindActions(f["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onFetchLatestIssue", | |
| value: function() { | |
| this.setState({ | |
| latestIssue: null | |
| }) | |
| } | |
| }, { | |
| key: "onFetchLatestIssueSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| latestIssue: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchCategory", | |
| value: function(e) { | |
| var t = e.categoryId | |
| , n = this.issues; | |
| this.categoryId !== t && (n = null ), | |
| this.setState({ | |
| status: o["default"].STATUS_PENDING, | |
| scrollPosition: 0, | |
| issues: n, | |
| categoryId: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchAcquiredIssues", | |
| value: function() { | |
| this.onFetchCategory({ | |
| categoryId: "my-issues" | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNextAcquiredIssues", | |
| value: function() { | |
| this.onFetchCategory({ | |
| categoryId: "my-issues" | |
| }) | |
| } | |
| }, { | |
| key: "onFetchCategorySuccess", | |
| value: function(e) { | |
| var t = e.issues; | |
| this.setState({ | |
| status: o["default"].STATUS_OK, | |
| scrollPosition: 0, | |
| issues: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchAcquiredIssuesSuccess", | |
| value: function(e) { | |
| var t = e.issues; | |
| this.onFetchCategorySuccess({ | |
| issues: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNextAcquiredIssuesSuccess", | |
| value: function(e) { | |
| var t = e.issues; | |
| this.setState({ | |
| status: o["default"].STATUS_OK, | |
| issues: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchCategoryError", | |
| value: function(e) { | |
| var t = e.message; | |
| this.setState({ | |
| status: o["default"].STATUS_ERROR, | |
| scrollPosition: 0, | |
| categoryId: null , | |
| issues: null , | |
| message: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchAcquiredIssuesError", | |
| value: function(e) { | |
| var t = e.message; | |
| this.onFetchCategoryError({ | |
| message: t | |
| }) | |
| } | |
| }, { | |
| key: "onRememberScrollPosition", | |
| value: function(e) { | |
| var t = e.position; | |
| this.setState({ | |
| scrollPosition: t | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = u["default"].createStore(h, "IssuesStore"), | |
| e.exports = t["default"] | |
| }, | |
| 249: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(168) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.error = null , | |
| this.status = a.STATUS_INITIAL, | |
| this.resendStatus = a.STATUS_INITIAL, | |
| this.bindActions(c["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onSignUp", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onSignUpSuccess", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onSignUpError", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_ERROR, | |
| error: e | |
| }) | |
| } | |
| }, { | |
| key: "onSignUpChangeEmail", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_INITIAL | |
| }) | |
| } | |
| }, { | |
| key: "onResendEmailConfirm", | |
| value: function() { | |
| this.setState({ | |
| resendStatus: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onResendEmailConfirmSuccess", | |
| value: function() { | |
| this.setState({ | |
| resendStatus: a.STATUS_OK | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "SignUpStore"), | |
| e.exports = t["default"] | |
| }, | |
| 250: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(136) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.subscriptions = [], | |
| this.status = a.STATUS_INITIAL, | |
| this.error = null , | |
| this.selected = null , | |
| this.cancelReason = null , | |
| this.bindActions(c["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onFetchUserSubscriptionSuccess", | |
| value: function(e) { | |
| var t = this.subscriptions.filter(function(t) { | |
| return t.uid !== e.uid | |
| }); | |
| t.push(e), | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| subscriptions: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchUserSubscriptionError", | |
| value: function(e) { | |
| var t = e.error | |
| , n = e.subscription | |
| , i = this.subscriptions; | |
| n && (i = i.filter(function(e) { | |
| return e.uid !== n.uid | |
| }), | |
| i.push(n)), | |
| this.setState({ | |
| status: a.STATUS_ERROR, | |
| error: t, | |
| subscriptions: i | |
| }) | |
| } | |
| }, { | |
| key: "onFetchUserSubscription", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onPollFetchUserSubscription", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchUserSubscriptions", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchUserSubscriptionsSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| subscriptions: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchUserSubscriptionsError", | |
| value: function(e) { | |
| var t = e.error; | |
| this.setState({ | |
| status: a.STATUS_ERROR, | |
| error: t | |
| }) | |
| } | |
| }, { | |
| key: "onUpdateCancelReason", | |
| value: function(e) { | |
| this.setState({ | |
| cancelReason: e | |
| }) | |
| } | |
| }, { | |
| key: "onSelectSubscription", | |
| value: function(e) { | |
| var t = e.subscription; | |
| this.setState({ | |
| selected: t, | |
| cancelReason: null | |
| }) | |
| } | |
| }, { | |
| key: "onDeselectSubscription", | |
| value: function() { | |
| this.setState({ | |
| selected: null , | |
| cancelReason: null | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "SubscriptionsStore"), | |
| e.exports = t["default"] | |
| }, | |
| 251: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(13) | |
| , s = n(3).locale | |
| , r = n(66) | |
| , a = n(403) | |
| , o = n(183) | |
| , l = n(1060) | |
| , u = n(47) | |
| , c = t.View.extend({ | |
| className: "v-reset-token-form", | |
| events: { | |
| "submit form": "_eSubmit", | |
| "click .btn-back": "_eBack" | |
| }, | |
| initialize: function() { | |
| this._email = this.addView(new a({ | |
| type: "email", | |
| name: "email", | |
| value: "", | |
| placeholder: s.login.dropdown.reset.email, | |
| className: "frm-field-wrapper error-left", | |
| autoFocus: !0 | |
| }), "email"), | |
| this._submit = this.addView(new o({ | |
| type: "submit", | |
| text: s.login.dropdown.reset.submit, | |
| onClick: this._eSubmit.bind(this) | |
| }), "submit") | |
| }, | |
| render: function() { | |
| this.el.innerHTML = l({ | |
| i18n: s | |
| }), | |
| this.dom.form = this.el.querySelector(".reset-token-form"), | |
| this.dom.success = this.el.querySelector(".reset-token-success"), | |
| this.el.removeChild(this.dom.success); | |
| var e = this.dom.form.querySelector("form"); | |
| return e.appendChild(this.getView("email").render().el), | |
| e.appendChild(this.getView("submit").render().el), | |
| this | |
| }, | |
| reset: function() { | |
| this._toggleForm(!0), | |
| this._email.resetError() | |
| }, | |
| setDisabled: function(e) { | |
| var t = this.getView("email"); | |
| t.setDisabled(e) | |
| }, | |
| _validateEmail: function() { | |
| return this._email.resetError(), | |
| 0 === this._email.getValue().trim().length ? (this._email.setError(s.app.error.default_form_field_required), | |
| !1) : this._email.getValue().indexOf("@") < 1 ? (this._email.setError(s.error.invalid_email), | |
| !1) : !0 | |
| }, | |
| _toggleForm: function(e) { | |
| e ? (this.el.appendChild(this.dom.form), | |
| this.el.removeChild(this.dom.success)) : (this.el.removeChild(this.dom.form), | |
| this.el.appendChild(this.dom.success)) | |
| }, | |
| _requestToken: function() { | |
| var e = this; | |
| this._submit.setState("loading"), | |
| i.track("Request Password Reset"), | |
| r.requestResetToken(this._email.getValue()).then(function() { | |
| i.track("Request Password Reset Send"), | |
| e._toggleForm(!1), | |
| u.saveToCookie() | |
| }, function(t) { | |
| i.track("Request Password Failed"), | |
| 404 === t.status ? e._email.setError(s.login.reset_token_not_found) : e._email.setError(s.login.reset_token_fail) | |
| }).fin(function() { | |
| e._submit.resetState() | |
| }) | |
| }, | |
| _eSubmit: function(e) { | |
| e.preventDefault(), | |
| this._email.el.blur(), | |
| this._validateEmail() && this._requestToken() | |
| }, | |
| _eBack: function() { | |
| this.options.back() | |
| }, | |
| focus: function() { | |
| this._email && this._email.el.querySelector("input") && this._email.el.querySelector("input").focus() | |
| } | |
| }); | |
| return c | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 252: function(e, t, n) { | |
| var i, s = n(53)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , r = n(25) | |
| , a = n(234) | |
| , o = n(3).locale | |
| , l = n(3).translate | |
| , u = t.View.extend({ | |
| defaultClassName: "v-form", | |
| errorClass: "s-error", | |
| validatedClass: "s-validated", | |
| fields: {}, | |
| fieldNames: {}, | |
| fieldErrors: {}, | |
| drawErrorFields: !0, | |
| validators: {}, | |
| defaultEvents: { | |
| "submit form": "_ePreventDefault", | |
| "click .btn-submit.s-inactive": "_ePreventDefault", | |
| "submit form:not(.s-inactive):not(.s-loading)": "_eSubmit", | |
| "click .btn-submit:not(.s-inactive):not(.s-loading)": "_eSubmit", | |
| "keypress form": "_eSubmitOnKeyPress", | |
| "focusin .inp": "_eInputFocus", | |
| "focusout .inp": "_eInputChange", | |
| "change .inp": "_eInputChange" | |
| }, | |
| constructor: function() { | |
| this.applyDefaultEvents(), | |
| this.listenTo(this, "validationError", this._eValidationError), | |
| this.listenTo(this, "validated", this._eValidated), | |
| t.View.apply(this, arguments) | |
| }, | |
| getModelKey: function(e) { | |
| for (var t in this.fields) | |
| if (this.fields[t] === e) | |
| return t | |
| }, | |
| afterUnload: function() { | |
| t.View.prototype.afterUnload.apply(this, arguments) | |
| }, | |
| getValue: function(e) { | |
| return e ? this.isCheckboxOrRadio(e) ? this.getCheckboxValue(e) : e.value : void 0 | |
| }, | |
| isCheckboxOrRadio: function(e) { | |
| return e.getAttribute("type") && e.getAttribute("type").toLowerCase().match(/radio|checkbox/) | |
| }, | |
| getCheckboxValue: function(e) { | |
| var t = e.getAttribute("name") | |
| , n = !1; | |
| return i.each(this.el.querySelectorAll(".inp[name=" + t + "]"), function(e) { | |
| n = e.checked ? e.value : n | |
| }), | |
| n | |
| }, | |
| getRadioValue: function(e) { | |
| return this.getCheckboxValue(e) | |
| }, | |
| isValid: function(e) { | |
| for (var t = r.defer(), n = [], i = 0; i < e.length; i++) { | |
| var s = e[i]; | |
| if (this.model.isValid([s])) { | |
| if (this.validators[s]) { | |
| var a = this.validators[s].call(this, this.model.get(s)); | |
| r.when(a).fail(t.reject).done(), | |
| n.push(a) | |
| } | |
| } else | |
| t.reject(new Error("Unable to validate form")) | |
| } | |
| return r.all(n).then(t.resolve).done(), | |
| t.promise | |
| }, | |
| validateInput: function(e) { | |
| var t, n, s, r = this, a = {}; | |
| if (e && this.fields) { | |
| if (n = this.getValue(e), | |
| s = e.getAttribute("name"), | |
| t = this.getModelKey(s), | |
| !t) | |
| return void this.isComplete(); | |
| this.model.get(t) !== n && this.model.set(t, n), | |
| this.isValid([t]).then(this._removeError.bind(this, e), function(o) { | |
| r.model.validStates[t] = !1, | |
| e.classList.remove(r.validatedClass), | |
| e.classList.add(r.errorClass), | |
| r.drawErrorFields && ("password" === t ? i.extend(a, { | |
| password: r._getPasswordStrengthError(n) | |
| }) : o && i.extend(a, o), | |
| r._drawErrorFields([s], a)) | |
| }).done(function() { | |
| r.isComplete() | |
| }) | |
| } | |
| }, | |
| _getPasswordStrengthError: function(e) { | |
| var t = o.app.error.default_form_field_validation; | |
| return a.getScore(e) === a.SHORT && (t = o.error.password_too_short), | |
| t | |
| }, | |
| _eInputFocus: function(e) { | |
| this._removeError(e.delegateTarget) | |
| }, | |
| _eInputChange: function(e) { | |
| var t = e.delegateTarget; | |
| t && this.getValue(t) && this.validateInput(t) | |
| }, | |
| _removeError: function(e) { | |
| e.classList.remove(this.errorClass), | |
| e.classList.add(this.validatedClass), | |
| this.drawErrorFields && this._removeErrorField(name), | |
| this.el && !this.el.querySelector("." + this.errorClass) && this.removeState("error") | |
| }, | |
| _ePreventDefault: function(e) { | |
| e.preventDefault(), | |
| e.stopPropagation() | |
| }, | |
| _eSubmitOnKeyPress: function(e) { | |
| var t = e.delegateTarget; | |
| return "TEXTAREA" === t.tagName || 10 !== e.which && 13 !== e.which ? !0 : (this._eSubmit(e), | |
| !1) | |
| }, | |
| _eSubmit: function(e) { | |
| var t, n = e.delegateTarget; | |
| e.preventDefault(), | |
| n.classList.contains("btn") ? t = n : "FORM" === n.tagName && (t = n.querySelector(".btn-submit")), | |
| t && t.classList.add("s-loading"), | |
| this.removeState("error"), | |
| this.parseForm() | |
| }, | |
| _eValidated: function() {}, | |
| _eValidationError: function(e) { | |
| this.drawErrorFields && this._drawErrorFields(e); | |
| var t = this.el.querySelector(".btn.s-loading"); | |
| t && t.classList.remove("s-loading"), | |
| this.setState("error") | |
| }, | |
| fillForm: function(e) { | |
| var t, n; | |
| e = e ? e : this.model.attributes; | |
| for (var i in e) | |
| t = this.el.querySelector(".inp[name=" + i + "]"), | |
| t.getAttribute("type").toLowerCase().match(/radio|checkbox/) ? (n = this.el.querySelector(".inp[name=" + i + "][value=" + e[i] + "]"), | |
| n && n.setAttribute("checked", "checked")) : t.value = e[i] | |
| }, | |
| parseForm: function(e) { | |
| var t = this; | |
| e = e ? e : this.fields; | |
| for (var n in e) { | |
| var i = e[n] | |
| , r = this.el.querySelector(".inp[name=" + i + "]"); | |
| if (r) { | |
| var a = this.getValue(r); | |
| this.model.set(n, a) | |
| } | |
| } | |
| this.options && this.options.validate === !1 || this.isValid(s(e)).then(function() { | |
| t.trigger("validated") | |
| }, function() { | |
| var n, i = t.model.invalidAttributes(e), s = []; | |
| for (var r in i) { | |
| n = e[i[r]], | |
| s.push(n); | |
| var a = t.el.querySelector(".inp[name=" + n + "]"); | |
| a && (a.classList.add(t.errorClass), | |
| a.classList.remove(t.validatedClass), | |
| t._drawErrorFields([n])) | |
| } | |
| t.trigger("validationError", s) | |
| }).done() | |
| }, | |
| _drawErrorFields: function(e, t) { | |
| for (var n = {}, s = 0; s < e.length; s++) { | |
| var r = e[s] | |
| , a = this.fieldNames[r] ? this.fieldNames[r]() : null ; | |
| t && t[r] ? n[r] = t[r] : this.model.required && this.model.required[r] && !this.model.get(this.getModelKey(r)) ? this.fieldErrors[r] && this.fieldErrors[r].required ? n[r] = this.fieldErrors[r].required : a ? n[r] = l("app.error.named_form_field_required", a.toLowerCase()) : -1 !== this.className.indexOf("pane refund") ? n[r] = o.refund.no_reason : n[r] = o.app.error.default_form_field_required : this.fieldErrors[r] && this.fieldErrors[r].validation ? n[r] = this.fieldErrors[r].validation() : a ? n[r] = l("app.error.named_form_field_validation", i.capitalize(a)) : n[r] = o.app.error.default_form_field_validation | |
| } | |
| for (var u in n) | |
| this._drawErrorField(u, n[u]) | |
| }, | |
| _drawErrorField: function(e, t) { | |
| var n = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2] | |
| , i = this.el.querySelector(".inp[name=" + e + "]"); | |
| this._removeErrorField(e); | |
| var s = document.createElement("div"); | |
| s.setAttribute("data-field", e), | |
| s.className = "error-message", | |
| n ? s.innerHTML = t : s.textContent = t, | |
| i.parentNode.appendChild(s), | |
| setTimeout(function() { | |
| s.classList.add("visible") | |
| }) | |
| }, | |
| _removeErrorField: function(e) { | |
| if (!e) | |
| return this._removeAllErrorFields(); | |
| var t = this.el.querySelector(".error-message[data-field=" + e + "]"); | |
| t && t.parentNode.removeChild(t) | |
| }, | |
| _removeAllErrorFields: function() { | |
| this.el && i.each(this.el.querySelectorAll(".error-message"), function(e) { | |
| e.parentNode.removeChild(e) | |
| }) | |
| }, | |
| isComplete: function() { | |
| var e, t = !0; | |
| if (this.model) | |
| for (var n in this.model.required) | |
| if (this.model.required[n] && (e = this.el.querySelector(".inp[name=" + this.fields[n] + "]"), | |
| e && (!this.getValue(e) || -1 !== this.model.invalidAttributes().indexOf(n)))) { | |
| t = !1; | |
| break | |
| } | |
| return t ? this.trigger("formComplete") : this.trigger("formIncomplete"), | |
| t | |
| }, | |
| enableSubmitButton: function(e) { | |
| e = "string" == typeof e ? e : null ; | |
| var t = this.el.querySelector(e || ".btn-submit"); | |
| t && t.classList.remove("s-inactive") | |
| }, | |
| disableSubmitButton: function(e) { | |
| e = "string" == typeof e ? e : null ; | |
| var t = this.el.querySelector(e || ".btn-submit"); | |
| t && t.classList.add("s-inactive") | |
| } | |
| }); | |
| return u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 253: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(8).keyCode | |
| , s = n(16) | |
| , r = n(357) | |
| , a = n(858) | |
| , o = n(405) | |
| , l = a.extend({ | |
| defaultClassName: "v-overlay", | |
| viewDirector: new r({ | |
| viewType: "overlay" | |
| }), | |
| initialize: function(e) { | |
| this.options = t.extend(this.options, e), | |
| this._closeByClickEnabled = !this.options.disableClose; | |
| var n = this._closeByClickEnabled && !this.options.disableOverlayClose; | |
| this._closeByClickOverlayEnabled = n | |
| }, | |
| constructor: function() { | |
| l.__super__.defaultClassName && (this.defaultClassName = t.sprintf("%s %s", l.__super__.defaultClassName, this.defaultClassName)), | |
| a.apply(this, arguments) | |
| }, | |
| render: function(e) { | |
| return e && e.length || this.options.ignoreCloseView || this.options.closeView === !1 || this.addView(new o, "close"), | |
| a.prototype.render.apply(this, arguments) | |
| }, | |
| display: function() { | |
| a.prototype.display.apply(this, arguments), | |
| this.viewDirector.openView(this) | |
| }, | |
| afterLoadOrWake: function() { | |
| this.addEventListener(this.options.main, "click", this._eCloseByClick.bind(this)), | |
| this.addEventListener(this.options.main, "mousedown", this._eStartClick.bind(this)), | |
| s.embedded || this.addEventListener(window, "keyup", this._eCloseByKey.bind(this)) | |
| }, | |
| afterWake: function() { | |
| this.afterLoadOrWake(), | |
| a.prototype.afterWake.apply(this, arguments) | |
| }, | |
| afterLoad: function() { | |
| this.afterLoadOrWake(), | |
| a.prototype.afterLoad.apply(this, arguments) | |
| }, | |
| _eCloseByKey: function(e) { | |
| if (!e.ctrlKey && e.keyCode === i.ESC && this._closeByClickEnabled) { | |
| var t = document.activeElement; | |
| if (t && t.form && t.blur) | |
| return void t.blur(); | |
| e.stopPropagation(), | |
| e.preventDefault(), | |
| this._close() | |
| } | |
| }, | |
| _eStartClick: function(e) { | |
| e.currentTarget === e.target && (this._overlayClick = !0) | |
| }, | |
| _eCloseByClick: function(e) { | |
| var t = this._closeByClickEnabled && this._closeByClickOverlayEnabled; | |
| e.currentTarget === e.target && this._overlayClick && t && (this._close(), | |
| this._overlayClick = !1) | |
| }, | |
| _close: function() { | |
| var e = this.getController(); | |
| this.options.onClose ? this.options.onClose(e) : e.close() | |
| }, | |
| setCloseByClickEnabled: function(e) { | |
| this._closeByClickEnabled = e | |
| } | |
| }); | |
| return l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 265: function(e, t, n) { | |
| var i = n(40)("match"); | |
| e.exports = function(e) { | |
| var t = /./; | |
| try { | |
| "/./"[e](t) | |
| } catch (n) { | |
| try { | |
| return t[i] = !1, | |
| !"/./"[e](t) | |
| } catch (s) {} | |
| } | |
| return !0 | |
| } | |
| }, | |
| 266: [5944, 95], | |
| 267: [5947, 269, 14, 73, 85, 60, 153, 430, 154, 29, 40], | |
| 268: [5948, 40], | |
| 269: function(e, t) { | |
| e.exports = !1 | |
| }, | |
| 270: function(e, t) { | |
| e.exports = Math.expm1 || function(e) { | |
| return 0 == (e = +e) ? e : e > -1e-6 && 1e-6 > e ? e + e * e / 2 : Math.exp(e) - 1 | |
| } | |
| }, | |
| 271: function(e, t) { | |
| e.exports = Math.sign || function(e) { | |
| return 0 == (e = +e) || e != e ? e : 0 > e ? -1 : 1 | |
| } | |
| }, | |
| 272: [5955, 29, 36, 39, 83], | |
| 273: [5959, 156, 84], | |
| 274: function(e, t, n) { | |
| var i = n(428) | |
| , s = n(84); | |
| e.exports = function(e, t, n) { | |
| if (i(t)) | |
| throw TypeError("String#" + n + " doesn't accept regex!"); | |
| return String(s(e)) | |
| } | |
| }, | |
| 305: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = i.Model.extend({ | |
| required: { | |
| email: !0, | |
| password: !1 | |
| }, | |
| expressions: { | |
| email: /^.+@.+\..+$/, | |
| password: /^.+$/ | |
| } | |
| }); | |
| e.exports = s | |
| }, | |
| 306: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(137) | |
| , u = i(l) | |
| , c = n(20) | |
| , d = i(c) | |
| , p = n(3); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "NewsletterSignUpSuccessDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| className: "newsletter-signup-done-dialog", | |
| hideClose: !0, | |
| onClose: this.props.onClose | |
| }, r["default"].createElement("div", { | |
| className: "head" | |
| }, r["default"].createElement(u["default"], { | |
| className: "confetti" | |
| }, r["default"].createElement("h1", null , (0, | |
| p.translate)("campaigns.newsletter.success_title")), r["default"].createElement("p", null , (0, | |
| p.translate)("campaigns.newsletter.success_message")), r["default"].createElement("p", null , (0, | |
| p.translate)("campaigns.newsletter.success_message_browse"))), r["default"].createElement("div", { | |
| className: "fade" | |
| })), r["default"].createElement(d["default"], { | |
| className: "btn-continue", | |
| onClick: this.props.onClose | |
| }, (0, | |
| p.translate)("campaigns.newsletter.view_selection"))) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 307: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = i.View.extend({ | |
| defaultClassName: "v-form", | |
| _expressions: {}, | |
| _modelValidationFields: [], | |
| addModelValidation: function(e, n) { | |
| t.each(n, function(t) { | |
| this.addModelValidationField(e, t) | |
| }, this) | |
| }, | |
| addModelValidationField: function(e, t) { | |
| this._modelValidationFields.push({ | |
| field: t, | |
| model: e | |
| }) | |
| }, | |
| validateFieldsAndShowErrors: function(e) { | |
| t.each(e || this.el.querySelectorAll(".inp-text"), function(e) { | |
| this.validateFieldAndShowError(e) | |
| }, this) | |
| }, | |
| validateFieldAndShowError: function(e) { | |
| var t = e.getAttribute("name"); | |
| this._validateField(e) ? this._removeErrorField(t) : this._drawErrorField(t, "Wil je hier iets invullen?") | |
| }, | |
| _validateFields: function() { | |
| var e = this.el.querySelectorAll(".inp-text") | |
| , n = t.map(e, this._validateField, this); | |
| return !!t.every(n) | |
| }, | |
| _validateField: function(e) { | |
| var n = e.getAttribute("name") | |
| , i = this._expressions[n] | |
| , s = t.findWhere(this._modelValidationFields, { | |
| field: e | |
| }); | |
| if (s) | |
| return !!s.model.isValid(e); | |
| if (i) { | |
| var r = new RegExp(this._expressions[n]); | |
| return !!r.test(e.value) | |
| } | |
| }, | |
| _drawErrorField: function(e, t) { | |
| var n = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2] | |
| , i = this.el.querySelector(".inp[name=" + e + "]"); | |
| this._removeErrorField(e); | |
| var s = document.createElement("div"); | |
| s.setAttribute("data-field", e), | |
| s.className = "error-message", | |
| n ? s.innerHTML = t : s.textContent = t, | |
| i.parentNode.appendChild(s), | |
| setTimeout(function() { | |
| s.classList.add("visible") | |
| }) | |
| }, | |
| _removeErrorField: function(e) { | |
| var t = ".error-message"; | |
| e && (t += "[data-field=" + e + "]"); | |
| var n = this.el.querySelector(t); | |
| n && n.parentNode.removeChild(n) | |
| } | |
| }); | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 311: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(16) | |
| , u = r(l) | |
| , c = n(118) | |
| , d = r(c) | |
| , p = n(170) | |
| , f = r(p) | |
| , h = n(533) | |
| , m = r(h) | |
| , g = n(4) | |
| , v = n(35) | |
| , y = r(v) | |
| , _ = n(13) | |
| , b = r(_) | |
| , w = n(369) | |
| , S = r(w) | |
| , k = ["b:tiles", "b:item", "b:pin", "b:acquisition", "b:issue-acquisition", "manifest", "b:search-context"] | |
| , E = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchAlertsSuccess", "fetchAlertsError", "fetchResultsSuccess", "fetchResultsError", "setAlert", "addAlertError", "deleteAlertSuccess") | |
| } | |
| return i(e, [{ | |
| key: "fetchAlerts", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? !1 : arguments[2]; | |
| return function(s) { | |
| s({ | |
| userId: e | |
| }); | |
| var r = new m["default"]; | |
| r.fetch({ | |
| url: u["default"].getLink("alerts", { | |
| user_id: e | |
| }), | |
| params: { | |
| amount: 100, | |
| page: 1 | |
| } | |
| }).then(function() { | |
| if (n.fetchAlertsSuccess(r), | |
| i) | |
| return n.fetchResultsSuccess({ | |
| results: new f["default"](null ,{ | |
| track: !0 | |
| }), | |
| query: t | |
| }); | |
| if (!r.models.length) | |
| return n.fetchResultsSuccess({ | |
| results: new f["default"](null ,{ | |
| track: !0 | |
| }), | |
| query: t | |
| }), | |
| g.history.navigate("alerts/manage/new", { | |
| trigger: !0 | |
| }); | |
| var e = void 0; | |
| if (t ? e = r.findWhere({ | |
| query: t | |
| }) : (b["default"].track("View Alerts"), | |
| e = r.findWhere({ | |
| id: 0 | |
| })), | |
| !e) | |
| return n.fetchAlertsError({ | |
| error: new y["default"](404) | |
| }); | |
| n.setAlert(e); | |
| var s = new f["default"](null ,{ | |
| track: !0 | |
| }); | |
| s.fetch({ | |
| url: e.getLink("results", {}, k), | |
| accept: "application/hal+json" | |
| }).then(function() { | |
| n.fetchResultsSuccess({ | |
| results: s, | |
| query: t | |
| }) | |
| }) | |
| })["catch"](function(e) { | |
| n.fetchAlertsError({ | |
| error: e | |
| }) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchResults", | |
| value: function(e) { | |
| var t = this; | |
| if (e) | |
| return b["default"].track("Try Alert", { | |
| query: e.toLowerCase() | |
| }), | |
| function(n) { | |
| n(e); | |
| var i = u["default"].getLink("search", { | |
| query: e | |
| }, k) | |
| , s = new f["default"](null ,{ | |
| track: !0 | |
| }); | |
| s.fetch({ | |
| url: i, | |
| accept: "application/hal+json" | |
| }).then(function() { | |
| t.fetchResultsSuccess({ | |
| results: s, | |
| query: e | |
| }) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchNextResults", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| e instanceof d["default"] && e.hasNext() && !e.isFetching() && (n(), | |
| e.fetchNext().then(function() { | |
| t.fetchResultsSuccess({ | |
| results: e | |
| }) | |
| })) | |
| } | |
| } | |
| }, { | |
| key: "setSearchQuery", | |
| value: function(e) { | |
| return function(t) { | |
| t(e) | |
| } | |
| } | |
| }, { | |
| key: "addAlert", | |
| value: function(e, t) { | |
| var n = this; | |
| t && (b["default"].track("Alert Add", { | |
| alert: t.toLowerCase() | |
| }), | |
| S["default"].add(e, t).then(function() { | |
| g.history.navigate("alerts/" + encodeURIComponent(t.toLowerCase()), { | |
| trigger: !0 | |
| }) | |
| })["catch"](function(e) { | |
| n.addAlertError({ | |
| error: e | |
| }) | |
| })) | |
| } | |
| }, { | |
| key: "editAlert", | |
| value: function(e, t) { | |
| e && e.save(t).then(function() { | |
| g.history.navigate("alerts/" + encodeURIComponent(e.get("query")), { | |
| trigger: !0 | |
| }) | |
| }) | |
| } | |
| }, { | |
| key: "deleteAlert", | |
| value: function(e) { | |
| var t = this; | |
| e && (b["default"].track("Alert Remove", { | |
| alert: e.get("query").toLowerCase() | |
| }), | |
| e.destroy().then(function() { | |
| g.history.navigate("alerts", { | |
| trigger: !0 | |
| }), | |
| t.deleteAlertSuccess() | |
| })) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(E), | |
| e.exports = t["default"] | |
| }, | |
| 312: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(66) | |
| , u = r(l) | |
| , c = n(65) | |
| , d = r(c) | |
| , p = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("changeEmailSuccess", "changeEmailError", "resendConfirmationEmailSuccess", "resendConfirmationEmailError") | |
| } | |
| return i(e, [{ | |
| key: "resetState", | |
| value: function() { | |
| return {} | |
| } | |
| }, { | |
| key: "changeEmail", | |
| value: function(e, t) { | |
| var n = this; | |
| d["default"].emailIsAvailable(e).then(function() { | |
| return t.saveProperty("email", e) | |
| }).then(function() { | |
| n.changeEmailSuccess({ | |
| email: e | |
| }) | |
| })["catch"](function(t) { | |
| n.changeEmailError({ | |
| error: t, | |
| email: e | |
| }) | |
| }) | |
| } | |
| }, { | |
| key: "resendConfirmationEmail", | |
| value: function(e) { | |
| var t = this; | |
| return u["default"].resendConfirmationEmail(e).then(function() { | |
| t.resendConfirmationEmailSuccess() | |
| })["catch"](function(e) { | |
| t.resendConfirmationEmailError({ | |
| error: e | |
| }) | |
| }), | |
| { | |
| userId: e | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(p), | |
| e.exports = t["default"] | |
| }, | |
| 313: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(8) | |
| , u = n(13) | |
| , c = r(u) | |
| , d = n(35) | |
| , p = r(d) | |
| , f = n(370) | |
| , h = function() { | |
| function e() { | |
| s(this, e) | |
| } | |
| return i(e, [{ | |
| key: "redeem", | |
| value: function(e, t) { | |
| var n = this; | |
| return function(i) { | |
| i({ | |
| code: e | |
| }), | |
| (0, | |
| f.validateCoupon)(e).then(function() { | |
| return t ? void (0, | |
| f.redeemCoupon)(e, t).then(function(e) { | |
| n.redeemSuccess({ | |
| data: e | |
| }) | |
| })["catch"](function(e) { | |
| var t = [l.COUPON_INVALID, l.COUPON_REDEEMED, l.COUPON_EXCEEDED_MAX, l.COUPON_EXPIRED, l.COUPON_NEW_USERS_ONLY]; | |
| if (!t.includes(e.type)) | |
| throw e; | |
| n.redeemError({ | |
| error: e | |
| }) | |
| }) : void n.redeemError({ | |
| error: new p["default"](l.AUTH_REQUIRED) | |
| }) | |
| })["catch"](function(e) { | |
| n.redeemError({ | |
| error: e | |
| }) | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "redeemSuccess", | |
| value: function(e) { | |
| var t = e.data; | |
| return c["default"].track("Redeem Coupon: Success", { | |
| type: "coupon-deeplink" | |
| }), | |
| { | |
| data: t | |
| } | |
| } | |
| }, { | |
| key: "redeemError", | |
| value: function(e) { | |
| var t = e.error; | |
| return c["default"].track("Redeem Coupon: Failed", { | |
| type: "coupon-deeplink", | |
| reason: t.type | |
| }), | |
| { | |
| error: t | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(h), | |
| e.exports = t["default"] | |
| }, | |
| 314: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(90) | |
| , u = r(l) | |
| , c = n(16) | |
| , d = r(c) | |
| , p = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchLatestIssueSuccess") | |
| } | |
| return i(e, [{ | |
| key: "fetchLatestIssue", | |
| value: function(e) { | |
| var t = this | |
| , n = d["default"].get("links").latest_issue.href.replace("{provider_id}", e) | |
| , i = new u["default"](null ,{ | |
| url: n | |
| }); | |
| return i.fetch().then(function() { | |
| return t.fetchLatestIssueSuccess(i) | |
| }), | |
| null | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(p), | |
| e.exports = t["default"] | |
| }, | |
| 315: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(146)["default"] | |
| , a = n(24)["default"] | |
| , o = n(1)["default"] | |
| , l = n(145)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(19) | |
| , c = o(u) | |
| , d = n(13) | |
| , p = o(d) | |
| , f = n(664) | |
| , h = l(f) | |
| , m = n(8) | |
| , g = n(118) | |
| , v = o(g) | |
| , y = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchResultsSuccess", "fetchResultsError", "fetchNextResultsSuccess", "fetchNextResultsError") | |
| } | |
| return i(e, [{ | |
| key: "fetchResults", | |
| value: function(e, t) { | |
| var n = this | |
| , i = arguments.length <= 2 || void 0 === arguments[2] ? null : arguments[2]; | |
| return function(s) { | |
| var o = { | |
| keyword: e, | |
| locale: t, | |
| date: i | |
| }; | |
| s({ | |
| query: o | |
| }), | |
| p["default"].track("Search", { | |
| query: e.toLowerCase() | |
| }), | |
| a.all([h.fetchItems(e, t, i), h.fetchProvidersIssue(e, t, 6)]).then(function(e) { | |
| var t = r(e, 2) | |
| , i = t[0] | |
| , s = t[1]; | |
| n.fetchResultsSuccess({ | |
| query: o, | |
| issues: s, | |
| items: i | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type === m.XHR_STATUS) | |
| return n.fetchResultsError({ | |
| query: o, | |
| error: e | |
| }); | |
| throw e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "fetchNextResults", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| e instanceof v["default"] && e.hasNext() && !e.isFetching() && (n(), | |
| e.fetchNext().then(function() { | |
| t.fetchNextResultsSuccess({ | |
| items: e | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type !== m.STATUS_PENDING) { | |
| if (e.type === m.XHR_STATUS) | |
| return void t.fetchNextResultsError({ | |
| error: e | |
| }); | |
| throw e | |
| } | |
| })) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = c["default"].createActions(y), | |
| e.exports = t["default"] | |
| }, | |
| 316: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(19) | |
| , o = r(a) | |
| , l = n(66) | |
| , u = r(l) | |
| , c = n(8) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.generateActions("fetchUserDetailsSuccess", "fetchUserDetailsError") | |
| } | |
| return i(e, [{ | |
| key: "fetchUserDetails", | |
| value: function(e) { | |
| var t = this; | |
| return function(n) { | |
| n({ | |
| userId: e | |
| }), | |
| u["default"].getUser(e).then(function(n) { | |
| t.fetchUserDetailsSuccess({ | |
| userId: e, | |
| data: n | |
| }) | |
| })["catch"](function(n) { | |
| if (n.type === c.XHR_STATUS && 404 === n.status) | |
| return t.fetchUserDetailsError({ | |
| userId: e | |
| }); | |
| throw n | |
| }) | |
| } | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = o["default"].createActions(d), | |
| e.exports = t["default"] | |
| }, | |
| 317: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = n(121) | |
| , r = i.Collection.extend({ | |
| model: s, | |
| key: "_embedded.b:posts", | |
| parse: function(e) { | |
| return e.count && (this.total = e.count), | |
| this.parseHal(e) | |
| }, | |
| getPostByUserId: function(e) { | |
| return this.find(function(t) { | |
| return t.getEmbedded("b:user").id === e ? t : void 0 | |
| }) | |
| } | |
| }); | |
| e.exports = r | |
| }, | |
| 318: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(4) | |
| , r = n(91) | |
| , a = s.Collection.extend({ | |
| model: r, | |
| type: "items", | |
| key: "_embedded.items", | |
| parse: function(e) { | |
| return e.total && (this.total = e.total), | |
| this.options.exclude && (e._embedded.items = i.filter(e._embedded.items, function(e) { | |
| return e.id !== this.options.exclude | |
| }, this)), | |
| this.parseHal(e) | |
| }, | |
| comparator: function(e) { | |
| return -e.get("date") | |
| } | |
| }); | |
| e.exports = a | |
| }, | |
| 319: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(16) | |
| , o = i(a) | |
| , l = n(670) | |
| , u = i(l) | |
| , c = r["default"].Collection.extend({ | |
| model: u["default"], | |
| key: "_embedded.notifications", | |
| constructor: function(e) { | |
| this.userId = e, | |
| r["default"].Collection.call(this) | |
| }, | |
| comparator: function(e) { | |
| return -e.id | |
| }, | |
| parse: function(e) { | |
| return this.parseHal(e) | |
| }, | |
| sync: function(e, t, n) { | |
| return this.urlTemplate = o["default"].get("links").user_notifications.href, | |
| t.url = this.urlTemplate.replace("{user_id}", this.userId), | |
| r["default"].Collection.prototype.sync.call(this, e, t, n) | |
| } | |
| }); | |
| t["default"] = c, | |
| e.exports = t["default"] | |
| }, | |
| 321: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"] | |
| , s = n(2) | |
| , r = i(s) | |
| , a = n(13) | |
| , o = i(a) | |
| , l = n(12) | |
| , u = i(l) | |
| , c = n(77) | |
| , d = i(c) | |
| , p = n(20) | |
| , f = i(p) | |
| , h = n(11) | |
| , m = i(h) | |
| , g = n(30) | |
| , v = i(g) | |
| , y = n(374) | |
| , _ = i(y) | |
| , b = n(17) | |
| , w = i(b) | |
| , S = n(86) | |
| , k = i(S) | |
| , E = n(28) | |
| , C = i(E) | |
| , T = r["default"].createClass({ | |
| displayName: "Cover", | |
| mixins: [k["default"]], | |
| propTypes: { | |
| issue: r["default"].PropTypes.object.isRequired, | |
| onLoad: r["default"].PropTypes.func | |
| }, | |
| render: function() { | |
| var e, t; | |
| return u["default"].getUser() && (t = (0, | |
| m["default"])({ | |
| favourite: !0, | |
| "l-favourite": this.props.issue.get("favourite") | |
| }), | |
| e = r["default"].createElement(f["default"], { | |
| className: t, | |
| onClick: this._toggleFavourite | |
| })), | |
| r["default"].createElement("div", { | |
| className: "v-cover cover-image" | |
| }, r["default"].createElement(C["default"], { | |
| href: "/issue/" + this.props.issue.get("provider").id + "/" + this.props.issue.id | |
| }, r["default"].createElement(d["default"], { | |
| animate: w["default"].isDesktop(), | |
| src: this.props.issue.getCoverURL(), | |
| width: this.props.issue.getCoverWidth(), | |
| height: this.props.issue.getCoverHeight(), | |
| onLoad: this.props.onLoad | |
| })), e) | |
| }, | |
| _toggleFavourite: function(e) { | |
| var t = this; | |
| e.preventDefault(); | |
| var n = this.props.issue.get("provider").id | |
| , i = { | |
| type: "kiosk", | |
| issue_id: this.props.issue.id, | |
| provider: v["default"].getProviderOrDefault(n).get("name") | |
| }; | |
| this.props.issue.get("favourite") ? _["default"].unfavorite(u["default"].getUser(), n).then(function() { | |
| o["default"].track("Remove Favorite", i), | |
| t.props.issue.set("favourite", !1), | |
| t.forceUpdate() | |
| }).done() : _["default"].favorite(u["default"].getUser(), n).then(function() { | |
| o["default"].track("Add Favorite", i), | |
| t.props.issue.set("favourite", !0), | |
| t.forceUpdate() | |
| }).done() | |
| } | |
| }); | |
| e.exports = T | |
| }, | |
| 322: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = r["default"].createClass({ | |
| displayName: "LoadingView", | |
| propTypes: { | |
| center: r["default"].PropTypes.bool, | |
| square: r["default"].PropTypes.bool | |
| }, | |
| render: function() { | |
| var e = (0, | |
| o["default"])("v-loading", { | |
| center: this.props.center | |
| }, { | |
| square: this.props.square | |
| }); | |
| return r["default"].createElement("div", { | |
| className: e | |
| }) | |
| } | |
| }); | |
| t["default"] = l, | |
| e.exports = t["default"] | |
| }, | |
| 323: function(e, t, n) { | |
| "use strict"; | |
| var i = n(17) | |
| , s = n(2) | |
| , r = n(86) | |
| , a = n(91) | |
| , o = n(102) | |
| , l = n(326) | |
| , u = s.createClass({ | |
| displayName: "ManifestPopover", | |
| mixins: [r], | |
| getInitialState: function() { | |
| return { | |
| item: null | |
| } | |
| }, | |
| componentDidMount: function() { | |
| var e = this | |
| , t = new a({ | |
| id: this.props.item.id | |
| },{ | |
| track: !0 | |
| }); | |
| t.fetch().then(function() { | |
| e.isMounted() && e.setState({ | |
| item: t | |
| }) | |
| }) | |
| }, | |
| _onScroll: function(e) { | |
| var t = "Android Browser" === window.BrowserDetect.browser; | |
| t && parseFloat(window.BrowserDetect.version) <= 4.3 || this.props.onClose(e) | |
| }, | |
| render: function() { | |
| return this.state.item ? s.createElement(l, { | |
| layout: "manifest", | |
| x: this.props.x, | |
| y: this.props.y, | |
| offset: 20, | |
| mobile: i.isMobile(), | |
| viewportOffsetTop: 112, | |
| viewportOffsetBottom: 0, | |
| viewportOffsetLeft: 40, | |
| viewportOffsetRight: 40, | |
| onClose: this.props.onClose, | |
| onScroll: this._onScroll, | |
| onMouseEnter: this.props.onMouseEnter, | |
| onMouseLeave: this.props.onMouseLeave | |
| }, s.createElement(o, { | |
| item: this.state.item, | |
| analytics: { | |
| type: this.props.from | |
| }, | |
| hideImage: !0, | |
| showButton: i.isMobile() | |
| })) : s.createElement("span", null ) | |
| } | |
| }); | |
| e.exports = u | |
| }, | |
| 324: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(566) | |
| , p = l(d) | |
| , f = n(356) | |
| , h = l(f) | |
| , m = n(3) | |
| , g = n(18) | |
| , v = l(g) | |
| , y = n(11) | |
| , _ = l(y) | |
| , b = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_getTitle", | |
| value: function(e) { | |
| return (0, | |
| m.translate)("post.posted_at", [e.get("full_name"), (0, | |
| v["default"])(this.props.post.get("created_at")).format("LLLL")]) | |
| } | |
| }, { | |
| key: "_renderUserName", | |
| value: function() { | |
| var e = this.props.post.getEmbedded("b:manager") | |
| , t = this.props.post.getEmbedded("b:user") | |
| , n = t; | |
| return e && (n = e), | |
| c["default"].createElement("span", null , c["default"].createElement(p["default"], { | |
| user: n, | |
| title: this._getTitle(n) | |
| })) | |
| } | |
| }, { | |
| key: "_renderText", | |
| value: function() { | |
| var e = this.props.post.get("text"); | |
| if (!e) | |
| return !1; | |
| var t = (0, | |
| h["default"])(this.props.post.get("text")); | |
| return c["default"].createElement("div", { | |
| className: "text", | |
| dangerouslySetInnerHTML: { | |
| __html: t | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e, t = (0, | |
| _["default"])((e = {}, | |
| o(e, this.props.className, this.props.className), | |
| o(e, "v-mini-post", !0), | |
| e)); | |
| return c["default"].createElement("div", { | |
| className: t | |
| }, this._renderText(), c["default"].createElement("div", { | |
| className: "user" | |
| }, this._renderUserName())) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| post: c["default"].PropTypes.object.isRequired, | |
| className: c["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 325: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(11) | |
| , l = i(o) | |
| , u = n(28) | |
| , c = (i(u), | |
| n(12)) | |
| , d = i(c) | |
| , p = n(115) | |
| , f = i(p) | |
| , h = r["default"].createClass({ | |
| displayName: "PinButton", | |
| propTypes: { | |
| onChange: r["default"].PropTypes.func, | |
| item: r["default"].PropTypes.object.isRequired, | |
| analytics: r["default"].PropTypes.object.isRequired, | |
| marked: r["default"].PropTypes.bool, | |
| hideText: r["default"].PropTypes.bool | |
| }, | |
| _onClick: function(e) { | |
| var t = this; | |
| e.preventDefault(); | |
| var n = !this.props.marked; | |
| f["default"].pinItem(d["default"].getUser(), this.props.item, n, this.props.analytics), | |
| this.props.onChange && this.props.onChange(n), | |
| this.props.item.getRelation("b:pin").then(function(e) { | |
| e.set("pinned", n), | |
| t.props.item.trigger("change", t.props.item) | |
| }) | |
| }, | |
| _renderText: function() { | |
| return this.props.hideText ? void 0 : (0, | |
| a.translate)("app.pin.button") | |
| }, | |
| render: function() { | |
| var e = (0, | |
| l["default"])({ | |
| icon: !0, | |
| marked: this.props.marked | |
| }); | |
| return r["default"].createElement("a", { | |
| className: "btn-pin", | |
| onClick: this._onClick | |
| }, r["default"].createElement("span", { | |
| className: e | |
| }), this._renderText()) | |
| } | |
| }); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 326: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(2) | |
| , r = n(117) | |
| , a = n(8).keyCode | |
| , o = n(11) | |
| , l = s.createClass({ | |
| displayName: "PortalPopover", | |
| mixins: [r("popover-portal")], | |
| getDefaultProps: function() { | |
| return { | |
| x: 0, | |
| y: 0, | |
| viewport: window, | |
| mobile: !1 | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| x: 0, | |
| y: 0, | |
| vertical: "left", | |
| horizontal: "top" | |
| } | |
| }, | |
| componentWillMount: function() { | |
| this.setState({ | |
| x: this.props.x, | |
| y: this.props.y, | |
| offset: 0, | |
| viewportOffsetTop: 0, | |
| viewportOffsetBottom: 0, | |
| viewportOffsetLeft: 0, | |
| viewportOffsetRight: 0 | |
| }) | |
| }, | |
| componentDidMount: function() { | |
| this.props.mobile || this.setState(this.getDimensions()), | |
| window.addEventListener("touchstart", this._considerClose), | |
| window.addEventListener("keyup", this._eKeyUp) | |
| }, | |
| componentWillUnmount: function() { | |
| window.removeEventListener("touchstart", this._considerClose), | |
| window.removeEventListener("keyup", this._eKeyUp) | |
| }, | |
| _eKeyUp: function(e) { | |
| e.ctrlKey || e.keyCode === a.ESC && this._close() | |
| }, | |
| _considerClose: function(e) { | |
| var t = this.getLayerDOMNode(); | |
| e.target === t || t.contains(e.target) || this._close() | |
| }, | |
| _close: function() { | |
| this.props.onClose && this.props.onClose(), | |
| this.unrenderLayer() | |
| }, | |
| getDimensions: function() { | |
| var e = this.getViewportBoundingRect() | |
| , t = e.top + this.props.viewportOffsetTop | |
| , n = e.bottom - this.props.viewportOffsetBottom | |
| , i = e.left + this.props.viewportOffsetLeft | |
| , s = e.right - this.props.viewportOffsetRight | |
| , r = this.getLayerDOMNode().getBoundingClientRect() | |
| , a = parseInt(this.getLayerDOMNode().offsetWidth, 10) | |
| , o = parseInt(this.getLayerDOMNode().offsetHeight, 10) | |
| , l = r.top | |
| , u = r.bottom | |
| , c = r.left | |
| , d = r.right | |
| , p = c + this.props.offset | |
| , f = l + this.props.offset; | |
| return o > n - t && (o = n - t, | |
| u = l + o), | |
| a > s - i && (a = s - i, | |
| d = c + a), | |
| t > l && (f = t), | |
| u > n && (f = n - o - this.props.offset), | |
| i > c && (p = i + this.props.offset), | |
| d > s && (p = Math.min(s - a, p - a - 2 * this.props.offset)), | |
| { | |
| x: Math.round(p), | |
| y: Math.round(f), | |
| width: a, | |
| height: o | |
| } | |
| }, | |
| getViewportBoundingRect: function() { | |
| return this.props.viewport === window ? { | |
| left: 0, | |
| right: window.innerWidth, | |
| top: 0, | |
| bottom: window.innerHeight | |
| } : this.props.viewport.getBoundingClientRect() | |
| }, | |
| render: function() { | |
| return s.createElement("span", null ) | |
| }, | |
| renderLayer: function() { | |
| var e, t = o(i({ | |
| "v-portal-popover": !0 | |
| }, "l-" + this.props.layout, this.props.layout)), n = { | |
| position: "fixed", | |
| zIndex: 1e5 | |
| }; | |
| return this.props.mobile ? (n.top = 0, | |
| n.left = 0, | |
| n.right = 0, | |
| n.bottom = 0, | |
| e = s.createElement("div", { | |
| className: "close-area", | |
| onClick: this.props.onClose | |
| })) : (n.left = this.state.x + "px", | |
| n.top = this.state.y + "px", | |
| this.state.height && (n.height = this.state.height + "px"), | |
| this.state.width && (n.width = this.state.width + "px")), | |
| s.createElement("div", { | |
| className: t, | |
| style: n, | |
| onMouseEnter: this.props.onMouseEnter, | |
| onMouseLeave: this.props.onMouseLeave | |
| }, e, this.props.children) | |
| } | |
| }); | |
| e.exports = l | |
| }, | |
| 327: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"] | |
| , s = n(5) | |
| , r = i(s) | |
| , a = n(2) | |
| , o = i(a) | |
| , l = n(568) | |
| , u = i(l) | |
| , c = n(554) | |
| , d = i(c) | |
| , p = o["default"].createClass({ | |
| displayName: "PostFacePile", | |
| propTypes: { | |
| onSelect: o["default"].PropTypes.func.isRequired, | |
| amount: o["default"].PropTypes.number, | |
| activePost: o["default"].PropTypes.oneOfType([o["default"].PropTypes.bool, o["default"].PropTypes.object]), | |
| posts: o["default"].PropTypes.array.isRequired | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| amount: 2 | |
| } | |
| }, | |
| _onSelectPost: function(e, t) { | |
| this.props.onSelect(e, t) | |
| }, | |
| render: function() { | |
| var e = this | |
| , t = this.props.amount; | |
| this.props.posts.length > t && (t -= 1); | |
| var n = r["default"].take(this.props.posts, t) | |
| , i = r["default"].drop(this.props.posts, t) | |
| , s = n.map(function(t) { | |
| return o["default"].createElement(u["default"], { | |
| post: t, | |
| key: t.id, | |
| active: t === e.props.activePost, | |
| onSelect: e._onSelectPost, | |
| showTooltip: !e.props.onSelect | |
| }) | |
| }) | |
| , a = void 0; | |
| return i.length && (a = o["default"].createElement(d["default"], { | |
| posts: i, | |
| active: i.indexOf(this.props.activePost) > -1 | |
| })), | |
| o["default"].createElement("div", { | |
| className: "v-facepile" | |
| }, s, a) | |
| } | |
| }); | |
| e.exports = p | |
| }, | |
| 328: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(15) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = i(l) | |
| , c = n(11) | |
| , d = i(c) | |
| , p = n(171) | |
| , f = i(p) | |
| , h = n(57) | |
| , m = i(h) | |
| , g = n(324) | |
| , v = i(g) | |
| , y = r["default"].createClass({ | |
| displayName: "PostsTooltipDropdown", | |
| propTypes: { | |
| posts: r["default"].PropTypes.array.isRequired, | |
| className: r["default"].PropTypes.string | |
| }, | |
| mixins: [(0, | |
| m["default"])("#tooltip-portal")], | |
| _timer: null , | |
| _delayDropdown: function() { | |
| this._clearDelay(), | |
| this._timer = setTimeout(function() { | |
| this.openDropdown(), | |
| this._timer = null | |
| } | |
| .bind(this), 200) | |
| }, | |
| _clearDelay: function() { | |
| clearTimeout(this._timer) | |
| }, | |
| _closeDropdown: function() { | |
| this._clearDelay(), | |
| this.closeDropdown() | |
| }, | |
| _toggleDropdown: function() { | |
| this._clearDelay(), | |
| this.toggleDropdown() | |
| }, | |
| _truncateMessage: function(e) { | |
| return 1 === e ? r["default"].createElement("p", null , u["default"].locale.tooltip.one_more) : r["default"].createElement("p", null , u["default"].translate("tooltip.multiple_more", [e])) | |
| }, | |
| _setMouseMoveHandler: function() { | |
| var e = this; | |
| window.addEventListener("mousemove", this._doubtClose), | |
| setTimeout(function() { | |
| e.isMounted() && e.refs.tooltip && e.refs.tooltip.getLayerDOMNode() && (e._elementBoundingRect = o["default"].findDOMNode(e).getBoundingClientRect(), | |
| e._tooltipBoundingRect = e.refs.tooltip.getLayerDOMNode().getBoundingClientRect()) | |
| }) | |
| }, | |
| _removeMouseMoveHandler: function() { | |
| this._elementBoundingRect = null , | |
| this._tooltipBoundingRect = null , | |
| window.removeEventListener("mousemove", this._doubtClose) | |
| }, | |
| _doubtClose: function(e) { | |
| if (!this._elementBoundingRect || !this._tooltipBoundingRect) | |
| return void this._closeDropdown(); | |
| var t = e.clientX >= this._elementBoundingRect.left && e.clientX <= this._elementBoundingRect.right && e.clientY >= this._elementBoundingRect.top && e.clientY <= this._elementBoundingRect.bottom | |
| , n = e.clientX >= this._tooltipBoundingRect.left && e.clientX <= this._tooltipBoundingRect.right && e.clientY >= this._tooltipBoundingRect.top && e.clientY <= this._tooltipBoundingRect.bottom; | |
| t || n || this._closeDropdown() | |
| }, | |
| componentWillUnmount: function() { | |
| this._removeMouseMoveHandler() | |
| }, | |
| render: function() { | |
| var e = (0, | |
| d["default"])([this.props.className, { | |
| "s-open": this.state.open | |
| }]) | |
| , t = this.props.posts.sort(function(e) { | |
| return e.get("text") ? -1 : 1 | |
| }) | |
| , n = void 0; | |
| return this.state.open && !this.props.disabled ? (n = r["default"].createElement(f["default"], { | |
| className: "tooltip", | |
| truncate: this._truncateMessage, | |
| onScroll: this._closeDropdown, | |
| ref: "tooltip", | |
| onClose: this._closeDropdown | |
| }, t.map(function(e) { | |
| return r["default"].createElement(v["default"], { | |
| post: e, | |
| key: e.id | |
| }) | |
| })), | |
| this._setMouseMoveHandler()) : this._removeMouseMoveHandler(), | |
| r["default"].createElement("div", { | |
| className: e, | |
| onClick: this.openDropdown, | |
| onMouseEnter: this._delayDropdown, | |
| onMouseLeave: this._doubtClose | |
| }, this.props.children, n) | |
| } | |
| }); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 329: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return (0, | |
| d["default"])("reward-giver", { | |
| "is-blendle": e === p.BLENDLE_COUPON | |
| }) | |
| } | |
| var s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(3) | |
| , l = n(18) | |
| , u = s(l) | |
| , c = n(11) | |
| , d = s(c) | |
| , p = n(8) | |
| , f = n(30) | |
| , h = s(f); | |
| t["default"] = a["default"].createClass({ | |
| displayName: "RewardsTable", | |
| propTypes: { | |
| rewards: a["default"].PropTypes.array.isRequired, | |
| hideGivers: a["default"].PropTypes.bool.isRequired | |
| }, | |
| _renderGiver: function(e) { | |
| return e ? a["default"].createElement("div", { | |
| className: i(e) | |
| }, (0, | |
| o.translateElement)(a["default"].createElement("span", null ), "dialogues.verified_account.reward.giver", [e], !1)) : null | |
| }, | |
| _renderSubscriptionRow: function(e) { | |
| var t = this | |
| , n = u["default"].duration(1e3 * e.subscription_duration).humanize() | |
| , i = h["default"].getProvider(e.provider_uid); | |
| return a["default"].createElement("tr", null , a["default"].createElement("td", null , a["default"].createElement("div", { | |
| className: "reward-content" | |
| }, a["default"].createElement("div", { | |
| className: "reward-label subscription-provider", | |
| onClick: function() { | |
| return t.props.onClickProvider(i.get("id")) | |
| } | |
| }, i.get("name")), this._renderGiver(e.name))), a["default"].createElement("td", null , a["default"].createElement("div", { | |
| className: "reward-content" | |
| }, (0, | |
| o.translateElement)(a["default"].createElement("span", null ), "dialogues.verified_account.reward.subscription", [n], !1)))) | |
| }, | |
| _renderMoneyRow: function(e) { | |
| return a["default"].createElement("tr", null , a["default"].createElement("td", null , a["default"].createElement("div", { | |
| className: "reward-content" | |
| }, a["default"].createElement("div", { | |
| className: "reward-label" | |
| }, (0, | |
| o.translateElement)(a["default"].createElement("span", null ), "dialogues.verified_account.reward.money", !1)), this._renderGiver(e.name))), a["default"].createElement("td", null , a["default"].createElement("div", { | |
| className: "reward-content" | |
| }, (0, | |
| o.formatCurrency)(e.amount)))) | |
| }, | |
| _renderRows: function() { | |
| var e = this; | |
| return this.props.rewards.map(function(t) { | |
| return "subscription" === t.reward_type ? e._renderSubscriptionRow(t) : e._renderMoneyRow(t) | |
| }) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| d["default"])("v-rewards-table", { | |
| "hide-givers": this.props.hideGivers | |
| }); | |
| return a["default"].createElement("table", { | |
| className: e | |
| }, a["default"].createElement("tbody", null , this._renderRows())) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 330: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(21)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(112) | |
| , p = l(d) | |
| , f = n(123) | |
| , h = l(f) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentWillMount", | |
| value: function() { | |
| var e = this._getOptions(this.props) | |
| , t = e.options | |
| , n = e.selected; | |
| this._view = new h["default"](t,o({}, this.props, { | |
| selected: n | |
| })) | |
| } | |
| }, { | |
| key: "componentDidUpdate", | |
| value: function(e) { | |
| this.props.selectedLabel && this.props.selectedLabel !== e.selectedLabel && this._view.setSelectedTitle(this.props.selectedLabel, "custom-label"); | |
| var t = this._getOptions(this.props) | |
| , n = t.options | |
| , i = t.selected; | |
| e.children && e.children.length === this.props.children.length || this._view.setItems(n), | |
| e.selected !== this.props.selected && this._view.setSelected(i), | |
| this._view.render() | |
| } | |
| }, { | |
| key: "_getOptions", | |
| value: function(e) { | |
| var t = {} | |
| , n = null ; | |
| return c["default"].Children.map(e.children, function(e) { | |
| t[e.props.value] = e.props.children, | |
| e.props.selected && (n = e.props.value) | |
| }), | |
| { | |
| options: t, | |
| selected: n | |
| } | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return c["default"].createElement(p["default"], { | |
| view: this._view | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| children: c["default"].PropTypes.any, | |
| name: c["default"].PropTypes.string, | |
| selectedLabel: c["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 331: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(11) | |
| , l = s(o) | |
| , u = a["default"].createClass({ | |
| displayName: "ToggleButton", | |
| propTypes: { | |
| onToggle: a["default"].PropTypes.func.isRequired, | |
| checked: a["default"].PropTypes.bool.isRequired, | |
| className: a["default"].PropTypes.string | |
| }, | |
| render: function() { | |
| var e = (0, | |
| l["default"])("l-toggle", "v-checkbox", { | |
| "l-checked": this.props.checked | |
| }, { | |
| "l-unchecked": !this.props.checked | |
| }, i({}, this.props.className, this.props.className)); | |
| return a["default"].createElement("div", { | |
| className: e, | |
| onClick: this.props.onToggle | |
| }, a["default"].createElement("div", { | |
| className: "btn-toggle" | |
| })) | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 332: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(573) | |
| , d = o(c) | |
| , p = n(572) | |
| , f = o(p) | |
| , h = n(18) | |
| , m = o(h) | |
| , g = n(11) | |
| , v = o(g) | |
| , y = n(3) | |
| , _ = o(y) | |
| , b = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentWillMount", | |
| value: function() { | |
| var e = (0, | |
| m["default"])(this.props.date, "YYYY-MM-DD"); | |
| this.setState({ | |
| date: this.props.date, | |
| month: this.props.month || e.month() + 1, | |
| year: this.props.year || e.year(), | |
| limitReached: this._limitReached(this.props.date) | |
| }) | |
| } | |
| }, { | |
| key: "_onNavigateMonth", | |
| value: function(e, t) { | |
| t.preventDefault(), | |
| t.target.classList.contains("disabled") || this._onChangeMonth(e) | |
| } | |
| }, { | |
| key: "_onChangeMonth", | |
| value: function(e) { | |
| var t = (0, | |
| m["default"])(this.state.date).add(e, "month").startOf("month"); | |
| this.setState({ | |
| date: t, | |
| year: t.year(), | |
| month: t.month() + 1, | |
| limitReached: this._limitReached(t) | |
| }), | |
| this.props.onChangeMonth(t) | |
| } | |
| }, { | |
| key: "_onSelectDay", | |
| value: function(e) { | |
| this.setState({ | |
| selected: e.format("YYYY-MM-DD") | |
| }), | |
| this.props.onSelect(e) | |
| } | |
| }, { | |
| key: "_limitReached", | |
| value: function(e) { | |
| var t = (0, | |
| m["default"])(e).startOf("month").add(1, "months"); | |
| return t.isAfter((0, | |
| m["default"])()) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this.state.year + "-" + this.state.month + "-1" | |
| , t = (0, | |
| m["default"])(e, "YYYY-MM-DD").format("MMMM, YYYY") | |
| , n = (0, | |
| v["default"])({ | |
| "btn-next": !0, | |
| disabled: this.state.limitReached | |
| }); | |
| return u["default"].createElement("div", { | |
| className: "v-datepicker s-success" | |
| }, u["default"].createElement("div", { | |
| className: "datepicker-header" | |
| }, u["default"].createElement("a", { | |
| href: "#", | |
| className: "btn-previous", | |
| onClick: this._onNavigateMonth.bind(this, -1) | |
| }, _["default"].translate("elements.datepicker.previous_month")), u["default"].createElement("a", { | |
| href: "#", | |
| className: n, | |
| onClick: this._onNavigateMonth.bind(this, 1) | |
| }, _["default"].translate("elements.datepicker.next_month")), u["default"].createElement("p", { | |
| className: "current-month" | |
| }, t)), u["default"].createElement("table", { | |
| className: "datepicker-body" | |
| }, u["default"].createElement(d["default"], null ), u["default"].createElement(f["default"], { | |
| year: this.state.year, | |
| month: this.state.month, | |
| selected: this.props.date, | |
| onSelect: this._onSelectDay.bind(this), | |
| activeDates: this.props.activeDates, | |
| dateRange: this.props.dateRange, | |
| fromDate: this.props.fromDate, | |
| toDate: this.props.toDate | |
| }))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| date: u["default"].PropTypes.object, | |
| onSelect: u["default"].PropTypes.func, | |
| onChangeMonth: u["default"].PropTypes.func, | |
| activeDates: u["default"].PropTypes.array, | |
| dateRange: u["default"].PropTypes.bool, | |
| fromDate: u["default"].PropTypes.object, | |
| toDate: u["default"].PropTypes.object, | |
| month: u["default"].PropTypes.number, | |
| year: u["default"].PropTypes.number | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| date: (0, | |
| m["default"])(), | |
| dateRange: !1, | |
| fromDate: null , | |
| toDate: null , | |
| onChangeMonth: function() {}, | |
| onSelect: function() {} | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 333: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(137) | |
| , o = i(a) | |
| , l = n(33) | |
| , u = i(l) | |
| , c = n(329) | |
| , d = i(c) | |
| , p = n(20) | |
| , f = i(p) | |
| , h = n(3); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "Coupon", | |
| propTypes: { | |
| rewards: r["default"].PropTypes.array.isRequired, | |
| onClickButton: r["default"].PropTypes.func.isRequired | |
| }, | |
| _onClickButton: function(e) { | |
| this.props.onClickButton(e) | |
| }, | |
| render: function() { | |
| return r["default"].createElement(u["default"], { | |
| className: "coupon-dialogue" | |
| }, r["default"].createElement(o["default"], null , r["default"].createElement("h2", null , (0, | |
| h.translate)("app.success.it_worked")), r["default"].createElement("p", null , (0, | |
| h.translate)("coupons.redeemed.dialog_message")), r["default"].createElement(d["default"], { | |
| rewards: this.props.rewards, | |
| hideGivers: !1, | |
| onClickProvider: this.props.onClickProvider | |
| }), r["default"].createElement(f["default"], { | |
| className: "btn-fullwidth btn-green", | |
| onClick: this._onClickButton | |
| }, (0, | |
| h.translate)("supersympathiek")))) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 334: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(112) | |
| , d = o(c) | |
| , p = n(507) | |
| , f = o(p) | |
| , h = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentWillMount", | |
| value: function() { | |
| var e = this; | |
| this.view = new f["default"]({ | |
| text: this.props.buttonText, | |
| className: this.props.className || "v-facebook-connect", | |
| onConnect: function(t, n) { | |
| "signIn" === t ? e.props.onLogin && e.props.onLogin() : e.props.onSignUp && e.props.onSignUp(n), | |
| e.props.onConnect && e.props.onConnect(t) | |
| }, | |
| onFail: function(t) { | |
| e.props.onError && e.props.onError(t) | |
| }, | |
| signUpContext: this.props.signUpContext | |
| }) | |
| } | |
| }, { | |
| key: "_renderError", | |
| value: function() { | |
| return this.props.error ? u["default"].createElement("div", { | |
| className: "error-message visible" | |
| }, this.props.error) : void 0 | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: this.props.className | |
| }, u["default"].createElement(d["default"], { | |
| view: this.view | |
| }), this._renderError()) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onLogin: u["default"].PropTypes.func, | |
| onSignUp: u["default"].PropTypes.func, | |
| onConnect: u["default"].PropTypes.func, | |
| onError: u["default"].PropTypes.func, | |
| error: u["default"].PropTypes.string, | |
| className: u["default"].PropTypes.string, | |
| buttonText: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 335: function(e, t) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = { | |
| debouncedEnterElement: function(e) { | |
| var t = this; | |
| clearTimeout(this._hideManifestTimeout), | |
| clearTimeout(this._showManifestTimeout); | |
| var n = Number(e.clientX) | |
| , i = Number(e.clientY); | |
| this._showManifestTimeout = setTimeout(function() { | |
| t.enterElement({ | |
| clientX: n, | |
| clientY: i | |
| }) | |
| }, 150) | |
| }, | |
| debouncedMoveElement: function(e) { | |
| var t = this; | |
| if (clearTimeout(this._hideManifestTimeout), | |
| clearTimeout(this._showManifestTimeout), | |
| !(e && "Android" === window.BrowserDetect.device || e && "Windows Phone" === window.BrowserDetect.device)) { | |
| var n = Number(e.clientX) | |
| , i = Number(e.clientY); | |
| this._showManifestTimeout = setTimeout(function() { | |
| t.enterElement({ | |
| clientX: n, | |
| clientY: i | |
| }) | |
| }, 150) | |
| } | |
| }, | |
| debouncedLeaveElement: function(e) { | |
| var t = this; | |
| clearTimeout(this._hideManifestTimeout), | |
| clearTimeout(this._showManifestTimeout), | |
| this.setState({ | |
| inElement: !1 | |
| }), | |
| this._hideManifestTimeout = setTimeout(function() { | |
| return t.leaveElement(e) | |
| }, 300) | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 336: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(2) | |
| , r = n(15) | |
| , a = n(11) | |
| , o = n(640) | |
| , l = n(322) | |
| , u = function(e) { | |
| return { | |
| propTypes: { | |
| className: s.PropTypes.string, | |
| loading: s.PropTypes.bool, | |
| disabled: s.PropTypes.bool, | |
| showButtons: s.PropTypes.bool, | |
| mobile: s.PropTypes.bool, | |
| pageIndex: s.PropTypes.number, | |
| scrollPosition: s.PropTypes.number, | |
| screenOffset: s.PropTypes.number, | |
| maxHeight: s.PropTypes.number, | |
| onEnd: s.PropTypes.func, | |
| onNearEnd: s.PropTypes.func, | |
| onScroll: s.PropTypes.func, | |
| onElementsVisible: s.PropTypes.func, | |
| onNextItem: s.PropTypes.func, | |
| onPrevItem: s.PropTypes.func, | |
| onNextPage: s.PropTypes.func, | |
| onPrevPage: s.PropTypes.func | |
| }, | |
| getChildren: function() { | |
| var t = this; | |
| return s.Children.map((this.props.children || []).filter(function(e) { | |
| return e | |
| }), function(n, r) { | |
| var a = n.baseWidth | |
| , o = n.baseHeight; | |
| a || (a = t.state.width), | |
| o || (o = t.state.height); | |
| var l = i.find(t.state.visibleTiles, { | |
| index: r | |
| }) | |
| , u = t.state.isScrolling || t.props.disabled || !l; | |
| return s.cloneElement(n, { | |
| baseWidth: t.state.width, | |
| baseHeight: t.state.height, | |
| mobile: t.props.mobile, | |
| disabled: u, | |
| visible: l, | |
| ref: "tile-" + r, | |
| orientation: e, | |
| onDidMount: t.debounceOnChildDidMount | |
| }) | |
| }) | |
| }, | |
| componentDidMount: function() { | |
| this.debounceResetScrollState = i.debounce(this._resetScrollState, 100), | |
| this.debounceOnChildDidMount = i.debounce(this.onChildDidMount, 100), | |
| this.setDimensions(), | |
| this.requireMethod("setScrollPosition", this.props.scrollPosition), | |
| this.setEventListeners(!this.props.disabled) | |
| }, | |
| componentDidUpdate: function(e) { | |
| this.setEventListeners(!this.props.disabled), | |
| e.children && this.props.children && this.props.children.length != e.children.length && this.setDimensions() | |
| }, | |
| componentWillUnmount: function() { | |
| this.setEventListeners(!1), | |
| this.debounceResetScrollState.cancel(), | |
| this.debounceOnChildDidMount.cancel() | |
| }, | |
| shouldComponentUpdate: function(e, t) { | |
| var n = i.clone(this.state) | |
| , s = i.clone(t); | |
| return n.scrollPosition = null , | |
| s.scrollPosition = null , | |
| n.scrollSize = null , | |
| s.scrollSize = null , | |
| !o(n, s) || !o(this.props, e) | |
| }, | |
| setEventListeners: function(e) { | |
| e ? this.requireMethod("bindListeners") : this.requireMethod("unbindListeners") | |
| }, | |
| setDimensions: function() { | |
| var e = i.pairs(this.refs).filter(function(e) { | |
| return 0 === e[0].indexOf("tile-") | |
| }).map(function(e) { | |
| var t = r.findDOMNode(e[1]); | |
| return { | |
| component: e[1], | |
| index: parseInt(e[0].replace("tile-", ""), 10), | |
| width: t.offsetWidth, | |
| height: t.offsetHeight, | |
| top: t.offsetTop, | |
| left: t.offsetLeft | |
| } | |
| }); | |
| this.setState({ | |
| height: this.getContentHeight(), | |
| width: this.getContentWidth(), | |
| tileDimensions: e | |
| }) | |
| }, | |
| getLoading: function() { | |
| return this.props.loading ? s.createElement(l, null ) : null | |
| }, | |
| getClassName: function() { | |
| return a([this.props.className, "v-" + e + "-tile-pane", { | |
| "l-loading": this.props.loading | |
| }, { | |
| "l-empty": !this.props.children || !this.props.children.length | |
| }, { | |
| "s-scroll": this.state.isScrolling | |
| }]) | |
| }, | |
| requireMethod: function(e) { | |
| if (!this[e]) | |
| throw new Error("TilePaneMixin expects the " + e + " method to be implemented"); | |
| for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), i = 1; t > i; i++) | |
| n[i - 1] = arguments[i]; | |
| return this[e].apply(this, n) | |
| }, | |
| _resetScrollState: function() { | |
| this.isMounted() && this.setState({ | |
| isScrolling: !1 | |
| }) | |
| } | |
| } | |
| } | |
| ; | |
| e.exports = u | |
| }, | |
| 337: function(e, t, n) { | |
| "use strict"; | |
| var i = n(234); | |
| e.exports = { | |
| getInitialState: function() { | |
| return { | |
| score: null | |
| } | |
| }, | |
| updatePasswordScore: function(e) { | |
| this.setState({ | |
| score: i.getScore(e) | |
| }) | |
| }, | |
| getPasswordScore: function() { | |
| return this.state.score | |
| }, | |
| getPasswordScoreColor: function() { | |
| return i.getScoreColor(this.state.score) | |
| } | |
| } | |
| }, | |
| 338: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(11) | |
| , p = l(d) | |
| , f = n(28) | |
| , h = l(f) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = (0, | |
| p["default"])(o({ | |
| "s-new": this.props["new"], | |
| "s-active": this.props.active | |
| }, this.props.className, !0)); | |
| return c["default"].createElement(h["default"], { | |
| href: this.props.url, | |
| title: this.props.title, | |
| className: e, | |
| onClick: this.props.onClick | |
| }, this.props.children) | |
| } | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 339: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(607) | |
| , l = i(o) | |
| , u = n(606) | |
| , c = i(u) | |
| , d = n(604) | |
| , p = i(d) | |
| , f = n(28) | |
| , h = i(f) | |
| , m = n(17) | |
| , g = (i(m), | |
| n(8)) | |
| , v = i(g) | |
| , y = { | |
| blueprints: { | |
| follow: l["default"], | |
| "recurring-payment": c["default"], | |
| "low-balance": p["default"] | |
| }, | |
| assemble: function(e, t) { | |
| return this.blueprints[e] ? r["default"].createElement(this.blueprints[e], t) : null | |
| } | |
| } | |
| , _ = r["default"].createClass({ | |
| displayName: "NotificationsList", | |
| propTypes: { | |
| notifications: r["default"].PropTypes.object.isRequired, | |
| fetchNextNotifications: r["default"].PropTypes.func.isRequired, | |
| limit: r["default"].PropTypes.number, | |
| onNotificationClick: r["default"].PropTypes.func, | |
| autoLoad: r["default"].PropTypes.bool.isRequired, | |
| loadingStatus: r["default"].PropTypes.number.isRequired | |
| }, | |
| _onScroll: function(e) { | |
| var t = e.target; | |
| t.scrollTop + t.offsetHeight + 100 >= t.scrollHeight && this.props.fetchNextNotifications(this.props.notifications) | |
| }, | |
| _renderInitialLoading: function() { | |
| return this.props.loadingStatus === v["default"].STATUS_PENDING && 0 === this.props.notifications.length ? r["default"].createElement("div", { | |
| className: "loading" | |
| }) : void 0 | |
| }, | |
| _renderNoNotificationsMessage: function() { | |
| return 0 === this.props.notifications.length && this.props.loadingStatus === v["default"].STATUS_OK ? r["default"].createElement("div", { | |
| className: "v-notification" | |
| }, r["default"].createElement("div", { | |
| className: "text" | |
| }, (0, | |
| a.translate)("notifications.none"))) : void 0 | |
| }, | |
| _renderNotifications: function() { | |
| var e = this; | |
| return this.props.notifications.length > 0 ? this.props.notifications.slice(0, this.props.limit).map(function(t) { | |
| return y.assemble(t.get("event"), { | |
| notification: t, | |
| key: t.id, | |
| onClick: e.props.onNotificationClick | |
| }) | |
| }) : void 0 | |
| }, | |
| _renderMore: function() { | |
| return !this.props.autoLoad && (this.props.notifications.length > this.props.limit || this.props.notifications.hasNext()) ? r["default"].createElement("div", { | |
| className: "more" | |
| }, r["default"].createElement(h["default"], { | |
| href: "/notifications", | |
| onClick: this.props.fetchNextNotifications | |
| }, (0, | |
| a.translate)("notifications.all"))) : this.props.autoLoad && this.props.loadingStatus === v["default"].STATUS_PENDING && this.props.notifications.length > 0 ? r["default"].createElement("div", { | |
| className: "loading-more" | |
| }) : void 0 | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: "v-notifications-list", | |
| onScroll: this._onScroll | |
| }, this._renderInitialLoading(), this._renderNoNotificationsMessage(), this._renderNotifications(), this._renderMore()) | |
| } | |
| }); | |
| t["default"] = _, | |
| e.exports = t["default"] | |
| }, | |
| 340: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(4) | |
| , u = n(8) | |
| , c = n(2) | |
| , d = o(c) | |
| , p = n(249) | |
| , f = o(p) | |
| , h = n(82) | |
| , m = o(h) | |
| , g = n(168) | |
| , v = o(g) | |
| , y = n(609) | |
| , _ = o(y) | |
| , b = function(e) { | |
| function t(e) { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this, e), | |
| this.state = { | |
| signUpStore: f["default"].getState(), | |
| authStore: m["default"].getState() | |
| }, | |
| this._onSignUpStore = this._onSignUpStore.bind(this), | |
| this._onAuthStore = this._onAuthStore.bind(this), | |
| f["default"].listen(this._onSignUpStore), | |
| m["default"].listen(this._onAuthStore) | |
| } | |
| return s(t, e), | |
| r(t, null , [{ | |
| key: "propTypes", | |
| value: { | |
| analyticsName: d["default"].PropTypes.string, | |
| onSignUp: d["default"].PropTypes.func, | |
| onToLogin: d["default"].PropTypes.func, | |
| signUpContext: d["default"].PropTypes.object, | |
| buttonHTML: d["default"].PropTypes.string, | |
| verifyEmail: d["default"].PropTypes.bool | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| verifyEmail: !1, | |
| analyticsName: "Signup Form", | |
| signUpContext: {}, | |
| onToLogin: function() { | |
| l.history.navigate("/login", { | |
| trigger: !0 | |
| }) | |
| } | |
| }, | |
| enumerable: !0 | |
| }]), | |
| r(t, [{ | |
| key: "componentWillUnmount", | |
| value: function() { | |
| f["default"].unlisten(this._onSignUpStore), | |
| m["default"].unlisten(this._onAuthStore) | |
| } | |
| }, { | |
| key: "_onSignUpStore", | |
| value: function(e) { | |
| e.status === u.STATUS_OK ? setTimeout(this.props.onSignUp) : this.setState({ | |
| signUpStore: e | |
| }) | |
| } | |
| }, { | |
| key: "_onAuthStore", | |
| value: function(e) { | |
| this.setState({ | |
| authStore: e | |
| }) | |
| } | |
| }, { | |
| key: "_onSignUp", | |
| value: function(e) { | |
| v["default"].signUp(e, this.props.signUpContext, this.props.analyticsName, this.props.verifyEmail) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return d["default"].createElement(_["default"], { | |
| buttonHTML: this.props.buttonHTML, | |
| onToLogin: this.props.onToLogin, | |
| error: this.state.signUpStore.error, | |
| onSignUp: this._onSignUp.bind(this), | |
| isLoading: this.state.signUpStore.status === u.STATUS_PENDING | |
| }) | |
| } | |
| }]), | |
| t | |
| }(d["default"].Component); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 341: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(116) | |
| , d = o(c) | |
| , p = n(3) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(d["default"], { | |
| type: "message" | |
| }, u["default"].createElement("div", { | |
| className: "error-body" | |
| }, (0, | |
| p.translateElement)("search.errors.no_results", [this.props.query]))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| query: u["default"].PropTypes.string.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 342: function(e, t, n) { | |
| var i, s = n(24)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(16) | |
| , r = n(89) | |
| , a = n(12) | |
| , o = n(674) | |
| , l = n(13) | |
| , u = t.Collection.extend({ | |
| initialize: function() { | |
| this.state = new o, | |
| this._oldMessageState = this.state.get("messages"), | |
| this.listenTo(this.state, "change:messages", this._eMessagesChange), | |
| this._initStart() | |
| }, | |
| _eMessagesChange: function() { | |
| !this._oldMessageState && this.state.get("messages") && l.track("New Notification"), | |
| this._oldMessageState = this.state.get("messages") | |
| }, | |
| _initStart: function() { | |
| var e = !1 | |
| , t = !1; | |
| this.listenTo(i, "sync", function() { | |
| e = !0, | |
| t && e && this._start() | |
| }), | |
| this.listenTo(a, "login", function() { | |
| t = !0, | |
| t && e && this._start() | |
| }) | |
| }, | |
| _setUrls: function() { | |
| this.state.url = i.getLink("notifications", { | |
| user_id: a.getId() | |
| }) | |
| }, | |
| _start: function() { | |
| this._setUrls(), | |
| this.state.poll(r.notificationInterval, null , this._catchXHRError.bind(this)) | |
| }, | |
| _catchXHRError: function(e) { | |
| return !e || e && e.xhr ? void this._setUrls() : s.reject(e) | |
| } | |
| }); | |
| return new u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 343: function(e, t) { | |
| "use strict"; | |
| function n(e) { | |
| var t = e.split("-"); | |
| return { | |
| supplierId: t[0], | |
| providerUid: t[1], | |
| datetime: t[2], | |
| custom: t[3] | |
| } | |
| } | |
| function i(e) { | |
| var t = n(e) | |
| , i = t.providerUid; | |
| return i | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.getUidParts = n, | |
| t.getProviderUid = i | |
| }, | |
| 345: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| var n = (0, | |
| u.getCountryCode)(); | |
| return (0, | |
| l.get)(o["default"].countryExceptions, [n, e], t) | |
| } | |
| function s(e, t, n) { | |
| return (0, | |
| l.get)(o["default"].countryExceptions, [e, t], n) | |
| } | |
| var r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.getException = i, | |
| t.getExceptionForCountry = s; | |
| var a = n(89) | |
| , o = r(a) | |
| , l = n(5) | |
| , u = n(3) | |
| }, | |
| 346: function(e, t) { | |
| "use strict"; | |
| e.exports = function(e) { | |
| for (var t = e.parentNode, n = window.getComputedStyle(t), i = /auto|scroll|scroll-x|scroll-y/; n && !i.test(n.overflow) && (t = t.parentNode, | |
| t instanceof Element); ) | |
| n = window.getComputedStyle(t); | |
| return t && n && i.test(n.overflow) ? t : window | |
| } | |
| }, | |
| 347: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t, n) { | |
| var i = c["default"].getProvider(n); | |
| if (i && i.getCapability("alwaysShowImages", !1)) | |
| return !0; | |
| if (p.includes(t)) | |
| return !0; | |
| if (!l.hideImagesAfterXDays) | |
| return !0; | |
| var s = d.diff((0, | |
| a["default"])(e), "days"); | |
| return s < o.hideItemImagesAfterDays | |
| } | |
| var s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.allowImages = i; | |
| var r = n(18) | |
| , a = s(r) | |
| , o = n(89) | |
| , l = n(44) | |
| , u = n(30) | |
| , c = s(u) | |
| , d = (0, | |
| a["default"])() | |
| , p = ["bnl-par-20151215-5578786"] | |
| }, | |
| 348: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = n(35) | |
| , r = n(25) | |
| , a = n(8).LIBRARY_UNAVAILABLE | |
| , o = { | |
| id: null , | |
| libVar: null , | |
| loadAs: "lib", | |
| load: function() {}, | |
| error: function() {} | |
| } | |
| , l = function(e, n) { | |
| if (!e) | |
| throw new Error("No url to load"); | |
| this.url = e, | |
| this.options = t.defaults(n, o) | |
| } | |
| ; | |
| return t.extend(l.prototype, i.Events, { | |
| loadPromise: !1, | |
| loadTimeout: 5e3, | |
| loadTimer: !1, | |
| initialized: !1, | |
| loaded: !1, | |
| error: !1, | |
| _lib: !1, | |
| _startLoadTimer: function() { | |
| this.loadTimer = setTimeout(this._eError.bind(this), this.loadTimeout) | |
| }, | |
| _stopLoadTimer: function() { | |
| clearTimeout(this.loadTimer) | |
| }, | |
| _load: function() { | |
| var e, t = document, n = t.getElementsByTagName("script")[0]; | |
| this.initialized ? this.loaded ? this.loadPromise.resolve() : this.error && this.loadPromise.reject(new s(a,"Unable to load library: " + this.url)) : (this._startLoadTimer(), | |
| e = t.createElement("script"), | |
| e.async = !0, | |
| e.src = this.url, | |
| e.addEventListener("error", this._eError.bind(this), !1), | |
| e.addEventListener("load", this._eLoad.bind(this), !1), | |
| this.options.id && (e.id = this.options.id), | |
| n.parentNode.insertBefore(e, n), | |
| this.initialized = !0) | |
| }, | |
| _eLoad: function() { | |
| this._libVarLoaded() ? (this._stopLoadTimer(), | |
| this._lib = this[this.options.loadAs] = window[this.options.libVar], | |
| this.loaded = !0, | |
| this.options.load(this[this.options.loadAs]), | |
| this.trigger("load"), | |
| this.loadPromise.resolve()) : this._eError() | |
| }, | |
| _eError: function() { | |
| this._stopLoadTimer(), | |
| this.error = !0, | |
| this.options.error(), | |
| this.trigger("error"), | |
| this.loadPromise.reject(new s(a,"Unable to load library: " + this.url)) | |
| }, | |
| _libVarLoaded: function() { | |
| return !!window[this.options.libVar] | |
| }, | |
| isLoaded: function() { | |
| return this.loaded | |
| }, | |
| isInitialized: function() { | |
| return this.initialized | |
| }, | |
| load: function() { | |
| return this.loadPromise && !this.loaded ? this.loadPromise = this.loadPromise : this.loadPromise = r.defer(), | |
| this._load(), | |
| this.loadPromise.promise | |
| }, | |
| execute: function() { | |
| var e = Array.prototype.slice.call(arguments) | |
| , t = r.defer(); | |
| return this.load().then(this._execute.bind(this, t, e)).fail(t.reject).done(), | |
| t.promise | |
| }, | |
| _execute: function(e, t) { | |
| var n = t.shift(); | |
| e.resolve(this._lib[n].apply(this._lib, t)) | |
| } | |
| }), | |
| l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 349: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| function t(e) { | |
| if (!e) | |
| return !1; | |
| var t = e.getAttribute("href"); | |
| if (!t || "#" === t) | |
| return !1; | |
| var n = e.protocol + "//"; | |
| return t.substr(0, n.length) === n ? !1 : !e.getAttribute("data-ignoreclickhandler") | |
| } | |
| function i(e) { | |
| var n = o(e.delegateTarget || e.target, "a"); | |
| if (n && t(n) && !e.defaultPrevented) { | |
| var i = s(n.getAttribute("href")); | |
| a.history.navigate(i, { | |
| trigger: !0 | |
| }), | |
| e.preventDefault() | |
| } | |
| } | |
| function s(e) { | |
| return l(e).absoluteTo(document.location.pathname).toString() | |
| } | |
| function r() { | |
| document.addEventListener("click", i, !1) | |
| } | |
| var a = n(4) | |
| , o = n(231) | |
| , l = n(43); | |
| r() | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 350: function(e, t) { | |
| "use strict"; | |
| function n(e) { | |
| return JSON.parse(window.atob(e.split(".")[1])) | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = n, | |
| e.exports = t["default"] | |
| }, | |
| 351: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| var n, i = e.slice(0), r = []; | |
| for (var a in t) { | |
| var o = t[a] | |
| , l = s(o, e); | |
| "content" === o ? n = r.push({ | |
| key: o | |
| }) - 1 : r.push({ | |
| key: o, | |
| values: l | |
| }), | |
| i = c.difference(i, l) | |
| } | |
| var u = { | |
| key: "content", | |
| values: i | |
| }; | |
| return r[n] ? r[n] = u : r.push(u), | |
| r | |
| } | |
| function s(e, t) { | |
| var n = []; | |
| for (var i in t) { | |
| var s = t[i]; | |
| s.type === e && n.push(s) | |
| } | |
| return n | |
| } | |
| function r(e) { | |
| var t = e.split(" "); | |
| return t = c.map(t, function(e) { | |
| return e.substring(1, e.length - 1) | |
| }) | |
| } | |
| function a(e) { | |
| return e = c.flatten(e.filter(function(e) { | |
| return e.values.length | |
| }).map(function(e) { | |
| return e.values | |
| }), !0), | |
| e.reduce(function(e, t) { | |
| var n; | |
| return n = f[t.type] ? f[t.type] : f["default"], | |
| e.push(n(t.content)), | |
| e | |
| }, []) | |
| } | |
| function o(e, t) { | |
| return function(n) { | |
| return d.createElement(e, { | |
| className: t, | |
| dangerouslySetInnerHTML: { | |
| __html: n | |
| } | |
| }) | |
| } | |
| } | |
| function l(e) { | |
| return d.createElement("img", { | |
| src: e, | |
| className: "item-image item-content-image" | |
| }) | |
| } | |
| function u(e) { | |
| return d.createElement(p, { | |
| node: e | |
| }) | |
| } | |
| var c = n(5) | |
| , d = n(2) | |
| , p = n(608) | |
| , f = { | |
| kicker: o("p", "item-kicker"), | |
| head: o("h1", "item-title"), | |
| hl1: o("h1", "item-title"), | |
| hl2: o("h2", "item-subtitle"), | |
| lead: o("p", "item-lead"), | |
| byline: o("p", "item-byline"), | |
| dateline: o("p", "item-dateline"), | |
| intro: o("p", "item-intro"), | |
| ph: o("h3", "item-header"), | |
| p: o("p", "item-paragraph"), | |
| streamer: o("p", "item-streamer"), | |
| image: l, | |
| "image-grid": u, | |
| "image-meta": o("div", "item-image-meta"), | |
| "default": o("p", "item-default") | |
| }; | |
| e.exports = function(e, t) { | |
| var n = r(t) | |
| , s = i(e, n); | |
| return a(s, t) | |
| } | |
| }, | |
| 354: function(e, t, n) { | |
| var i, s; | |
| i = [n(5)], | |
| s = function(e) { | |
| "use strict"; | |
| var t = "Blendle" | |
| , n = " - " | |
| , i = { | |
| _set: function(t) { | |
| document.title = e.trim(e.unescape(e.stripTags(t))) | |
| }, | |
| reset: function() { | |
| this._set(t) | |
| }, | |
| set: function(e) { | |
| var i = []; | |
| e instanceof Array ? i = e : i.push(e), | |
| i.push(t), | |
| this._set(i.join(n)) | |
| } | |
| }; | |
| return i | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 357: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , s = function(e) { | |
| this.viewType = e.viewType || "view" | |
| } | |
| ; | |
| return i.extend(s.prototype, t.Events, { | |
| extend: t.Model.extend, | |
| _closeHandler: null , | |
| openView: function(e) { | |
| var t = this; | |
| this._closeHandler && this._closeHandler(), | |
| i.isFunction(e) ? this._closeHandler = e : (this._closeHandler = e.close.bind(e), | |
| this.listenToOnce(e, "unload", function() { | |
| t._closeHandler = null | |
| })) | |
| }, | |
| resetDirector: function() { | |
| this.stopListening(), | |
| this._closeHandler = null | |
| }, | |
| closeView: function() { | |
| this.stopListening(), | |
| this._closeHandler && (this._closeHandler(), | |
| this._closeHandler = null ) | |
| } | |
| }), | |
| s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 358: function(e, t) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = function(e) { | |
| var t = e.src | |
| , n = e.name | |
| , i = e.width | |
| , s = e.height | |
| , r = e.options | |
| , a = r || "scrollbars=yes,resizable=yes,toolbar=no,location=yes" | |
| , o = Math.round(screen.width / 2 - i / 2) | |
| , l = screen.height > s ? Math.round(screen.height / 2 - s / 2) : 0; | |
| window.open(t, n, "width=" + i + ",height=" + s + ",left=" + o + ",top=" + l + "," + a) | |
| } | |
| , | |
| e.exports = t["default"] | |
| }, | |
| 359: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), i = 1; t > i; i++) | |
| n[i - 1] = arguments[i]; | |
| if (!r) | |
| return s.reject(new Error("No AndroidJSInterface available")); | |
| var l = a++; | |
| return new s(function(t, i) { | |
| o[l] = function(e, n) { | |
| e ? i(e) : t(n), | |
| delete o[l] | |
| } | |
| , | |
| window.AndroidJSInterface.send(e, l, n) | |
| } | |
| ) | |
| } | |
| var s = n(24)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.action = i; | |
| var r = window.AndroidJSInterface && window.AndroidJSInterface.send; | |
| t.isInjected = r; | |
| var a = 1 | |
| , o = {}; | |
| r && (window.AndroidJSInterface.response = function(e, t, n) { | |
| o[e] && o[e](t, n) | |
| } | |
| ) | |
| }, | |
| 368: function(e, t, n) { | |
| var i, s = n(24)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(8) | |
| , i = n(4) | |
| , r = n(16) | |
| , a = n(12) | |
| , o = n(35) | |
| , l = { | |
| acquireIssue: function(e) { | |
| return i.ajax({ | |
| url: r.getLink("user_issues", { | |
| user_id: a.getId() | |
| }), | |
| type: "post", | |
| data: JSON.stringify({ | |
| id: e.id | |
| }), | |
| accept: "application/hal+json" | |
| }).then(function(t) { | |
| var n = e.getEmbedded("b:issue-acquisition"); | |
| a.getUser().subtractFromBalance(n.get("price")), | |
| n.set(t.data, { | |
| parse: !0 | |
| }) | |
| }) | |
| }, | |
| acquireItem: function(e, n) { | |
| return n.isAcquirable() || n.get("acquired") ? i.ajax({ | |
| data: JSON.stringify({ | |
| id: n.id | |
| }), | |
| type: "POST", | |
| url: r.getLink("user_items", { | |
| user_id: e.id | |
| }), | |
| accept: "application/hal+json" | |
| }).then(function(t) { | |
| return l._processItemPurchase(e, n, t) | |
| }, function(t) { | |
| return l._processItemPurchase(e, n, t) | |
| }) : s.reject(new o(t.NOT_ACQUIRABLE,"Item not acquirable")) | |
| }, | |
| _processItemPurchase: function(e, n, i) { | |
| return 201 === i.status || "Issue containing item already purchased." === i.data.message ? l._processItemPurchaseSuccess(e, n, i) : s.reject(new o(t.XHR_STATUS,i.data.message,i)) | |
| }, | |
| _processItemPurchaseSuccess: function(e, t, n) { | |
| var i = n.data; | |
| return i.subscription || (i.justAcquired = !0, | |
| i.purchaseDate = new Date, | |
| e.subtractFromBalance(i.price)), | |
| t.setEmbedded("b:acquisition", i), | |
| e.set("reads", e.get("reads") + 1), | |
| s.resolve(t) | |
| } | |
| }; | |
| return l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 369: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(16) | |
| , s = { | |
| add: function(e, n) { | |
| return t.ajax({ | |
| url: i.getLink("alerts", { | |
| user_id: e.id || e | |
| }), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| query: n.toLowerCase() | |
| }) | |
| }) | |
| } | |
| }; | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 370: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return (0, | |
| l["default"])({ | |
| url: d["default"].getLink("verify_coupon", { | |
| code: e | |
| }), | |
| method: "get" | |
| }).then(function(e) { | |
| return e.data.only_new_accounts && f["default"].getUser() ? r.reject(new m["default"](u.COUPON_NEW_USERS_ONLY)) : e.data.redeemed ? r.reject(new m["default"](u.COUPON_REDEEMED)) : e.data.expired ? r.reject(new m["default"](u.COUPON_EXPIRED)) : e.data.maximum_exceeded ? r.reject(new m["default"](u.COUPON_EXCEEDED_MAX)) : r.resolve() | |
| })["catch"](function(e) { | |
| if (404 === e.status) | |
| return r.reject(new m["default"](u.COUPON_INVALID)); | |
| throw e | |
| }) | |
| } | |
| function s(e, t) { | |
| return (0, | |
| l["default"])({ | |
| url: d["default"].getLink("coupons", { | |
| user_id: t | |
| }), | |
| method: "post", | |
| data: JSON.stringify({ | |
| code: e | |
| }) | |
| }).then(function(e) { | |
| return f["default"].getUser().setBalance(e.data._embedded.user.balance), | |
| e.data._embedded | |
| })["catch"](function(e) { | |
| if (e.data.message.match(/Coupon (.+) not found./)) | |
| throw new m["default"](u.COUPON_INVALID); | |
| if ("Coupon already redeemed." === e.data.message) | |
| throw new m["default"](u.COUPON_REDEEMED); | |
| if ("Campaign exceeded maximum." === e.data.message) | |
| throw new m["default"](u.COUPON_EXCEEDED_MAX); | |
| if ("Coupon expired." === e.data.message) | |
| throw new m["default"](u.COUPON_EXPIRED); | |
| if ("Coupon is only for new accounts." === e.data.message) | |
| throw new m["default"](u.COUPON_NEW_USERS_ONLY); | |
| throw e | |
| }) | |
| } | |
| var r = n(24)["default"] | |
| , a = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.validateCoupon = i, | |
| t.redeemCoupon = s; | |
| var o = n(113) | |
| , l = a(o) | |
| , u = n(8) | |
| , c = n(16) | |
| , d = a(c) | |
| , p = n(12) | |
| , f = a(p) | |
| , h = n(35) | |
| , m = a(h) | |
| }, | |
| 371: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = { | |
| tld: { | |
| com: ["con", "kom", "cm", "cmo", "cim", "cpm"], | |
| nl: ["ml", "ln", "nk", "bl"], | |
| net: ["nt", "met"], | |
| "tante.nel": ["nel"] | |
| }, | |
| hostname: { | |
| gmail: ["gmai", "gail", "gmai", "gnail", "mgail", "gmial", "mgail", "gamil"], | |
| hotmail: ["htmail", "otmail", "hotmal", "hotmai", "hotmial", "hoitmail", "homail", "hotrmail", "hotmil", "hotmaill"], | |
| live: ["lve", "liv"], | |
| yahoo: ["yhoo", "yaho"] | |
| } | |
| } | |
| , s = { | |
| disectAddress: function(e) { | |
| var t = e.split("@") | |
| , n = t[0] | |
| , i = t[1] | |
| , s = i && i.split(".") | |
| , r = s && s.pop() | |
| , a = s && s.join("."); | |
| return { | |
| user: n, | |
| hostname: a, | |
| tld: r | |
| } | |
| }, | |
| compileAddress: function(e) { | |
| return t.sprintf("%s@%s.%s", e.user, e.hostname, e.tld) | |
| }, | |
| checkForCommonMistakes: function(e) { | |
| var n = this.disectAddress(e) | |
| , s = {} | |
| , r = !1; | |
| if (!n.user || !n.hostname || !n.tld) | |
| return !1; | |
| for (var a in i.tld) | |
| -1 !== i.tld[a].indexOf(n.tld) && (s.tld = a, | |
| r = !0); | |
| for (var o in i.hostname) | |
| -1 !== i.hostname[o].indexOf(n.hostname) && (s.hostname = o, | |
| r = !0); | |
| return r ? this.compileAddress(t.extend(n, s)) : !1 | |
| } | |
| }; | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 372: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(5) | |
| , r = i(s) | |
| , a = n(4) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = i(l) | |
| , c = n(16) | |
| , d = i(c); | |
| t["default"] = { | |
| getCountryNewsStand: function(e) { | |
| var t = d["default"].get("links").onboarding_newsstand | |
| , n = r["default"].find(t, { | |
| name: e | |
| }); | |
| return n || (n = r["default"].find(t, { | |
| name: u["default"].getCountryCode(u["default"].getDefaultLocale()) | |
| })), | |
| o["default"].ajax({ | |
| url: n.href | |
| }).then(function(e) { | |
| return e.data._links | |
| }) | |
| }, | |
| getNewsStand: function(e) { | |
| return o["default"].ajax({ | |
| url: d["default"].getLink("newsstand", { | |
| user_context: e | |
| }) | |
| }).then(function(e) { | |
| return e.data._links | |
| }) | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 373: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(16) | |
| , r = i(s) | |
| , a = n(113) | |
| , o = i(a) | |
| , l = { | |
| pinItem: function(e, t) { | |
| return this.updatePin(e, t, !0) | |
| }, | |
| unpinItem: function(e, t) { | |
| return this.updatePin(e, t, !1) | |
| }, | |
| updatePin: function(e, t, n) { | |
| return (0, | |
| o["default"])({ | |
| url: r["default"].getLink("user", { | |
| user_id: e.id | |
| }) + "/pin/" + t.id, | |
| data: JSON.stringify({ | |
| pinned: n | |
| }), | |
| method: "put" | |
| }).then(function(t) { | |
| return n ? e.set("pins", e.get("pins") + 1) : e.set("pins", e.get("pins") - 1), | |
| t.data | |
| }) | |
| } | |
| }; | |
| t["default"] = l, | |
| e.exports = t["default"] | |
| }, | |
| 374: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(25) | |
| , i = n(4) | |
| , s = n(16) | |
| , r = { | |
| favorite: function(e, t) { | |
| return t = i.Helpers.toArray(t).map(function(e) { | |
| return { | |
| id: e | |
| } | |
| }), | |
| i.ajax({ | |
| url: s.getLink("user_favourites", { | |
| user_id: i.Helpers.modelId(e) | |
| }), | |
| type: "POST", | |
| data: JSON.stringify(t) | |
| }) | |
| }, | |
| unfavorite: function(e, n) { | |
| return n = i.Helpers.toArray(n), | |
| t.all(n.map(function(t) { | |
| return i.ajax({ | |
| url: s.getLink("user_favourite", { | |
| user_id: i.Helpers.modelId(e), | |
| provider_id: i.Helpers.modelId(t) | |
| }), | |
| type: "DELETE" | |
| }) | |
| })) | |
| } | |
| }; | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 375: function(e, t, n) { | |
| "use strict"; | |
| var i = n(24)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(4) | |
| , a = s(r) | |
| , o = n(12) | |
| , l = s(o) | |
| , u = n(16) | |
| , c = s(u) | |
| , d = n(101) | |
| , p = s(d) | |
| , f = n(35) | |
| , h = s(f) | |
| , m = { | |
| authorize: function(e) { | |
| return "string" != typeof e.get("twitter_id") && e.set("twitter_id", this.login(e)), | |
| e.get("twitter_id") | |
| }, | |
| login: function() { | |
| var e = this | |
| , t = this._openPopup(); | |
| return this._requestLoginUrl().then(function(n) { | |
| return !t || t.closed ? i.reject(new h["default"]("PopupClosed","User has prematurily closed the Twitter authorization window")) : e._getAuthorizationFromPopup(n, t) | |
| }).then(function() { | |
| return l["default"].renewJWT() | |
| }).then(function() { | |
| return l["default"].fetchUser() | |
| }) | |
| }, | |
| unauthorize: function(e) { | |
| return e.get("twitter_id") ? a["default"].ajax({ | |
| url: c["default"].getLink("oauth", { | |
| oauth_provider: "twitter" | |
| }), | |
| type: "DELETE" | |
| }).then(function() { | |
| return e.set("twitter_id", null ), | |
| l["default"].fetchUser() | |
| }) : i.resolve(e) | |
| }, | |
| getFriends: function(e) { | |
| return a["default"].ajax({ | |
| url: c["default"].getLink("follows", { | |
| user_id: e.id, | |
| reason: "twitter" | |
| }) | |
| }).then(function(e) { | |
| return i.resolve(new p["default"](e.data,{ | |
| parse: !0 | |
| })) | |
| }) | |
| }, | |
| authorizeAndGetFriends: function(e) { | |
| return this.authorize(e).then(this.getFriends) | |
| }, | |
| _requestLoginUrl: function() { | |
| return a["default"].ajax({ | |
| url: c["default"].getLink("oauth", { | |
| oauth_provider: "twitter" | |
| }) | |
| }).then(function(e) { | |
| return i.resolve(e.data.authorize_url) | |
| }) | |
| }, | |
| _openPopup: function() { | |
| var e = window.open("about:blank", "twitter", "height=400,width=600,status=no,menubar=no,toolbar=no,location=no"); | |
| return e.focus(), | |
| e | |
| }, | |
| _getAuthorizationFromPopup: function(e, t) { | |
| return t.location.href = e, | |
| this._pollForStatus(t) | |
| }, | |
| _pollForStatus: function(e) { | |
| return new i(function(t, n) { | |
| var i = setInterval(function() { | |
| e && !e.closed || (clearInterval(i), | |
| n(new h["default"]("PopupClosed","User has prematurily closed the Twitter authorization window"))), | |
| e.postMessage({ | |
| ping: !0 | |
| }, window.location.origin) | |
| }, 100); | |
| e && !e.closed || n(new h["default"]("PopupClosed","User has prematurily closed the Twitter authorization window")), | |
| window.addEventListener("message", function(e) { | |
| e.origin === window.location.origin && (clearInterval(i), | |
| t(e.data)) | |
| }) | |
| } | |
| ) | |
| } | |
| }; | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 376: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = i.Model.extend({ | |
| name: "item-tracker" | |
| }); | |
| e.exports = s | |
| }, | |
| 377: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Model.extend({ | |
| name: "alert", | |
| parse: function(e) { | |
| return this.id = e.id, | |
| e.query = e.query && e.query.toLowerCase(), | |
| this.parseHal(e) | |
| } | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 378: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(67) | |
| , r = i(s); | |
| t["default"] = r["default"].extend({ | |
| name: "channel", | |
| isChannel: !0, | |
| mappings: { | |
| managers: { | |
| resource: function(e) { | |
| var t = n(101); | |
| return new t({ | |
| _embedded: { | |
| users: e | |
| } | |
| },{ | |
| parse: !0 | |
| }) | |
| } | |
| } | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 379: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = i.Model.extend({ | |
| required: { | |
| facebook_id: !0, | |
| facebook_access_token: !0 | |
| } | |
| }); | |
| e.exports = s | |
| }, | |
| 380: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Model.extend({ | |
| name: "issue-acquisition", | |
| defaults: { | |
| acquirable: !0, | |
| subscription: !1 | |
| }, | |
| addToPrice: function(e) { | |
| var t = parseFloat(this.get("price")) + parseFloat(e) | |
| , n = Math.round(100 * t) / 100; | |
| return this.set("price", n), | |
| n | |
| }, | |
| getPercentagePurchased: function() { | |
| return this.get("acquired") ? 1 : this.getRealPercentagePurchased() | |
| }, | |
| getRealPercentagePurchased: function() { | |
| if (null === this.get("price") || null === this.get("original_price")) | |
| return 0; | |
| var e = 1 - this.get("price") / this.get("original_price"); | |
| return Math.round(100 * e) / 100 | |
| }, | |
| isEligibleForAcquisition: function() { | |
| return null !== this.get("original_price") && !this.get("subscription") && this.get("acquirable") | |
| } | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)); | |
| }, | |
| 381: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(2) | |
| , o = i(a) | |
| , l = n(15) | |
| , u = i(l) | |
| , c = n(12) | |
| , d = i(c) | |
| , p = n(3) | |
| , f = n(331) | |
| , h = i(f) | |
| , m = n(171) | |
| , g = i(m) | |
| , v = n(345) | |
| , y = r["default"].View.extend({ | |
| beforeUnload: function() { | |
| u["default"].unmountComponentAtNode(this.el), | |
| r["default"].View.prototype.beforeUnload.apply(this, arguments) | |
| }, | |
| _onToggleMixpanel: function() { | |
| var e = this | |
| , t = !d["default"].getUser().get("mixpanel_opt_out"); | |
| d["default"].getUser().saveProperty("mixpanel_opt_out", t, function() { | |
| e.render() | |
| }) | |
| }, | |
| _onToggleSharePrivacy: function() { | |
| var e = this | |
| , t = !d["default"].getUser().get("providers_opt_in"); | |
| d["default"].getUser().saveProperty("providers_opt_in", t, function() { | |
| e.render() | |
| }) | |
| }, | |
| _toggleTooltip: function() { | |
| this._showTooltip = !this._showTooltip, | |
| this.render() | |
| }, | |
| _openTooltip: function() { | |
| this._showTooltip = !0, | |
| this.render() | |
| }, | |
| _closeTooltip: function() { | |
| this._showTooltip = !1, | |
| this.render() | |
| }, | |
| _renderPrivacyStatement: function() { | |
| if (/^settings\//.test(r["default"].history.fragment)) { | |
| var e = (0, | |
| p.translate)("about.privacy_statement.contents"); | |
| return e.replace("/about/", "/settings/") | |
| } | |
| return (0, | |
| p.translate)("about.privacy_statement.contents") | |
| }, | |
| _renderTooltip: function() { | |
| if (this._showTooltip) { | |
| var e = [o["default"].createElement("span", { | |
| dangerouslySetInnerHTML: { | |
| __html: (0, | |
| p.translate)("app.text.providers_opt_in_more") | |
| } | |
| })]; | |
| return o["default"].createElement(g["default"], { | |
| name: "privacy-tooltip", | |
| className: "tooltip", | |
| position: "top", | |
| onScroll: this._closeTooltip() | |
| }, e) | |
| } | |
| }, | |
| _renderProvidersToggle: function(e) { | |
| return (0, | |
| v.getExceptionForCountry)(e.get("country"), "showProviderTrackingSetting", !1) ? o["default"].createElement("div", { | |
| className: "providers-opt-in opt-switch" | |
| }, o["default"].createElement(h["default"], { | |
| className: "btn-toggle", | |
| checked: e.get("providers_opt_in"), | |
| onToggle: this._onToggleSharePrivacy.bind(this) | |
| }), (0, | |
| p.translate)("app.text.agree_to_providers_opt_in"), o["default"].createElement("span", { | |
| className: "info-tooltip", | |
| onClick: this._toggleTooltip.bind(this), | |
| onMouseEnter: this._openTooltip.bind(this), | |
| onMouseLeave: this._closeTooltip.bind(this) | |
| }, " ?", this._renderTooltip())) : null | |
| }, | |
| _renderLoggedIn: function() { | |
| var e = d["default"].getUser(); | |
| return e ? [o["default"].createElement("div", { | |
| className: "analytics-opt-out opt-switch" | |
| }, o["default"].createElement(h["default"], { | |
| className: "btn-toggle", | |
| checked: !e.get("mixpanel_opt_out"), | |
| onToggle: this._onToggleMixpanel.bind(this) | |
| }), (0, | |
| p.translate)("app.text.agree_to_analytics")), this._renderProvidersToggle(e)] : void 0 | |
| }, | |
| render: function() { | |
| return u["default"].render(o["default"].createElement("div", { | |
| className: "pane privacystatement" | |
| }, o["default"].createElement("div", { | |
| className: "container l-text" | |
| }, o["default"].createElement("h1", null , (0, | |
| p.translate)("about.privacy_statement.title")), o["default"].createElement("div", { | |
| dangerouslySetInnerHTML: { | |
| __html: this._renderPrivacyStatement() | |
| } | |
| }), o["default"].createElement("p", { | |
| className: "end", | |
| dangerouslySetInnerHTML: { | |
| __html: "···" | |
| } | |
| }), this._renderLoggedIn())), this.el), | |
| this.display(), | |
| this | |
| } | |
| }); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 382: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(5) | |
| , o = i(a) | |
| , l = n(1062) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = r["default"].View.extend({ | |
| className: "pane termsandconditions", | |
| _updateInteralHrefs: function() { | |
| o["default"].forEach(this.el.querySelectorAll("a"), function(e) { | |
| var t = e.href.match(/\/about\/.*/); | |
| t && (e.href = t[0].replace(/\/about\//, "/settings/")) | |
| }) | |
| }, | |
| render: function() { | |
| return this.delegateEvents(), | |
| this.el.innerHTML = (0, | |
| u["default"])({ | |
| i18n: c.locale | |
| }), | |
| /^settings\//.test(r["default"].history.fragment) && this._updateInteralHrefs(), | |
| this.display(), | |
| this | |
| } | |
| }); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 383: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(37) | |
| , d = o(c) | |
| , p = n(82) | |
| , f = o(p) | |
| , h = n(249) | |
| , m = o(h) | |
| , g = n(168) | |
| , v = (o(g), | |
| n(832)) | |
| , y = o(v) | |
| , _ = n(114) | |
| , b = o(_) | |
| , w = n(313) | |
| , S = o(w) | |
| , k = n(699) | |
| , E = o(k) | |
| , C = n(65) | |
| , T = n(8) | |
| , P = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| loading: !1 | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onRedeem", | |
| value: function(e, t) { | |
| S["default"].redeem(t, e && e.id) | |
| } | |
| }, { | |
| key: "_onFacebookSignUp", | |
| value: function(e) { | |
| var t = this; | |
| (0, | |
| C.getSignUpRewards)(e.id).then(function(e) { | |
| t.setState({ | |
| facebookSignUp: T.STATUS_OK, | |
| signUpRewards: e | |
| }) | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this; | |
| return u["default"].createElement(d["default"], { | |
| stores: { | |
| AuthStore: f["default"], | |
| CouponStore: y["default"], | |
| SignUpStore: m["default"] | |
| }, | |
| render: function(t) { | |
| return u["default"].createElement(E["default"], { | |
| initialCode: e.props.initialCode, | |
| campaign: e.props.campaign, | |
| user: t.AuthStore.user, | |
| signUpStatus: t.SignUpStore.status, | |
| facebookSignUpStatus: e.state.facebookSignUp, | |
| signUpRewards: e.state.signUpRewards, | |
| couponStatus: t.CouponStore.status, | |
| couponData: t.CouponStore.data, | |
| couponError: t.CouponStore.error, | |
| onLogout: b["default"].logout, | |
| onRedeem: e._onRedeem.bind(e, t.AuthStore.user), | |
| onFacebookSignUp: function(t) { | |
| return e._onFacebookSignUp(t) | |
| }, | |
| loading: e.state.loading | |
| }) | |
| } | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| initialCode: u["default"].PropTypes.string, | |
| campaign: u["default"].PropTypes.object | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = P, | |
| e.exports = t["default"] | |
| }, | |
| 384: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(4) | |
| , u = n(2) | |
| , c = o(u) | |
| , d = n(702) | |
| , p = o(d) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.name = "deeplink", | |
| this.type = "item" | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "openSignup", | |
| value: function(e) { | |
| var t = "signUp"; | |
| window.location.search.match(/medium=(newsletter|email)/) && (t = "login"), | |
| this.load(), | |
| this.render(c["default"].createElement(p["default"], { | |
| itemId: e, | |
| initialVariant: t | |
| })) | |
| } | |
| }]), | |
| t | |
| }(l.ReactModule); | |
| t["default"] = new f, | |
| e.exports = t["default"] | |
| }, | |
| 385: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(37) | |
| , o = i(a) | |
| , l = n(725) | |
| , u = i(l) | |
| , c = n(167) | |
| , d = i(c) | |
| , p = n(398) | |
| , f = i(p) | |
| , h = n(12) | |
| , m = i(h) | |
| , g = r["default"].createClass({ | |
| displayName: "SocialPaneContainer", | |
| propTypes: { | |
| item: r["default"].PropTypes.object.isRequired, | |
| analytics: r["default"].PropTypes.object.isRequired | |
| }, | |
| componentDidMount: function() { | |
| d["default"].loadPlatforms() | |
| }, | |
| _onSocialShare: function(e) { | |
| d["default"].shareItemToPlaform(e, this.props.item, this.props.analytics) | |
| }, | |
| _onEmailFormShare: function(e, t) { | |
| d["default"].shareItemToEmail(m["default"].getUser().id, this.props.item, e, t) | |
| }, | |
| render: function() { | |
| var e = this; | |
| return r["default"].createElement(o["default"], { | |
| stores: { | |
| ShareStore: f["default"] | |
| }, | |
| render: function(t) { | |
| return r["default"].createElement(u["default"], { | |
| onSocialShare: e._onSocialShare, | |
| loadingPlatforms: t.ShareStore.loadingPlatforms, | |
| onEmailFormShare: e._onEmailFormShare, | |
| emailSentTo: t.ShareStore.sentTo, | |
| status: t.ShareStore.status, | |
| error: t.ShareStore.error | |
| }) | |
| } | |
| }) | |
| } | |
| }); | |
| t["default"] = g, | |
| e.exports = t["default"] | |
| }, | |
| 386: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(11) | |
| , l = s(o) | |
| , u = a["default"].createClass({ | |
| displayName: "SharingButtons", | |
| propTypes: { | |
| onSocialShare: a["default"].PropTypes.func.isRequired, | |
| loadingPlatforms: a["default"].PropTypes.object.isRequired | |
| }, | |
| _onClickSharingButton: function(e, t) { | |
| t.preventDefault(), | |
| this.props.onSocialShare(e) | |
| }, | |
| _renderButtons: function() { | |
| var e = this; | |
| return ["twitter", "facebook", "linkedin", "email", "whatsapp"].map(function(t) { | |
| var n, s = (0, | |
| l["default"])((n = { | |
| btn: !0, | |
| "btn-icon": !0 | |
| }, | |
| i(n, "btn-share-" + t, !0), | |
| i(n, "s-inactive", e.props.loadingPlatforms.hasOwnProperty(t)), | |
| n)); | |
| return a["default"].createElement("a", { | |
| href: "#", | |
| className: s, | |
| onClick: e._onClickSharingButton.bind(e, t) | |
| }) | |
| }) | |
| }, | |
| render: function() { | |
| return a["default"].createElement("div", { | |
| className: "v-sharing-buttons" | |
| }, this._renderButtons()) | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 387: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| return e.width > t && e.height > t | |
| } | |
| function s(e) { | |
| e.forEach(function(e) { | |
| e.style["font-family"] = "'Proxima Nova', helvetica, arial, sans-serif" | |
| }) | |
| } | |
| var r = n(1)["default"] | |
| , a = n(145)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = n(5) | |
| , l = r(o) | |
| , u = n(25) | |
| , c = r(u) | |
| , d = n(2) | |
| , p = r(d) | |
| , f = n(15) | |
| , h = r(f) | |
| , m = n(454) | |
| , g = r(m) | |
| , v = n(4) | |
| , y = r(v) | |
| , _ = n(230) | |
| , b = a(_) | |
| , w = n(17) | |
| , S = r(w) | |
| , k = n(41) | |
| , E = r(k) | |
| , C = n(626) | |
| , T = r(C) | |
| , P = n(351) | |
| , N = r(P) | |
| , x = n(30) | |
| , R = r(x) | |
| , L = n(857) | |
| , I = r(L) | |
| , M = n(721) | |
| , A = r(M) | |
| , D = n(736) | |
| , O = r(D) | |
| , U = n(729) | |
| , q = r(U) | |
| , F = n(3) | |
| , j = n(141) | |
| , V = r(j) | |
| , B = n(38) | |
| , W = (r(B), | |
| y["default"].View.extend({ | |
| className: "v-content item-content item", | |
| events: { | |
| "click .lnk-refund": "_onRefundItemByClick", | |
| "click .grid .container > div": "_onOpenImageOverlay" | |
| }, | |
| initialize: function(e) { | |
| this.setState("loading"), | |
| this.item = e.item | |
| }, | |
| beforeUnload: function() { | |
| this._recommendElement && h["default"].unmountComponentAtNode(this._recommendElement), | |
| y["default"].View.prototype.beforeUnload.apply(this, arguments) | |
| }, | |
| update: function() { | |
| "horizontal" === this.options.orientation ? this._updateHorizontal() : this._updateVertical() | |
| }, | |
| getNextColumnOffset: function(e) { | |
| var t = this._getFeaturedImage(); | |
| if (t && e < t.offsetWidth) | |
| return t.offsetWidth; | |
| var n = -1 | |
| , i = this.el.querySelector(".item-columns"); | |
| return [].some.call(this.el.querySelectorAll(".item-columns .kolom-column"), function(t) { | |
| var s = t.offsetLeft + i.offsetLeft | |
| , r = s + t.offsetWidth; | |
| return s > e || e >= s && r > e ? (n = parseInt(r, 10), | |
| !0) : void 0 | |
| }), | |
| n | |
| }, | |
| getPreviousColumnOffset: function(e) { | |
| var t = this._getFeaturedImage(); | |
| if (t && e <= t.offsetWidth) | |
| return 0; | |
| var n = t ? t.offsetWidth : 0 | |
| , i = this.el.querySelector(".item-columns"); | |
| return [].some.call(this.el.querySelectorAll(".item-columns .kolom-column"), function(t) { | |
| var s = t.offsetLeft + i.offsetLeft | |
| , r = s + t.offsetWidth; | |
| return e >= s && (r >= e || !t.nextSibling) ? (t.previousSibling && (n = parseInt(t.previousSibling.offsetLeft + t.previousSibling.offsetWidth + i.offsetLeft, 10)), | |
| !0) : void 0 | |
| }), | |
| n | |
| }, | |
| getContentOffset: function() { | |
| var e = this._getFeaturedImage(); | |
| if (!e) | |
| return 0; | |
| var t = e.offsetWidth - 330; | |
| return "vertical" === this.options.orientation && (t = e.offsetHeight - 200), | |
| Math.max(0, t) | |
| }, | |
| _onRefundItemByClick: function(e) { | |
| e.preventDefault(), | |
| e.stopPropagation(), | |
| this.options.onRefund() | |
| }, | |
| _onOpenImageOverlay: function(e) { | |
| var t = e.delegateTarget.getAttribute("data-src") | |
| , n = this.options.item.getEmbedded("item_content") | |
| , i = R["default"].getProviderOrDefault(n.get("provider").id); | |
| if (i.getCapability("imageGridZoom", !0)) { | |
| var s = n.get("images") | |
| , r = n.getEmbedded("items"); | |
| r && r.forEach(function(e) { | |
| s = s.concat(e.get("images")) | |
| }); | |
| var a = l["default"].findIndex(s, function(e) { | |
| return l["default"].find(e._links, function(e) { | |
| return e.href === t | |
| }) | |
| }); | |
| this.options.onOpenImageViewer(e, s, a, t), | |
| e.preventDefault() | |
| } | |
| }, | |
| _setWidth: function(e) { | |
| this.el && (this.el.style.width = e + "px") | |
| }, | |
| _getFeaturedImage: function() { | |
| return l["default"].get(this._imageContainer, "el") | |
| }, | |
| _createImageContainer: function(e, t) { | |
| var n = this | |
| , i = this.addView(new I["default"]({ | |
| image: t, | |
| orientation: e, | |
| height: this.el.offsetHeight, | |
| width: this.el.offsetWidth | |
| })) | |
| , s = S["default"].isMobile() ? "medium" : "original"; | |
| return "horizontal" === e && this.el.offsetHeight > 0 ? s = V["default"].getSizeForHeight(t._links, this.el.offsetHeight) : "vertical" === e && this.el.offsetWidth > 0 && (s = V["default"].getSizeForWidth(t._links, this.el.offsetWidth)), | |
| i.loadImage(s).then(function() { | |
| i.render(), | |
| n._imageContainer = i | |
| }) | |
| }, | |
| _updateHorizontal: function() { | |
| var e = 0; | |
| this._imageContainer && (e += Math.ceil(this._imageContainer.setSizeBasedOnHeight(this.el.parentNode.offsetHeight))), | |
| this._columnizedContent && (this._columnizedContent.columnize(this.el.offsetHeight), | |
| this._appendHorizontalSubItems(), | |
| this._appendBlendleControlsToContent(), | |
| e += this._columnizedContent.getWidth()), | |
| this._setWidth(e) | |
| }, | |
| _updateVertical: function() { | |
| this._imageContainer && this._imageContainer.setSizeBasedOnWidth(this.el.offsetWidth) | |
| }, | |
| _renderHorizontalContent: function(e, t) { | |
| var n = this | |
| , r = R["default"].getProviderOrDefault(t.get("provider").id) | |
| , a = 0 | |
| , o = !1 | |
| , l = !1 | |
| , u = c["default"].defer() | |
| , d = c["default"].defer() | |
| , p = e && i(e._links.original, 500); | |
| return r.getCapability("featuredImage") && p ? (o = !0, | |
| l = !0, | |
| this._createImageContainer("horizontal", e).then(function() { | |
| n.el.appendChild(n._imageContainer.el), | |
| a += n._imageContainer.el.offsetWidth, | |
| u.resolve() | |
| })) : u.resolve(), | |
| u.promise.then(function() { | |
| var e = n._renderContentBody(r, t.get("body")) | |
| , i = []; | |
| t.get("streamers") && r.get("capabilities").streamers && (i = t.get("streamers")), | |
| n._columnizedContent = new q["default"]({ | |
| height: n.el.offsetHeight, | |
| content: e, | |
| images: t.get("images").filter(function(e) { | |
| return !l || !e.featured | |
| }), | |
| imageGridEnabled: r.getCapability("imageGrid", !0), | |
| imageGridZoomEnabled: r.getCapability("imageGridZoom", !0), | |
| streamers: i | |
| }), | |
| n.el.appendChild(n._columnizedContent.el), | |
| o && n.el.classList.add("has-image"), | |
| b.loadFromElement(e.firstChild, 3e3)["catch"](function(t) { | |
| if (t && "WebFontsNotLoaded" === t.type) { | |
| var n = b.getElementsWithFonts(e.firstChild, t.failedFonts); | |
| return s(n), | |
| d.resolve() | |
| } | |
| return d.reject(t) | |
| }).then(function() { | |
| n._renderHorizontalContentColumns(a, t), | |
| n.setState("ready"), | |
| d.resolve() | |
| }) | |
| }), | |
| d.promise | |
| }, | |
| _renderVerticalContent: function(e, t) { | |
| var n = this | |
| , s = R["default"].getProviderOrDefault(t.get("provider").id) | |
| , r = c["default"].defer() | |
| , a = c["default"].defer() | |
| , o = !1 | |
| , l = e && i(e._links.original, 500); | |
| return s.getCapability("featuredImage") && l ? (o = !0, | |
| this._createImageContainer("vertical", e).then(function() { | |
| n.el.appendChild(n._imageContainer.el), | |
| r.resolve() | |
| })) : r.resolve(), | |
| r.promise.then(function() { | |
| var e = (0, | |
| T["default"])("div", { | |
| className: "item-columns" | |
| }) | |
| , i = []; | |
| s.get("capabilities").streamers && (i = t.get("streamers")); | |
| var r = s.getCapability("imageGrid", !0) | |
| , l = (0, | |
| O["default"])({ | |
| streamers: i, | |
| containerWidth: n.el.offsetWidth, | |
| body: t.get("body"), | |
| images: t.get("images").filter(function(e) { | |
| return !o || !e.featured | |
| }), | |
| imageGridEnabled: r | |
| }); | |
| e.appendChild(n._renderContentBody(s, l)), | |
| n.el.appendChild(e), | |
| n._appendVerticalSubItems(), | |
| n._appendRecommendElement(n.el), | |
| n._appendRefundElement(n.el), | |
| n.setState("ready"), | |
| a.resolve(n.el) | |
| }), | |
| a.promise | |
| }, | |
| _renderHorizontalContentColumns: function(e, t) { | |
| this.loaded && (this._columnizedContent.columnize(), | |
| this._appendHorizontalSubItems(), | |
| this._appendBlendleControlsToContent(), | |
| this._setWidth(e + this._columnizedContent.getWidth())) | |
| }, | |
| _renderContentBody: function(e, t) { | |
| var n = e.get("templates").item_content | |
| , i = (0, | |
| T["default"])("div", { | |
| innerHTML: g["default"].renderToStaticMarkup(p["default"].createElement("div", null , (0, | |
| N["default"])(t, n))) | |
| }); | |
| return this.findAll(".item-paragraph a", i).forEach(function(e) { | |
| e.target = "_blank" | |
| }), | |
| i | |
| }, | |
| _renderAcquisitionStatus: function() { | |
| if (!this.item.getEmbedded("b:acquisition").get("refundable")) { | |
| var e = this.el.querySelector(".item-columns .item-refund"); | |
| e && e.parentNode.removeChild(e) | |
| } | |
| }, | |
| _appendRefundElement: function(e) { | |
| var t = this.item.getEmbedded("b:acquisition").get("subscription") | |
| , n = this.item.getEmbedded("b:acquisition").get("refundable") | |
| , i = this.item.getEmbedded("b:acquisition").get("price"); | |
| return !t && n ? (0, | |
| T["default"])("p", { | |
| appendTo: e, | |
| className: "item-refund", | |
| innerHTML: (0, | |
| F.translate)("item.text.refund", [(0, | |
| E["default"])(i)]) | |
| }) : void 0 | |
| }, | |
| _appendRecommendElement: function(e) { | |
| return this._recommendElement ? e.appendChild(this._recommendElement) : (this._recommendElement = (0, | |
| T["default"])("div"), | |
| e.appendChild(this._recommendElement), | |
| h["default"].render(p["default"].createElement(A["default"], { | |
| item: this.options.item, | |
| analytics: this.options.analytics, | |
| posts: this.options.posts, | |
| onBlendleShare: this.options.onBlendleShare, | |
| onRemoveBlendleShare: this.options.onRemoveBlendleShare | |
| }), this._recommendElement)), | |
| this._recommendElement | |
| }, | |
| _appendHorizontalSubItems: function() { | |
| var e = this | |
| , t = this.item.getEmbedded("item_content") | |
| , n = R["default"].getProviderOrDefault(t.get("provider").id) | |
| , i = t.getEmbedded("items"); | |
| i && (this._subItemsContent = i.map(function(t) { | |
| var i = e._renderContentBody(n, t.get("body")) | |
| , s = []; | |
| n.get("capabilities").streamers && (s = t.get("streamers")); | |
| var r = new q["default"]({ | |
| height: e.el.offsetHeight, | |
| content: i, | |
| images: t.get("images"), | |
| startWithGrid: !0, | |
| streamers: s, | |
| isSubItem: !0 | |
| }); | |
| e.el.appendChild(r.el), | |
| r.el.classList.add("subitem-columns"), | |
| r.columnize(); | |
| var a = e._columnizedContent.appendColumn(r.el, r.getWidth()); | |
| return a.classList.add("subitem"), | |
| r | |
| })) | |
| }, | |
| _appendVerticalSubItems: function() { | |
| var e = this | |
| , t = this.item.getEmbedded("item_content") | |
| , n = R["default"].getProviderOrDefault(t.get("provider").id) | |
| , i = t.getEmbedded("items"); | |
| i && i.forEach(function(t) { | |
| var i = (0, | |
| T["default"])("div", { | |
| className: "item-columns subitem-columns" | |
| }) | |
| , s = []; | |
| n.get("capabilities").streamers && (s = t.get("streamers")); | |
| var r = (0, | |
| O["default"])({ | |
| streamers: s, | |
| containerWidth: e.el.offsetWidth, | |
| body: t.get("body"), | |
| images: t.get("images") | |
| }); | |
| i.appendChild(e._renderContentBody(n, r)); | |
| var a = document.createElement("div"); | |
| a.className = "subitem", | |
| a.appendChild(i), | |
| e.el.appendChild(a) | |
| }) | |
| }, | |
| _appendBlendleControlsToContent: function() { | |
| var e = this._columnizedContent.el.lastChild | |
| , t = this._appendRecommendElement(e) | |
| , n = this._appendRefundElement(e) | |
| , i = e.lastChild.previousSibling | |
| , s = 0; | |
| n && (s = 2 * n.offsetHeight, | |
| i = i.previousSibling); | |
| var r = t.offsetHeight + 100 | |
| , a = i.offsetTop + i.offsetHeight + s + r; | |
| i && a > e.offsetHeight && (this._columnizedContent.appendColumn(t), | |
| e = this._columnizedContent.el.lastChild, | |
| n && e.appendChild(n)) | |
| }, | |
| render: function(e) { | |
| this.el.id = "itemContent", | |
| this.el.classList.add("item"), | |
| this.el.classList.add("provider-" + e.get("provider").id), | |
| this.listenTo(this.item.getEmbedded("b:acquisition"), "change", this._renderAcquisitionStatus.bind(this)); | |
| var t = l["default"].findWhere(e.get("images"), { | |
| featured: !0 | |
| }); | |
| return "horizontal" === this.options.orientation ? this._renderHorizontalContent(t, e) : this._renderVerticalContent(t, e) | |
| } | |
| })); | |
| t["default"] = W, | |
| e.exports = t["default"] | |
| }, | |
| 388: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = n(18) | |
| , r = n(17) | |
| , a = n(104) | |
| , o = n(41) | |
| , l = n(30) | |
| , u = n(401) | |
| , c = n(402) | |
| , d = n(183) | |
| , p = (n(3).locale, | |
| n(3).translate) | |
| , f = n(1066) | |
| , h = u.extend({ | |
| className: "v-issue-acquired", | |
| initialize: function(e) { | |
| a(t.isObject(e), "IssueAcquiredView: Expected an options object"), | |
| a(e.issue, "IssueAcquiredView: Expects an issue model to be present in options object"), | |
| u.prototype.initialize.call(this, { | |
| areas: ["close", "message", "cover"] | |
| }) | |
| }, | |
| render: function() { | |
| return this._attachChildren(), | |
| this | |
| }, | |
| _attachChildren: function() { | |
| r.isMobile() || this.attach(null , "close"), | |
| this._attachMessage(), | |
| this._attachCover(), | |
| this.renderChildren().done() | |
| }, | |
| _attachClose: function() { | |
| this.attach(new d({ | |
| className: "v-button btn btn-close btn-icon btn-white", | |
| onClick: this.options.onClose | |
| }), "close") | |
| }, | |
| _attachMessage: function() { | |
| this.attach(new m({ | |
| issue: this.options.issue, | |
| onClick: this.options.onClick, | |
| onClose: this.options.onClose | |
| }), "message") | |
| }, | |
| _attachCover: function() { | |
| var e = this.attach(new u({ | |
| className: "v-cover-container", | |
| areas: ["cover", "status"] | |
| }), "cover"); | |
| e.attach(new c({ | |
| issue: this.options.issue | |
| }), "cover"); | |
| var t = n(184); | |
| e.attach(new t({ | |
| issue: this.options.issue, | |
| button: !1, | |
| hidePingu: this.options.hidePingu | |
| }), "status"), | |
| e.renderChildren().done() | |
| } | |
| }) | |
| , m = i.View.extend({ | |
| events: { | |
| "click .btn-issue, .btn-purchase-issue": "_eClick", | |
| "click .btn-okay": "_eClose" | |
| }, | |
| className: "v-issue-acquired-message", | |
| _eClick: function(e) { | |
| this.options.onClick(e) | |
| }, | |
| _eClose: function(e) { | |
| this.options.onClose(e) | |
| }, | |
| render: function() { | |
| var e = l.getProviderOrDefault(this.options.issue.get("provider").id).get("name") | |
| , t = s(this.options.issue.get("date")).calendar().toLowerCase() | |
| , n = this.options.issue.getEmbedded("b:issue-acquisition"); | |
| this.el.innerHTML = f({ | |
| acquired: n.get("acquired"), | |
| titleAcquired: p("item.text.read_for_free", [e, t]), | |
| messageAcquired: p("item.text.subtext_all_articles_free"), | |
| titleNotAcquired: p("item.dialogs.acquire.title_not_acquired", [e, t]), | |
| buttonIssueText: p("item.text.browse_issue"), | |
| buttonOkayText: p("app.buttons.i_get_it"), | |
| buttonAcquireIssue: p("item.dialogs.acquire.btn_not_acquired", o(n.get("price"))) | |
| }) | |
| } | |
| }); | |
| return h | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 389: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(25) | |
| , i = n(5) | |
| , s = n(4) | |
| , r = n(170) | |
| , a = n(3).locale | |
| , o = n(1067) | |
| , l = s.View.extend({ | |
| className: "v-item-suggestions", | |
| initialize: function(e) { | |
| this._setupModels(), | |
| this.orientation = e.orientation, | |
| this.addEventListener(window, "resize", this._resizePostTiles.bind(this)), | |
| this.el.classList.add("type-" + e.type) | |
| }, | |
| _setupModels: function() { | |
| this.tiles = new r(null ,{ | |
| exclude: this.options.item.id, | |
| track: !0 | |
| }) | |
| }, | |
| render: function() { | |
| return this.el.innerHTML = o({ | |
| i18n: a, | |
| type: this.options.type, | |
| typeOfArticles: a.item.text[this.options.type] | |
| }), | |
| this.options.item.waitFor("links").then(this.fetchMore.bind(this)).fail(function(e) { | |
| return 404 !== e.status ? t.reject(e) : (window.ErrorLogger.captureMessage("Failed loading " + e.xhr.responseURL), | |
| t.resolve()) | |
| }).done(), | |
| this | |
| }, | |
| fetchMore: function() { | |
| var e = this | |
| , s = document.createDocumentFragment() | |
| , r = n(862) | |
| , a = i.clone(this.analytics) | |
| , o = this.options; | |
| return a.type = "readmore/" + o.type, | |
| this.tiles.fetch({ | |
| url: o.url, | |
| accept: "application/hal+json" | |
| }).then(function() { | |
| return 0 === e.tiles.length && o.onEmpty ? o.onEmpty() : void (e.el && (e.tiles.each(function(t, n) { | |
| if (5 > n && (t.getEmbedded("b:item") || t.getEmbedded("item"))) { | |
| a.readmoreNumber = n; | |
| var i = e.addView(new r({ | |
| tile: t, | |
| orientation: e.orientation, | |
| analytics: a | |
| })); | |
| s.appendChild(i.render().el) | |
| } | |
| }), | |
| e.el.querySelector(".v-items").appendChild(s), | |
| i.each(e.getViews(), function(e) { | |
| e.afterRender() | |
| }))) | |
| }).fail(function(e) { | |
| return e.status ? (window.ErrorLogger.captureMessage("Failed loading " + o.url), | |
| t.resolve()) : t.reject(e) | |
| }).done(), | |
| this | |
| }, | |
| hide: function() { | |
| this.el.classList.add("hidden") | |
| }, | |
| _resizePostTiles: function() { | |
| i.each(this.getViews(), function(e) { | |
| e.setHeight && e.setHeight() | |
| }) | |
| } | |
| }); | |
| return l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 390: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(28) | |
| , l = i(o) | |
| , u = r["default"].createClass({ | |
| displayName: "PaymentFooter", | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: "dialogue-payment-footer" | |
| }, r["default"].createElement(l["default"], { | |
| className: "dialogue-payment-footer-link", | |
| href: "/about/termsandconditions" | |
| }, (0, | |
| a.translate)("terms_and_conditions")), " • ", r["default"].createElement(l["default"], { | |
| className: "dialogue-payment-footer-link", | |
| href: "/about/privacy" | |
| }, (0, | |
| a.translate)("privacy_statement"))) | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 391: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(34) | |
| , s = n(4) | |
| , r = n(16) | |
| , a = n(13) | |
| , o = n(12) | |
| , l = n(30) | |
| , u = s.ModuleController.extend({ | |
| refundItem: function(e, n, s, u, c) { | |
| i.ajax({ | |
| async: !c, | |
| url: r.get("links").user_items.href.replace("{user_id}", o.getId()) + "/" + e.id, | |
| type: "DELETE" | |
| }).then(function(i) { | |
| if (200 === i.status) { | |
| var r = e.getEmbedded("b:acquisition"); | |
| r.set("acquired", !1), | |
| r.set("justAcquired", !1), | |
| r.fetchRelation("b:issue-acquisition").done(), | |
| t.has(e, "_embedded.item_content") && delete e._embedded.item_content, | |
| a.track("Refund Item", { | |
| provider: l.getProviderOrDefault(e.getEmbedded("manifest").get("provider").id).get("name"), | |
| item_id: e.id, | |
| wordcount: e.getEmbedded("manifest").get("length").words, | |
| issue_id: e.getEmbedded("manifest").get("issue").id, | |
| item_title: e.getEmbedded("manifest").getTitle(), | |
| price: r.get("price"), | |
| reason: "other" !== n ? n : s, | |
| referrer: document.referrer | |
| }), | |
| o.getUser().addToBalance(r.get("price")), | |
| o.getUser().set("reads", o.getUser().get("reads") - 1), | |
| t.isFunction(u) && u(!0, i.refund_limit_exceeded === !0 && "refund_account_limit") | |
| } else | |
| 202 === i.status && t.isFunction(u) && u(!1, "refund_account_limit") | |
| }, function(e) { | |
| 403 === e.status ? t.isFunction(u) && u(!1, "refund_time_limit") : 429 === e.status ? t.isFunction(u) && u(!1, "refund_rate_limit") : t.isFunction(u) && u(!1, "unable_to_refund") | |
| }).done() | |
| }, | |
| refundReason: function(e, n, s, a) { | |
| i.ajax({ | |
| url: r.get("links").refund_reason.href.replace("{user_id}", o.getId()).replace("{item_id}", e.id), | |
| type: "POST", | |
| data: JSON.stringify({ | |
| refund_code: n, | |
| refund_message: s | |
| }) | |
| }).then(function() { | |
| t.isFunction(a) && a() | |
| }).done() | |
| } | |
| }); | |
| return u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 392: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = (n(16), | |
| n(17), | |
| n(758)) | |
| , s = n(757) | |
| , r = n(12) | |
| , a = t.Module.extend({ | |
| name: "refund", | |
| type: "dialogue", | |
| requireAuth: function() { | |
| return r.requireSignup() | |
| }, | |
| openRefundNotice: function(e, t) { | |
| var n = this; | |
| this.setController(new i({ | |
| module: this, | |
| area: this.getArea(), | |
| callback: t | |
| })), | |
| this.getController().showNoticeLoading(), | |
| this.getController().refundItem(e, "close_within_x", null , function(t, i) { | |
| n.getController() && n.getController().showNotice(e, i) | |
| }), | |
| this.load() | |
| }, | |
| refundWithoutNotice: function(e, t) { | |
| this.setController(new i({ | |
| module: this, | |
| area: this.getArea(), | |
| callback: t | |
| })), | |
| this.getController().refundItem(e, "close_within_x", null , null , !0), | |
| this.load() | |
| }, | |
| openRefundDialogue: function(e, n, i) { | |
| this.setController(new s({ | |
| module: this, | |
| area: this.getArea(), | |
| callback: n | |
| })), | |
| t.history.navigate(t.history.fragment + "/refund"), | |
| this.getController().showDialogue(e, i), | |
| this.load() | |
| } | |
| }); | |
| return new a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 393: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(8) | |
| , d = n(37) | |
| , p = (o(d), | |
| n(369)) | |
| , f = o(p) | |
| , h = n(82) | |
| , m = o(h) | |
| , g = n(762) | |
| , v = o(g) | |
| , y = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), | |
| this.state = { | |
| status: c.STATUS_INITIAL | |
| } | |
| } | |
| return s(t, e), | |
| r(t, null , [{ | |
| key: "propTypes", | |
| value: { | |
| layout: u["default"].PropTypes.oneOf(["button", "link"]), | |
| alert: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| r(t, [{ | |
| key: "componentWillReceiveProps", | |
| value: function(e) { | |
| this.props.alert !== e.alert && this.setState({ | |
| status: c.STATUS_INITIAL | |
| }) | |
| } | |
| }, { | |
| key: "_onAdd", | |
| value: function(e, t) { | |
| var n = this; | |
| this.setState({ | |
| status: c.STATUS_PENDING | |
| }), | |
| f["default"].add(e, t).then(function() { | |
| n.setState({ | |
| status: c.STATUS_OK | |
| }) | |
| })["catch"](function(e) { | |
| if (e.type === c.XHR_STATUS && 422 === e.status) | |
| return n.setState({ | |
| status: c.STATUS_OK | |
| }); | |
| throw e | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this; | |
| return u["default"].createElement(v["default"], { | |
| layout: this.props.layout, | |
| status: this.state.status, | |
| onAdd: function(t) { | |
| e._onAdd(m["default"].getState().user.id, e.props.alert) | |
| } | |
| }) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 394: function(e, t, n) { | |
| "use strict"; | |
| function i() { | |
| var e = document.createElement("div"); | |
| return document.querySelector(".a-main").appendChild(e), | |
| e | |
| } | |
| var s = n(5) | |
| , r = n(2) | |
| , a = n(15) | |
| , o = (n(17), | |
| n(92)) | |
| , l = n(117) | |
| , u = n(231) | |
| , c = n(11); | |
| e.exports = r.createClass({ | |
| displayName: "exports", | |
| propTypes: { | |
| disabled: r.PropTypes.bool, | |
| onClick: r.PropTypes.func.isRequired | |
| }, | |
| mixins: [l()], | |
| _scrollParentNode: null , | |
| _stickySubmitNode: null , | |
| _debouncedUpdate: null , | |
| getDefaultProps: function() { | |
| return { | |
| disabled: !0, | |
| portal: i() | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| visible: !1 | |
| } | |
| }, | |
| componentWillMount: function() { | |
| this._debouncedUpdate = s.debounce(this.updateVisiblity, 16) | |
| }, | |
| componentDidMount: function() { | |
| this._scrollParentNode = u(a.findDOMNode(this), ".pane"), | |
| this._scrollParentNode.addEventListener("scroll", this._debouncedUpdate) | |
| }, | |
| componentWillUnmount: function() { | |
| this._scrollParentNode.removeEventListener("scroll", this._debouncedUpdate) | |
| }, | |
| layerDidUnmount: function() { | |
| this._target && this._target.parentNode && this._target.parentNode.removeChild(this._target) | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| e.disabled ? this._scrollParentNode.removeEventListener("scroll", this._debouncedUpdate) : !e.disabled && this.props.disabled && this._scrollParentNode.addEventListener("scroll", this._debouncedUpdate) | |
| }, | |
| updateVisiblity: function() { | |
| if (this.isMounted()) { | |
| var e = 250 | |
| , t = this._scrollParentNode.clientHeight + this._scrollParentNode.scrollTop + e | |
| , n = t > this._scrollParentNode.scrollHeight; | |
| this.setState({ | |
| visible: !n | |
| }) | |
| } | |
| }, | |
| _renderButton: function(e) { | |
| if (this.props.disabled) | |
| return r.createElement("span", null ); | |
| var t = c(["sticky-submit", { | |
| visible: this.state.visible | |
| }]); | |
| return r.createElement("div", { | |
| className: t, | |
| "aria-hidden": !0 | |
| }, r.createElement(o, { | |
| onClick: e, | |
| loading: this.props.loading | |
| })) | |
| }, | |
| renderLayer: function() { | |
| return this._renderButton(this.props.onClick) | |
| }, | |
| render: function() { | |
| return r.createElement("span", null ) | |
| } | |
| }) | |
| }, | |
| 395: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = (r(a), | |
| n(19)) | |
| , l = r(o) | |
| , u = n(134) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.bindActions(c["default"]), | |
| this.state = { | |
| login: { | |
| status: a.STATUS_INITIAL | |
| }, | |
| loginEmail: { | |
| status: a.STATUS_INITIAL | |
| } | |
| } | |
| } | |
| return i(e, [{ | |
| key: "onSetEmail", | |
| value: function(e) { | |
| this.setState({ | |
| login: { | |
| email: e | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onLoginWithCredentials", | |
| value: function() { | |
| this.setState({ | |
| login: { | |
| status: a.STATUS_PENDING | |
| }, | |
| loginEmail: { | |
| status: a.STATUS_INITIAL | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onLoginSuccess", | |
| value: function() { | |
| this.setState({ | |
| login: { | |
| status: a.STATUS_OK | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onLoginError", | |
| value: function(e) { | |
| this.setState({ | |
| login: { | |
| status: a.STATUS_ERROR, | |
| error: e | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onSendLoginEmailSuccess", | |
| value: function() { | |
| this.setState({ | |
| loginEmail: { | |
| status: a.STATUS_OK | |
| } | |
| }) | |
| } | |
| }, { | |
| key: "onSendLoginEmailError", | |
| value: function(e) { | |
| this.setState({ | |
| loginEmail: { | |
| status: a.STATUS_ERROR, | |
| error: e | |
| } | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "LoginStore"), | |
| e.exports = t["default"] | |
| }, | |
| 396: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = r(a) | |
| , l = n(19) | |
| , u = r(l) | |
| , c = n(218) | |
| , d = r(c) | |
| , p = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = o["default"].STATUS_INITIAL, | |
| this.bindActions(d["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onSetInactive", | |
| value: function(e) { | |
| var t = e.active; | |
| this.setState({ | |
| active: t | |
| }) | |
| } | |
| }, { | |
| key: "onSetActive", | |
| value: function(e) { | |
| var t = e.active; | |
| this.setState({ | |
| active: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNewsStand", | |
| value: function() { | |
| this.setState({ | |
| status: o["default"].STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNewsStandSuccess", | |
| value: function(e) { | |
| var t = e.newsStand; | |
| this.setState({ | |
| status: o["default"].STATUS_OK, | |
| newsStand: t | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNewsStandError", | |
| value: function(e) { | |
| var t = e.message; | |
| this.setState({ | |
| status: o["default"].STATUS_ERROR, | |
| newsStand: null , | |
| message: t | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = u["default"].createStore(p, "NewsStandStore"), | |
| e.exports = t["default"] | |
| }, | |
| 397: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = r(a) | |
| , l = n(19) | |
| , u = r(l) | |
| , c = n(166) | |
| , d = r(c) | |
| , p = n(319) | |
| , f = r(p) | |
| , h = function() { | |
| function e() { | |
| s(this, e), | |
| this.bindActions(d["default"]), | |
| this.notifications = new f["default"], | |
| this.status = o["default"].STATUS_INITIAL | |
| } | |
| return i(e, [{ | |
| key: "onFetchNotifications", | |
| value: function(e) { | |
| this.setState({ | |
| status: o["default"].STATUS_PENDING, | |
| notifications: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNotificationsSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| status: o["default"].STATUS_OK, | |
| notifications: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNotificationsError", | |
| value: function(e) { | |
| this.setState({ | |
| status: o["default"].STATUS_ERROR, | |
| message: e | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNextNotifications", | |
| value: function() { | |
| this.setState({ | |
| status: o["default"].STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onFetchNextNotificationsSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| status: o["default"].STATUS_OK, | |
| notifications: e | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = u["default"].createStore(h, "NotificationsStore"), | |
| e.exports = t["default"] | |
| }, | |
| 398: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(167) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = a.STATUS_INITIAL, | |
| this.error = null , | |
| this.sentTo = null , | |
| this.loadingPlatforms = {}, | |
| this.bindActions(c["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onLoadPlatform", | |
| value: function(e) { | |
| var t = this.loadingPlatforms; | |
| t[e] = a.STATUS_PENDING, | |
| this.setState({ | |
| loadingPlatforms: t | |
| }) | |
| } | |
| }, { | |
| key: "onLoadPlatformSuccess", | |
| value: function(e) { | |
| var t = this.loadingPlatforms; | |
| delete t[e], | |
| this.setState({ | |
| loadingPlatforms: t | |
| }) | |
| } | |
| }, { | |
| key: "onShareItemToEmailSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| sentTo: e | |
| }) | |
| } | |
| }, { | |
| key: "onShareItemToEmailError", | |
| value: function(e) { | |
| var t = e.error; | |
| this.setState({ | |
| status: a.STATUS_ERROR, | |
| error: t.message | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "ShareStore"), | |
| e.exports = t["default"] | |
| }, | |
| 399: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(219) | |
| , c = r(u) | |
| , d = function() { | |
| function e() { | |
| s(this, e), | |
| this.product = null , | |
| this.status = a.STATUS_INITIAL, | |
| this.jwt = null , | |
| this.bindActions(c["default"]) | |
| } | |
| return i(e, [{ | |
| key: "onFetchProduct", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| jwt: null | |
| }) | |
| } | |
| }, { | |
| key: "onFetchProductSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| product: e, | |
| status: a.STATUS_OK | |
| }) | |
| } | |
| }, { | |
| key: "onFetchProductError", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_ERROR | |
| }) | |
| } | |
| }, { | |
| key: "onCreateOrder", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING | |
| }) | |
| } | |
| }, { | |
| key: "onCreateOrderSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| jwt: e, | |
| status: a.STATUS_OK | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(d, "SubscriptionsProductsStore"), | |
| e.exports = t["default"] | |
| }, | |
| 400: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"] | |
| , r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(8) | |
| , o = n(19) | |
| , l = r(o) | |
| , u = n(220) | |
| , c = r(u) | |
| , d = n(114) | |
| , p = r(d) | |
| , f = function() { | |
| function e() { | |
| s(this, e), | |
| this.status = a.STATUS_INITIAL, | |
| this.errorMessage = null , | |
| this.connected = !1, | |
| this.friends = [], | |
| this.bindActions(c["default"]), | |
| this.bindAction(p["default"].UPDATE, this.onUpdateUser) | |
| } | |
| return i(e, [{ | |
| key: "onUpdateUser", | |
| value: function(e) { | |
| this.setState({ | |
| connected: "string" == typeof e.get("twitter_id") | |
| }) | |
| } | |
| }, { | |
| key: "onToggleTwitter", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onConnectTwitter", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_PENDING, | |
| error: null | |
| }) | |
| } | |
| }, { | |
| key: "onTwitterError", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_ERROR | |
| }) | |
| } | |
| }, { | |
| key: "onTwitterConnectSuccess", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_OK | |
| }) | |
| } | |
| }, { | |
| key: "onTwitterDisconnectSuccess", | |
| value: function() { | |
| this.setState({ | |
| status: a.STATUS_OK, | |
| connected: !1 | |
| }) | |
| } | |
| }, { | |
| key: "onFetchTwitterFriendsSuccess", | |
| value: function(e) { | |
| this.setState({ | |
| friends: e | |
| }) | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = l["default"].createStore(f, "TwitterStore"), | |
| e.exports = t["default"] | |
| }, | |
| 401: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(25) | |
| , s = n(5) | |
| , r = n(104) | |
| , a = t.View.extend({ | |
| className: "v-composite", | |
| initialize: function(e) { | |
| this._areas = [], | |
| e = e || {}, | |
| e.className && this.el.setAttribute("class", this.options.className), | |
| e && e.areas && (this._areas = e.areas.map(function(e) { | |
| return { | |
| name: e, | |
| view: null | |
| } | |
| }, this)) | |
| }, | |
| attach: function(e, t, n) { | |
| r(s.isString(t), "CompositeView.attach: Area must be a string"); | |
| var i = this._detach(t); | |
| return n || (n = i >= 0 ? i : this._areas.length), | |
| this._insertArea(t, e, n), | |
| this.options && this.options.zIndexIncrement && this.resetAreaIndexes(), | |
| e && e.el && this._insertViewIntoDOM(e, n), | |
| e | |
| }, | |
| detach: function(e) { | |
| this.attach(null , e) | |
| }, | |
| _detach: function(e) { | |
| var t = this._getArea(e) | |
| , n = this._areaIndex(t && t.name); | |
| return n >= 0 && t && t.view && this.removeView(t.view), | |
| n | |
| }, | |
| _insertArea: function(e, t, n) { | |
| var i = { | |
| name: e, | |
| view: t ? this.addView(t, e) : null | |
| }; | |
| return this._areas[n] = i, | |
| i | |
| }, | |
| _getArea: function(e) { | |
| return s.findWhere(this._areas, { | |
| name: e | |
| }) | |
| }, | |
| _areaIndex: function(e) { | |
| var t = this._areas.indexOf(s.findWhere(this._areas, { | |
| name: e | |
| })); | |
| return 0 > t ? null : t | |
| }, | |
| _nextActiveArea: function(e) { | |
| return s.first(s.filter(this._areas, function(t, n) { | |
| return n > e && t.view && t.view.el | |
| })) | |
| }, | |
| _insertViewIntoDOM: function(e, t) { | |
| var n = this._nextActiveArea(t); | |
| n ? this.el.insertBefore(e.el, n.view.el) : this.el.appendChild(e.el) | |
| }, | |
| render: function() { | |
| return this | |
| }, | |
| renderChildren: function(e) { | |
| return i.all(s.map(s.filter(this._areas, function(t) { | |
| return e ? e.indexOf(t.name) >= 0 : !0 | |
| }), function(e) { | |
| return i.when(!e.view || e.view.render.call(e.view)) | |
| })) | |
| }, | |
| resetAreaIndexes: function() { | |
| s.each(this._areas, function(e, t) { | |
| e.view && e.view.el && (e.view.el.style.zIndex = (this.options.zIndexIncrement > 0 ? 0 : this._areas.length - 1) + t * this.options.zIndexIncrement) | |
| }, this) | |
| } | |
| }); | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 402: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , s = n(104) | |
| , r = n(232) | |
| , a = n(3).locale | |
| , o = n(1051) | |
| , l = n(1052) | |
| , u = t.View.extend({ | |
| tagName: "a", | |
| className: "v-cover cover", | |
| initialize: function(e) { | |
| s(i.isObject(e), "CoverView: An options object is required"), | |
| s(i.isObject(e), "CoverView: An issue object is required"), | |
| this.setState("loading"), | |
| e && !e.size && (this.options.size = "original"), | |
| this._coverImage = new r(this.options.issue.getCoverURL()), | |
| this.el.classList.add(this.options.issue.get("provider").id), | |
| "tiles" === this.options.issue.get("representations")[0] && this.setLayout("web"), | |
| e.href && this.el.setAttribute("href", this.options.href), | |
| e.onClick && this.addEventListener(this.el, "click", e.onClick) | |
| }, | |
| render: function() { | |
| return this.el.innerHTML = o({ | |
| provider: this.options.issue.get("provider") | |
| }), | |
| this.setupDomLinks({ | |
| canvas: ".image-canvas" | |
| }), | |
| this.options.hasHoverState && this.el.insertAdjacentHTML("beforeend", l({ | |
| i18n: a | |
| })), | |
| this._coverImage.load(this.options.size).then(this._setImage.bind(this)).fail(function() {}).done(), | |
| this | |
| }, | |
| _setImage: function(e) { | |
| if (this.dom.canvas.appendChild(e.el), | |
| !this.options.ignoreSize) { | |
| var t = this.options.issue.getCoverWidth() | |
| , n = this.options.issue.getCoverHeight(); | |
| this.el.style.height = Math.ceil(this.el.offsetWidth * (n / t)) + "px", | |
| this.el.style.width = Math.ceil(this.el.offsetHeight * (t / n)) + "px" | |
| } | |
| this.display() | |
| } | |
| }); | |
| return u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 403: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(5) | |
| , i = n(4) | |
| , s = n(1057) | |
| , r = i.View.extend({ | |
| template: s, | |
| className: "frm-field-wrapper", | |
| type: "text", | |
| name: "defaultName", | |
| placeholder: "placeholder", | |
| value: "", | |
| maxlength: "", | |
| autoFocus: !1, | |
| autoComplete: !0, | |
| classNames: [], | |
| keyUpChangeTimeout: 700, | |
| toLowerCase: !1, | |
| _keyUpChangePrevValue: null , | |
| typeClassMapping: { | |
| text: "text", | |
| email: "text", | |
| file: "file" | |
| }, | |
| events: { | |
| "click input": "_eClick", | |
| "change input": "_eChange", | |
| "focus input": "_eFocus", | |
| "blur input": "_eBlur", | |
| "keyup input": "_eKeyUp", | |
| "keydown input": "_eKeyDown" | |
| }, | |
| _eClick: function() {}, | |
| _eChange: function() {}, | |
| _eFocus: function() {}, | |
| _eBlur: function() {}, | |
| _eKeyUp: function() {}, | |
| _eKeyDown: function() {}, | |
| initialize: function(e) { | |
| this.setup(e) | |
| }, | |
| validate: function() { | |
| return !0 | |
| }, | |
| reset: function() { | |
| this.resetKeyUpChange() | |
| }, | |
| transformValue: function(e) { | |
| return this.toLowerCase && (e = e.toLowerCase()), | |
| e | |
| }, | |
| getValue: function() { | |
| return this.dom ? this.transformValue(this.dom.input.value) : void 0 | |
| }, | |
| setValue: function(e) { | |
| this.dom && (this.dom.input.value = this.transformValue(e)) | |
| }, | |
| setup: function(e) { | |
| this.options = t.defaults(e, { | |
| type: this.type, | |
| name: this.name, | |
| placeholder: this.placeholder, | |
| value: this.value, | |
| maxlength: this.maxlength, | |
| autoFocus: this.autoFocus, | |
| autoComplete: this.autoComplete, | |
| classNames: this.classNames, | |
| keyUpChangeTimeout: this.keyUpChangeTimeout | |
| }) | |
| }, | |
| _setupKeyUpChange: function(e) { | |
| var n = t.debounce(this._keyUpHasChanged.bind(this), e); | |
| this._keyUpChangePrevValue = this.getValue(), | |
| this.dom.input.addEventListener("keyup", n, !1) | |
| }, | |
| _keyUpHasChanged: function(e) { | |
| if (this.dom) { | |
| var t = this.getValue(); | |
| t !== this._keyUpChangePrevValue && (e.preventDefault(), | |
| this._keyUpChangePrevValue = t, | |
| this.setValue(t), | |
| this._eChange(e)) | |
| } | |
| }, | |
| resetKeyUpChange: function() { | |
| this._keyUpChangePrevValue = null | |
| }, | |
| setClassNames: function() { | |
| var e = this | |
| , n = this.options.classNames || []; | |
| n.push("inp-" + this.typeClassMapping[this.options.type] || this.options.type), | |
| n.push("inp-" + this.options.name), | |
| this.toLowerCase && n.push("lowercase"), | |
| t.each(n, function(t) { | |
| e.dom.input.classList.add(t) | |
| }) | |
| }, | |
| setAttributes: function() { | |
| this.dom.input && (this.options.autocapitalize === !1 && this.dom.input.setAttribute("autocapitalize", "off"), | |
| this.options.autocomplete === !1 && this.dom.input.setAttribute("autocomplete", "off"), | |
| this.options.autoFocus === !0 && this.dom.input.setAttribute("autofocus", "true"), | |
| this.options.autocorrect === !1 && this.dom.input.setAttribute("autocorrect", "off"), | |
| this.options.disabled === !0 ? this.dom.input.setAttribute("disabled", "disabled") : this.dom.input.removeAttribute("disabled"), | |
| !this.options.autofocus || "Explorer" === window.BrowserDetect.browser && window.BrowserDetect.version <= 11 || this.dom.input.setAttribute("autofocus", !0)) | |
| }, | |
| setError: function(e) { | |
| this.resetError(); | |
| var t = document.createElement("div"); | |
| t.className = "error-message visible", | |
| t.innerHTML = e, | |
| this.dom.input.parentNode.appendChild(t), | |
| this.dom.error = t | |
| }, | |
| resetError: function() { | |
| this.dom.error && (this.dom.error.parentNode.removeChild(this.dom.error), | |
| this.dom.error = null ) | |
| }, | |
| setDisabled: function(e) { | |
| this.options.disabled = e, | |
| this.setAttributes() | |
| }, | |
| render: function() { | |
| return this.el.innerHTML = this.template(this.options), | |
| this.dom.input = this.el.querySelector("input"), | |
| this.setClassNames(), | |
| this.setAttributes(), | |
| this.options.keyUpChangeTimeout && this._setupKeyUpChange(this.options.keyUpChangeTimeout), | |
| this | |
| } | |
| }); | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 404: function(e, t, n) { | |
| var i; | |
| i = function() { | |
| "use strict"; | |
| var e = n(8).keyCode | |
| , t = { | |
| events: { | |
| "change .inp": "_onChange", | |
| "keyup .inp": "_eOnKeyUp", | |
| "keydown .inp": "_eOnKeyDown", | |
| "focus .inp": "_onFocus", | |
| "blur .inp": "_onBlur" | |
| }, | |
| initialize: function() { | |
| this._value = this.options.value, | |
| this.options.className && this.el.setAttribute("class", this.options.className), | |
| this.options.layout && this.el.classList.add("l-" + this.options.layout), | |
| this._disabled = this.options.disabled | |
| }, | |
| render: function() { | |
| return this._addInput(), | |
| this.options.showLimit && this._addLimit(), | |
| this.options.disabled && this.disable(), | |
| this | |
| }, | |
| setValue: function(e) { | |
| return this._value = e, | |
| this._inputEl.value = e, | |
| this._updateLimit(this.options.limit - e.length), | |
| e | |
| }, | |
| getValue: function() { | |
| return this._value | |
| }, | |
| setSuccess: function() { | |
| this.setState("success") | |
| }, | |
| setError: function() { | |
| this.setState("error") | |
| }, | |
| setLoading: function() { | |
| this.setState("loading") | |
| }, | |
| focus: function() { | |
| this._inputEl.focus(), | |
| this.options.onFocus && this.options.onFocus() | |
| }, | |
| disable: function() { | |
| this._disabled = !0, | |
| this._inputEl.setAttribute("readonly", ""), | |
| this.setState("inactive") | |
| }, | |
| enable: function() { | |
| this._disabled = !1, | |
| this._inputEl.removeAttribute("readonly"), | |
| this.removeState("inactive") | |
| }, | |
| _addInput: function() { | |
| return this._inputEl = document.createElement(this.inputTagName || "input"), | |
| this._inputEl.classList.add("inp"), | |
| this._inputEl.classList.add("inp-" + this.inputTagType || "text"), | |
| this._inputEl.setAttribute("type", this.inputTagType || "text"), | |
| this.options.value && (this._inputEl.value = this.options.value), | |
| this.options.placeholder && this._inputEl.setAttribute("placeholder", this.options.placeholder), | |
| this.el.appendChild(this._inputEl), | |
| this._inputEl | |
| }, | |
| _addLimit: function() { | |
| return this._limitEl = document.createElement("p"), | |
| this._limitEl.classList.add("limit"), | |
| this.el.appendChild(this._limitEl), | |
| this._updateLimit(this.options.limit), | |
| this._limitEl | |
| }, | |
| _onFocus: function() { | |
| this.onFocus && this.onFocus() | |
| }, | |
| _onBlur: function() { | |
| this._onBlur && this._onBlur() | |
| }, | |
| _onChange: function() { | |
| this._value = this._inputEl.value, | |
| this._updateLimit(this.options.limit - this._value.length), | |
| this.options.onChange && this.options.onChange(this._value) | |
| }, | |
| _onSubmit: function() { | |
| this.options.onSubmit && this.options.onSubmit(this.getValue()) | |
| }, | |
| _eOnKeyUp: function(t) { | |
| return t.ctrlKey ? void 0 : t.keyCode >= e.ARROW_LEFT && t.keyCode <= e.ARROW_DOWN ? (t.stopPropagation(), | |
| !1) : void this._onChange() | |
| }, | |
| _eOnKeyDown: function(t) { | |
| return t.ctrlKey ? void 0 : this.options.submitOnEnter && t.keyCode === e.RETURN ? (t.preventDefault(), | |
| this._onSubmit(), | |
| !1) : t.keyCode >= e.ARROW_LEFT && t.keyCode <= e.ARROW_DOWN ? (t.stopPropagation(), | |
| !1) : void 0 | |
| }, | |
| _updateLimit: function(e) { | |
| this.options.showLimit && (this._limitEl.innerHTML = e), | |
| e >= 0 ? this.removeState("limit") : this.setState("limit"), | |
| 0 >= e && this.options.onLimit && this.options.onLimit(e) | |
| } | |
| }; | |
| return t | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 405: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(3).locale | |
| , s = n(1050) | |
| , r = t.View.extend({ | |
| className: "v-close", | |
| events: { | |
| "click .btn-close": "_eCloseByClick" | |
| }, | |
| render: function() { | |
| return this.delegateEvents(), | |
| this.el.innerHTML = s({ | |
| i18n: i | |
| }), | |
| this | |
| }, | |
| _eCloseByClick: function() { | |
| this.options.onClick ? this.options.onClick(this.getController()) : this.getController().close() | |
| } | |
| }); | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 418: function(e, t, n) { | |
| var i = n(74) | |
| , s = n(61) | |
| , r = n(155); | |
| e.exports = function(e) { | |
| return function(t, n, a) { | |
| var o, l = i(t), u = s(l.length), c = r(a, u); | |
| if (e && n != n) { | |
| for (; u > c; ) | |
| if (o = l[c++], | |
| o != o) | |
| return !0 | |
| } else | |
| for (; u > c; c++) | |
| if ((e || c in l) && l[c] === n) | |
| return e || c; | |
| return !e && -1 | |
| } | |
| } | |
| }, | |
| 419: [5932, 29, 85, 199, 83, 201, 84, 152, 267, 431, 130, 60, 36, 200, 71], | |
| 420: [5933, 152, 194], | |
| 421: function(e, t, n) { | |
| "use strict"; | |
| var i = n(85) | |
| , s = n(199) | |
| , r = n(39) | |
| , a = n(36) | |
| , o = n(201) | |
| , l = n(152) | |
| , u = n(193) | |
| , c = n(60) | |
| , d = n(130)("weak") | |
| , p = Object.isExtensible || a | |
| , f = u(5) | |
| , h = u(6) | |
| , m = 0 | |
| , g = function(e) { | |
| return e._l || (e._l = new v) | |
| } | |
| , v = function() { | |
| this.a = [] | |
| } | |
| , y = function(e, t) { | |
| return f(e.a, function(e) { | |
| return e[0] === t | |
| }) | |
| } | |
| ; | |
| v.prototype = { | |
| get: function(e) { | |
| var t = y(this, e); | |
| return t ? t[1] : void 0 | |
| }, | |
| has: function(e) { | |
| return !!y(this, e) | |
| }, | |
| set: function(e, t) { | |
| var n = y(this, e); | |
| n ? n[1] = t : this.a.push([e, t]) | |
| }, | |
| "delete": function(e) { | |
| var t = h(this.a, function(t) { | |
| return t[0] === e | |
| }); | |
| return ~t && this.a.splice(t, 1), | |
| !!~t | |
| } | |
| }, | |
| e.exports = { | |
| getConstructor: function(e, t, n, i) { | |
| var r = e(function(e, s) { | |
| o(e, r, t), | |
| e._i = m++, | |
| e._l = void 0, | |
| void 0 != s && l(s, n, e[i], e) | |
| }); | |
| return s(r.prototype, { | |
| "delete": function(e) { | |
| return a(e) ? p(e) ? c(e, d) && c(e[d], this._i) && delete e[d][this._i] : g(this)["delete"](e) : !1 | |
| }, | |
| has: function(e) { | |
| return a(e) ? p(e) ? c(e, d) && c(e[d], this._i) : g(this).has(e) : !1 | |
| } | |
| }), | |
| r | |
| }, | |
| def: function(e, t, n) { | |
| return p(r(t)) ? (c(t, d) || i(t, d, {}), | |
| t[d][e._i] = n) : g(e).set(t, n), | |
| e | |
| }, | |
| frozenStore: g, | |
| WEAK: d | |
| } | |
| }, | |
| 422: [5936, 36, 42], | |
| 423: function(e, t, n) { | |
| "use strict"; | |
| var i = n(39); | |
| e.exports = function() { | |
| var e = i(this) | |
| , t = ""; | |
| return e.global && (t += "g"), | |
| e.ignoreCase && (t += "i"), | |
| e.multiline && (t += "m"), | |
| e.unicode && (t += "u"), | |
| e.sticky && (t += "y"), | |
| t | |
| } | |
| }, | |
| 424: [5939, 74, 29], | |
| 425: [5941, 42], | |
| 426: [5943, 153, 40], | |
| 427: function(e, t, n) { | |
| var i = n(36) | |
| , s = Math.floor; | |
| e.exports = function(e) { | |
| return !i(e) && isFinite(e) && s(e) === e | |
| } | |
| }, | |
| 428: function(e, t, n) { | |
| var i = n(36) | |
| , s = n(95) | |
| , r = n(40)("match"); | |
| e.exports = function(e) { | |
| var t; | |
| return i(e) && (void 0 !== (t = e[r]) ? !!t : "RegExp" == s(e)) | |
| } | |
| }, | |
| 429: [5945, 39], | |
| 430: [5946, 29, 108, 154, 85, 40], | |
| 431: 411, | |
| 432: function(e, t) { | |
| e.exports = Math.log1p || function(e) { | |
| return (e = +e) > -1e-8 && 1e-8 > e ? e - e * e / 2 : Math.log(1 + e) | |
| } | |
| }, | |
| 433: [5953, 29, 74], | |
| 434: function(e, t, n) { | |
| var i = n(29) | |
| , s = n(39) | |
| , r = n(42).Reflect; | |
| e.exports = r && r.ownKeys || function(e) { | |
| var t = i.getNames(s(e)) | |
| , n = i.getSymbols; | |
| return n ? t.concat(n(e)) : t | |
| } | |
| }, | |
| 435: 903, | |
| 436: [5957, 42], | |
| 437: function(e, t, n) { | |
| var i = n(61) | |
| , s = n(438) | |
| , r = n(84); | |
| e.exports = function(e, t, n, a) { | |
| var o = String(r(e)) | |
| , l = o.length | |
| , u = void 0 === n ? " " : String(n) | |
| , c = i(t); | |
| if (l >= c) | |
| return o; | |
| "" == u && (u = " "); | |
| var d = c - l | |
| , p = s.call(u, Math.ceil(d / u.length)); | |
| return p.length > d && (p = p.slice(0, d)), | |
| a ? p + o : o + p | |
| } | |
| }, | |
| 438: function(e, t, n) { | |
| "use strict"; | |
| var i = n(156) | |
| , s = n(84); | |
| e.exports = function(e) { | |
| var t = String(s(this)) | |
| , n = "" | |
| , r = i(e); | |
| if (0 > r || r == 1 / 0) | |
| throw RangeError("Count can't be negative"); | |
| for (; r > 0; (r >>>= 1) && (t += t)) | |
| 1 & r && (n += t); | |
| return n | |
| } | |
| }, | |
| 439: [5960, 83, 197, 425, 422, 42, 95], | |
| 440: [5965, 194, 40, 153, 96], | |
| 441: [5967, 129, 431, 153, 74, 267], | |
| 445: function(e, t, n) { | |
| n(22); | |
| e.exports = function(e) { | |
| var t, n = [], i = e || {}; | |
| return function(e, i) { | |
| e && n.push('<p class="item-image-caption">' + (null == (t = e) ? "" : t) + "</p>"), | |
| i && n.push('<p class="item-image-credit">' + (null == (t = i) ? "" : t) + "</p>") | |
| } | |
| .call(this, "caption" in i ? i.caption : "undefined" != typeof caption ? caption : void 0, "credit" in i ? i.credit : "undefined" != typeof credit ? credit : void 0), | |
| n.join("") | |
| } | |
| }, | |
| 507: function(e, t, n) { | |
| var i, s = n(21)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , r = n(12) | |
| , a = n(38) | |
| , o = n(13) | |
| , l = n(80) | |
| , u = n(119) | |
| , c = n(65) | |
| , d = n(379) | |
| , p = (n(352), | |
| n(3).locale) | |
| , f = n(3).translate | |
| , h = n(1079) | |
| , m = n(8) | |
| , g = n(35) | |
| , v = t.View.extend({ | |
| className: "pane v-facebook-connect connect", | |
| events: { | |
| "click .lnk-not-you": "_eFacebookLogout", | |
| "click .btn-facebook": "_eFacebookConnect" | |
| }, | |
| initialize: function() { | |
| this.options = i.defaults(this.options, { | |
| text: p.app.buttons.connect_to_facebook | |
| }), | |
| this._onFail = this.options.onFail, | |
| this._onConnect = this.options.onConnect, | |
| l.load()["catch"](function(e) { | |
| if (e.type !== m.LIBRARY_UNAVAILABLE) | |
| throw e | |
| }) | |
| }, | |
| render: function() { | |
| return this.delegateEvents(), | |
| this.el.innerHTML = h({ | |
| i18n: p, | |
| text: this.options.text | |
| }), | |
| this.dom = { | |
| button: this.el.querySelector(".btn-facebook"), | |
| promise: this.el.querySelector(".fb-promise"), | |
| not_you: this.el.querySelector(".lnk-not-you") | |
| }, | |
| l.load().then(this._facebookLoad.bind(this))["catch"](this._facebookFail.bind(this)), | |
| l.loggedIn()["catch"](function(e) { | |
| if ("UnableToLogin" !== e.type && e.type !== m.LIBRARY_UNAVAILABLE) | |
| throw e | |
| }), | |
| this.display(), | |
| this | |
| }, | |
| _facebookLoad: function() { | |
| this.dom.button.classList.remove("s-inactive"), | |
| l.getMe().then(this._addFacebookIdentity.bind(this))["catch"](this._facebookDone.bind(this)), | |
| this.trigger("load") | |
| }, | |
| _facebookFail: function(e) { | |
| this.dom && (this.dom.button.textContent = p.app.error.facebook_unavailable, | |
| this.dom.promise.textContent = p.app.error.facebook_unavailable_hint, | |
| this._facebookDone(), | |
| this.trigger("fail")) | |
| }, | |
| _facebookDone: function(e) { | |
| this.dom && (this.dom.button.classList.remove("s-loading"), | |
| e && e.type === m.LIBRARY_UNAVAILABLE && this._facebookFail(e)) | |
| }, | |
| _addFacebookIdentity: function(e) { | |
| this.dom.button.innerHTML = f("app.buttons.continue_as", e.first_name), | |
| this.dom.not_you.classList.remove("s-inactive"), | |
| this._facebookDone() | |
| }, | |
| _removeFacebookIdentity: function() { | |
| this.dom.button.textContent = this.options.text, | |
| this.dom.not_you.classList.add("s-inactive") | |
| }, | |
| _addConnectedMessage: function() { | |
| this.dom && this.options && this.options.showConnected !== !1 && (this.dom.button.textContent = p.app.buttons.connected) | |
| }, | |
| _eFacebookConnect: function() { | |
| var e = this.dom.button; | |
| e.classList.contains("s-inactive") || e.classList.contains("s-loading") || e.classList.contains("redirect") || (e.classList.add("s-loading"), | |
| u.login().then(this._facebookLoginSuccess.bind(this), this._facebookLoginFailure.bind(this)).done()) | |
| }, | |
| _facebookLoginSuccess: function() { | |
| this._addConnectedMessage(), | |
| this._onConnect("signIn"), | |
| this.trigger("connect") | |
| }, | |
| _facebookLoginFailure: function(e) { | |
| var t = this; | |
| if (!e.status) | |
| return void this._facebookDone(); | |
| var n = function(e) { | |
| t._onFail && t._onFail(e), | |
| t._facebookDone() | |
| } | |
| ; | |
| return "authorized_new_user" === e.status ? void this._facebookAuthorizedNewUser(e.authResponse.userID, e.authResponse.accessToken).then(function(e) { | |
| t._onConnect("signUp", e), | |
| t.trigger("connect") | |
| }, n).done() : void n(new g(m.FACEBOOK_FAILURE,"Unable to process login",e)) | |
| }, | |
| _facebookAuthorizedNewUser: function(e, t) { | |
| var n = new d(s({ | |
| facebook_id: e, | |
| facebook_access_token: t, | |
| country: a.getCountryCode() | |
| }, this.options.signUpContext)); | |
| return o.trackUserSignup(this.options.analyticsEvent, "facebook"), | |
| c.signup(n).then(function(e) { | |
| return r.loginWithToken(e) | |
| }).then(function(e) { | |
| return e.get("user") | |
| }) | |
| }, | |
| _eFacebookLogout: function() { | |
| var e = this; | |
| this.dom.button.classList.contains("s-inactive") || this.dom.button.classList.contains("s-loading") || (this.dom.button.classList.add("s-loading"), | |
| l.logout().then(function() { | |
| e._removeFacebookIdentity(), | |
| e.dom.button.classList.remove("s-loading"), | |
| e.trigger("logout") | |
| }).done()) | |
| } | |
| }); | |
| return v | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 508: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = (n(5), | |
| n(371)) | |
| , i = n(403) | |
| , s = n(854) | |
| , r = n(3) | |
| , a = i.extend({ | |
| type: "email", | |
| name: "email", | |
| autoComplete: !1, | |
| toLowerCase: !0, | |
| keyUpChangeTimeout: 300, | |
| _eChange: function() { | |
| this.checkForCommonMistakes() | |
| }, | |
| _eKeyDown: function(e) { | |
| this.options.onKeyDown && this.options.onKeyDown(e) | |
| }, | |
| checkForCommonMistakes: function() { | |
| var e = t.checkForCommonMistakes(this.getValue()); | |
| e ? this.drawSuggestion(e) : this.resetSuggestion() | |
| }, | |
| drawSuggestion: function(e) { | |
| var t = this; | |
| if (!this.getView("suggestion")) { | |
| var n = this.addView(new s({ | |
| accept: function(e) { | |
| t.setValue(e), | |
| t.removeView(t.getView("suggestion")); | |
| var n = t.el.querySelector(".v-inp-suggestion"); | |
| n && t.el.removeChild(n) | |
| } | |
| }), "suggestion"); | |
| this.el.appendChild(n.render().el) | |
| } | |
| this.getView("suggestion").suggest(e, r.translate("app.text.did_you_mean", e)) | |
| }, | |
| resetSuggestion: function() { | |
| this.getView("suggestion") && this.getView("suggestion").reset() | |
| }, | |
| reset: function() { | |
| this.resetSuggestion(), | |
| i.prototype.reset.apply(this) | |
| } | |
| }); | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 518: function(e, t, n) { | |
| (function(e) { | |
| "use strict"; | |
| if (n(1034), | |
| n(1158), | |
| e._babelPolyfill) | |
| throw new Error("only one instance of babel/polyfill is allowed"); | |
| e._babelPolyfill = !0 | |
| } | |
| ).call(t, function() { | |
| return this | |
| }()) | |
| }, | |
| 519: function(e, t, n) { | |
| e.exports = n(518) | |
| }, | |
| 533: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(377) | |
| , s = t.Collection.extend({ | |
| model: i, | |
| parse: function(e) { | |
| return e._links.next && (this.next = e._links.next.href), | |
| e._links.prev && (this.prev = e._links.prev.href), | |
| e._links.results && (this.results = e._links.results.href), | |
| e._embedded.alerts.length && e._embedded.alerts.unshift({ | |
| _links: e._links, | |
| queried_at: e.queried_at, | |
| all: !0, | |
| active: !1, | |
| id: 0, | |
| query: e.query | |
| }), | |
| e._embedded.alerts | |
| } | |
| }); | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 534: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(101) | |
| , r = i(s) | |
| , a = n(378) | |
| , o = i(a); | |
| t["default"] = r["default"].extend({ | |
| model: function(e, t) { | |
| return new o["default"](e,t) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 535: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Collection.extend({ | |
| collectionKeyString: "deposits" | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 536: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s); | |
| t["default"] = r["default"].Collection.extend({ | |
| parse: function(e) { | |
| return e._embedded.favourites | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 537: function(e, t, n) { | |
| var i, s; | |
| i = [n(4), n(671)], | |
| s = function(e, t) { | |
| "use strict"; | |
| var n = e.Collection.extend({ | |
| model: t, | |
| parse: function(e) { | |
| return e._links.self && (this.url = e._links.self.href), | |
| e._links.next ? this.next = e._links.next.href : this.next = void 0, | |
| e._links.prev ? this.prev = e._links.prev.href : this.prev = void 0, | |
| e.sections && (this.sections = e.sections), | |
| e.pages | |
| } | |
| }); | |
| return n | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 538: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(121) | |
| , s = t.Collection.extend({ | |
| model: i, | |
| key: "_embedded.posts", | |
| parse: function(e) { | |
| return e.total && (this.total = e.total), | |
| this.parseHal(e) | |
| }, | |
| comparator: function(e) { | |
| var t = new Date(e.get("date")); | |
| return -t.getTime() | |
| }, | |
| getPostByUserId: function(e) { | |
| return this.find(function(t) { | |
| return t.getEmbedded("user").id === e ? t : void 0 | |
| }) | |
| } | |
| }); | |
| return s | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 539: function(e, t, n) { | |
| var i, s; | |
| i = [n(4), n(675)], | |
| s = function(e, t) { | |
| "use strict"; | |
| var n = e.Collection.extend({ | |
| model: t, | |
| collectionKeyString: "_embedded.provider_accounts" | |
| }); | |
| return n | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 540: function(e, t, n) { | |
| var i, s; | |
| i = [n(4), n(677)], | |
| s = function(e, t) { | |
| "use strict"; | |
| var n = e.Collection.extend({ | |
| model: t, | |
| key: "_embedded.transactions", | |
| allowed_transactions: ["purchase", "refund", "auto-refund"], | |
| parse: function(e) { | |
| for (var t = [], n = 0; n < e._embedded.transactions.length; n++) | |
| this.allowed_transactions.indexOf(e._embedded.transactions[n].type) > -1 && t.push(e._embedded.transactions[n]); | |
| return e._embedded.transactions = t, | |
| this.parseHal(e) | |
| }, | |
| comparator: function(e) { | |
| return -e.get("created_at") | |
| } | |
| }); | |
| return n | |
| } | |
| .apply(t, i), | |
| !(void 0 !== s && (e.exports = s)) | |
| }, | |
| 541: function(e, t, n) { | |
| "use strict"; | |
| var i = n(21)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4); | |
| t["default"] = s.Collection.extend({ | |
| product: null , | |
| key: "_embedded.b:orders", | |
| model: s.Model, | |
| parse: function(e) { | |
| var t = this; | |
| return e._embedded && (e._embedded["b:orders"] = e._embedded["b:orders"].map(function(e) { | |
| return i({}, e, { | |
| product: t.product | |
| }) | |
| })), | |
| this.parseHal(e) | |
| }, | |
| comparator: function(e) { | |
| return -e.get("created_at") | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 542: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(21)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(11) | |
| , p = l(d) | |
| , f = n(28) | |
| , h = l(f) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = "/channel/" + this.props.channel.id | |
| , t = (0, | |
| p["default"])("v-channel-name", "channel", "channel-" + this.props.channel.id, this.props.className); | |
| return c["default"].createElement(h["default"], o({}, this.props, { | |
| className: t, | |
| href: e, | |
| title: this.props.channel.get("full_name") | |
| }), this.props.channel.get("full_name")) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| channel: c["default"].PropTypes.object.isRequired, | |
| className: c["default"].PropTypes.any | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 543: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(15) | |
| , p = l(d) | |
| , f = n(544) | |
| , h = l(f) | |
| , m = n(11) | |
| , g = l(m) | |
| , v = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentDidMount", | |
| value: function() { | |
| this.confetti() | |
| } | |
| }, { | |
| key: "orientationWatchListener", | |
| value: function() { | |
| this.canvasW = this.canvas.width = this.canvas.scrollWidth, | |
| this.canvasH = this.canvas.height = this.canvas.scrollHeight | |
| } | |
| }, { | |
| key: "confetti", | |
| value: function n() { | |
| var e = this; | |
| this.canvas = p["default"].findDOMNode(this.refs.canvas); | |
| var t = this.canvas.getContext("2d") | |
| , i = 50 | |
| , n = []; | |
| this.orientationWatchListener(), | |
| this.orientationWatch = window.matchMedia("(orientation: portrait)"), | |
| this.orientationWatch.addListener(this.orientationWatchListener.bind(this)); | |
| for (var s = 0; i > s; s++) | |
| n.push(new h["default"](this)); | |
| var r = function a() { | |
| t.clearRect(0, 0, e.canvasW, e.canvasH); | |
| for (var s = 0; i > s; s++) { | |
| var r = n[s]; | |
| r.draw(t) | |
| } | |
| e.requestId = window.requestAnimationFrame(a) | |
| } | |
| ; | |
| this.requestId = window.requestAnimationFrame(r) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = (0, | |
| g["default"])("c-confetti", o({}, this.props.className, this.props.className)); | |
| return c["default"].createElement("div", null , c["default"].createElement("canvas", { | |
| className: e, | |
| ref: "canvas" | |
| }), this.props.children) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| children: c["default"].PropTypes.array | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 544: function(e, t, n) { | |
| "use strict"; | |
| var i = n(7)["default"] | |
| , s = n(6)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = function() { | |
| function e(t) { | |
| s(this, e), | |
| this.COLORS = [[235, 119, 136], [253, 208, 117], [215, 150, 171]], | |
| this.PI_2 = 2 * Math.PI, | |
| this.view = t, | |
| this.style = this.COLORS[~~this.range(0, 3)], | |
| this.rgb = "rgba(" + this.style[0] + ", " + this.style[1] + ", " + this.style[2], | |
| this.r = ~~this.range(2, 5), | |
| this.r2 = 2 * this.r, | |
| this.replace() | |
| } | |
| return i(e, [{ | |
| key: "range", | |
| value: function(e, t) { | |
| return Math.random() * (t - e) + e | |
| } | |
| }, { | |
| key: "replace", | |
| value: function() { | |
| this.opacity = 0, | |
| this.dop = .01 * this.range(1, 4), | |
| this.x = this.range(0, this.view.canvasW - this.r2), | |
| this.y = this.range(-40, this.view.canvasH), | |
| this.xmax = this.view.canvasW - this.r, | |
| this.ymax = this.view.canvasH - this.r, | |
| this.vx = this.range(0, 1), | |
| this.vy = .4 * this.r | |
| } | |
| }, { | |
| key: "draw", | |
| value: function(e) { | |
| this.x += this.vx, | |
| this.y += this.vy, | |
| this.opacity += this.dop, | |
| this.opacity > 1 && (this.opacity = 1, | |
| this.dop *= -1), | |
| (this.opacity < 0 || this.y > this.ymax) && this.replace(), | |
| this.x < 0 && this.x < this.xmax || (this.x = (this.x + this.xmax) % this.xmax), | |
| e.beginPath(), | |
| e.arc(this.x, this.y, this.r, 0, this.PI_2, !1), | |
| e.fillStyle = this.rgb + ", " + this.opacity + ")", | |
| e.fill() | |
| } | |
| }]), | |
| e | |
| }(); | |
| t["default"] = r, | |
| e.exports = t["default"] | |
| }, | |
| 545: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(11) | |
| , l = s(o) | |
| , u = n(57) | |
| , c = s(u); | |
| t["default"] = a["default"].createClass({ | |
| displayName: "Dropdown", | |
| propTypes: { | |
| className: a["default"].PropTypes.string, | |
| children: a["default"].PropTypes.any | |
| }, | |
| mixins: [(0, | |
| c["default"])()], | |
| toggle: function() { | |
| this.toggleDropdown() | |
| }, | |
| open: function() { | |
| this.openDropdown() | |
| }, | |
| close: function() { | |
| this.closeDropdown() | |
| }, | |
| isOpen: function() { | |
| return this.state.open | |
| }, | |
| setToggleNode: function(e) { | |
| this.setToggleNodeElement(e) | |
| }, | |
| render: function() { | |
| var e, t = (0, | |
| l["default"])((e = {}, | |
| i(e, this.props.className, !0), | |
| i(e, "dropdown-open", this.state.open), | |
| i(e, "dropdown-closed", !this.state.open), | |
| e)); | |
| return a["default"].createElement("div", { | |
| className: t, | |
| "aria-expanded": this.state.open | |
| }, this.props.children) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 546: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = n(545) | |
| , p = o(d) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onToggle", | |
| value: function(e) { | |
| this.props.onToggle && this.props.onToggle(!this.refs.dropdown.isOpen()), | |
| this.refs.dropdown.setToggleNode(e.target), | |
| this.refs.dropdown.toggle() | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "v-dropdown-list-button" | |
| }, u["default"].createElement("button", { | |
| "aria-label": (0, | |
| c.translate)("a11y.options"), | |
| className: "btn btn-options btn-no-text btn-icon", | |
| onClick: this._onToggle.bind(this) | |
| }), u["default"].createElement(p["default"], { | |
| ref: "dropdown", | |
| className: "dropdown-items" | |
| }, this.props.children)) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onToggle: u["default"].PropTypes.func, | |
| children: u["default"].PropTypes.any.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 547: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = o(c) | |
| , p = n(67) | |
| , f = o(p) | |
| , h = n(20) | |
| , m = o(h) | |
| , g = n(11) | |
| , v = o(g) | |
| , y = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentDidMount", | |
| value: function() { | |
| this.props.user.get("email_confirmed") && this.props.user.savePreferences({ | |
| hide_tile_explain_following: "1" | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this.props.user.get("email_confirmed") | |
| , t = (0, | |
| v["default"])({ | |
| "v-explain-following": !0, | |
| email_confirmed: e | |
| }); | |
| return u["default"].createElement("div", { | |
| className: t | |
| }, u["default"].createElement("div", { | |
| className: "explanation" | |
| }, this._renderHeader(), this._renderExplanation(e)), this._renderButton()) | |
| } | |
| }, { | |
| key: "_renderHeader", | |
| value: function() { | |
| var e = "timeline.explain.following.explanation"; | |
| return d["default"].translateElement(u["default"].createElement("h2", null ), e, [], !1) | |
| } | |
| }, { | |
| key: "_renderExplanation", | |
| value: function(e) { | |
| if (!e) { | |
| var t = "timeline.explain.following.verify_email"; | |
| return d["default"].translateElement(u["default"].createElement("p", null ), t, { | |
| gift: d["default"].formatCurrency(2.5) | |
| }) | |
| } | |
| return u["default"].createElement("p", { | |
| className: "small" | |
| }) | |
| } | |
| }, { | |
| key: "_renderButton", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "center" | |
| }, u["default"].createElement(m["default"], { | |
| className: "btn-text.btn-okay", | |
| onClick: this.props.onClose | |
| }, d["default"].translate("app.buttons.i_get_it"))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| user: u["default"].PropTypes.instanceOf(f["default"]).isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 548: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(77) | |
| , o = i(a) | |
| , l = n(17) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = n(86) | |
| , p = i(d); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "FakeCover", | |
| propTypes: { | |
| provider: r["default"].PropTypes.object.isRequired | |
| }, | |
| mixins: [p["default"]], | |
| _getSrc: function() { | |
| return "/img/fake_covers/" + this.props.provider.id + ".png" | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: "v-cover" | |
| }, r["default"].createElement(o["default"], { | |
| animate: u["default"].isDesktop(), | |
| width: this.props.provider.width, | |
| height: this.props.provider.height, | |
| src: this._getSrc() | |
| }), r["default"].createElement("div", { | |
| className: "coming-soon" | |
| }, (0, | |
| c.translate)("app.text.available_soon"))) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 549: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = r["default"].createClass({ | |
| displayName: "GeneralError", | |
| propTypes: { | |
| title: r["default"].PropTypes.string, | |
| message: r["default"].PropTypes.string | |
| }, | |
| _onContactClick: function(e) { | |
| return e.preventDefault(), | |
| window.reamaze.popup(), | |
| !1 | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: "v-error", | |
| style: { | |
| opacity: 1, | |
| zIndex: 1 | |
| } | |
| }, r["default"].createElement("div", { | |
| className: "error-wrapper" | |
| }, r["default"].createElement("div", { | |
| className: "error-container" | |
| }, r["default"].createElement("h1", { | |
| className: "error-title" | |
| }, (0, | |
| a.translate)("app.error.title")), (0, | |
| a.translateElement)(r["default"].createElement("p", { | |
| className: "error-message", | |
| onClick: this._onContactClick | |
| }), "dialogues.subscription_result.failure_message")))) | |
| } | |
| }); | |
| t["default"] = o, | |
| e.exports = t["default"] | |
| }, | |
| 550: function(e, t, n) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var i = n(5) | |
| , s = n(176) | |
| , r = n(2) | |
| , a = n(15) | |
| , o = n(20) | |
| , l = n(177) | |
| , u = n(336) | |
| , c = n(8).keyCode | |
| , d = n(157) | |
| , p = n(163).inActiveElement | |
| , f = (n(13), | |
| r.createClass({ | |
| displayName: "HorizontalTilePaneView", | |
| mixins: [u("horizontal")], | |
| propTypes: { | |
| onNextItem: r.PropTypes.func, | |
| onPrevItem: r.PropTypes.func, | |
| activeTimeline: r.PropTypes.object, | |
| onNearEnd: r.PropTypes.func.isRequired, | |
| children: r.PropTypes.arrayOf(r.PropTypes.element), | |
| loading: r.PropTypes.bool, | |
| screenOffset: r.PropTypes.number | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| loading: !1, | |
| active: !0, | |
| showButtons: !0, | |
| tileOffset: 20, | |
| screenOffset: 1.5 * window.innerWidth, | |
| scrollPosition: 0, | |
| maxHeight: 760 | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| active: !0, | |
| width: 0, | |
| height: 0, | |
| isScrolling: !1, | |
| visibleTiles: [], | |
| next: null , | |
| prev: null , | |
| scrollSize: 0, | |
| scrollPosition: this.props.scrollPosition || 0 | |
| } | |
| }, | |
| _getButtons: function() { | |
| return this.props.showButtons ? r.createElement("div", { | |
| className: "pane-controls" | |
| }, r.createElement(o, { | |
| className: "btn-prev btn-icon btn-flat btn-no-text", | |
| onClick: this._prevItem, | |
| disabled: !this.state.prev | |
| }, "Prev"), r.createElement(o, { | |
| className: "btn-next btn-icon btn-flat btn-no-text", | |
| onClick: this._nextItem, | |
| disabled: !this.state.next | |
| }, "Next")) : null | |
| }, | |
| _renderPaneContents: function() { | |
| if (this.props.activeTimeline) { | |
| var e = "pins" === this.props.activeTimeline.name; | |
| return r.createElement(d, { | |
| component: "div", | |
| className: "pane-contents", | |
| ref: "content", | |
| transitionName: "tile-horizontal-transition", | |
| transitionEnter: !1, | |
| transitionLeaveTimeout: 300, | |
| transitionLeave: e, | |
| key: this.props.activeTimeline.key | |
| }, this.getChildren(), this.getLoading()) | |
| } | |
| return r.createElement("div", { | |
| className: "pane-contents", | |
| ref: "content" | |
| }, this.getChildren(), this.getLoading()) | |
| }, | |
| render: function() { | |
| return r.createElement("div", { | |
| className: this.getClassName() | |
| }, this._getButtons(), r.createElement("div", { | |
| className: "pane-scroll", | |
| ref: "scroll", | |
| onScroll: this._onPaneScroll | |
| }, this._renderPaneContents())) | |
| }, | |
| _getScrollElement: function() { | |
| return a.findDOMNode(this.refs.scroll) | |
| }, | |
| _getScrollElementScrollSize: function() { | |
| return this._getScrollElement().scrollWidth | |
| }, | |
| _getScrollElementScrollPosition: function() { | |
| return this._getScrollElement().scrollLeft | |
| }, | |
| componentDidUpdate: function(e) { | |
| if (!this.props.loading && e.children && 0 !== e.children.length && e.children.length !== this.props.children.length) { | |
| var t = this._getScrollElementScrollPosition() | |
| , n = this._getScrollElementScrollSize(); | |
| this.props.onNearEnd && t + this.state.width >= n - this.props.screenOffset && setTimeout(this.props.onNearEnd) | |
| } | |
| this.props.pageIndex !== e.pageIndex && this._setPageIndex(this.props.pageIndex, { | |
| offset: -30 | |
| }) | |
| }, | |
| componentWillUnmount: function() { | |
| this._onScrollTimer && window.cancelAnimationFrame(this._onScrollTimer), | |
| clearTimeout(this._updateLayoutTimer), | |
| clearTimeout(this._scrollIntentTimeout) | |
| }, | |
| bindListeners: function() { | |
| s.addEventListener(a.findDOMNode(this), this._invertWheel), | |
| window.addEventListener("resize", this.setDimensions), | |
| window.addEventListener("orientationchange", this.setDimensions), | |
| window.addEventListener("keydown", this._navigateByKey) | |
| }, | |
| unbindListeners: function() { | |
| s.removeEventListener(a.findDOMNode(this), this._invertWheel), | |
| window.removeEventListener("resize", this.setDimensions), | |
| window.removeEventListener("orientationchange", this.setDimensions), | |
| window.removeEventListener("keydown", this._navigateByKey) | |
| }, | |
| getContentHeight: function() { | |
| var e = window.getComputedStyle(a.findDOMNode(this.refs.content)) | |
| , t = parseInt(e.height, 10) - parseInt(e.paddingTop, 10); | |
| return Math.min(this.props.maxHeight, t) | |
| }, | |
| getContentWidth: function() { | |
| return a.findDOMNode(this).offsetWidth | |
| }, | |
| _invertWheel: function(e) { | |
| var t = this | |
| , n = s.normalize(e); | |
| if (n) { | |
| if (e.preventDefault(), | |
| !this._scrollIntent) { | |
| var i = Math.abs(n.deltaX) | |
| , r = Math.abs(n.deltaY); | |
| i > r ? this._scrollIntent = "x" : this._scrollIntent = "y", | |
| this._scrollIntentTimeout = setTimeout(function() { | |
| t._scrollIntent = void 0 | |
| }, 500) | |
| } | |
| var a = ("x" === this._scrollIntent ? n.deltaX : -n.deltaY) * n.deltaFactor; | |
| if (this._scrollIntent && a && this.isMounted()) { | |
| if (this._previousScrollPosition === this.state.scrollPosition && (a > 0 && a <= this._previousDelta || 0 > a && a >= this._previousDelta)) | |
| return; | |
| this._previousScrollPosition = this.state.scrollPosition, | |
| this._previousDelta = a, | |
| this.setScrollPosition(this.state.scrollPosition + a) | |
| } | |
| } | |
| }, | |
| _setPageIndex: function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = this.refs["tile-" + e]; | |
| if (n) { | |
| var i = a.findDOMNode(this.refs["tile-" + e]).offsetLeft; | |
| this.setScrollPosition(i, !0, t.offset) | |
| } | |
| }, | |
| setScrollPosition: function(e, t) { | |
| var n = arguments.length <= 2 || void 0 === arguments[2] ? 0 : arguments[2]; | |
| if (this.isMounted()) { | |
| var i = this._getScrollElement(); | |
| i.scrollLeft !== e && (t ? l.horizontal(i, e + n) : i.scrollLeft = e + n) | |
| } | |
| }, | |
| onChildDidMount: function() { | |
| this._previousScrollPosition = void 0, | |
| this.setDimensions(), | |
| this.onScroll(), | |
| this.props.scrollPosition && (this.setScrollPosition(this.props.scrollPosition), | |
| this.props.scrollPosition = null ); | |
| var e = this.determineButtons(this._getScrollElementScrollPosition(), this._getScrollElementScrollSize()); | |
| this.setState(e) | |
| }, | |
| determineButtons: function(e, t) { | |
| var n = {}; | |
| return this.props.showButtons && (n.next = e + this.state.width < t, | |
| n.prev = e > 0), | |
| n | |
| }, | |
| _determineEnd: function() { | |
| !this.props.onEnd | |
| }, | |
| _onPaneScroll: function(e) { | |
| this._paneScrollLeft !== e.target.scrollLeft && (this._paneScrollLeft = e.target.scrollLeft, | |
| this.onScroll(e)) | |
| }, | |
| onScroll: function() { | |
| var e = this; | |
| this._rafTicking || (this._rafTicking = !0, | |
| this._onScrollTimer = window.requestAnimationFrame(function() { | |
| e._onScrollRAF(), | |
| e._rafTicking = !1 | |
| })) | |
| }, | |
| _onScrollRAF: function() { | |
| var e = this._getScrollElementScrollPosition() | |
| , t = this._getScrollElementScrollSize() | |
| , n = this.determineButtons(e, t); | |
| this.setState({ | |
| scrollPosition: e, | |
| visibleTiles: this.getVisibleTiles(e), | |
| isScrolling: !0, | |
| next: n.next, | |
| prev: n.prev | |
| }), | |
| this.props.onElementsVisible && this.props.onElementsVisible(this.state.visibleTiles), | |
| this.props.onScroll && this.props.onScroll(this.state.scrollPosition), | |
| this.props.onNearEnd && e + this.state.width >= t - this.props.screenOffset && this.props.onNearEnd(), | |
| this.props.onEnd && e + this.state.width === t && this.props.onEnd(), | |
| this.debounceResetScrollState() | |
| }, | |
| getVisibleTiles: function(e) { | |
| var t = this; | |
| return this.state.tileDimensions.filter(function(e) { | |
| return e.component.isMounted() | |
| }).filter(function(n) { | |
| var i = n.left | |
| , s = n.width | |
| , r = i + s | |
| , a = t.state.width | |
| , o = e + a | |
| , l = i > e && o > i | |
| , u = r > e && o > r; | |
| return l || u | |
| }) | |
| }, | |
| _nextItem: function() { | |
| var e = this | |
| , t = i.find(a.findDOMNode(this.refs.content).childNodes, function(t) { | |
| var n = t.getBoundingClientRect(); | |
| return n.left - e.props.tileOffset > 0 | |
| }, 0) | |
| , n = t ? t.offsetLeft - this.props.tileOffset : this.state.scrollSize; | |
| this.setScrollPosition(n, !0), | |
| this.props.onNextItem && this.props.onNextItem() | |
| }, | |
| _prevItem: function() { | |
| var e = this | |
| , t = i.findLast(a.findDOMNode(this.refs.content).childNodes, function(t) { | |
| var n = t.getBoundingClientRect(); | |
| return n.right - e.props.tileOffset < e.state.width && n.left - e.props.tileOffset < 0 | |
| }, 0) | |
| , n = t ? t.offsetLeft - this.props.tileOffset : 0; | |
| this.setScrollPosition(n, !0), | |
| this.props.onPrevItem && this.props.onPrevItem() | |
| }, | |
| _nextPage: function() { | |
| this.setScrollPosition(this.state.scrollPosition + this.state.width, !0), | |
| this.props.onNextPage && this.props.onNextPage() | |
| }, | |
| _prevPage: function() { | |
| this.setScrollPosition(this.state.scrollPosition - this.state.width, !0), | |
| this.props.onNextPage && this.props.onNextPage() | |
| }, | |
| _navigateByKey: function(e) { | |
| var t = p("form"); | |
| if (!e.shiftKey && !t && this.isMounted()) | |
| return -1 !== [c.PAGE_UP, c.ARROW_UP].indexOf(e.keyCode) ? void this._prevPage() : -1 !== [c.SPACE, c.PAGE_DOWN, c.ARROW_DOWN].indexOf(e.keyCode) ? void this._nextPage() : e.keyCode === c.ARROW_LEFT ? void this._prevItem() : e.keyCode === c.ARROW_RIGHT ? void this._nextItem() : void 0 | |
| } | |
| })); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 551: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(17) | |
| , o = (i(a), | |
| n(77)) | |
| , l = i(o) | |
| , u = n(11) | |
| , c = i(u) | |
| , d = n(8) | |
| , p = n(141) | |
| , f = i(p) | |
| , h = r["default"].createClass({ | |
| displayName: "ImageViewer", | |
| propTypes: { | |
| images: r["default"].PropTypes.array.isRequired, | |
| activeIndex: r["default"].PropTypes.number, | |
| placeholderSrc: r["default"].PropTypes.string, | |
| onClose: r["default"].PropTypes.func | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| activeIndex: 0 | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| loading: !0 | |
| } | |
| }, | |
| componentDidMount: function() { | |
| window.addEventListener("resize", this._onResize), | |
| window.addEventListener("keyup", this._onKeyUp) | |
| }, | |
| componentWillUnmount: function() { | |
| window.removeEventListener("resize", this._onResize), | |
| window.removeEventListener("keyup", this._onKeyUp) | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| this.props.activeIndex !== e.activeIndex && this.setState({ | |
| loading: !0 | |
| }) | |
| }, | |
| _getDimensionStyles: function(e) { | |
| var t = e.width | |
| , n = e.height | |
| , i = window.innerWidth | |
| , s = window.innerHeight; | |
| return i >= t && s >= n ? { | |
| width: t, | |
| height: n | |
| } : s / n > i / t ? { | |
| width: i, | |
| height: n * (i / t) | |
| } : { | |
| height: s, | |
| width: t * (s / n) | |
| } | |
| }, | |
| _getImageOrientation: function(e) { | |
| return e.width > e.height ? "landscape" : "portrait" | |
| }, | |
| _getOptimalImageLink: function(e) { | |
| var t = window.innerWidth | |
| , n = window.innerHeight | |
| , i = void 0; | |
| return i = n > t ? f["default"].getSizeForWidth(e, t) : f["default"].getSizeForHeight(e, n), | |
| f["default"].getXHD(e, i) | |
| }, | |
| _onImageReady: function() { | |
| this.setState({ | |
| loading: !1 | |
| }) | |
| }, | |
| _onKeyUp: function(e) { | |
| e.keyCode === d.keyCode.ESC && (this.props.onClose(), | |
| e.preventDefault(), | |
| e.stopPropagation()) | |
| }, | |
| _onResize: function() { | |
| this.forceUpdate() | |
| }, | |
| _renderActiveImage: function() { | |
| var e = this.props.images[this.props.activeIndex]; | |
| if (!e && !this.props.initialImage) | |
| return null ; | |
| var t = this._getOptimalImageLink(e._links) | |
| , n = this._getDimensionStyles(t) | |
| , i = this._getImageOrientation(t); | |
| if (this.props.placeholderSrc && this.state.loading) | |
| return r["default"].createElement("figure", { | |
| style: n, | |
| className: i | |
| }, r["default"].createElement(l["default"], { | |
| key: t.href, | |
| animate: !1, | |
| src: this.props.placeholderSrc, | |
| width: t.width, | |
| height: t.height, | |
| alt: "" | |
| }), r["default"].createElement(l["default"], { | |
| key: "preloader", | |
| animate: !1, | |
| onLoad: this._onImageReady, | |
| src: t.href, | |
| width: t.width, | |
| height: t.height, | |
| alt: "" | |
| }), this._renderMetaInformation(e)); | |
| var s = (0, | |
| c["default"])(i, { | |
| loading: this.state.loading | |
| }); | |
| return r["default"].createElement("figure", { | |
| style: n, | |
| className: s | |
| }, r["default"].createElement(l["default"], { | |
| key: t.href, | |
| animate: !1, | |
| onLoad: this._onImageReady, | |
| src: t.href, | |
| width: t.width, | |
| height: t.height, | |
| alt: "" | |
| }), this._renderMetaInformation(e)) | |
| }, | |
| _renderMetaInformation: function(e) { | |
| if (!e.caption && !e.credit || this.state.loading) | |
| return null ; | |
| var t = r["default"].createElement("p", { | |
| className: "item-image-caption", | |
| dangerouslySetInnerHTML: { | |
| __html: e.caption | |
| } | |
| }); | |
| return r["default"].createElement("figcaption", { | |
| className: "item-image-meta-container" | |
| }, r["default"].createElement("div", { | |
| className: "item-image-meta" | |
| }, e.caption ? t : null , e.credit ? r["default"].createElement("p", { | |
| className: "item-image-credit" | |
| }, e.credit) : null )) | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", { | |
| className: "v-image-viewer", | |
| onClick: this.props.onClose | |
| }, r["default"].createElement("div", { | |
| className: "btn-close" | |
| }), this._renderActiveImage()) | |
| } | |
| }); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 552: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(15) | |
| , r = n(112) | |
| , a = n(184) | |
| , o = i.createClass({ | |
| displayName: "IssueAcquisition", | |
| propTypes: { | |
| issue: i.PropTypes.object.isRequired, | |
| position: i.PropTypes.number, | |
| minimize: i.PropTypes.bool, | |
| showButton: i.PropTypes.bool, | |
| onMount: i.PropTypes.func | |
| }, | |
| componentDidUpdate: function(e) { | |
| this.props.minimize && !e.minimize && (this._acquireIssueView.hideButton(), | |
| this._acquireIssueView.unsetFloating()), | |
| !this.props.minimize && e.minimize && (this._acquireIssueView.showButton(), | |
| this._acquireIssueView.setFloating()), | |
| this.props.position && this.props.position !== e.position && (s.findDOMNode(this).style.bottom = this.props.position + "px") | |
| }, | |
| componentDidMount: function() { | |
| this.props.onMount && this.props.onMount() | |
| }, | |
| render: function() { | |
| return this._acquireIssueView || (this._acquireIssueView = new a({ | |
| issue: this.props.issue, | |
| button: this.props.showButton | |
| })), | |
| i.createElement(r, { | |
| view: this._acquireIssueView, | |
| preventReplace: !0, | |
| className: "v-issue-acquisition-card" | |
| }) | |
| } | |
| }); | |
| e.exports = o | |
| }, | |
| 553: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = n(18) | |
| , p = o(d) | |
| , f = n(13) | |
| , h = o(f) | |
| , m = n(325) | |
| , g = o(m) | |
| , v = n(546) | |
| , y = o(v) | |
| , _ = n(167) | |
| , b = o(_) | |
| , w = n(17) | |
| , S = o(w) | |
| , k = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onToggleDropdown", | |
| value: function(e) { | |
| e && h["default"].track("Open Manifest Dropdown", { | |
| item: this.props.item.id | |
| }) | |
| } | |
| }, { | |
| key: "_onShareToEmail", | |
| value: function(e) { | |
| e.preventDefault(), | |
| b["default"].openEmailDialog(this.props.item, this.props.analytics) | |
| } | |
| }, { | |
| key: "_onShareToTwitter", | |
| value: function(e) { | |
| e.preventDefault(), | |
| b["default"].shareItemToTwitter(this.props.item, this.props.analytics) | |
| } | |
| }, { | |
| key: "_onShareToFacebook", | |
| value: function(e) { | |
| e.preventDefault(), | |
| b["default"].shareItemToFacebook(this.props.item, this.props.analytics) | |
| } | |
| }, { | |
| key: "_onShareToWhatsApp", | |
| value: function(e) { | |
| e.preventDefault(), | |
| b["default"].shareItemToWhatsApp(this.props.item, this.props.analytics) | |
| } | |
| }, { | |
| key: "_renderPinButton", | |
| value: function() { | |
| return this.props.showPin ? u["default"].createElement(g["default"], { | |
| onChange: this.props.onPin, | |
| item: this.props.item, | |
| marked: this.props.pinned, | |
| analytics: this.props.analytics | |
| }) : void 0 | |
| } | |
| }, { | |
| key: "_renderStats", | |
| value: function() { | |
| var e = this.props.item.getEmbedded("manifest"); | |
| return u["default"].createElement("dl", { | |
| className: "dl-compact" | |
| }, u["default"].createElement("dt", null , (0, | |
| c.translate)("app.manifest.time.to.read")), u["default"].createElement("dd", { | |
| title: (0, | |
| c.translate)("app.text.nr_words", [e.get("length").words]) | |
| }, p["default"].duration(e.getReadingTime(), "minutes").humanize()), u["default"].createElement("dt", null , (0, | |
| c.translate)("app.manifest.date")), u["default"].createElement("dd", null , (0, | |
| p["default"])(e.get("date")).format("LL"))) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = u["default"].createElement("a", { | |
| className: "share share-whatsapp", | |
| onClick: this._onShareToWhatsApp.bind(this) | |
| }, (0, | |
| c.translate)("app.manifest.share.whatsapp")); | |
| return u["default"].createElement(y["default"], { | |
| className: "tooltip", | |
| onToggle: this._onToggleDropdown.bind(this) | |
| }, this._renderPinButton(), u["default"].createElement("a", { | |
| className: "share share-email", | |
| onClick: this._onShareToEmail.bind(this) | |
| }, (0, | |
| c.translate)("app.manifest.share.email")), u["default"].createElement("a", { | |
| className: "share share-facebook", | |
| onClick: this._onShareToFacebook.bind(this) | |
| }, (0, | |
| c.translate)("app.manifest.share.facebook")), u["default"].createElement("a", { | |
| className: "share share-twitter", | |
| onClick: this._onShareToTwitter.bind(this) | |
| }, (0, | |
| c.translate)("app.manifest.share.twitter")), S["default"].isMobile() && e, this._renderStats()) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| item: u["default"].PropTypes.object.isRequired, | |
| analytics: u["default"].PropTypes.object, | |
| pinned: u["default"].PropTypes.bool, | |
| showPin: u["default"].PropTypes.bool, | |
| onPin: u["default"].PropTypes.func | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| showPin: !0 | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = k, | |
| e.exports = t["default"] | |
| }, | |
| 554: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = n(328) | |
| , u = i(l) | |
| , c = r["default"].createClass({ | |
| displayName: "MorePostsDropdown", | |
| propTypes: { | |
| posts: r["default"].PropTypes.array.isRequired | |
| }, | |
| render: function() { | |
| var e = (0, | |
| o["default"])("v-more-posts-dropdown", { | |
| "s-active": this.props.active | |
| }); | |
| return r["default"].createElement(u["default"], { | |
| posts: this.props.posts, | |
| className: e | |
| }, "+", this.props.posts.length) | |
| } | |
| }); | |
| t["default"] = c, | |
| e.exports = t["default"] | |
| }, | |
| 555: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(15) | |
| , o = i(a) | |
| , l = n(86) | |
| , u = i(l) | |
| , c = n(77) | |
| , d = i(c) | |
| , p = n(17) | |
| , f = i(p) | |
| , h = n(11) | |
| , m = i(h) | |
| , g = n(323) | |
| , v = i(g) | |
| , y = n(591) | |
| , _ = i(y) | |
| , b = n(227) | |
| , w = i(b) | |
| , S = n(335) | |
| , k = i(S) | |
| , E = n(47) | |
| , C = i(E) | |
| , T = n(115) | |
| , P = i(T) | |
| , N = r["default"].createClass({ | |
| displayName: "Region", | |
| mixins: [u["default"]], | |
| propTypes: { | |
| region: r["default"].PropTypes.object.isRequired, | |
| onClick: r["default"].PropTypes.func, | |
| onMouseMove: r["default"].PropTypes.func, | |
| onMouseLeave: r["default"].PropTypes.func, | |
| onMouseEnter: r["default"].PropTypes.func | |
| }, | |
| componentDidMount: function() { | |
| if (this.props.onMouseEnter) { | |
| var e = C["default"].getHorizontalMousePosition() | |
| , t = C["default"].getVerticalMousePosition(); | |
| o["default"].findDOMNode(this) === document.elementFromPoint(e, t) && this.props.onMouseEnter({ | |
| clientX: e, | |
| clientY: t | |
| }) | |
| } | |
| }, | |
| render: function() { | |
| var e = { | |
| left: this.props.region.position[0] + "%", | |
| right: 100 - this.props.region.position[2] + "%", | |
| top: this.props.region.position[1] + "%", | |
| bottom: 100 - this.props.region.position[3] + "%", | |
| position: "absolute" | |
| }; | |
| return r["default"].createElement("div", { | |
| className: "v-page-item-region", | |
| style: e, | |
| onClick: this.props.onClick, | |
| onMouseEnter: this.props.onMouseEnter, | |
| onMouseMove: this.props.onMouseMove, | |
| onMouseLeave: this.props.onMouseLeave | |
| }) | |
| } | |
| }) | |
| , x = r["default"].createClass({ | |
| displayName: "PageItem", | |
| mixins: [_["default"], u["default"], w["default"], k["default"]], | |
| propTypes: { | |
| item: r["default"].PropTypes.object.isRequired, | |
| active: r["default"].PropTypes.bool | |
| }, | |
| getInitialState: function() { | |
| return { | |
| active: !1 | |
| } | |
| }, | |
| componentDidMount: function() { | |
| this.props.item.getEmbedded("item-tracker").set("active", !1), | |
| this.props.item.getEmbedded("item-tracker").on("change:active", this.setActive, this), | |
| this.determinePopover({ | |
| inElement: !1, | |
| inPopover: !1 | |
| }) | |
| }, | |
| componentWillUnmount: function() { | |
| this.props.item.getEmbedded("item-tracker").off(null , null , this) | |
| }, | |
| render: function() { | |
| var e = this | |
| , t = (0, | |
| m["default"])({ | |
| "v-page-item": !0, | |
| "s-active": this.state.active | |
| }) | |
| , n = this.props.item.get("regions").map(function(t, n) { | |
| return r["default"].createElement(N, { | |
| key: e.props.item.id + "-" + n, | |
| region: t, | |
| item: e.props.item, | |
| active: e.state.active, | |
| onClick: e.onClick, | |
| onMouseEnter: e.debouncedEnterElement, | |
| onMouseMove: e.debouncedMoveElement, | |
| onMouseLeave: e.debouncedLeaveElement | |
| }) | |
| }) | |
| , i = void 0; | |
| return this.state.popover && (i = r["default"].createElement(v["default"], { | |
| from: "page", | |
| key: this.props.item.id, | |
| item: this.props.item, | |
| x: this.state.x, | |
| y: this.state.y, | |
| onClose: this.closePopover, | |
| onMouseEnter: this.enterPopover, | |
| onMouseLeave: this.leavePopover | |
| })), | |
| r["default"].createElement("div", { | |
| className: t | |
| }, n, i) | |
| }, | |
| onClick: function(e) { | |
| this.onElementClick(e), | |
| e.defaultPrevented || (e.preventDefault(), | |
| P["default"].navigateToItem(this.props.item.id, { | |
| analytics: { | |
| type: "page" | |
| }, | |
| lastEvent: e | |
| })) | |
| }, | |
| setActive: function() { | |
| var e = { | |
| active: this.props.item.getEmbedded("item-tracker").get("active") | |
| }; | |
| this.props.item.getEmbedded("item-tracker").get("active") || (e.popover = !1), | |
| this.setState(e) | |
| }, | |
| onPopoverOpen: function() { | |
| var e = this; | |
| setTimeout(function() { | |
| return e.props.item.getEmbedded("item-tracker").set("active", !0) | |
| }) | |
| }, | |
| onPopoverClose: function() { | |
| var e = this; | |
| setTimeout(function() { | |
| return e.props.item.getEmbedded("item-tracker").set("active", !1) | |
| }) | |
| } | |
| }) | |
| , R = r["default"].createClass({ | |
| displayName: "Page", | |
| propTypes: { | |
| page: r["default"].PropTypes.object.isRequired, | |
| disabled: r["default"].PropTypes.bool, | |
| onLoad: r["default"].PropTypes.func | |
| }, | |
| mixins: [u["default"]], | |
| render: function() { | |
| var e = void 0; | |
| return this.props.disabled || (e = this.props.page.getEmbedded("items").map(function(e) { | |
| return r["default"].createElement(x, { | |
| item: e, | |
| key: e.id | |
| }) | |
| })), | |
| r["default"].createElement("div", { | |
| className: "v-page" | |
| }, r["default"].createElement(d["default"], { | |
| animate: f["default"].isDesktop(), | |
| src: this.props.page.getLink("preview"), | |
| width: this.props.page.getPageWidth(), | |
| height: this.props.page.getPageHeight(), | |
| onLoad: this.props.onLoad | |
| }), e) | |
| } | |
| }); | |
| t["default"] = R, | |
| e.exports = t["default"] | |
| }, | |
| 556: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = r["default"].createClass({ | |
| displayName: "Pointer", | |
| propTypes: { | |
| width: r["default"].PropTypes.number.isRequired, | |
| position: r["default"].PropTypes.string, | |
| direction: r["default"].PropTypes.string, | |
| offset: r["default"].PropTypes.number | |
| }, | |
| render: function() { | |
| var e = { | |
| borderWidth: this.props.width + "px", | |
| borderStyle: "solid", | |
| position: "absolute", | |
| display: "inline-block" | |
| }; | |
| return "top" === this.props.position && (e.borderLeftColor = "transparent", | |
| e.borderRightColor = "transparent", | |
| e.borderTop = "none"), | |
| "bottom" === this.props.position && (e.borderLeftColor = "transparent", | |
| e.borderRightColor = "transparent", | |
| e.borderBottom = "none", | |
| e.borderTopWidth = "5px", | |
| e.borderTopStyle = "solid", | |
| e.marginTop = "none", | |
| e.bottom = "4px"), | |
| ("bottom" === this.props.position || "top" === this.props.position && this.props.offset) && ("left" === this.props.direction ? e.right = this.props.offset + "px" : e.left = this.props.offset + "px"), | |
| r["default"].createElement("div", { | |
| className: "v-pointer", | |
| style: e | |
| }) | |
| } | |
| }); | |
| t["default"] = a, | |
| e.exports = t["default"] | |
| }, | |
| 557: function(e, t, n) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var i = n(5) | |
| , s = n(2) | |
| , r = n(86) | |
| , a = n(11) | |
| , o = n(18) | |
| , l = n(323) | |
| , u = n(227) | |
| , c = n(335) | |
| , d = n(120) | |
| , p = n(46) | |
| , f = n(345).getException | |
| , h = s.createClass({ | |
| displayName: "PopularItem", | |
| propTypes: { | |
| disabled: s.PropTypes.bool, | |
| item: s.PropTypes.object | |
| }, | |
| mixins: [r, u, c], | |
| render: function() { | |
| var e = this.props.item.getEmbedded("manifest").getTitleAsText(); | |
| e.length > 90 && (e = e.substring(0, 90) + "..."); | |
| var t; | |
| return this.state.popover && !this.props.disabled && (t = s.createElement(l, { | |
| from: "popular-in-issue", | |
| key: this.props.item.id, | |
| item: this.props.item, | |
| x: this.state.x, | |
| y: this.state.y, | |
| onClose: this.closePopover, | |
| onMouseEnter: this.enterPopover, | |
| onMouseLeave: this.leavePopover | |
| })), | |
| s.createElement("li", { | |
| className: "v-popular-item", | |
| onMouseEnter: this.debouncedEnterElement, | |
| onMouseMove: this.debouncedMoveElement, | |
| onMouseLeave: this.debouncedLeaveElement | |
| }, s.createElement("a", { | |
| className: "popular-item-link", | |
| onClick: this.onClick, | |
| dangerouslySetInnerHTML: { | |
| __html: e | |
| } | |
| }), t) | |
| }, | |
| onClick: function(e) { | |
| if (this.onElementClick(e), | |
| !e.defaultPrevented) { | |
| e.preventDefault(); | |
| var t = n(179); | |
| t.openItem(this.props.item.id, { | |
| analytics: { | |
| type: "popular-in-issue" | |
| } | |
| }) | |
| } | |
| }, | |
| componentWillUnmount: function() { | |
| clearTimeout(this._leaveTimeout) | |
| }, | |
| componentWillUpdate: function(e) { | |
| e.disabled && !this.props.disabled && (this.determinePopover({ | |
| inElement: !1, | |
| inPopover: !1 | |
| }), | |
| this.props.item.getEmbedded("item-tracker").set("active", !1)) | |
| }, | |
| onPopoverOpen: function() { | |
| this.props.item.getEmbedded("item-tracker").set("active", !0) | |
| }, | |
| onPopoverClose: function() { | |
| this.props.item.getEmbedded("item-tracker").set("active", !1) | |
| } | |
| }) | |
| , m = s.createClass({ | |
| displayName: "PopularItemsInIssue", | |
| mixins: [r], | |
| _renderSubscription: function() { | |
| var e = i.findWhere(d.getProviders(), { | |
| id: this.props.provider.id | |
| }); | |
| if (f("hideSubscriptionsSetting", !1) || !e) | |
| return null ; | |
| var t = this.props.issue.getEmbedded("b:issue-acquisition") | |
| , n = "/settings/subscriptions/" + this.props.provider.id | |
| , r = this.props.provider.get("name"); | |
| return t && t.get("subscription") ? s.createElement("div", { | |
| className: "bottom-content" | |
| }, s.createElement("div", { | |
| className: "is-subscribed" | |
| }, s.createElement("h3", null , s.createElement(p, { | |
| find: "issue.popular.is_subscribed_header" | |
| })), s.createElement("p", { | |
| className: "subscribed" | |
| }, s.createElement("span", { | |
| className: "subscriber" | |
| }, s.createElement(p, { | |
| find: "issue.popular.subscriber" | |
| })), s.createElement(p, { | |
| find: "issue.popular.is_subscribed_content", | |
| args: [r], | |
| sanitize: !1 | |
| }), s.createElement("span", { | |
| className: "edit-subscription" | |
| }, s.createElement("a", { | |
| href: n | |
| }, "(", s.createElement(p, { | |
| find: "issue.popular.edit" | |
| }), ")"))))) : s.createElement("div", { | |
| className: "bottom-content" | |
| }, s.createElement("div", { | |
| className: "can-subscribe" | |
| }, s.createElement("h3", null , s.createElement(p, { | |
| find: "issue.popular.subscribed" | |
| })), s.createElement("p", null , s.createElement("a", { | |
| href: n | |
| }, s.createElement(p, { | |
| find: "issue.popular.subscription" | |
| }))))) | |
| }, | |
| _renderPopularItems: function() { | |
| var e = this; | |
| return this.props.popularItems ? this.props.popularItems.take(3).map(function(t) { | |
| return s.createElement(h, { | |
| key: t.id, | |
| item: t, | |
| disabled: e.props.disabled | |
| }) | |
| }) : void 0 | |
| }, | |
| render: function() { | |
| var e = this.props.issue.getEmbedded("b:issue-acquisition") | |
| , t = o(this.props.issue.get("date")).calendar().toLowerCase() | |
| , n = this.props.provider.get("name") | |
| , i = a(["v-popular-in-issue", "tile-explain", { | |
| "l-acquire-issue": e && e.isEligibleForAcquisition() | |
| }]); | |
| return s.createElement("div", { | |
| className: i | |
| }, s.createElement("div", { | |
| className: "explanation" | |
| }, s.createElement("h2", null , s.createElement(p, { | |
| sanitize: !1, | |
| find: "issue.popular.title", | |
| args: [n, t] | |
| }))), s.createElement("ul", { | |
| className: "popular-list" | |
| }, this._renderPopularItems()), this._renderSubscription()) | |
| } | |
| }); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 558: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(117) | |
| , l = s(o) | |
| , u = n(11) | |
| , c = s(u); | |
| t["default"] = a["default"].createClass({ | |
| displayName: "PortalDialog", | |
| propTypes: { | |
| children: a["default"].PropTypes.element.isRequired, | |
| onClick: a["default"].PropTypes.func.isRequired, | |
| className: a["default"].PropTypes.string | |
| }, | |
| mixins: [(0, | |
| l["default"])("dialog-portal")], | |
| _onClick: function(e) { | |
| e.target.classList.contains("dialog-overlay") && this.props.onClick(e) | |
| }, | |
| render: function() { | |
| return null | |
| }, | |
| renderLayer: function() { | |
| var e, t = window.BrowserDetect, n = "Android Browser" === t.browser && t.version < "4.4", s = (0, | |
| c["default"])((e = {}, | |
| i(e, this.props.className, this.props.className), | |
| i(e, "dialog-overlay", !0), | |
| i(e, "no-overflow", n), | |
| e)); | |
| return a["default"].createElement("div", { | |
| className: s, | |
| onClick: this._onClick | |
| }, this.props.children) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 559: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = r["default"].createClass({ | |
| displayName: "PostChannelBadge", | |
| propTypes: { | |
| post: r["default"].PropTypes.object.isRequired, | |
| active: r["default"].PropTypes.bool, | |
| onSelect: r["default"].PropTypes.func.isRequired | |
| }, | |
| _onClickBadge: function(e) { | |
| this.props.post.get("text") && this.props.onSelect(e, this.props.post) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| o["default"])({ | |
| "v-channel-badge": !0 | |
| }) | |
| , t = (0, | |
| o["default"])({ | |
| "s-active": this.props.active | |
| }, ["channel", "channel-" + this.props.post.getEmbedded("b:user").get("id")]); | |
| return r["default"].createElement("div", { | |
| className: e | |
| }, r["default"].createElement("div", { | |
| className: t, | |
| onClick: this._onClickBadge | |
| }, this.props.post.getEmbedded("b:user").get("full_name"))) | |
| } | |
| }); | |
| t["default"] = l, | |
| e.exports = t["default"] | |
| }, | |
| 560: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(559) | |
| , o = i(a) | |
| , l = r["default"].createClass({ | |
| displayName: "PostChannelBadges", | |
| propTypes: { | |
| posts: r["default"].PropTypes.array, | |
| limit: r["default"].PropTypes.number, | |
| onSelect: r["default"].PropTypes.func.isRequired, | |
| activePost: r["default"].PropTypes.object | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| limit: 0 | |
| } | |
| }, | |
| _onSelectPost: function(e, t) { | |
| this.props.onSelect(e, t) | |
| }, | |
| render: function() { | |
| var e = this | |
| , t = 0 | |
| , n = this.props.posts.filter(function(n) { | |
| return t += n.getEmbedded("b:user").get("full_name").length, | |
| !e.props.limit || t < e.props.limit | |
| }).map(function(t) { | |
| return r["default"].createElement(o["default"], { | |
| active: e.props.activePost === t, | |
| post: t, | |
| key: t.id, | |
| onSelect: e._onSelectPost | |
| }) | |
| }); | |
| return r["default"].createElement("div", { | |
| className: "v-channel-badges" | |
| }, n) | |
| } | |
| }); | |
| t["default"] = l, | |
| e.exports = t["default"] | |
| }, | |
| 561: function(e, t, n) { | |
| "use strict"; | |
| var i = n(26)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(77) | |
| , l = s(o) | |
| , u = n(11) | |
| , c = s(u); | |
| t["default"] = a["default"].createClass({ | |
| displayName: "ProviderImage", | |
| propTypes: { | |
| className: a["default"].PropTypes.string, | |
| provider: a["default"].PropTypes.object.isRequired | |
| }, | |
| render: function() { | |
| var e = (0, | |
| c["default"])("provider", i({}, this.props.className, this.props.className)) | |
| , t = "/img/providers/" + this.props.provider.get("id") + "/logo.png" | |
| , n = this.props.provider.get("name"); | |
| return a["default"].createElement(l["default"], { | |
| className: e, | |
| src: t, | |
| alt: n, | |
| text: n | |
| }) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 562: function(e, t, n) { | |
| "use strict"; | |
| var i = (n(5), | |
| n(2)) | |
| , s = n(11) | |
| , r = (n(12), | |
| n(143), | |
| n(3)) | |
| , a = i.createClass({ | |
| displayName: "RecommendCount", | |
| propTypes: { | |
| hot: i.PropTypes.bool, | |
| amount: i.PropTypes.number.isRequired | |
| }, | |
| render: function() { | |
| var e = s({ | |
| "v-like": !0, | |
| "s-active": this.props.hot | |
| }); | |
| return i.createElement("div", { | |
| className: e, | |
| "aria-label": r.translate("recommendation.count", [this.props.amount]) | |
| }, this.props.amount) | |
| } | |
| }); | |
| e.exports = a | |
| }, | |
| 563: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(5) | |
| , r = i(s) | |
| , a = n(12) | |
| , o = i(a) | |
| , l = n(2) | |
| , u = i(l) | |
| , c = n(86) | |
| , d = i(c) | |
| , p = n(327) | |
| , f = i(p) | |
| , h = n(560) | |
| , m = i(h) | |
| , g = n(324) | |
| , v = i(g) | |
| , y = n(562) | |
| , _ = i(y) | |
| , b = n(320) | |
| , w = i(b) | |
| , S = u["default"].createClass({ | |
| displayName: "Toast", | |
| propTypes: { | |
| posts: u["default"].PropTypes.array, | |
| item: u["default"].PropTypes.object, | |
| activePost: u["default"].PropTypes.oneOfType([u["default"].PropTypes.bool, u["default"].PropTypes.object]), | |
| onActivePostChange: u["default"].PropTypes.func, | |
| activeChannel: u["default"].PropTypes.string | |
| }, | |
| mixins: [d["default"]], | |
| getDefaultProps: function() { | |
| return { | |
| activePost: null | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| activePost: this.props.activePost | |
| } | |
| }, | |
| componentWillReceiveProps: function(e) { | |
| var t = r["default"].get(this.props, "posts", []).length | |
| , n = r["default"].get(e, "posts", []).length; | |
| t !== n && this.setState({ | |
| activePost: null | |
| }) | |
| }, | |
| componentDidUpdate: function(e, t) { | |
| t.activePost !== this.state.activePost && this.props.onActivePostChange && this.props.onActivePostChange() | |
| }, | |
| _getActivePost: function(e) { | |
| var t = this; | |
| if (null !== this.state.activePost) | |
| return this.state.activePost; | |
| if (this.props.activeChannel) { | |
| var n = r["default"].first(e.filter(function(e) { | |
| return e.get("b:user").get("id") === t.props.activeChannel | |
| })); | |
| if (n && n.get("text")) | |
| return n | |
| } | |
| return r["default"].first(e.filter(function(e) { | |
| return e.get("text") | |
| })) | |
| }, | |
| _arrangePosts: function(e) { | |
| if (!this._sortedPosts) { | |
| var t = this._getActivePost(e); | |
| t && (e = r["default"].without(e, t), | |
| e.unshift(t)), | |
| this._sortedPosts = e.sort(function(e) { | |
| return e.getEmbedded("b:user") === o["default"].getUser() ? -1 : 0 | |
| }) | |
| } | |
| return this._sortedPosts | |
| }, | |
| _onSelectPost: function(e, t) { | |
| t !== this.state.activePost && this.setState({ | |
| activePost: t | |
| }) | |
| }, | |
| _renderChannelBadges: function() { | |
| var e = this._arrangePosts(this.props.posts) | |
| , t = e.filter(function(e) { | |
| return e.getEmbedded("b:manager") | |
| }) | |
| , n = this._getActivePost(e); | |
| return t.length ? u["default"].createElement(m["default"], { | |
| ref: "postchannelbadges", | |
| activePost: n, | |
| posts: r["default"].take(t, 2), | |
| onSelect: this._onSelectPost, | |
| limit: 18 | |
| }) : !1 | |
| }, | |
| _renderFaces: function() { | |
| var e = this._arrangePosts(this.props.posts) | |
| , t = e.filter(function(e) { | |
| return !e.getEmbedded("b:manager") | |
| }) | |
| , n = this._getActivePost(e); | |
| return t.length ? u["default"].createElement(f["default"], { | |
| ref: "facepile", | |
| activePost: n, | |
| posts: t, | |
| onSelect: this._onSelectPost | |
| }) : !1 | |
| }, | |
| _renderPost: function() { | |
| var e = this._arrangePosts(this.props.posts) | |
| , t = this._getActivePost(e); | |
| return t ? u["default"].createElement(v["default"], { | |
| post: t, | |
| key: t.id | |
| }) : !1 | |
| }, | |
| render: function() { | |
| return u["default"].createElement("div", { | |
| className: "v-toast", | |
| ref: "toast" | |
| }, u["default"].createElement("div", { | |
| className: "v-shared-by" | |
| }, this._renderChannelBadges(), this._renderFaces(), u["default"].createElement(w["default"], { | |
| target: this | |
| })), u["default"].createElement(_["default"], { | |
| amount: this.props.item.get("post_count"), | |
| onRecommend: this.onRecommend, | |
| onDeleteRecommend: this.onDeleteRecommend | |
| }), this._renderPost()) | |
| } | |
| }); | |
| t["default"] = S, | |
| e.exports = t["default"] | |
| }, | |
| 564: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(67) | |
| , d = o(c) | |
| , p = n(28) | |
| , f = o(p) | |
| , h = n(13) | |
| , m = o(h) | |
| , g = n(56) | |
| , v = o(g) | |
| , y = n(3) | |
| , _ = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = this.props.user | |
| , t = this.props.user.getAvatarHref() | |
| , n = e.get("username") | |
| , i = e.getFirstName() | |
| , s = "timeline.tiles.upgrade_account.message" + (n ? "" : "_no_name"); | |
| return u["default"].createElement("div", { | |
| className: "v-upgrade-account" | |
| }, u["default"].createElement("div", { | |
| className: "profile-render" | |
| }, u["default"].createElement(v["default"], { | |
| src: t | |
| }), u["default"].createElement("h3", null , n), this._renderBio()), u["default"].createElement("div", { | |
| className: "overlay" | |
| }), u["default"].createElement("div", { | |
| className: "container" | |
| }, (0, | |
| y.translateElement)(u["default"].createElement("h2", null ), s, { | |
| name: i, | |
| gift: (0, | |
| y.formatCurrency)(2.5) | |
| }), u["default"].createElement(f["default"], { | |
| className: "btn btn-blendle-icon-green btn-green btn-upgrade", | |
| onClick: this._trackUpgrade.bind(this), | |
| href: "/payment" | |
| }, (0, | |
| y.translate)("timeline.tiles.upgrade_account.button")), u["default"].createElement("div", { | |
| className: "payment-icons" | |
| }))) | |
| } | |
| }, { | |
| key: "_renderBio", | |
| value: function() { | |
| var e = this.props.user.get("text"); | |
| return e ? u["default"].createElement("p", { | |
| className: "bio" | |
| }, e) : void 0 | |
| } | |
| }, { | |
| key: "_trackUpgrade", | |
| value: function(e) { | |
| m["default"].track("Deposit Trigger", { | |
| type: "timeline/" + this.props.timeline | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| user: u["default"].PropTypes.instanceOf(d["default"]).isRequired, | |
| timeline: u["default"].PropTypes.string.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = _, | |
| e.exports = t["default"] | |
| }, | |
| 565: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(2) | |
| , r = n(86) | |
| , a = n(13) | |
| , o = n(28) | |
| , l = n(567) | |
| , u = n(227) | |
| , c = n(8) | |
| , d = s.createClass({ | |
| displayName: "User", | |
| mixins: [r, u], | |
| propTypes: { | |
| user: s.PropTypes.object.isRequired, | |
| analytics: s.PropTypes.object.isRequired, | |
| hideTooltip: s.PropTypes.bool | |
| }, | |
| _getUsername: function() { | |
| return this.props.user.username || this.props.user.get("username") | |
| }, | |
| render: function() { | |
| var e = this.props.user | |
| , t = i.includes(c.STAFFPICKS, e.id) ? "/channel/" : "/user/" | |
| , n = "blendle" === e.id ? "Trending" : e.get("username") | |
| , r = void 0; | |
| return this.state.popover && (r = s.createElement(l, { | |
| user: e, | |
| analytics: this.props.analytics, | |
| x: this.state.x, | |
| y: this.state.y, | |
| onClose: this.closePopover, | |
| onMouseEnter: this.enterPopover, | |
| onMouseLeave: this.leavePopover | |
| })), | |
| s.createElement("div", { | |
| className: "v-user user-id-" + e.id | |
| }, s.createElement("h4", { | |
| "data-id": e.id, | |
| className: "user-name" | |
| }, s.createElement(o, { | |
| href: t + e.id, | |
| onMouseEnter: this.debouncedEnterElement, | |
| onMouseMove: this.debouncedEnterElement, | |
| onMouseLeave: this.debouncedLeaveElement, | |
| onClick: this._trackUsernameClick | |
| }, n)), r) | |
| }, | |
| debouncedEnterElement: function(e) { | |
| clearTimeout(this._leaveTimeout), | |
| this.enterElement(e) | |
| }, | |
| debouncedLeaveElement: function(e) { | |
| var t = this; | |
| clearTimeout(this._leaveTimeout), | |
| this._leaveTimeout = setTimeout(function() { | |
| return t.leaveElement(e) | |
| }, 300) | |
| }, | |
| _trackUsernameClick: function(e) { | |
| a.track("View User", { | |
| type: this.props.analytics.type, | |
| user_id: this.props.user.id, | |
| user_name: this._getUsername() | |
| }) | |
| } | |
| }); | |
| e.exports = d | |
| }, | |
| 566: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(12) | |
| , d = o(c) | |
| , p = n(3) | |
| , f = n(28) | |
| , h = o(f) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = "/user/" + this.props.user.get("id") | |
| , t = this.props.user.get("full_name"); | |
| return t || this.props.user.id !== d["default"].getId() || (t = p.locale.recommendation.btn.you), | |
| this.props.disableLink && (e = "#"), | |
| u["default"].createElement(h["default"], { | |
| className: "v-user-name", | |
| href: e, | |
| title: this.props.title || t | |
| }, t) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| channel: u["default"].PropTypes.object, | |
| disableLink: u["default"].PropTypes.bool | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| disableLink: !1 | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 567: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(326) | |
| , r = n(17) | |
| , a = n(570) | |
| , o = i.createClass({ | |
| displayName: "UserPopover", | |
| propTypes: { | |
| user: i.PropTypes.object.isRequired, | |
| analytics: i.PropTypes.object.isRequired | |
| }, | |
| render: function() { | |
| return i.createElement(s, { | |
| x: this.props.x, | |
| y: this.props.y, | |
| offset: 10, | |
| viewportOffsetBottom: 10, | |
| mobile: r.isMobile(), | |
| onClose: this.props.onClose, | |
| onMouseEnter: this.props.onMouseEnter, | |
| onMouseLeave: this.props.onMouseLeave, | |
| onScroll: this.props.onClose | |
| }, i.createElement(a, { | |
| user: this.props.user, | |
| analytics: this.props.analytics | |
| })) | |
| } | |
| }); | |
| e.exports = o | |
| }, | |
| 568: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(12) | |
| , r = i(s) | |
| , a = n(2) | |
| , o = i(a) | |
| , l = n(11) | |
| , u = i(l) | |
| , c = n(56) | |
| , d = i(c) | |
| , p = n(328) | |
| , f = i(p) | |
| , h = n(223) | |
| , m = i(h) | |
| , g = o["default"].createClass({ | |
| displayName: "UserPostAvatar", | |
| propTypes: { | |
| post: o["default"].PropTypes.object.isRequired, | |
| onSelect: o["default"].PropTypes.func.isRequired, | |
| active: o["default"].PropTypes.bool, | |
| showTooltip: o["default"].PropTypes.bool | |
| }, | |
| _onClickAvatar: function(e) { | |
| this.props.post.get("text") && this.props.onSelect(e, this.props.post) | |
| }, | |
| render: function() { | |
| var e = this.props.post.getEmbedded("b:manager") || this.props.post.getEmbedded("b:user") | |
| , t = (0, | |
| u["default"])({ | |
| "v-user-avatar": !0, | |
| "s-has-message": this.props.post.get("text"), | |
| "s-active": this.props.active | |
| }); | |
| if (this.props.showTooltip) { | |
| var n = "/user/" + e.id; | |
| return o["default"].createElement(f["default"], { | |
| posts: [this.props.post], | |
| disabled: this.props.active, | |
| className: t | |
| }, o["default"].createElement("a", { | |
| href: n | |
| }, o["default"].createElement(d["default"], { | |
| src: e.getAvatarHref(), | |
| className: e.id === r["default"].getId() ? "is-me" : "" | |
| }))) | |
| } | |
| return o["default"].createElement(m["default"], { | |
| posts: [this.props.post], | |
| username: e.get("full_name"), | |
| disabled: this.props.active, | |
| className: t | |
| }, o["default"].createElement("div", { | |
| onClick: this._onClickAvatar | |
| }, o["default"].createElement(d["default"], { | |
| src: e.getAvatarHref(), | |
| className: e.id === r["default"].getId() ? "is-me" : "" | |
| }))) | |
| } | |
| }); | |
| t["default"] = g, | |
| e.exports = t["default"] | |
| }, | |
| 569: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(172) | |
| , o = i(a) | |
| , l = n(28) | |
| , u = i(l) | |
| , c = n(56) | |
| , d = i(c) | |
| , p = n(5) | |
| , f = n(8) | |
| , h = n(3) | |
| , m = n(11) | |
| , g = i(m) | |
| , v = r["default"].createClass({ | |
| displayName: "UserRow", | |
| propTypes: { | |
| user: r["default"].PropTypes.object.isRequired, | |
| analytics: r["default"].PropTypes.object.isRequired, | |
| onNavigate: r["default"].PropTypes.func | |
| }, | |
| _renderReason: function() { | |
| if (this.props.user.get("reason") && h.locale.whotofollow.reasons[this.props.user.get("reason")]) { | |
| var e = h.locale.whotofollow.reasons[this.props.user.get("reason")]; | |
| if (e) | |
| return r["default"].createElement("p", { | |
| className: "reason" | |
| }, e) | |
| } | |
| }, | |
| _renderBio: function() { | |
| return this.props.user.get("text") ? r["default"].createElement("span", { | |
| className: "bio" | |
| }, this.props.user.get("text")) : void 0 | |
| }, | |
| _renderInfo: function() { | |
| return (0, | |
| p.includes)(f.STAFFPICKS, this.props.user.id) ? r["default"].createElement("div", { | |
| className: "follow-info" | |
| }, r["default"].createElement("span", { | |
| className: "info info-followers" | |
| }, this.props.user.get("followers")), r["default"].createElement("span", { | |
| className: "info info-posts" | |
| }, this.props.user.get("posts"))) : void 0 | |
| }, | |
| render: function() { | |
| var e = (0, | |
| g["default"])({ | |
| "user-name": !0, | |
| "no-bio": !this.props.user.get("text") | |
| }); | |
| return r["default"].createElement("li", null , r["default"].createElement(o["default"], { | |
| user: this.props.user, | |
| analytics: this.props.analytics, | |
| size: "small" | |
| }), this._renderReason(), r["default"].createElement(u["default"], { | |
| className: "user-avatar", | |
| href: "/user/" + this.props.user.id, | |
| onClick: this.props.onNavigate | |
| }, r["default"].createElement(d["default"], { | |
| src: this.props.user.getAvatarHref() | |
| })), r["default"].createElement(u["default"], { | |
| className: e, | |
| href: "/user/" + this.props.user.id, | |
| onClick: this.props.onNavigate | |
| }, this.props.user.get("username")), this._renderBio(), this._renderInfo()) | |
| } | |
| }); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 570: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(5) | |
| , r = n(2) | |
| , a = i(r) | |
| , o = n(28) | |
| , l = i(o) | |
| , u = n(46) | |
| , c = i(u) | |
| , d = n(172) | |
| , p = i(d) | |
| , f = n(12) | |
| , h = i(f) | |
| , m = n(56) | |
| , g = i(m) | |
| , v = n(8); | |
| t["default"] = a["default"].createClass({ | |
| displayName: "UserTooltip", | |
| propTypes: { | |
| user: a["default"].PropTypes.object.isRequired, | |
| analytics: a["default"].PropTypes.object.isRequired | |
| }, | |
| render: function() { | |
| return a["default"].createElement("div", { | |
| className: "v-user-tooltip user-id-" + this.props.user.id | |
| }, a["default"].createElement("div", { | |
| className: "hovercard-top" | |
| }, a["default"].createElement(g["default"], { | |
| src: this.props.user.getAvatarHref(), | |
| animate: !0 | |
| }), a["default"].createElement("div", { | |
| className: "gradient" | |
| }), a["default"].createElement("h1", { | |
| className: "user-name" | |
| }, a["default"].createElement(l["default"], { | |
| href: "/user/" + this.props.user.id | |
| }, this.props.user.get("username")))), a["default"].createElement("div", { | |
| className: "hovercard-bottom" | |
| }, this._renderBio(), this._renderUserInfo(), this._renderFollowButton())) | |
| }, | |
| _renderBio: function() { | |
| var e = this.props.user.getBioHTML(); | |
| if (e) | |
| return a["default"].createElement("div", { | |
| className: "bio", | |
| dangerouslySetInnerHTML: { | |
| __html: e | |
| } | |
| }) | |
| }, | |
| _renderUserInfo: function() { | |
| return (0, | |
| s.includes)(v.STAFFPICKS, this.props.user.id) ? void 0 : a["default"].createElement("div", { | |
| className: "user-info" | |
| }, a["default"].createElement("div", { | |
| className: "info-followers" | |
| }, a["default"].createElement("span", { | |
| className: "user-info-amount" | |
| }, this.props.user.getFormattedFollowers()), a["default"].createElement(c["default"], { | |
| find: "user.captions.followers", | |
| className: "user-info-title" | |
| })), a["default"].createElement("div", { | |
| className: "info-posts" | |
| }, a["default"].createElement("span", { | |
| className: "user-info-amount" | |
| }, this.props.user.get("posts")), a["default"].createElement(c["default"], { | |
| find: "user.captions.shared", | |
| className: "user-info-title" | |
| }))) | |
| }, | |
| _renderFollowButton: function() { | |
| return h["default"].getId() === this.props.user.id || (0, | |
| s.includes)(v.STAFFPICKS, this.props.user.id) ? void 0 : a["default"].createElement(p["default"], { | |
| user: this.props.user, | |
| analytics: this.props.analytics, | |
| size: "small" | |
| }) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 571: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(2) | |
| , r = n(15) | |
| , a = n(336) | |
| , o = n(157) | |
| , l = s.createClass({ | |
| displayName: "VerticalTilePaneView", | |
| mixins: [a("vertical")], | |
| propTypes: { | |
| activeTimeline: s.PropTypes.object, | |
| onNearEnd: s.PropTypes.func.isRequired, | |
| children: s.PropTypes.arrayOf(s.PropTypes.element), | |
| loading: s.PropTypes.bool, | |
| screenOffset: s.PropTypes.number | |
| }, | |
| getDefaultProps: function() { | |
| return { | |
| loading: !1, | |
| active: !0, | |
| tileOffset: 20, | |
| screenOffset: window.innerHeight, | |
| scrollPosition: 0 | |
| } | |
| }, | |
| getInitialState: function() { | |
| return { | |
| active: !0, | |
| scroll: !1, | |
| width: 0, | |
| height: 0, | |
| next: null , | |
| prev: null , | |
| scrollSize: 0, | |
| scrollPosition: this.props.scrollPosition || 1 | |
| } | |
| }, | |
| componentDidUpdate: function(e) { | |
| !this.props.loading && e.children && 0 !== e.children.length && e.children.length !== this.props.children.length && this._determineNearEnd() | |
| }, | |
| _renderChildren: function() { | |
| if (this.props.activeTimeline) { | |
| var e = "pins" === this.props.activeTimeline.name; | |
| return s.createElement(o, { | |
| transitionName: "tile-vertical-transition", | |
| transitionEnter: !1, | |
| transitionLeaveTimeout: 300, | |
| transitionLeave: e, | |
| key: this.props.activeTimeline.key | |
| }, this.getChildren(), this.getLoading()) | |
| } | |
| return this.getChildren() | |
| }, | |
| render: function() { | |
| return s.createElement("div", { | |
| className: this.getClassName() | |
| }, this._renderChildren(), this.getLoading()) | |
| }, | |
| onChildDidMount: function() { | |
| var e = this; | |
| clearTimeout(this._updateLayoutTimer), | |
| this._updateLayoutTimer = setTimeout(function() { | |
| e.state.scrollPosition && e.setScrollPosition(e.state.scrollPosition) | |
| }, 50) | |
| }, | |
| bindListeners: function() { | |
| window.addEventListener("resize", this.setDimensions), | |
| window.addEventListener("orientationchange", this.setDimensions), | |
| window.addEventListener("scroll", this._onScroll) | |
| }, | |
| unbindListeners: function() { | |
| window.removeEventListener("resize", this.setDimensions), | |
| window.removeEventListener("orientationchange", this.setDimensions), | |
| window.removeEventListener("scroll", this._onScroll) | |
| }, | |
| getContentHeight: function() { | |
| return r.findDOMNode(this).getBoundingClientRect().height | |
| }, | |
| getContentWidth: function() { | |
| return r.findDOMNode(this).offsetWidth | |
| }, | |
| _setPageIndex: function(e) { | |
| var t = this.refs["tile-" + e]; | |
| if (t) { | |
| var n = r.findDOMNode(this.refs["tile-" + e]).offsetTop; | |
| this.setScrollPosition(n, !0) | |
| } | |
| }, | |
| scrollTo: function() { | |
| return this.setScrollPosition.apply(this, arguments) | |
| }, | |
| setScrollPosition: function(e) { | |
| window.scrollTo(0, e) | |
| }, | |
| _determineNearEnd: function() { | |
| if (this.props.onNearEnd) { | |
| var e = window.pageYOffset | |
| , t = r.findDOMNode(this).offsetHeight; | |
| t - e - 2 * this.props.screenOffset <= 0 && setTimeout(this.props.onNearEnd) | |
| } | |
| }, | |
| _determineEnd: function() { | |
| if (this.props.onEnd) { | |
| var e = window.pageYOffset | |
| , t = e + r.findDOMNode(this).offsetHeight | |
| , n = r.findDOMNode(this).parentNode.parentNode.scrollHeight; | |
| n - t === 0 && setTimeout(this.props.onEnd) | |
| } | |
| }, | |
| _onScroll: function() { | |
| var e = this; | |
| !this._rafTicking && this.props.active && (this._rafTicking = !0, | |
| window.requestAnimationFrame(function() { | |
| e._rafTicking = !1, | |
| e._onScrollRAF() | |
| })) | |
| }, | |
| _onScrollRAF: function() { | |
| var e = window.pageYOffset | |
| , t = r.findDOMNode(this).offsetHeight; | |
| if (this.setState({ | |
| scrollPosition: e, | |
| isScrolling: !0 | |
| }), | |
| this.props.showButtons && this.setState({ | |
| next: e + this.state.height < t, | |
| prev: e > 1 | |
| }), | |
| this._determineNearEnd(), | |
| this._determineEnd(), | |
| this.props.onElementsVisible) { | |
| var n = this.getVisibleTiles(e); | |
| this.setState({ | |
| visibleTiles: n | |
| }), | |
| this.props.onElementsVisible(n) | |
| } | |
| this.props.onScroll && this.props.onScroll(e), | |
| this.debounceResetScrollState() | |
| }, | |
| getVisibleTiles: function(e) { | |
| var t = this; | |
| return this.state.tileDimensions.filter(function(n) { | |
| return n.top > e && n.top + n.height < e + t.state.height | |
| }) | |
| }, | |
| _nextItem: function() { | |
| var e = this | |
| , t = i.find(r.findDOMNode(this.refs.content).childNodes, function(t) { | |
| var n = t.getBoundingClientRect(); | |
| return n.bottom > e.state.height | |
| }, 0) | |
| , n = t ? t.offsetTop - this.props.tileOffset : this.state.scrollSize; | |
| this.setScrollPosition(n, !0), | |
| this.props.onNextItem && this.props.onNextItem() | |
| }, | |
| _prevItem: function() { | |
| var e = i.findLast(r.findDOMNode(this.refs.content).childNodes, function(e) { | |
| var t = e.getBoundingClientRect(); | |
| return t.top < 0 | |
| }, 0) | |
| , t = e ? e.offsetTop - this.props.tileOffset : 0; | |
| this.setScrollPosition(t, !0), | |
| this.props.onPrevItem && this.props.onPrevItem() | |
| }, | |
| _nextPage: function() { | |
| this.setScrollPosition(this.state.scrollPosition + this.state.height, !0), | |
| this.props.onNextPage && this.props.onNextPage() | |
| }, | |
| _prevPage: function() { | |
| this.setScrollPosition(this.state.scrollPosition - this.state.height, !0), | |
| this.props.onNextPage && this.props.onNextPage() | |
| } | |
| }); | |
| e.exports = l | |
| }, | |
| 572: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(18) | |
| , d = o(c) | |
| , p = n(11) | |
| , f = o(p) | |
| , h = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onClickDay", | |
| value: function(e) { | |
| if (e.preventDefault(), | |
| e.target.classList.contains("active")) { | |
| var t = e.target.getAttribute("data-date"); | |
| this.props.onSelect((0, | |
| d["default"])(t, "YYYY-MM-DD")) | |
| } | |
| } | |
| }, { | |
| key: "_getWeeksInMonth", | |
| value: function(e) { | |
| var t = e.clone().startOf("month") | |
| , n = e.clone().endOf("month"); | |
| return Math.ceil((n.date() + t.weekday()) / 7) | |
| } | |
| }, { | |
| key: "_getAllDays", | |
| value: function() { | |
| var e = this._getPreviousDaysAmount() | |
| , t = (0, | |
| d["default"])(this.props.year + "-" + this.props.month + "-1", "YYYY-MM-DD") | |
| , n = this._getWeeksInMonth(t.clone()); | |
| return t.subtract(e + 1, "days"), | |
| Array(7 * n).fill().map(function() { | |
| return t.add(1, "days").clone() | |
| }) | |
| } | |
| }, { | |
| key: "_getPreviousDaysAmount", | |
| value: function() { | |
| var e = (0, | |
| d["default"])(this.props.year + "-" + this.props.month + "-1", "YYYY-MM-DD").day() - 1; | |
| return -1 === e && (e = 6), | |
| e | |
| } | |
| }, { | |
| key: "_renderDay", | |
| value: function(e) { | |
| var t = e.format("YYYY-MM-DD") | |
| , n = e.month() + 1 !== this.props.month | |
| , i = this.props.selected.format("YYYY-MM-DD") === t && !n | |
| , s = void 0; | |
| if (this.props.dateRange) { | |
| var r = this.props.fromDate | |
| , a = this.props.toDate; | |
| r && !e.isAfter(r) && !e.isSame(r) || a && !e.isBefore(a) ? (this.props.selected.isSame(a) && e.isAfter(a) || this.props.selected.isSame(r) && e.isBefore(r)) && (s = !0) : s = !0 | |
| } else | |
| s = -1 !== this.props.activeDates.indexOf(t) && !n; | |
| var o = (0, | |
| f["default"])({ | |
| "datepicker-day": !0, | |
| "other-month": n, | |
| "s-selected": i, | |
| active: s | |
| }); | |
| return u["default"].createElement("td", { | |
| className: o, | |
| "data-date": t, | |
| key: t, | |
| onClick: this._onClickDay.bind(this) | |
| }, e.date()) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this | |
| , t = this._getAllDays() | |
| , n = (0, | |
| d["default"])(this.props.year + "-" + this.props.month + "-1", "YYYY-MM-DD") | |
| , i = this._getWeeksInMonth(n) | |
| , s = Array(i).fill().map(function() { | |
| return t.splice(0, 7).map(function(t) { | |
| return e._renderDay(t) | |
| }) | |
| }); | |
| return u["default"].createElement("tbody", null , s.map(function(e, t) { | |
| return u["default"].createElement("tr", { | |
| key: t | |
| }, e) | |
| })) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| year: u["default"].PropTypes.number, | |
| month: u["default"].PropTypes.number, | |
| selected: u["default"].PropTypes.object, | |
| onSelect: u["default"].PropTypes.func, | |
| dateRange: u["default"].PropTypes.bool, | |
| activeDates: u["default"].PropTypes.array, | |
| fromDate: u["default"].PropTypes.object, | |
| toDate: u["default"].PropTypes.object | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| year: 0, | |
| month: 0, | |
| selected: (0, | |
| d["default"])(), | |
| activeDates: [], | |
| dateRange: !1, | |
| fromDate: null , | |
| toDate: null | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 573: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(18) | |
| , d = o(c) | |
| , p = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = Array(7).fill().map(function(e, t) { | |
| var n = (0, | |
| d["default"])().day(t + 1).format("dd").substr(0, 1); | |
| return u["default"].createElement("td", { | |
| className: "datepicker-dayname", | |
| key: t | |
| }, n) | |
| }); | |
| return u["default"].createElement("thead", null , u["default"].createElement("tr", null , e)) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = p, | |
| e.exports = t["default"] | |
| }, | |
| 574: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = n(251) | |
| , c = i(u) | |
| , d = n(112) | |
| , p = i(d) | |
| , f = n(11) | |
| , h = i(f) | |
| , m = r["default"].createClass({ | |
| displayName: "FacebookConnectExistingEmailDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| email: r["default"].PropTypes.string.isRequired, | |
| onRequestConnect: r["default"].PropTypes.func.isRequired, | |
| loading: r["default"].PropTypes.bool.isRequired, | |
| onShowForm: r["default"].PropTypes.func.isRequired, | |
| onShowPasswordReset: r["default"].PropTypes.func.isRequired, | |
| showPasswordReset: r["default"].PropTypes.bool.isRequired, | |
| error: r["default"].PropTypes.string | |
| }, | |
| componentWillMount: function() { | |
| this._resetTokenForm = new c["default"]({ | |
| back: this.props.onShowForm | |
| }), | |
| this._resetTokenForm.render() | |
| }, | |
| componentDidMount: function() { | |
| "Explorer" === window.BrowserDetect.browser && window.BrowserDetect.version <= 11 || this._password.focus() | |
| }, | |
| componentWillUpdate: function() { | |
| this._form && (this._height = this._form.getBoundingClientRect().height) | |
| }, | |
| _getHiddenStyle: function() { | |
| return { | |
| visibility: "hidden", | |
| position: "absolute", | |
| zIndex: -1 | |
| } | |
| }, | |
| _renderError: function() { | |
| return this.props.error ? r["default"].createElement("div", { | |
| className: "error-message" | |
| }, this.props.error) : void 0 | |
| }, | |
| _renderPasswordReset: function() { | |
| var e = {}; | |
| return this.props.showPasswordReset || (e = this._getHiddenStyle()), | |
| this._height && (e.height = this._height), | |
| r["default"].createElement("div", { | |
| style: e, | |
| className: "v-reset-password" | |
| }, r["default"].createElement("h2", { | |
| className: "welcome" | |
| }, (0, | |
| l.translate)("login.dropdown.to_reset_token")), r["default"].createElement(p["default"], { | |
| view: this._resetTokenForm | |
| })) | |
| }, | |
| _renderConnectForm: function() { | |
| var e = this | |
| , t = (0, | |
| h["default"])("btn", "btn-go", "btn-green", "btn-fullwidth", { | |
| "s-loading": this.props.loading | |
| }) | |
| , n = {}; | |
| return this.props.showPasswordReset && (n = this._getHiddenStyle()), | |
| r["default"].createElement("div", { | |
| style: n, | |
| ref: function(t) { | |
| return e._form = t | |
| } | |
| }, r["default"].createElement("form", { | |
| onSubmit: this.props.onRequestConnect, | |
| name: "facebook-connect" | |
| }, r["default"].createElement("h2", { | |
| className: "welcome" | |
| }, (0, | |
| l.translate)("facebook.email_exists.title")), r["default"].createElement("p", null , (0, | |
| l.translate)("facebook.email_exists.message")), r["default"].createElement("input", { | |
| ref: function(t) { | |
| return e._password = t | |
| }, | |
| className: "inp inp-text inp-fullwidth inp-password", | |
| type: "password", | |
| name: "password", | |
| placeholder: (0, | |
| l.translate)("facebook.email_exists.password_placeholder") | |
| }), this._renderError(), r["default"].createElement("button", { | |
| type: "submit", | |
| className: t | |
| }, (0, | |
| l.translate)("facebook.email_exists.connect")), r["default"].createElement("a", { | |
| className: "forgot-password", | |
| onClick: this.props.onShowPasswordReset | |
| }, (0, | |
| l.translate)("login.dropdown.to_reset_token")))) | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| className: "dialog-facebook-connect-existing", | |
| onClose: this.props.onClose | |
| }, this._renderPasswordReset(), this._renderConnectForm()) | |
| } | |
| }); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 575: function(e, t, n) { | |
| "use strict"; | |
| var i = n(186)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(2) | |
| , a = s(r) | |
| , o = n(574) | |
| , l = s(o) | |
| , u = n(164) | |
| , c = s(u) | |
| , d = n(247) | |
| , p = s(d) | |
| , f = n(37) | |
| , h = s(f) | |
| , m = n(8) | |
| , g = n(3) | |
| , v = a["default"].createClass({ | |
| displayName: "FacebookConnectExistingEmailDialogueContainer", | |
| propTypes: { | |
| onClose: a["default"].PropTypes.func.isRequired, | |
| email: a["default"].PropTypes.string.isRequired | |
| }, | |
| getInitialState: function() { | |
| return { | |
| showPasswordReset: !1 | |
| } | |
| }, | |
| _mapError: function(e) { | |
| return e.error && e.status === m.STATUS_ERROR ? e.error.type === m.MISSING_PASSWORD ? (0, | |
| g.translate)("app.error.default_form_field_required") : e.error.type === m.INVALID_TOKEN ? (0, | |
| g.translate)("dialogues.enterpassword.error") : null : null | |
| }, | |
| _onRequestConnect: function(e) { | |
| e.preventDefault(); | |
| var t = i(e.target.elements).find(function(e) { | |
| return "password" === e.name | |
| }).value; | |
| c["default"].loginAndConnectFacebook(this.props.email, t, this) | |
| }, | |
| _onShowForm: function() { | |
| this.setState({ | |
| showPasswordReset: !1 | |
| }) | |
| }, | |
| _onShowPasswordReset: function(e) { | |
| e.preventDefault(), | |
| this.setState({ | |
| showPasswordReset: !0 | |
| }) | |
| }, | |
| _renderDialogue: function(e) { | |
| return a["default"].createElement(l["default"], { | |
| onClose: this.props.onClose, | |
| email: this.props.email, | |
| error: this._mapError(e.FacebookStore), | |
| loading: e.FacebookStore.status === m.STATUS_PENDING, | |
| onRequestConnect: this._onRequestConnect, | |
| onShowPasswordReset: this._onShowPasswordReset, | |
| onShowForm: this._onShowForm, | |
| showPasswordReset: this.state.showPasswordReset | |
| }) | |
| }, | |
| render: function() { | |
| return a["default"].createElement(h["default"], { | |
| stores: { | |
| FacebookStore: p["default"] | |
| }, | |
| render: this._renderDialogue | |
| }) | |
| } | |
| }); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 576: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(20) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = r["default"].createClass({ | |
| displayName: "JustEnoughBalanceDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| hideClose: !0, | |
| className: "dialogue-just-enough-balance" | |
| }, r["default"].createElement("h2", null , (0, | |
| c.translate)("item.dialogs.justenough.title")), r["default"].createElement("p", null , (0, | |
| c.translate)("item.dialogs.justenough.text")), r["default"].createElement(u["default"], { | |
| onClick: this.props.onClose, | |
| className: "btn-fullwidth btn-dismiss" | |
| }, (0, | |
| c.translate)("item.dialogs.justenough.button"))) | |
| } | |
| }); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 577: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(33) | |
| , l = i(o) | |
| , u = n(103) | |
| , c = i(u) | |
| , d = r["default"].createClass({ | |
| displayName: "PaymentRecurringDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| user: r["default"].PropTypes.object.isRequired | |
| }, | |
| render: function() { | |
| return r["default"].createElement(l["default"], { | |
| className: "dialogue-payment-recurring", | |
| onClose: this.props.onClose | |
| }, r["default"].createElement(c["default"], { | |
| user: this.props.user | |
| }), r["default"].createElement("div", { | |
| className: "body" | |
| }, r["default"].createElement("h1", { | |
| className: "dialogue-payment-recurring-title" | |
| }, (0, | |
| a.translate)("payment.recurring.hotlink.title")), r["default"].createElement("div", { | |
| className: "text", | |
| dangerouslySetInnerHTML: { | |
| __html: (0, | |
| a.translate)("payment.recurring.hotlink.body", { | |
| currency: (0, | |
| a.getCurrencyWord)() | |
| }) | |
| } | |
| }), r["default"].createElement("button", { | |
| className: "btn btn-dismiss", | |
| onClick: this.props.onClose | |
| }, (0, | |
| a.translate)("app.buttons.i_get_it")))) | |
| } | |
| }); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 578: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(103) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = n(137) | |
| , p = i(d) | |
| , f = n(8) | |
| , h = n(30) | |
| , m = i(h) | |
| , g = n(11) | |
| , v = i(g) | |
| , y = r["default"].createClass({ | |
| displayName: "PaymentResultDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| user: r["default"].PropTypes.object.isRequired, | |
| condition: r["default"].PropTypes.oneOf("success", "cancelled", "pending"), | |
| redeemStatus: r["default"].PropTypes.oneOf(f.STATUS_INITIAL, f.STATUS_ERROR, f.STATUS_OK, f.STATUS_PENDING), | |
| providerUid: r["default"].PropTypes.string | |
| }, | |
| _renderPickASubscription: function() { | |
| return this.props.redeemStatus === f.STATUS_INITIAL || this.props.redeemStatus === f.STATUS_PENDING ? r["default"].createElement("div", { | |
| className: "dialog-payment-loading" | |
| }) : this.props.redeemStatus === f.STATUS_OK ? r["default"].createElement("div", null , r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| c.translate)("payment.result.success.title")), r["default"].createElement(p["default"], { | |
| className: "confetti" | |
| }), r["default"].createElement("div", { | |
| className: "fade" | |
| }), r["default"].createElement("p", { | |
| className: "text" | |
| }, (0, | |
| c.translate)("payment.result.success.text"), " ", r["default"].createElement("br", null ), (0, | |
| c.translate)("payment.subscription.result_text", [m["default"].getProvider(this.props.providerUid).get("name")]))) : this.props.redeemStatus === f.STATUS_ERROR ? r["default"].createElement("div", null , r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| c.translate)("payment.subscription.failed.lead")), (0, | |
| c.translateElement)(r["default"].createElement("p", { | |
| className: "text" | |
| }), "payment.subscription.failed.text", !1)) : void 0 | |
| }, | |
| _renderSuccess: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| c.translate)("payment.result.success.title")), r["default"].createElement(p["default"], { | |
| className: "confetti" | |
| }), r["default"].createElement("div", { | |
| className: "fade" | |
| }), r["default"].createElement("p", { | |
| className: "text" | |
| }, (0, | |
| c.translate)("payment.result.success.text"))) | |
| }, | |
| _renderCancelled: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| c.translate)("payment.result.cancelled.title"))) | |
| }, | |
| _renderPending: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| c.translate)("payment.result.pending.title")), r["default"].createElement("p", { | |
| className: "text" | |
| }, (0, | |
| c.translate)("payment.result.pending.text"))) | |
| }, | |
| _renderBody: function() { | |
| return this.props.providerUid ? this._renderPickASubscription() : "pending" === this.props.condition ? this._renderPending() : "cancelled" === this.props.condition ? this._renderCancelled() : "success" === this.props.condition ? this._renderSuccess() : void 0 | |
| }, | |
| _renderButton: function() { | |
| return this.props.providerUid && this.props.redeemStatus !== f.STATUS_ERROR ? this.props.redeemStatus === f.STATUS_OK ? r["default"].createElement("a", { | |
| href: "#", | |
| className: "btn btn-go", | |
| onClick: this.props.onClose | |
| }, (0, | |
| c.translate)("payment.subscription.result_button")) : void 0 : r["default"].createElement("a", { | |
| href: "#", | |
| className: "btn btn-go", | |
| onClick: this.props.onClose | |
| }, (0, | |
| c.translate)("app.buttons.ok")) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| v["default"])("dialog-payment-result", "dialog-payment-" + this.props.condition, { | |
| "dialog-payment-reward-fail": this.props.redeemStatus === f.STATUS_ERROR | |
| }); | |
| return r["default"].createElement(o["default"], { | |
| className: e, | |
| onClose: this.props.onClose | |
| }, r["default"].createElement(u["default"], { | |
| user: this.props.user | |
| }), r["default"].createElement("div", { | |
| className: "body" | |
| }, this._renderBody(), this._renderButton())) | |
| } | |
| }); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 579: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(8) | |
| , l = n(30) | |
| , u = i(l) | |
| , c = n(11) | |
| , d = i(c) | |
| , p = n(33) | |
| , f = i(p) | |
| , h = n(103) | |
| , m = i(h) | |
| , g = n(137) | |
| , v = i(g) | |
| , y = r["default"].createClass({ | |
| displayName: "PaymentSubscriptionResultDialogue", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| user: r["default"].PropTypes.object.isRequired, | |
| status: r["default"].PropTypes.oneOf([o.STATUS_PENDING, o.STATUS_ERROR, o.STATUS_OK, o.STATUS_INITIAL]).isRequired, | |
| subscription: r["default"].PropTypes.object | |
| }, | |
| _renderBody: function() { | |
| if (this.props.status === o.STATUS_OK) { | |
| var e = this.props.subscription.provider.uid; | |
| return r["default"].createElement("div", { | |
| className: "body" | |
| }, r["default"].createElement("h2", { | |
| className: "lead" | |
| }, (0, | |
| a.translate)("app.text.congratulations")), r["default"].createElement(v["default"], { | |
| className: "confetti" | |
| }), r["default"].createElement("div", { | |
| className: "fade" | |
| }), (0, | |
| a.translateElement)(r["default"].createElement("p", { | |
| className: "text" | |
| }), "payment.subscription.success_message", [u["default"].getProvider(e).get("name")]), r["default"].createElement("a", { | |
| href: "#", | |
| className: "btn btn-go", | |
| onClick: this.props.onClose | |
| }, (0, | |
| a.translate)("payment.subscription.result_button"))) | |
| } | |
| return r["default"].createElement("div", { | |
| className: "body" | |
| }) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| d["default"])("dialog-payment-result", "dialog-payment-success", { | |
| "dialog-payment-loading": this.props.status === o.STATUS_PENDING | |
| }); | |
| return r["default"].createElement(f["default"], { | |
| className: e, | |
| onClose: this.props.onClose | |
| }, r["default"].createElement(m["default"], { | |
| user: this.props.user | |
| }), this._renderBody()) | |
| } | |
| }); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 580: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(20) | |
| , u = i(l) | |
| , c = n(3); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "RecurringPaymentTriggered", | |
| propTypes: { | |
| onClose: r["default"].PropTypes.func.isRequired | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| className: "recurring-triggered", | |
| onClose: this.props.onClose | |
| }, r["default"].createElement("h2", null , (0, | |
| c.translate)("payment.recurring.triggered.title")), r["default"].createElement("p", null , (0, | |
| c.translate)("payment.recurring.triggered.body")), r["default"].createElement(u["default"], { | |
| className: "btn-fullwidth", | |
| onClick: this.props.onClose | |
| }, (0, | |
| c.translate)("app.buttons.i_get_it"))) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 581: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(20) | |
| , u = (i(l), | |
| n(8), | |
| n(613)) | |
| , c = i(u) | |
| , d = n(612) | |
| , p = i(d) | |
| , f = n(614) | |
| , h = i(f) | |
| , m = r["default"].createClass({ | |
| displayName: "SocialDialogue", | |
| propTypes: { | |
| page: r["default"].PropTypes.oneOf(["twitter", "facebook", "landing"]).isRequired, | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| connectTwitter: r["default"].PropTypes.func.isRequired, | |
| twitterConnected: r["default"].PropTypes.bool.isRequired, | |
| twitterFriends: r["default"].PropTypes.oneOfType([r["default"].PropTypes.object, r["default"].PropTypes.array]).isRequired, | |
| twitterStatus: r["default"].PropTypes.number.isRequired, | |
| connectFacebook: r["default"].PropTypes.func.isRequired, | |
| facebookConnected: r["default"].PropTypes.bool.isRequired, | |
| facebookFriends: r["default"].PropTypes.oneOfType([r["default"].PropTypes.object, r["default"].PropTypes.array]).isRequired, | |
| facebookStatus: r["default"].PropTypes.number.isRequired | |
| }, | |
| _renderTwitterFriends: function() { | |
| return r["default"].createElement(h["default"], { | |
| connectFacebook: this.props.connectFacebook, | |
| facebookConnected: this.props.facebookConnected, | |
| twitterFriends: this.props.twitterFriends, | |
| onClose: this.props.onClose | |
| }) | |
| }, | |
| _renderFacebookFriends: function() { | |
| return r["default"].createElement(p["default"], { | |
| connectTwitter: this.props.connectTwitter, | |
| twitterConnected: this.props.twitterConnected, | |
| facebookFriends: this.props.facebookFriends, | |
| onClose: this.props.onClose | |
| }) | |
| }, | |
| _renderLanding: function() { | |
| return r["default"].createElement(c["default"], { | |
| connectFacebook: this.props.connectFacebook, | |
| facebookConnected: this.props.facebookConnected, | |
| facebookStatus: this.props.facebookStatus, | |
| connectTwitter: this.props.connectTwitter, | |
| twitterConnected: this.props.twitterConnected, | |
| twitterStatus: this.props.twitterStatus | |
| }) | |
| }, | |
| _renderBody: function() { | |
| return "twitter" === this.props.page && this.props.twitterConnected ? this._renderTwitterFriends() : "facebook" === this.props.page && this.props.facebookConnected ? this._renderFacebookFriends() : this._renderLanding() | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| className: "dialogue-social", | |
| onClose: this.props.onClose | |
| }, this._renderBody()) | |
| } | |
| }); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 582: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = n(33) | |
| , u = i(l) | |
| , c = n(78) | |
| , d = i(c) | |
| , p = n(20) | |
| , f = i(p) | |
| , h = n(3) | |
| , m = n(5); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "SubscriptionForm", | |
| propTypes: { | |
| data: r["default"].PropTypes.object.isRequired, | |
| providerName: r["default"].PropTypes.string.isRequired, | |
| onChangeInput: r["default"].PropTypes.func.isRequired, | |
| onClickSubmit: r["default"].PropTypes.func.isRequired, | |
| loading: r["default"].PropTypes.bool, | |
| error: r["default"].PropTypes.bool, | |
| statusCode: r["default"].PropTypes.number | |
| }, | |
| _onSubmit: function(e) { | |
| e.preventDefault(), | |
| this.props.onClickSubmit() | |
| }, | |
| _renderFirstField: function() { | |
| var e = (0, | |
| m.get)(this.props.data, "firstField.label") | |
| , t = (0, | |
| o["default"])({ | |
| inp: !0, | |
| "inp-text": !0, | |
| "inp-username": !0, | |
| "s-error": this.props.error && 403 === this.props.statusCode | |
| }); | |
| return r["default"].createElement(d["default"], { | |
| type: "text", | |
| name: "username", | |
| placeholder: e || (0, | |
| h.translate)("app.user.id"), | |
| onChange: this.props.onChangeInput, | |
| className: t | |
| }) | |
| }, | |
| _renderSecondField: function() { | |
| var e = (0, | |
| m.get)(this.props.data, "secondField.label") | |
| , t = (0, | |
| m.get)(this.props.data, "secondField.secret") | |
| , n = (0, | |
| o["default"])({ | |
| inp: !0, | |
| "inp-text": !0, | |
| "inp-password": !0, | |
| "s-error": this.props.error && 403 === this.props.statusCode | |
| }); | |
| return r["default"].createElement(d["default"], { | |
| type: t ? "password" : "text", | |
| name: "password", | |
| placeholder: e || (0, | |
| h.translate)("app.user.password"), | |
| onChange: this.props.onChangeInput, | |
| className: n | |
| }) | |
| }, | |
| _renderError: function() { | |
| return this.props.error ? r["default"].createElement("p", { | |
| className: "error" | |
| }, (0, | |
| h.translate)("settings.subscriptions.errors.invalid_credentials")) : null | |
| }, | |
| render: function() { | |
| return r["default"].createElement(u["default"], { | |
| className: "dialog-subscription-form" | |
| }, r["default"].createElement("form", { | |
| name: "subscription-form", | |
| onSubmit: this._onSubmit | |
| }, r["default"].createElement("h2", null , (0, | |
| h.translate)("settings.subscriptions.title")), (0, | |
| h.translateElement)(r["default"].createElement("p", null ), "settings.subscriptions.add_subscription", [this.props.providerName], !1), this._renderError(), r["default"].createElement("div", { | |
| className: "frm-add-subscription" | |
| }, this._renderFirstField(), this._renderSecondField(), r["default"].createElement(f["default"], { | |
| type: "submit", | |
| className: "btn-text btn-blendle-icon-green btn-submit", | |
| loading: this.props.loading | |
| }, (0, | |
| h.translate)("settings.subscriptions.link_subscription"))))) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 583: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(12) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = n(33) | |
| , c = i(u) | |
| , d = n(103) | |
| , p = i(d) | |
| , f = n(561) | |
| , h = i(f) | |
| , m = n(20) | |
| , g = i(m); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "SubscriptionResult", | |
| propTypes: { | |
| onClickButton: r["default"].PropTypes.func.isRequired, | |
| present: r["default"].PropTypes.number, | |
| status: r["default"].PropTypes.string.isRequired, | |
| provider: r["default"].PropTypes.object.isRequired | |
| }, | |
| _onClickButton: function(e) { | |
| this.props.onClickButton(e) | |
| }, | |
| _renderSuccess: function() { | |
| var e = void 0; | |
| return this.props.present && (e = (0, | |
| l.translateElement)(r["default"].createElement("p", { | |
| className: "message" | |
| }), "dialogues.subscription_result.success_message", [(0, | |
| l.formatCurrency)(this.props.present), this.props.provider.get("name")])), | |
| r["default"].createElement("div", { | |
| className: "dialog-content s-success" | |
| }, r["default"].createElement(h["default"], { | |
| provider: this.props.provider | |
| }), r["default"].createElement("h2", { | |
| className: "title" | |
| }, (0, | |
| l.translate)("dialogues.subscription_result.success_title")), e, r["default"].createElement(g["default"], { | |
| className: "btn-submit btn-green", | |
| onClick: this._onClickButton | |
| }, (0, | |
| l.translate)("dialogues.subscription_result.success_button"))) | |
| }, | |
| _renderError: function() { | |
| return r["default"].createElement("div", { | |
| className: "dialog-content s-error" | |
| }, r["default"].createElement(h["default"], { | |
| provider: this.props.provider | |
| }), r["default"].createElement("h2", { | |
| className: "title" | |
| }, (0, | |
| l.translate)("dialogues.subscription_result.failure_title")), (0, | |
| l.translateElement)(r["default"].createElement("p", { | |
| className: "message" | |
| }), "dialogues.subscription_result.failure_message", !1), r["default"].createElement(g["default"], { | |
| className: "btn-submit", | |
| onClick: this._onClickButton | |
| }, (0, | |
| l.translate)("dialogues.subscription_result.failure_button"))) | |
| }, | |
| _renderContent: function() { | |
| return "success" !== this.props.status ? this._renderError() : this._renderSuccess() | |
| }, | |
| render: function() { | |
| return r["default"].createElement(c["default"], { | |
| className: "dialog-subscription-result", | |
| ref: "dialog" | |
| }, r["default"].createElement(p["default"], { | |
| user: o["default"].getUser() | |
| }), this._renderContent()) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 584: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(33) | |
| , o = i(a) | |
| , l = n(569) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = r["default"].createClass({ | |
| displayName: "UsersDialogue", | |
| propTypes: { | |
| title: r["default"].PropTypes.string.isRequired, | |
| onClose: r["default"].PropTypes.func.isRequired, | |
| users: r["default"].PropTypes.object.isRequired, | |
| analytics: r["default"].PropTypes.object.isRequired | |
| }, | |
| getInitialState: function() { | |
| return { | |
| users: this.props.users, | |
| fetching: !0 | |
| } | |
| }, | |
| componentDidMount: function() { | |
| this.state.users.on("sync", this._onSync), | |
| this.state.users.fetch() | |
| }, | |
| componentWillUnmount: function() { | |
| this.state.users.off("sync", this._onSync) | |
| }, | |
| _fetchMore: function() { | |
| this.state.users.hasNext() && !this.state.users.isFetching() && (this.state.users.fetchNext(), | |
| this.setState({ | |
| fetchingMore: !0 | |
| })) | |
| }, | |
| _onSync: function(e) { | |
| this.setState({ | |
| users: e, | |
| fetchingMore: !1, | |
| fetching: !1 | |
| }) | |
| }, | |
| _onScroll: function(e) { | |
| var t = e.target; | |
| t.scrollTop + t.offsetHeight + 100 >= t.scrollHeight && this._fetchMore() | |
| }, | |
| _renderUsers: function() { | |
| var e = this; | |
| return 0 !== this.state.users.length || this.state.fetching ? this.state.users.map(function(t) { | |
| return r["default"].createElement(u["default"], { | |
| key: t.id, | |
| user: t, | |
| analytics: e.props.analytics, | |
| onNavigate: e.props.onClose | |
| }) | |
| }) : r["default"].createElement("div", { | |
| className: "empty" | |
| }, (0, | |
| c.translate)("user.errors.users_not_found")) | |
| }, | |
| _renderInitialLoading: function() { | |
| return 0 === this.state.users.length && this.state.fetching ? r["default"].createElement("div", { | |
| className: "loading" | |
| }) : void 0 | |
| }, | |
| _renderLoadingMore: function() { | |
| return this.state.fetchingMore ? r["default"].createElement("div", { | |
| className: "loading-more" | |
| }) : void 0 | |
| }, | |
| render: function() { | |
| return r["default"].createElement(o["default"], { | |
| className: "users-dialogue", | |
| onClose: this.props.onClose | |
| }, r["default"].createElement("div", { | |
| className: "users-header s-success" | |
| }, r["default"].createElement("div", { | |
| className: "title", | |
| dangerouslySetInnerHTML: { | |
| __html: this.props.title | |
| } | |
| })), r["default"].createElement("ul", { | |
| className: "users-list", | |
| onScroll: this._onScroll | |
| }, this._renderUsers(), this._renderInitialLoading(), this._renderLoadingMore())) | |
| } | |
| }); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 585: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| var t = w["default"].duration(1e3 * e.subscription_duration).humanize() | |
| , n = E["default"].getProvider(e.provider_uid); | |
| return (0, | |
| y.translate)("dialogues.verified_account.reward.intro_blendle_subscription", [n.get("name"), t]) | |
| } | |
| function s(e) { | |
| return (0, | |
| y.translate)("dialogues.verified_account.reward.intro_blendle_money", [(0, | |
| y.formatCurrency)(e.amount)]) | |
| } | |
| function r(e, t) { | |
| var n = w["default"].duration(1e3 * t.subscription_duration).humanize() | |
| , i = E["default"].getProvider(t.provider_uid); | |
| return (0, | |
| y.translate)("dialogues.verified_account.reward.intro_third_party_subscription", [e, i.get("name"), n]) | |
| } | |
| function a(e, t) { | |
| return (0, | |
| y.translate)("dialogues.verified_account.reward.intro_third_party_money", [e, (0, | |
| y.formatCurrency)(t.amount)]) | |
| } | |
| var o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(33) | |
| , d = o(c) | |
| , p = n(137) | |
| , f = o(p) | |
| , h = n(329) | |
| , m = o(h) | |
| , g = n(103) | |
| , v = o(g) | |
| , y = n(3) | |
| , _ = n(8) | |
| , b = n(18) | |
| , w = o(b) | |
| , S = n(5) | |
| , k = n(30) | |
| , E = o(k) | |
| , C = u["default"].createClass({ | |
| displayName: "VerifiedUserDialogue", | |
| propTypes: { | |
| onClose: u["default"].PropTypes.func.isRequired, | |
| onClickProvider: u["default"].PropTypes.func.isRequired, | |
| user: u["default"].PropTypes.object.isRequired, | |
| rewards: u["default"].PropTypes.array | |
| }, | |
| _onClickProvider: function(e, t) { | |
| t.target.classList.contains("subscription-provider") && this.props.onClickProvider(e) | |
| }, | |
| _getSingleRewardIntro: function(e) { | |
| var t = void 0; | |
| return t = e.name === _.BLENDLE_COUPON ? "subscription" === e.reward_type ? i(e) : s(e) : "subscription" === e.reward_type ? r(e.name, e) : a(e.name, e), | |
| u["default"].createElement("span", { | |
| dangerouslySetInnerHTML: { | |
| __html: t | |
| } | |
| }) | |
| }, | |
| _getMultipleRewardsIntro: function(e) { | |
| var t = (0, | |
| S.uniq)(e.map(function(e) { | |
| return e.name | |
| })); | |
| return 1 === t.length ? t[0] === _.BLENDLE_COUPON ? u["default"].createElement("span", null , (0, | |
| y.translateElement)(u["default"].createElement("span", null ), "dialogues.verified_account.reward.intro_multiple_us", !1), u["default"].createElement(m["default"], { | |
| rewards: e, | |
| onClickProvider: this.props.onClickProvider, | |
| hideGivers: !0 | |
| })) : u["default"].createElement("span", null , (0, | |
| y.translateElement)(u["default"].createElement("span", null ), "dialogues.verified_account.reward.intro_multiple_third_party", [t[0]], !1), u["default"].createElement(m["default"], { | |
| rewards: e, | |
| onClickProvider: this.props.onClickProvider, | |
| hideGivers: !0 | |
| })) : u["default"].createElement("span", null , (0, | |
| y.translateElement)(u["default"].createElement("span", null ), "dialogues.verified_account.reward.intro_multiple_third_parties", !1), u["default"].createElement(m["default"], { | |
| rewards: e, | |
| hideGivers: !1, | |
| onClickProvider: this.props.onClickProvider | |
| })) | |
| }, | |
| _renderSingleReward: function(e) { | |
| var t = this._getSingleRewardIntro(e); | |
| return u["default"].createElement("div", { | |
| className: "intro", | |
| onClick: this._onClickProvider.bind(this, e.provider_uid) | |
| }, t) | |
| }, | |
| _renderMultipleRewards: function(e) { | |
| var t = this._getMultipleRewardsIntro(e); | |
| return u["default"].createElement("div", { | |
| className: "intro" | |
| }, t) | |
| }, | |
| _renderRewards: function() { | |
| var e = this.props.rewards; | |
| return e ? 1 === e.length ? this._renderSingleReward(e[0]) : this._renderMultipleRewards(e) : null | |
| }, | |
| render: function() { | |
| return u["default"].createElement(d["default"], { | |
| className: "dialog-verified-user", | |
| onClose: this.props.onClose | |
| }, u["default"].createElement(v["default"], { | |
| user: this.props.user | |
| }), u["default"].createElement("div", { | |
| className: "body" | |
| }, u["default"].createElement("h2", { | |
| className: "welcome" | |
| }, (0, | |
| y.translate)("dialogues.verified_account.title")), u["default"].createElement(f["default"], { | |
| className: "confetti" | |
| }), u["default"].createElement("div", { | |
| className: "fade" | |
| }), this._renderRewards(), u["default"].createElement("a", { | |
| className: "btn btn-go", | |
| onClick: this.props.onClose | |
| }, (0, | |
| y.translate)("supersympathiek")))) | |
| } | |
| }); | |
| t["default"] = C, | |
| e.exports = t["default"] | |
| }, | |
| 586: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = i(a) | |
| , l = n(225) | |
| , u = i(l) | |
| , c = n(8); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "ChangeEmailForm", | |
| propTypes: { | |
| onSubmit: r["default"].PropTypes.func.isRequired, | |
| email: r["default"].PropTypes.string.isRequired, | |
| error: r["default"].PropTypes.object | |
| }, | |
| getInitialState: function() { | |
| return { | |
| email: this.props.email | |
| } | |
| }, | |
| _onInputEmailChange: function(e) { | |
| this.setState({ | |
| email: e.target.value | |
| }) | |
| }, | |
| _onSuggestion: function(e) { | |
| this.setState({ | |
| email: e | |
| }) | |
| }, | |
| _renderEmailExists: function() { | |
| var e = this.props.error; | |
| if (e && e.type === c.USER_ID_TAKEN) { | |
| var t = this.props.email; | |
| return r["default"].createElement("p", { | |
| className: "email-exists" | |
| }, o["default"].translate("signup.user.email_used"), " ", r["default"].createElement("a", { | |
| href: "/logout/" + t | |
| }, o["default"].translate("signup.email.login_as", [t]))) | |
| } | |
| return null | |
| }, | |
| render: function() { | |
| return r["default"].createElement("form", { | |
| className: "v-change-email-form", | |
| name: "change-email", | |
| onSubmit: this._onSubmit | |
| }, r["default"].createElement("h2", null , o["default"].translate("deeplink.signup.email")), r["default"].createElement("p", null , r["default"].createElement("input", { | |
| className: "inp inp-text inp-fullwidth", | |
| ref: "email", | |
| type: "email", | |
| name: "email", | |
| onChange: this._onInputEmailChange, | |
| value: this.state.email | |
| }), r["default"].createElement(u["default"], { | |
| email: this.state.email, | |
| onClick: this._onSuggestion | |
| })), this._renderEmailExists(), r["default"].createElement("p", null , r["default"].createElement("input", { | |
| className: "btn btn-submit btn-fullwidth", | |
| type: "submit", | |
| value: o["default"].translate("app.buttons.edit") | |
| }))) | |
| }, | |
| _onSubmit: function(e) { | |
| e.preventDefault(), | |
| this.props.onSubmit(this.state.email) | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 587: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(15) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = n(234) | |
| , c = i(u) | |
| , d = n(11) | |
| , p = i(d); | |
| t["default"] = r["default"].createClass({ | |
| displayName: "SignUpEnterPasswordForm", | |
| propTypes: { | |
| onSubmit: r["default"].PropTypes.func.isRequired, | |
| error: r["default"].PropTypes.string, | |
| loading: r["default"].PropTypes.bool | |
| }, | |
| getInitialState: function() { | |
| return { | |
| password: "" | |
| } | |
| }, | |
| componentDidMount: function() { | |
| var e = this; | |
| setTimeout(function() { | |
| o["default"].findDOMNode(e.refs.password).focus() | |
| }) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| p["default"])(["frm", { | |
| "s-loading": this.props.loading | |
| }]) | |
| , t = (0, | |
| p["default"])(["btn", "btn-fullwidth", "btn-text", "btn-submit", { | |
| "s-loading": this.props.loading | |
| }]); | |
| return r["default"].createElement("form", { | |
| className: e, | |
| onSubmit: this._onSubmit | |
| }, r["default"].createElement("h2", null , l.locale.deeplink.signup.password), r["default"].createElement("p", { | |
| className: "lead" | |
| }, l.locale.deeplink.signup.password_form), r["default"].createElement("div", { | |
| className: "frm-field-wrapper" | |
| }, r["default"].createElement("input", { | |
| className: "inp inp-text inp-fullwidth inp-password", | |
| name: "password", | |
| style: this._getPasswordStyles(), | |
| ref: "password", | |
| onChange: this._onPasswordChange, | |
| type: "password", | |
| placeholder: l.locale.signup.password.placeholder | |
| }), this._renderError()), r["default"].createElement("button", { | |
| className: t | |
| }, l.locale.app.buttons.save)) | |
| }, | |
| _renderError: function() { | |
| return this.props.error ? r["default"].createElement("div", { | |
| className: "error-message visible" | |
| }, this.props.error) : null | |
| }, | |
| _onSubmit: function(e) { | |
| e.preventDefault(), | |
| this.props.loading || this.props.onSubmit(this._getPassword()) | |
| }, | |
| _onPasswordChange: function() { | |
| this.setState({ | |
| password: this._getPassword() | |
| }) | |
| }, | |
| _getPassword: function() { | |
| return o["default"].findDOMNode(this.refs.password).value | |
| }, | |
| _getPasswordStyles: function() { | |
| if (!this.state.password.length) | |
| return null ; | |
| var e = c["default"].getScore(this.state.password); | |
| return { | |
| color: c["default"].getScoreColor(e), | |
| borderColor: c["default"].getScoreColor(e) | |
| } | |
| } | |
| }), | |
| e.exports = t["default"] | |
| }, | |
| 588: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(46) | |
| , r = n(3).locale; | |
| e.exports = i.createClass({ | |
| displayName: "exports", | |
| propTypes: { | |
| onSubmit: i.PropTypes.func.isRequired, | |
| onCancel: i.PropTypes.func.isRequired, | |
| email: i.PropTypes.string.isRequired | |
| }, | |
| render: function() { | |
| return i.createElement("form", { | |
| onSubmit: this._onSubmit | |
| }, i.createElement("p", null , i.createElement(s, { | |
| find: "deeplink.verification.checkEmail", | |
| sanitize: !1, | |
| args: [this.props.email] | |
| })), i.createElement("p", { | |
| className: "btn-group" | |
| }, i.createElement("input", { | |
| className: "btn btn-fullwidth btn-confirm", | |
| type: "submit", | |
| value: r.app.buttons.yes | |
| }), i.createElement("input", { | |
| className: "btn btn-fullwidth btn-secondary", | |
| type: "button", | |
| onClick: this.props.onCancel, | |
| value: r.app.buttons.no | |
| }))) | |
| }, | |
| _onSubmit: function(e) { | |
| e.preventDefault(), | |
| this.props.onSubmit(this.props.email) | |
| } | |
| }) | |
| }, | |
| 589: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(11) | |
| , d = o(c) | |
| , p = n(3) | |
| , f = n(8) | |
| , h = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onClick", | |
| value: function(e) { | |
| "A" === e.target.nodeName && (e.preventDefault(), | |
| this.props.onSendLoginEmail()) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this.props.emailLoginState.status | |
| , t = (0, | |
| d["default"])("login-email-message", { | |
| "s-success": e === f.STATUS_OK, | |
| "s-error": e === f.STATUS_ERROR | |
| }) | |
| , n = "emaillogin.login.propose"; | |
| e === f.STATUS_OK ? n = "emaillogin.login.send" : e === f.STATUS_ERROR && (n = "emaillogin.login.invalid"); | |
| var i = Math.random(); | |
| return (0, | |
| p.translateElement)(u["default"].createElement("p", { | |
| key: i, | |
| className: t, | |
| onClick: this._onClick.bind(this) | |
| }), n, !1) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onSendLoginEmail: u["default"].PropTypes.func.isRequired, | |
| emailLoginState: u["default"].PropTypes.object | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 590: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(11) | |
| , p = (l(d), | |
| n(3)) | |
| , f = n(8) | |
| , h = n(589) | |
| , m = l(h) | |
| , g = n(157) | |
| , v = l(g) | |
| , y = function(e) { | |
| function t(e) { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), | |
| this.state = { | |
| username: "", | |
| password: "" | |
| }, | |
| this.state.username = e.initialUsername || "" | |
| } | |
| return s(t, e), | |
| r(t, null , [{ | |
| key: "propTypes", | |
| value: { | |
| onLogin: c["default"].PropTypes.func.isRequired, | |
| onToReset: c["default"].PropTypes.func, | |
| onSendLoginEmail: c["default"].PropTypes.func.isRequired, | |
| loginState: c["default"].PropTypes.object, | |
| emailLoginState: c["default"].PropTypes.object, | |
| initialUsername: c["default"].PropTypes.string, | |
| buttonHTML: c["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| r(t, [{ | |
| key: "componentDidMount", | |
| value: function() { | |
| "Explorer" === window.BrowserDetect.browser && window.BrowserDetect.version <= 11 || this._usernameInput.focus() | |
| } | |
| }, { | |
| key: "componentDidUpdate", | |
| value: function(e) { | |
| this.props.emailLoginState !== e.emailLoginState && this.setState({ | |
| hideEmailLogin: !1 | |
| }) | |
| } | |
| }, { | |
| key: "_onSubmit", | |
| value: function(e) { | |
| e.preventDefault(), | |
| this.state.username.trim() && this.props.onLogin(this.state.username.trim(), this.state.password) | |
| } | |
| }, { | |
| key: "_onSendLoginEmail", | |
| value: function() { | |
| this.props.onSendLoginEmail(this.state.username.trim()) | |
| } | |
| }, { | |
| key: "_onChangeInput", | |
| value: function(e) { | |
| var t; | |
| this.setState((t = {}, | |
| o(t, e.target.name, e.target.value), | |
| o(t, "hideEmailLogin", !0), | |
| t)) | |
| } | |
| }, { | |
| key: "_renderError", | |
| value: function() { | |
| var e = this.props.loginState; | |
| if (e.status === f.STATUS_ERROR) | |
| return e.error.type === f.INVALID_TOKEN || e.error.type === f.MISSING_PASSWORD ? c["default"].createElement("div", { | |
| className: "error-message visible" | |
| }, (0, | |
| p.translate)("error.invalid_username_or_password")) : c["default"].createElement("div", { | |
| className: "error-message visible" | |
| }, (0, | |
| p.translate)("error.invalid_email")) | |
| } | |
| }, { | |
| key: "_renderEmailLoginLink", | |
| value: function() { | |
| var e = this.props.loginState | |
| , t = null ; | |
| return this.state.hideEmailLogin || e.status !== f.STATUS_ERROR || e.error.type !== f.INVALID_TOKEN && e.error.type !== f.MISSING_PASSWORD || (t = c["default"].createElement(m["default"], { | |
| key: "link", | |
| emailLoginState: this.props.emailLoginState, | |
| onSendLoginEmail: this._onSendLoginEmail.bind(this) | |
| })), | |
| c["default"].createElement(v["default"], { | |
| key: "link", | |
| component: "div", | |
| transitionName: "slide", | |
| transitionEnter: !0, | |
| transitionEnterTimeout: 500, | |
| transitionLeave: !1, | |
| children: t | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this; | |
| return c["default"].createElement("form", { | |
| name: "login", | |
| onSubmit: this._onSubmit.bind(this), | |
| className: "frm frm-user-blendle s-active", | |
| noValidate: !0 | |
| }, c["default"].createElement("div", { | |
| className: "frm-field-wrapper" | |
| }, c["default"].createElement("input", { | |
| onChange: this._onChangeInput.bind(this), | |
| defaultValue: this.state.username, | |
| type: "email", | |
| name: "username", | |
| placeholder: (0, | |
| p.translate)("login.dropdown.blendle.username"), | |
| autoComplete: "off", | |
| className: "inp inp-text inp-email lowercase", | |
| ref: function(t) { | |
| return e._usernameInput = t | |
| } | |
| }), this._renderError()), this._renderEmailLoginLink(), c["default"].createElement("div", { | |
| className: "frm-field-wrapper" | |
| }, c["default"].createElement("input", { | |
| onChange: this._onChangeInput.bind(this), | |
| type: "password", | |
| name: "password", | |
| placeholder: (0, | |
| p.translate)("login.dropdown.blendle.password"), | |
| autoComplete: "off", | |
| className: "inp inp-text inp-password" | |
| })), c["default"].createElement("div", { | |
| className: "frm-field-wrapper form-field-submit" | |
| }, c["default"].createElement("button", { | |
| type: "submit", | |
| className: "btn btn-submit btn-blendle btn-green", | |
| dangerouslySetInnerHTML: { | |
| __html: this.props.buttonHTML || (0, | |
| p.translate)("login.dropdown.blendle.submit") | |
| } | |
| })), c["default"].createElement("p", null , c["default"].createElement("a", { | |
| className: "forgot-password", | |
| href: "/login/reset", | |
| onClick: this.props.onToReset | |
| }, (0, | |
| p.translate)("login.dropdown.to_reset_token")))) | |
| } | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 591: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = { | |
| subscribeToModel: function(e, t) { | |
| e.on(t || "change", this.forceUpdate.bind(this, null ), this) | |
| }, | |
| subscribeToCollection: function(e, t) { | |
| var n = i.debounce(this.forceUpdate.bind(this, null ), 10); | |
| e.on(t || "add remove reset sort", n, this) | |
| }, | |
| unsubscribeFromModel: function(e) { | |
| e.off(null , null , this) | |
| }, | |
| unsubscribeFromCollection: function(e) { | |
| e.off(null , null , this) | |
| } | |
| }; | |
| e.exports = s | |
| }, | |
| 597: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(5) | |
| , r = n(57) | |
| , a = n(11) | |
| , o = n(3) | |
| , l = n(345).getExceptionForCountry | |
| , u = [{ | |
| code: "nl_NL", | |
| label: "Nederland" | |
| }, { | |
| code: "de_DE", | |
| label: "Deutschland" | |
| }, { | |
| code: "en_US", | |
| label: "USA" | |
| }, { | |
| code: "fr_FR", | |
| label: "Français" | |
| }] | |
| , c = i.createClass({ | |
| displayName: "LocaleDropdown", | |
| mixins: [r()], | |
| propTypes: { | |
| selected: i.PropTypes.string.isRequired, | |
| onChange: i.PropTypes.func.isRequired | |
| }, | |
| _onChange: function(e, t) { | |
| t.preventDefault(), | |
| this.toggleDropdown(), | |
| this.props.onChange(e) | |
| }, | |
| render: function() { | |
| var e = a("v-locale-dropdown", { | |
| "s-active": this.state.open | |
| }); | |
| return i.createElement("div", { | |
| className: e | |
| }, i.createElement("div", { | |
| className: "handle", | |
| onClick: this.toggleDropdown | |
| }, this._renderSelected()), i.createElement("div", { | |
| className: "v-locale-list" | |
| }, this._renderOptions())) | |
| }, | |
| _renderOptions: function() { | |
| var e = this; | |
| return s(o.supportedCountryLocales).filter(function(e) { | |
| return !l(e.split("_")[1], "hideFromCountrySelector", !1) | |
| }).map(function(e) { | |
| return s.find(u, { | |
| code: e | |
| }) | |
| }).compact().map(function(t) { | |
| return i.createElement("a", { | |
| key: t.code, | |
| href: "#", | |
| className: "lang-" + t.code, | |
| onClick: e._onChange.bind(e, t.code) | |
| }, t.label) | |
| }).value() | |
| }, | |
| _renderSelected: function() { | |
| var e = s.find(u, { | |
| code: this.props.selected | |
| }); | |
| return i.createElement("div", { | |
| className: "lang-" + e.code | |
| }, i.createElement("label", null , e.label)) | |
| } | |
| }); | |
| e.exports = c | |
| }, | |
| 598: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = n(28) | |
| , p = o(d) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("p", { | |
| className: "v-logout-link" | |
| }, u["default"].createElement(p["default"], { | |
| href: "/logout", | |
| className: "btn" | |
| }, (0, | |
| c.translate)("login.buttons.logout"))) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 599: function(e, t, n) { | |
| "use strict"; | |
| var i = n(53)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(33) | |
| , a = s(r) | |
| , o = n(20) | |
| , l = s(o) | |
| , u = n(3) | |
| , c = n(4) | |
| , d = s(c) | |
| , p = n(2) | |
| , f = s(p) | |
| , h = s(u) | |
| , m = n(601) | |
| , g = s(m) | |
| , v = n(600) | |
| , y = s(v) | |
| , _ = n(602) | |
| , b = s(_) | |
| , w = n(605) | |
| , S = s(w) | |
| , k = n(228) | |
| , E = s(k) | |
| , C = n(598) | |
| , T = s(C) | |
| , P = n(597) | |
| , N = s(P) | |
| , x = n(111) | |
| , R = s(x) | |
| , L = n(38) | |
| , I = s(L) | |
| , M = n(175) | |
| , A = s(M) | |
| , D = n(47) | |
| , O = s(D) | |
| , U = f["default"].createClass({ | |
| displayName: "PrimaryNavigation", | |
| propTypes: { | |
| activeModule: f["default"].PropTypes.string, | |
| active: f["default"].PropTypes.string, | |
| mobile: f["default"].PropTypes.bool, | |
| authorizedUser: f["default"].PropTypes.object, | |
| notifications: f["default"].PropTypes.object, | |
| notificationsState: f["default"].PropTypes.object, | |
| fetchNotifications: f["default"].PropTypes.func | |
| }, | |
| getInitialState: function() { | |
| return { | |
| openSearch: !1, | |
| openLogin: !1 | |
| } | |
| }, | |
| _closeWarning: function() { | |
| this.setState({ | |
| openLogin: !0, | |
| loginWarning: !1 | |
| }) | |
| }, | |
| _onLanguageChange: function(e) { | |
| e !== h["default"].getLocale() && (h["default"].load(e), | |
| h["default"].setCurrencyBasedOnLocale(e), | |
| I["default"].setCountryCode(e.slice(-2))) | |
| }, | |
| _onSearch: function(e) { | |
| d["default"].history.navigate("search/" + encodeURIComponent(e), { | |
| trigger: !0 | |
| }) | |
| }, | |
| _openSearch: function() { | |
| this.setState({ | |
| openSearch: !0 | |
| }) | |
| }, | |
| _resetSearch: function() { | |
| this.setState({ | |
| openSearch: !1 | |
| }) | |
| }, | |
| _onLoginOpen: function() { | |
| this.setState({ | |
| openLogin: !0 | |
| }) | |
| }, | |
| _onLoginClose: function() { | |
| return I["default"].isBetaCountry() && !O["default"].get("signUpCode") ? void A["default"].redirectToLaunchSite() : void this.setState({ | |
| openLogin: !1 | |
| }) | |
| }, | |
| openLogin: function(e) { | |
| this.setState({ | |
| openLogin: !0, | |
| openLoginPane: e | |
| }) | |
| }, | |
| openSearch: function() { | |
| this._openSearch() | |
| }, | |
| openLoginWarning: function(e) { | |
| this.setState({ | |
| openLogin: !1, | |
| openLoginPane: e, | |
| loginWarning: !0 | |
| }) | |
| }, | |
| _renderUnauthorizedNavigation: function() { | |
| return f["default"].createElement(E["default"], { | |
| mobile: this.props.mobile, | |
| active: this.state.openLoginPane, | |
| open: this.state.openLogin, | |
| onOpen: this._onLoginOpen, | |
| onClose: this._onLoginClose | |
| }) | |
| }, | |
| _renderDefaultNavigation: function() { | |
| return [f["default"].createElement(g["default"], { | |
| key: "search", | |
| mobile: this.props.mobile, | |
| onSearch: this._onSearch, | |
| onClose: this._resetSearch, | |
| open: this.state.openSearch, | |
| i18n: h["default"].locale | |
| }), f["default"].createElement(y["default"], { | |
| key: "items", | |
| "new": this.props.notificationsState, | |
| activeNavigation: this.props.active, | |
| user: this.props.authorizedUser, | |
| mobile: this.props.mobile, | |
| onOpenSearch: this._openSearch | |
| }), f["default"].createElement(S["default"], { | |
| key: "notifications", | |
| onOpen: this.props.fetchNotifications, | |
| fetchNextNotifications: this.props.fetchNextNotifications, | |
| notifications: this.props.notifications, | |
| loadingStatus: this.props.loadingNotificationsStatus, | |
| "new": !!this.props.notificationsState.get("messages") | |
| }), f["default"].createElement(b["default"], { | |
| key: "user", | |
| user: this.props.authorizedUser, | |
| mobile: this.props.mobile | |
| })] | |
| }, | |
| _renderSignUpNavigation: function() { | |
| if (!this.props.authorizedUser) { | |
| var e = [f["default"].createElement(E["default"], { | |
| key: "login", | |
| mobile: this.props.mobile, | |
| active: this.state.openLoginPane, | |
| open: this.state.openLogin, | |
| onOpen: this._onLoginOpen, | |
| onClose: this._onLoginClose | |
| })]; | |
| return I["default"].isBetaCountry() || e.push(f["default"].createElement(N["default"], { | |
| key: "lang", | |
| selected: h["default"].currentLocale, | |
| onChange: this._onLanguageChange | |
| })), | |
| e | |
| } | |
| return f["default"].createElement(T["default"], { | |
| user: this.props.authorizedUser | |
| }) | |
| }, | |
| _renderNavigation: function() { | |
| return i(h["default"].locale).length && this.props.activeModule ? "signup" === this.props.activeModule ? this._renderSignUpNavigation() : this.props.authorizedUser && "deeplink" !== this.props.activeModule ? this._renderDefaultNavigation() : this._renderUnauthorizedNavigation() : null | |
| }, | |
| _renderWarning: function() { | |
| return this.state.loginWarning ? f["default"].createElement(a["default"], { | |
| onClose: this._closeWarning | |
| }, f["default"].createElement("h2", null , (0, | |
| u.translate)("login.settings_warning_header")), f["default"].createElement("p", null , (0, | |
| u.translate)("login.settings_warning")), f["default"].createElement(l["default"], { | |
| onClick: this._closeWarning, | |
| className: "btn-fullwidth" | |
| }, (0, | |
| u.translate)("app.buttons.login"))) : null | |
| }, | |
| render: function() { | |
| return f["default"].createElement("div", { | |
| className: "v-primary-navigation" | |
| }, f["default"].createElement(R["default"], null ), this._renderNavigation(), this._renderWarning()) | |
| } | |
| }); | |
| t["default"] = U, | |
| e.exports = t["default"] | |
| }, | |
| 600: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(338) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = r["default"].createClass({ | |
| displayName: "PrimaryNavigationItems", | |
| propTypes: { | |
| user: r["default"].PropTypes.object.isRequired, | |
| activeNavigation: r["default"].PropTypes.string.isRequired, | |
| mobile: r["default"].PropTypes.bool.isRequired, | |
| onOpenSearch: r["default"].PropTypes.func.isRequired, | |
| "new": r["default"].PropTypes.object.isRequired | |
| }, | |
| render: function() { | |
| var e = void 0 | |
| , t = void 0 | |
| , n = void 0; | |
| return this.props.user && this.props.user.get("pins") && (n = r["default"].createElement("span", { | |
| className: "count" | |
| }, this.props.user.get("pins"))), | |
| this.props.user && (e = [r["default"].createElement(o["default"], { | |
| url: "/alerts", | |
| className: "alerts", | |
| title: (0, | |
| l.translate)("navigation.links.alerts.alt"), | |
| active: "alerts" === this.props.activeNavigation, | |
| "new": this.props["new"].get("alerts"), | |
| key: "alerts" | |
| }, (0, | |
| l.translate)("navigation.links.alerts.label")), r["default"].createElement(o["default"], { | |
| url: "/pins", | |
| className: "readlater", | |
| title: (0, | |
| l.translate)("navigation.links.readlater.alt"), | |
| active: "pins" === this.props.activeNavigation, | |
| key: "pins" | |
| }, (0, | |
| l.translate)("navigation.links.readlater.label"), n)]), | |
| this.props.mobile && (t = r["default"].createElement("a", { | |
| className: "search", | |
| title: (0, | |
| l.translate)("navigation.links.search.alt"), | |
| onClick: this.props.onOpenSearch, | |
| active: "search" === this.props.activeNavigation, | |
| key: "search" | |
| }, (0, | |
| l.translate)("navigation.links.search.label"))), | |
| r["default"].createElement("div", { | |
| className: "v-primary-navigation-items" | |
| }, r["default"].createElement(o["default"], { | |
| url: "/", | |
| className: "timeline", | |
| title: (0, | |
| l.translate)("navigation.links.timeline.alt"), | |
| active: "" === this.props.activeNavigation || "following" === this.props.activeNavigation, | |
| key: "timeline" | |
| }, (0, | |
| l.translate)("navigation.links.timeline.label")), r["default"].createElement(o["default"], { | |
| url: "/kiosk", | |
| className: "kiosk", | |
| title: (0, | |
| l.translate)("navigation.links.kiosk.alt"), | |
| active: "kiosk" === this.props.activeNavigation, | |
| "new": this.props["new"].get("favourites"), | |
| key: "kiosk" | |
| }, (0, | |
| l.translate)("navigation.links.kiosk.label")), e, t) | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 601: function(e, t, n) { | |
| "use strict"; | |
| var i = n(2) | |
| , s = n(15) | |
| , r = (n(3), | |
| n(11)) | |
| , a = n(57) | |
| , o = n(17) | |
| , l = n(177) | |
| , u = i.createClass({ | |
| displayName: "Search", | |
| mixins: [a()], | |
| getInitialState: function() { | |
| return { | |
| term: "" | |
| } | |
| }, | |
| componentDidUpdate: function(e, t) { | |
| this.props.open && !this.state.open && this.setState({ | |
| open: !0 | |
| }), | |
| this.state.open && !t.open && s.findDOMNode(this.refs.input).focus() | |
| }, | |
| render: function() { | |
| var e = r([{ | |
| "s-active": this.state.open | |
| }, "frm-search"]); | |
| return i.createElement("form", { | |
| className: e, | |
| onSubmit: this._performSearch, | |
| onClick: this._considerOpen | |
| }, i.createElement("label", { | |
| ref: "label", | |
| htmlFor: "frm-search-input", | |
| className: "lbl-search" | |
| }, this.props.i18n.navigation.links.search.label), i.createElement("input", { | |
| ref: "input", | |
| type: "search", | |
| name: "q", | |
| id: "frm-search-input", | |
| placeholder: this.props.i18n.navigation.links.search.placeholder_text, | |
| className: "inp inp-text inp-search", | |
| value: this.state.term, | |
| onChange: this._handleSearch, | |
| onFocus: this._selectSearch, | |
| autoComplete: "off" | |
| }), i.createElement("a", { | |
| onClick: this.closeDropdown, | |
| className: "btn-search-close" | |
| })) | |
| }, | |
| _considerOpen: function(e) { | |
| this.props.mobile ? e.target === s.findDOMNode(this) && this.closeDropdown() : this.openDropdown() | |
| }, | |
| _performSearch: function(e) { | |
| e.preventDefault(); | |
| var t = s.findDOMNode(this.refs.input).value; | |
| "" !== t && (s.findDOMNode(this.refs.input).blur(), | |
| this.props.onSearch(t)), | |
| this.closeDropdown() | |
| }, | |
| _handleSearch: function(e) { | |
| this.setState({ | |
| term: e.target.value | |
| }) | |
| }, | |
| _selectSearch: function() { | |
| s.findDOMNode(this.refs.input).select(), | |
| o.hasTouch() && setTimeout(function() { | |
| l.vertical(document.body, 0) | |
| }, 200) | |
| } | |
| }); | |
| e.exports = u | |
| }, | |
| 602: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(57) | |
| , r = i(s) | |
| , a = n(2) | |
| , o = i(a) | |
| , l = n(15) | |
| , u = i(l) | |
| , c = n(11) | |
| , d = i(c) | |
| , p = n(56) | |
| , f = i(p) | |
| , h = n(603) | |
| , m = i(h) | |
| , g = n(3) | |
| , v = o["default"].createClass({ | |
| displayName: "UserDropdown", | |
| mixins: [(0, | |
| r["default"])()], | |
| componentDidUpdate: function() { | |
| if (this.props.mobile) { | |
| var e = document.querySelector(".a-sidebar"); | |
| e.classList.add("l-under"), | |
| u["default"].render(o["default"].createElement(m["default"], { | |
| lang: (0, | |
| g.getLocale)(), | |
| user: this.props.user, | |
| active: this.state.open | |
| }), e), | |
| this.state.open ? document.body.classList.add("l-mobile-menu-open") : document.body.classList.remove("l-mobile-menu-open") | |
| } | |
| }, | |
| compontentWillUnmount: function() { | |
| document.querySelector(".a-sidebar").classList.remove("l-under") | |
| }, | |
| render: function() { | |
| var e = void 0 | |
| , t = (0, | |
| d["default"])({ | |
| "s-active": this.state.open, | |
| "v-user-dropdown": !0 | |
| }); | |
| return this.props.mobile || (e = o["default"].createElement(m["default"], { | |
| lang: (0, | |
| g.getLocale)(), | |
| user: this.props.user, | |
| active: this.state.open, | |
| onNavigationClicked: this.closeDropdown | |
| })), | |
| o["default"].createElement("div", { | |
| className: t | |
| }, o["default"].createElement("div", { | |
| className: "user dropdown" | |
| }, o["default"].createElement("a", { | |
| className: "user-avatar current", | |
| onClick: this.toggleDropdown | |
| }, o["default"].createElement(f["default"], { | |
| className: "user-avatar-image l-original s-success", | |
| src: this.props.user.getAvatarHref(), | |
| alt: this.props.user.get("fullname") | |
| }), o["default"].createElement("div", { | |
| className: "user-avatar-overlay" | |
| })), e)) | |
| } | |
| }); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 603: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(11) | |
| , o = i(a) | |
| , l = n(41) | |
| , u = i(l) | |
| , c = n(338) | |
| , d = i(c) | |
| , p = n(56) | |
| , f = i(p) | |
| , h = n(3) | |
| , m = n(345) | |
| , g = r["default"].createClass({ | |
| displayName: "UserNavigationItems", | |
| propTypes: { | |
| lang: r["default"].PropTypes.string.isRequired, | |
| active: r["default"].PropTypes.bool.isRequired, | |
| user: r["default"].PropTypes.object.isRequired, | |
| onNavigationClicked: r["default"].PropTypes.func.isRequired | |
| }, | |
| render: function() { | |
| var e = (0, | |
| o["default"])([{ | |
| "s-active": this.props.active | |
| }, "v-user-navigation"]) | |
| , t = (0, | |
| o["default"])([{ | |
| "s-low": this.props.user.get("balance") < 1 | |
| }, "amount"]) | |
| , n = "nl_NL" === this.props.lang ? "https://blendle.homerun.hr/" : "https://blendle.homerun.hr/?lang=en" | |
| , i = void 0; | |
| return (0, | |
| m.getException)("hideSubscriptionsSetting", !1) || (i = r["default"].createElement(d["default"], { | |
| url: "/settings/subscriptions", | |
| className: "subscriptions", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("settings.subscriptions.title_short"))), | |
| r["default"].createElement("div", { | |
| className: e | |
| }, r["default"].createElement(d["default"], { | |
| url: "/me", | |
| className: "profile me", | |
| onClick: this.props.onNavigationClicked | |
| }, r["default"].createElement(f["default"], { | |
| className: "user-avatar-menu l-original s-success", | |
| src: this.props.user.getAvatarHref(), | |
| alt: "" | |
| }), (0, | |
| h.translate)("navigation.links.profile.label")), r["default"].createElement(d["default"], { | |
| url: "/me/items", | |
| className: "profile archive", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.archive.label")), r["default"].createElement(d["default"], { | |
| url: "/settings", | |
| className: "settings", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.settings.label")), r["default"].createElement(d["default"], { | |
| url: "/settings/wallet", | |
| className: "wallet", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.wallet.label"), r["default"].createElement("span", { | |
| className: t | |
| }, (0, | |
| u["default"])(this.props.user.get("balance")))), i, r["default"].createElement("a", { | |
| href: n, | |
| className: "jobs", | |
| target: "_blank", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.jobs.label")), r["default"].createElement("a", { | |
| href: "#", | |
| className: "helpdesk", | |
| "data-reamaze-lightbox": "kb" | |
| }, (0, | |
| h.translate)("navigation.links.helpdesk.label")), r["default"].createElement(d["default"], { | |
| url: "/about", | |
| className: "contact", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.about.label")), r["default"].createElement(d["default"], { | |
| url: "/logout", | |
| className: "logout", | |
| onClick: this.props.onNavigationClicked | |
| }, (0, | |
| h.translate)("navigation.links.logout.label"))) | |
| } | |
| }); | |
| t["default"] = g, | |
| e.exports = t["default"] | |
| }, | |
| 604: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(18) | |
| , l = i(o) | |
| , u = n(28) | |
| , c = i(u) | |
| , d = r["default"].createClass({ | |
| displayName: "LowBalanceNotification", | |
| propTypes: { | |
| notification: r["default"].PropTypes.object.isRequired, | |
| onClick: r["default"].PropTypes.func | |
| }, | |
| render: function() { | |
| var e = (0, | |
| l["default"])(this.props.notification.get("time")).calendar(); | |
| return r["default"].createElement(c["default"], { | |
| className: "v-low-balance-notification v-notification", | |
| href: "/payment", | |
| onClick: this.props.onClick | |
| }, r["default"].createElement("div", { | |
| className: "icon-blendle" | |
| }), r["default"].createElement("p", { | |
| className: "message" | |
| }, (0, | |
| a.translate)("notifications.events.low-balance"), r["default"].createElement("span", { | |
| className: "time" | |
| }, e))) | |
| } | |
| }); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 605: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(57) | |
| , o = i(a) | |
| , l = n(11) | |
| , u = i(l) | |
| , c = n(339) | |
| , d = i(c) | |
| , p = n(13) | |
| , f = i(p) | |
| , h = r["default"].createClass({ | |
| displayName: "NotificationsDropdown", | |
| propTypes: { | |
| notifications: r["default"].PropTypes.object.isRequired, | |
| fetchNextNotifications: r["default"].PropTypes.func.isRequired, | |
| loadingStatus: r["default"].PropTypes.number.isRequired, | |
| "new": r["default"].PropTypes.bool.isRequired | |
| }, | |
| mixins: [(0, | |
| o["default"])()], | |
| _fetchNextNotifications: function(e) { | |
| this.props.fetchNextNotifications(e), | |
| this.closeDropdown() | |
| }, | |
| _toggleDropdown: function(e) { | |
| this.state.open || f["default"].track("Notification Open Dropdown", { | |
| "new": this.props["new"] | |
| }), | |
| this.toggleDropdown(e) | |
| }, | |
| render: function() { | |
| var e = (0, | |
| u["default"])("v-notifications-dropdown", { | |
| "s-active": this.state.open | |
| }, { | |
| "s-new": this.props["new"] | |
| }); | |
| return r["default"].createElement("div", { | |
| className: e | |
| }, r["default"].createElement("div", { | |
| className: "handle", | |
| onClick: this._toggleDropdown | |
| }, r["default"].createElement("div", { | |
| className: "inner-handle" | |
| })), r["default"].createElement(d["default"], { | |
| notifications: this.props.notifications, | |
| onNotificationClick: this.closeDropdown, | |
| limit: 5, | |
| fetchNextNotifications: this._fetchNextNotifications, | |
| autoLoad: !1, | |
| loadingStatus: this.props.loadingStatus | |
| })) | |
| } | |
| }); | |
| t["default"] = h, | |
| e.exports = t["default"] | |
| }, | |
| 606: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(3) | |
| , o = n(18) | |
| , l = i(o) | |
| , u = n(41) | |
| , c = i(u) | |
| , d = n(28) | |
| , p = i(d) | |
| , f = r["default"].createClass({ | |
| displayName: "PaymentNotification", | |
| propTypes: { | |
| notification: r["default"].PropTypes.object.isRequired, | |
| onClick: r["default"].PropTypes.func | |
| }, | |
| render: function() { | |
| var e = this.props.notification; | |
| return r["default"].createElement(p["default"], { | |
| className: "v-payment-notification v-notification", | |
| href: "/settings/wallet", | |
| onClick: this.props.onClick | |
| }, r["default"].createElement("div", { | |
| className: "icon-check" | |
| }), r["default"].createElement("p", { | |
| className: "message" | |
| }, (0, | |
| a.translate)("notifications.events.recurring-payment", [(0, | |
| c["default"])(e.get("amount"))]), r["default"].createElement("span", { | |
| className: "time" | |
| }, (0, | |
| l["default"])(e.get("time")).calendar()))) | |
| } | |
| }); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 607: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(15) | |
| , o = i(a) | |
| , l = n(3) | |
| , u = n(18) | |
| , c = i(u) | |
| , d = n(28) | |
| , p = i(d) | |
| , f = n(56) | |
| , h = i(f) | |
| , m = n(172) | |
| , g = i(m) | |
| , v = r["default"].createClass({ | |
| displayName: "UserNotification", | |
| propTypes: { | |
| notification: r["default"].PropTypes.object.isRequired, | |
| onClick: r["default"].PropTypes.func | |
| }, | |
| _onClick: function(e) { | |
| e.target.contains(o["default"].findDOMNode(this.refs.follow)) || this.props.onClick && this.props.onClick(e) | |
| }, | |
| render: function() { | |
| var e = this.props.notification.getEmbedded("user") | |
| , t = (0, | |
| c["default"])(this.props.notification.get("time")).calendar(); | |
| return e ? r["default"].createElement(p["default"], { | |
| className: "v-notification", | |
| href: "/user/" + e.id, | |
| onClick: this._onClick | |
| }, r["default"].createElement(h["default"], { | |
| className: "image", | |
| src: e.getAvatarHref() | |
| }), r["default"].createElement("p", { | |
| className: "message" | |
| }, r["default"].createElement("strong", { | |
| className: "user-name" | |
| }, e.get("username")), " ", (0, | |
| l.translate)("notifications.events.follow"), r["default"].createElement("span", { | |
| className: "time" | |
| }, t)), r["default"].createElement(g["default"], { | |
| ref: "follow", | |
| analytics: { | |
| type: "notification" | |
| }, | |
| user: e, | |
| className: "s-auto" | |
| })) : null | |
| } | |
| }); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 608: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(629) | |
| , d = o(c) | |
| , p = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| dangerouslySetInnerHTML: { | |
| __html: (0, | |
| d["default"])(this.props.node) | |
| } | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| node: u["default"].PropTypes.object.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = p, | |
| e.exports = t["default"] | |
| }, | |
| 609: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var u = n(2) | |
| , c = l(u) | |
| , d = n(15) | |
| , p = l(d) | |
| , f = n(8) | |
| , h = n(3) | |
| , m = n(225) | |
| , g = l(m) | |
| , v = n(20) | |
| , y = l(v) | |
| , _ = n(17) | |
| , b = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| email: "", | |
| hideError: !1 | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentDidMount", | |
| value: function() { | |
| var e = "Explorer" === window.BrowserDetect.browser && window.BrowserDetect.version <= 11; | |
| (0, | |
| _.isMobile)() || e || p["default"].findDOMNode(this.refs.email).focus() | |
| } | |
| }, { | |
| key: "componentWillReceiveProps", | |
| value: function() { | |
| this.setState({ | |
| hideError: !1 | |
| }) | |
| } | |
| }, { | |
| key: "_onSubmit", | |
| value: function(e) { | |
| e.preventDefault(), | |
| this.props.onSignUp(this.state.email) | |
| } | |
| }, { | |
| key: "_onChangeEmail", | |
| value: function(e) { | |
| var t = e.target.value.trim(); | |
| this.setState({ | |
| email: t, | |
| hideError: !0 | |
| }) | |
| } | |
| }, { | |
| key: "_onClickError", | |
| value: function(e) { | |
| this.setState({ | |
| hideError: !0 | |
| }), | |
| "A" === e.target.nodeName && (e.preventDefault(), | |
| this.props.onToLogin && this.props.onToLogin(this.state.email)) | |
| } | |
| }, { | |
| key: "_onSuggestion", | |
| value: function(e) { | |
| this.setState({ | |
| email: e | |
| }) | |
| } | |
| }, { | |
| key: "_renderError", | |
| value: function() { | |
| var e; | |
| if (this.props.error && !this.state.hideError) { | |
| var t = (e = {}, | |
| o(e, f.EMAIL_BLACKLISTED, (0, | |
| h.translate)("app.signup.blacklisted_email_warning")), | |
| o(e, f.USER_ID_TAKEN, (0, | |
| h.translate)("deeplink.signup.email_exists")), | |
| o(e, f.EMAIL_INVALID, (0, | |
| h.translate)("error.invalid_email")), | |
| o(e, f.EMAIL_CONTAINS_PLUS_SIGN, (0, | |
| h.translate)("error.invalid_email")), | |
| e) | |
| , n = t[this.props.error] || this.props.error; | |
| return c["default"].createElement("div", { | |
| onClick: this._onClickError.bind(this), | |
| className: "error-message visible", | |
| dangerouslySetInnerHTML: { | |
| __html: n | |
| } | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return c["default"].createElement("form", { | |
| onSubmit: this._onSubmit.bind(this), | |
| className: "frm frm-user-blendle s-active", | |
| noValidate: !0, | |
| name: "signup" | |
| }, c["default"].createElement("div", { | |
| className: "frm-field-wrapper" | |
| }, c["default"].createElement("input", { | |
| ref: "email", | |
| value: this.state.email, | |
| onChange: this._onChangeEmail.bind(this), | |
| type: "email", | |
| name: "email", | |
| placeholder: (0, | |
| h.translate)("deeplink.signup.email"), | |
| autoComplete: "off", | |
| className: "inp inp-text inp-email lowercase" | |
| }), c["default"].createElement(g["default"], { | |
| email: this.state.email, | |
| onClick: this._onSuggestion.bind(this), | |
| delay: 300 | |
| }), this._renderError()), c["default"].createElement("div", { | |
| className: "frm-field-wrapper form-field-submit" | |
| }, c["default"].createElement(y["default"], { | |
| type: "submit", | |
| className: "btn-submit btn-blendle btn-green", | |
| loading: this.props.isLoading | |
| }, this.props.buttonHTML || (0, | |
| h.translate)("signup.buttons.create_account")))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onToLogin: c["default"].PropTypes.func.isRequired, | |
| onSignUp: c["default"].PropTypes.func.isRequired, | |
| error: c["default"].PropTypes.string, | |
| buttonHTML: c["default"].PropTypes.string, | |
| isLoading: c["default"].PropTypes.bool | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(c["default"].Component); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 610: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| isResend: !1 | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onResend", | |
| value: function(e) { | |
| e.preventDefault(), | |
| this.setState({ | |
| isResend: !0 | |
| }), | |
| this.props.onResend() | |
| } | |
| }, { | |
| key: "_renderResendMessage", | |
| value: function() { | |
| return this.state.isResend ? (0, | |
| c.translateElement)("signup.verifyEmail.isResend", [this.props.email], !1) : (0, | |
| c.translateElement)("signup.verifyEmail.resend", !1) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "v-verification" | |
| }, u["default"].createElement("div", { | |
| className: "deeplink-verification" | |
| }, u["default"].createElement("img", { | |
| src: "/img/signup/newemail.gif", | |
| width: "210", | |
| height: "150", | |
| alt: "" | |
| }), u["default"].createElement("h2", null , (0, | |
| c.translate)("deeplink.verification.title")), u["default"].createElement("p", { | |
| className: "thanks" | |
| }, (0, | |
| c.translate)("deeplink.verification.thanks")), u["default"].createElement("p", { | |
| className: "resend", | |
| onClick: this._onResend.bind(this) | |
| }, this._renderResendMessage()))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| email: u["default"].PropTypes.string.isRequired, | |
| onResend: u["default"].PropTypes.func.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 611: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(249) | |
| , d = o(c) | |
| , p = n(82) | |
| , f = o(p) | |
| , h = n(168) | |
| , m = o(h) | |
| , g = n(610) | |
| , v = o(g) | |
| , y = function(e) { | |
| function t(e) { | |
| var n = this; | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this, e), | |
| this.state = { | |
| signUpStore: d["default"].getState(), | |
| authStore: f["default"].getState() | |
| }, | |
| d["default"].listen(function(e) { | |
| return n.setState({ | |
| signUpStore: e | |
| }) | |
| }), | |
| f["default"].listen(function(e) { | |
| return n.setState({ | |
| authStore: e | |
| }) | |
| }) | |
| } | |
| return s(t, e), | |
| r(t, null , [{ | |
| key: "propTypes", | |
| value: { | |
| analyticsName: u["default"].PropTypes.string, | |
| signUpContext: u["default"].PropTypes.object | |
| }, | |
| enumerable: !0 | |
| }, { | |
| key: "defaultProps", | |
| value: { | |
| analyticsName: "Signup Form", | |
| signUpContext: {} | |
| }, | |
| enumerable: !0 | |
| }]), | |
| r(t, [{ | |
| key: "_onResendConfirmMail", | |
| value: function() { | |
| m["default"].resendEmailConfirm(this.state.authStore.user, this.props.signUpContext, this.props.analyticsName) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(v["default"], { | |
| email: this.state.authStore.user.get("email"), | |
| resendStatus: this.state.signUpStore.resendStatus, | |
| onResend: this._onResendConfirmMail.bind(this) | |
| }) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 612: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(20) | |
| , o = i(a) | |
| , l = n(56) | |
| , u = i(l) | |
| , c = n(223) | |
| , d = i(c) | |
| , p = n(28) | |
| , f = i(p) | |
| , h = n(3) | |
| , m = r["default"].createClass({ | |
| displayName: "ConnectFacebook", | |
| propTypes: { | |
| connectTwitter: r["default"].PropTypes.func.isRequired, | |
| twitterConnected: r["default"].PropTypes.bool.isRequired, | |
| facebookFriends: r["default"].PropTypes.oneOfType([r["default"].PropTypes.object, r["default"].PropTypes.array]).isRequired, | |
| onClose: r["default"].PropTypes.func.isRequired | |
| }, | |
| _renderOthers: function(e) { | |
| return e.length > 14 ? r["default"].createElement("p", { | |
| className: "social-others" | |
| }, (0, | |
| h.translate)("social.others", [e.length - 14])) : void 0 | |
| }, | |
| _renderAvatars: function(e) { | |
| return e.slice(0, 14).map(function(e) { | |
| return r["default"].createElement(f["default"], { | |
| className: "social-avatar-holder", | |
| href: "/user/" + e.id | |
| }, r["default"].createElement(d["default"], { | |
| className: "social-avatar-tooltip-holder", | |
| username: e.get("full_name") | |
| }, r["default"].createElement(u["default"], { | |
| className: "social-avatar", | |
| src: e.getAvatarHref(), | |
| height: "44", | |
| width: "44" | |
| }))) | |
| }) | |
| }, | |
| _renderHeader: function() { | |
| return 0 === this.props.facebookFriends.length ? (0, | |
| h.translate)("social.facebook.no_friends") : (0, | |
| h.translate)("social.facebook.found_friends") | |
| }, | |
| _renderBody: function() { | |
| return this.props.twitterConnected ? r["default"].createElement("div", { | |
| className: "social-body social-body-connect" | |
| }, r["default"].createElement("p", { | |
| className: "social-body-text" | |
| }, (0, | |
| h.translate)("social.facebook_twitter_connected")), r["default"].createElement(o["default"], { | |
| className: "btn btn-fullwidth btn-dismiss", | |
| onClick: this.props.onClose | |
| }, (0, | |
| h.translate)("continue_reading"))) : r["default"].createElement("div", { | |
| className: "social-body social-body-connect" | |
| }, r["default"].createElement("p", { | |
| className: "social-body-text" | |
| }, (0, | |
| h.translate)("social.twitter.follow_suggestion")), r["default"].createElement(o["default"], { | |
| className: "btn-twitter btn-fullwidth", | |
| onClick: this.props.connectTwitter | |
| }, (0, | |
| h.translate)("social.twitter.button"))) | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("div", { | |
| className: "social-header social-header-friends" | |
| }, r["default"].createElement("h2", { | |
| className: "social-header-title" | |
| }, this._renderHeader()), this._renderAvatars(this.props.facebookFriends), this._renderOthers(this.props.facebookFriends)), this._renderBody()) | |
| } | |
| }); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 613: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(20) | |
| , o = i(a) | |
| , l = n(11) | |
| , u = i(l) | |
| , c = n(3) | |
| , d = n(8) | |
| , p = r["default"].createClass({ | |
| displayName: "ConnectLanding", | |
| propTypes: { | |
| connectFacebook: r["default"].PropTypes.func.isRequired, | |
| facebookConnected: r["default"].PropTypes.bool.isRequired, | |
| facebookStatus: r["default"].PropTypes.number.isRequired, | |
| twitterConnected: r["default"].PropTypes.bool.isRequired, | |
| connectTwitter: r["default"].PropTypes.func.isRequired, | |
| twitterStatus: r["default"].PropTypes.number.isRequired | |
| }, | |
| _renderFacebook: function() { | |
| if (this.props.facebookConnected) | |
| return r["default"].createElement("div", { | |
| className: "social-connected" | |
| }, (0, | |
| c.translate)("social.facebook.already_following_friends")); | |
| var e = (0, | |
| u["default"])("btn-facebook", "btn-fullwidth", { | |
| "s-loading": this.props.facebookStatus === d.STATUS_PENDING | |
| }); | |
| return r["default"].createElement(o["default"], { | |
| className: e, | |
| onClick: this.props.connectFacebook | |
| }, (0, | |
| c.translate)("social.facebook.button")) | |
| }, | |
| _renderTwitter: function() { | |
| if (this.props.twitterConnected) | |
| return r["default"].createElement("div", { | |
| className: "social-connected" | |
| }, (0, | |
| c.translate)("social.twitter.already_following_friends")); | |
| var e = (0, | |
| u["default"])("btn-twitter", "btn-fullwidth", { | |
| "s-loading": this.props.twitterStatus === d.STATUS_PENDING | |
| }); | |
| return r["default"].createElement(o["default"], { | |
| className: e, | |
| onClick: this.props.connectTwitter | |
| }, (0, | |
| c.translate)("social.twitter.button")) | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("div", { | |
| className: "social-header" | |
| }, r["default"].createElement("h2", { | |
| className: "social-header-title" | |
| }, (0, | |
| c.translate)("social.header")), r["default"].createElement("img", { | |
| className: "social-heart", | |
| src: "/img/illustrations/heart.svg", | |
| alt: "", | |
| height: "100" | |
| })), r["default"].createElement("div", { | |
| className: "social-body" | |
| }, r["default"].createElement("p", { | |
| className: "social-body-text", | |
| dangerouslySetInnerHTML: { | |
| __html: (0, | |
| c.translate)("social.text") | |
| } | |
| }), this._renderFacebook(), this._renderTwitter())) | |
| } | |
| }); | |
| t["default"] = p, | |
| e.exports = t["default"] | |
| }, | |
| 614: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(2) | |
| , r = i(s) | |
| , a = n(20) | |
| , o = i(a) | |
| , l = n(56) | |
| , u = i(l) | |
| , c = n(223) | |
| , d = i(c) | |
| , p = n(28) | |
| , f = i(p) | |
| , h = n(3) | |
| , m = r["default"].createClass({ | |
| displayName: "ConnectTwitter", | |
| propTypes: { | |
| connectFacebook: r["default"].PropTypes.func.isRequired, | |
| facebookConnected: r["default"].PropTypes.bool.isRequired, | |
| twitterFriends: r["default"].PropTypes.oneOfType([r["default"].PropTypes.object, r["default"].PropTypes.array]).isRequired, | |
| onClose: r["default"].PropTypes.func.isRequired | |
| }, | |
| _renderOthers: function(e) { | |
| return e.length > 14 ? r["default"].createElement("p", { | |
| className: "social-others" | |
| }, (0, | |
| h.translate)("social.others", [e.length - 14])) : void 0 | |
| }, | |
| _renderAvatars: function(e) { | |
| return e.slice(0, 14).map(function(e) { | |
| return r["default"].createElement(f["default"], { | |
| className: "social-avatar-holder", | |
| href: "/user/" + e.id | |
| }, r["default"].createElement(d["default"], { | |
| className: "social-avatar-tooltip-holder", | |
| username: e.get("full_name") | |
| }, r["default"].createElement(u["default"], { | |
| className: "social-avatar", | |
| src: e.getAvatarHref(), | |
| height: "44", | |
| width: "44" | |
| }))) | |
| }) | |
| }, | |
| _renderHeader: function() { | |
| return 0 === this.props.twitterFriends.length ? (0, | |
| h.translate)("social.twitter.no_friends") : (0, | |
| h.translate)("social.twitter.found_friends") | |
| }, | |
| _renderBody: function() { | |
| return this.props.facebookConnected ? r["default"].createElement("div", { | |
| className: "social-body social-body-connect" | |
| }, r["default"].createElement("p", { | |
| className: "social-body-text" | |
| }, (0, | |
| h.translate)("social.facebook_twitter_connected")), r["default"].createElement(o["default"], { | |
| className: "btn btn-fullwidth btn-dismiss", | |
| onClick: this.props.onClose | |
| }, (0, | |
| h.translate)("continue_reading"))) : r["default"].createElement("div", { | |
| className: "social-body" | |
| }, r["default"].createElement("p", { | |
| className: "social-body-text" | |
| }, (0, | |
| h.translate)("social.facebook.follow_suggestion")), r["default"].createElement(o["default"], { | |
| className: "btn-facebook btn-fullwidth", | |
| onClick: this.props.connectFacebook | |
| }, (0, | |
| h.translate)("social.facebook.button"))) | |
| }, | |
| render: function() { | |
| return r["default"].createElement("div", null , r["default"].createElement("div", { | |
| className: "social-header social-header-friends" | |
| }, r["default"].createElement("h2", { | |
| className: "social-header-title" | |
| }, this._renderHeader()), this._renderAvatars(this.props.twitterFriends), this._renderOthers(this.props.twitterFriends)), this._renderBody()) | |
| } | |
| }); | |
| t["default"] = m, | |
| e.exports = t["default"] | |
| }, | |
| 615: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(15) | |
| , d = o(c) | |
| , p = n(102) | |
| , f = o(p) | |
| , h = n(563) | |
| , m = o(h) | |
| , g = n(17) | |
| , v = o(g) | |
| , y = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| toastHeight: null | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "shouldComponentUpdate", | |
| value: function(e, t) { | |
| return t !== this.state ? !0 : !e.disabled && !this.props.disabled | |
| } | |
| }, { | |
| key: "componentDidMount", | |
| value: function() { | |
| this._setToastHeight() | |
| } | |
| }, { | |
| key: "_setToastHeight", | |
| value: function() { | |
| if (!v["default"].isMobile() && this.refs.toast) { | |
| var e = d["default"].findDOMNode(this.refs.toast).offsetHeight; | |
| this.setState({ | |
| toastHeight: e | |
| }) | |
| } | |
| } | |
| }, { | |
| key: "_renderToast", | |
| value: function() { | |
| var e = this.props.item | |
| , t = e.get("b:relevant-posts"); | |
| return t ? u["default"].createElement("div", { | |
| className: "post-container", | |
| ref: "toast" | |
| }, u["default"].createElement(m["default"], { | |
| item: e.get("b:item"), | |
| posts: t.models, | |
| onActivePostChange: this._setToastHeight.bind(this), | |
| activeChannel: this.props.activeChannel | |
| })) : void 0 | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this.props.item | |
| , t = e.get("b:relevant-posts") ? this.state.toastHeight : 0; | |
| return u["default"].createElement("div", { | |
| className: "item-tile-container v-tile" | |
| }, this._renderToast(), u["default"].createElement(f["default"], { | |
| top: t, | |
| item: e.get("b:item"), | |
| analytics: this.props.analytics | |
| })) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| item: u["default"].PropTypes.object.isRequired, | |
| analytics: u["default"].PropTypes.object.isRequired, | |
| disabled: u["default"].PropTypes.bool, | |
| activeChannel: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = y, | |
| e.exports = t["default"] | |
| }, | |
| 616: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(26)["default"] | |
| , l = n(872)["default"] | |
| , u = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var c = n(2) | |
| , d = u(c) | |
| , p = n(11) | |
| , f = u(p) | |
| , h = n(3) | |
| , m = n(13) | |
| , g = u(m) | |
| , v = n(12) | |
| , y = u(v) | |
| , _ = n(56) | |
| , b = u(_) | |
| , w = n(565) | |
| , S = u(w) | |
| , k = n(172) | |
| , E = u(k) | |
| , C = n(17) | |
| , T = u(C) | |
| , P = n(8) | |
| , N = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onClickFollowers", | |
| value: function() { | |
| g["default"].track("View Followers", this._getAnalytics()) | |
| } | |
| }, { | |
| key: "_onClickFollowing", | |
| value: function() { | |
| g["default"].track("View Following", this._getAnalytics()) | |
| } | |
| }, { | |
| key: "_onClickItems", | |
| value: function() { | |
| g["default"].track("View Bought", this._getAnalytics()) | |
| } | |
| }, { | |
| key: "_getAnalytics", | |
| value: function() { | |
| return { | |
| type: "profile", | |
| user_id: this.props.profile.id | |
| } | |
| } | |
| }, { | |
| key: "_renderManagers", | |
| value: function() { | |
| var e = this | |
| , t = this.props.profile.getEmbedded("managers"); | |
| if (!t || !t.length) | |
| return null ; | |
| var n = t.filter(function(e) { | |
| return !e.get("manager_hidden") | |
| }).map(function(t, n, i) { | |
| var s = ", "; | |
| return n === i.length - 2 && 1 !== i.length ? s = " " + (0, | |
| h.translate)("user.and") + " " : n === i.length - 1 && (s = "."), | |
| d["default"].createElement("span", { | |
| key: t.id | |
| }, d["default"].createElement(S["default"], { | |
| user: t, | |
| analytics: e._getAnalytics() | |
| }), s) | |
| }); | |
| return d["default"].createElement("div", { | |
| className: "curators" | |
| }, (0, | |
| h.translate)("user.curated_by"), " ", n) | |
| } | |
| }, { | |
| key: "_renderChannels", | |
| value: function() { | |
| var e = this.props.profile.getEmbedded("shared_users"); | |
| if (!e || !e.length) | |
| return null ; | |
| var t = e.filter(function(e) { | |
| return !e.get("shared_user_hidden") | |
| }).map(function(e, t, n) { | |
| var i = " "; | |
| return T["default"].isMobile() && (t === n.length - 2 && 1 !== n.length ? i = " " + (0, | |
| h.translate)("user.and") + " " : t < n.length - 2 && 1 !== n.length && (i = ", ")), | |
| d["default"].createElement("span", { | |
| key: e.id | |
| }, d["default"].createElement("a", { | |
| href: "/channel/" + e.id, | |
| className: "channel channel-" + e.id | |
| }, e.get("username")), i) | |
| }); | |
| return d["default"].createElement("div", { | |
| className: "curates-for" | |
| }, (0, | |
| h.translate)("user.curates_for"), " ", t) | |
| } | |
| }, { | |
| key: "_renderSuperCircleAvatar", | |
| value: function() { | |
| var e = this.props.profile.getAvatarHref() || P.DEFAULT_AVATAR | |
| , t = { | |
| background: "url(" + e + ") 50% 50%", | |
| backgroundSize: "cover" | |
| }; | |
| return d["default"].createElement("div", { | |
| className: "supercircle-user-avatar", | |
| style: t | |
| }) | |
| } | |
| }, { | |
| key: "_renderAvatar", | |
| value: function() { | |
| return this.props.profile.isChannel ? null : void 0 !== document.createElement("div").style.mask && "Firefox" !== window.BrowserDetect.browser ? this._renderSuperCircleAvatar() : d["default"].createElement("div", { | |
| className: "user-avatar" | |
| }, d["default"].createElement(b["default"], { | |
| src: this.props.profile.getAvatarHref() | |
| })) | |
| } | |
| }, { | |
| key: "_renderFollowButtonOrReads", | |
| value: function() { | |
| var e = this.props.profile; | |
| if ("blendle" !== e.id) { | |
| if (y["default"].getId() !== e.id) | |
| return d["default"].createElement("div", { | |
| className: "lnk button-area" | |
| }, d["default"].createElement("div", { | |
| className: "button-holder" | |
| }, d["default"].createElement(E["default"], { | |
| user: e, | |
| isProfile: !0, | |
| analytics: this._getAnalytics() | |
| }))); | |
| var t = "/" + (e.isChannel ? "channel" : "user") + "/" + e.id + "/items"; | |
| return d["default"].createElement("a", { | |
| href: t, | |
| title: (0, | |
| h.translate)("user.labels.items") + (" (" + e.get("reads") + ")"), | |
| onClick: this._onClickItems.bind(this), | |
| className: "lnk lnk-items" | |
| }, d["default"].createElement("span", { | |
| className: "amount" | |
| }, e.getFormattedReads()), d["default"].createElement("span", { | |
| className: "caption" | |
| }, (0, | |
| h.translate)("user.captions.read"))) | |
| } | |
| } | |
| }, { | |
| key: "_renderFollowers", | |
| value: function() { | |
| var e = this.props.profile; | |
| if (!l(P.STAFFPICKS).includes(e.id)) { | |
| var t = "/" + (e.isChannel ? "channel" : "user") + "/" + e.id + "/followers"; | |
| return d["default"].createElement("a", { | |
| className: "lnk lnk-followers", | |
| onClick: this._onClickFollowers.bind(this), | |
| href: t, | |
| title: (0, | |
| h.translate)("user.captions.followers") | |
| }, d["default"].createElement("span", { | |
| className: "amount" | |
| }, e.getFormattedFollowers()), d["default"].createElement("span", { | |
| className: "caption" | |
| }, (0, | |
| h.translate)("user.captions.followers"))) | |
| } | |
| } | |
| }, { | |
| key: "_renderFollowingButton", | |
| value: function() { | |
| var e = this.props.profile; | |
| if (!e.isChannel) { | |
| var t = "/" + (e.isChannel ? "channel" : "user") + "/" + e.id + "/following"; | |
| return d["default"].createElement("a", { | |
| href: t, | |
| title: (0, | |
| h.translate)("user.labels.following"), | |
| className: "lnk lnk-following", | |
| onClick: this._onClickFollowing.bind(this) | |
| }, d["default"].createElement("span", { | |
| className: "amount" | |
| }, e.getFormattedFollowing()), d["default"].createElement("span", { | |
| className: "caption" | |
| }, (0, | |
| h.translate)("user.captions.following"))) | |
| } | |
| } | |
| }, { | |
| key: "_renderBio", | |
| value: function() { | |
| return this.props.profile.get("text") ? d["default"].createElement("p", { | |
| className: "user-description", | |
| dangerouslySetInnerHTML: { | |
| __html: this.props.profile.getBioHTML() | |
| } | |
| }) : void 0 | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this.props.profile | |
| , t = (0, | |
| f["default"])(o({ | |
| "v-tile": !0, | |
| "v-profile-tile": !0, | |
| "tile-profile": !0, | |
| "s-success": !0, | |
| "channel-profile": e.isChannel | |
| }, "user-id-" + e.id, !0)) | |
| , n = (0, | |
| f["default"])(o({ | |
| "user-name": !0, | |
| "v-channel-name": e.isChannel, | |
| channel: e.isChannel | |
| }, "channel-" + e.id, e.isChannel)); | |
| return d["default"].createElement("div", { | |
| className: t | |
| }, d["default"].createElement("div", { | |
| className: "tile-container" | |
| }, this._renderAvatar(), d["default"].createElement("h2", { | |
| className: n | |
| }, e.get("full_name")), this._renderBio(), this._renderManagers(), this._renderChannels(), d["default"].createElement("div", { | |
| className: "properties" | |
| }, this._renderFollowButtonOrReads(), this._renderFollowers(), this._renderFollowingButton()))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| profile: d["default"].PropTypes.object.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(d["default"].Component); | |
| t["default"] = N, | |
| e.exports = t["default"] | |
| }, | |
| 617: function(e, t) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = { | |
| couponCampaigns: [{ | |
| id: "paypal", | |
| name: "PayPal", | |
| code: "PAYPAL2015" | |
| }, { | |
| id: "tmobile", | |
| name: "T-Mobile", | |
| code: "TMOBILE2015" | |
| }, { | |
| id: "deichmann", | |
| name: "Deichmann", | |
| code: "DMNN2015" | |
| }, { | |
| id: "voetbalshop", | |
| name: "Voetbalshop.nl", | |
| code: "DB5086F730" | |
| }, { | |
| id: "kicker", | |
| name: "Kicker", | |
| code: "KICKER2016" | |
| }, { | |
| id: "efellows", | |
| name: "e-fellows.net", | |
| code: "" | |
| }, { | |
| id: "stgallen", | |
| name: "HSG Alumni", | |
| code: "BLENDLESTGALLEN" | |
| }, { | |
| id: "vrr", | |
| name: "VRR", | |
| code: "VRR2016" | |
| }, { | |
| id: "greetz", | |
| name: "Greetz", | |
| code: "A594B431EF" | |
| }, { | |
| id: "greetz_logged_in", | |
| name: "Greetz", | |
| code: "25168EC57E" | |
| }, { | |
| id: "vnc", | |
| name: "VNC", | |
| code: "J1K9IE2LD87" | |
| }, { | |
| id: "vnc_logged_in", | |
| name: "VNC", | |
| code: "L2P0PE1LD67" | |
| }, { | |
| id: "reportagenfm", | |
| name: "Reportagen.fm", | |
| code: "REPORTAGENLIEBE" | |
| }, { | |
| id: "reportagennewsletter", | |
| name: "Reportagen.fm", | |
| code: "RLIEBTB" | |
| }, { | |
| id: "htm", | |
| name: "HTM", | |
| code: "LQ5066F730" | |
| }, { | |
| id: "htm_logged_in", | |
| name: "HTM", | |
| code: "98F7SNFKE3" | |
| }, { | |
| id: "cjp", | |
| name: "CJP", | |
| code: "" | |
| }, { | |
| id: "theinnercirclev", | |
| name: "The Inner Circle", | |
| code: "AFEDJKL2342JKLDF" | |
| }, { | |
| id: "theinnercirclem", | |
| name: "The Inner Circle", | |
| code: "AFSDJKLSF18JKJ85" | |
| }, { | |
| id: "wired", | |
| name: "WIRED", | |
| code: "WIREDAUFBLENDLE" | |
| }, { | |
| id: "gq", | |
| name: "GQ", | |
| code: "GQAUFBLENDLE" | |
| }] | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 622: function(e, t, n) { | |
| "use strict"; | |
| function i() { | |
| return "https://login.wsj.com/auth/oauth2/authorize?response_type=code&redirect_uri=https%3A%2F%2Fblendle.com%2Fsettings%2Fsubscriptions%2Fcallback%2Fwsj&scope=email%2Cfirst_name%2Clast_name%2Croles%2Ctrackid%2Crefresh_token&client_id=a40688b344384e0db700bed49cb47be7" | |
| } | |
| function s() { | |
| return "https://triplea.telegraaf.nl/api/o/authorize/?response_type=code&client_id=kCHMTmUlrqp1tVSkJMjrj8yWgS3MhpV52H5UBp3o&scope=subscription_read&redirect_uri=https%3A%2F%2Fblendle.com%2Fsettings%2Fsubscriptions%2Fcallback%2Ftelegraaf" | |
| } | |
| function r(e) { | |
| return "https://webservice.genj.nl/" + e + "/user/register/blendle?continueUrl=https%3A%2F%2Fblendle.com%2Fsettings%2Fsubscriptions%2Fcallback%2F" + e | |
| } | |
| function a(e) { | |
| return "https://id.sueddeutsche.de/service/ticket?redirect_uri=https://blendle.com/settings/subscriptions/callback/sueddeutschezeitung&service_id=blendle" | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var o = [{ | |
| id: "par", | |
| url: "https://caps.parool.nl/service/ssologin/index.html?client_id=caps-par-1461&service=https://blendle.com/settings/subscriptions/callback/par", | |
| redirect: !0 | |
| }, { | |
| id: "vkn", | |
| url: "https://caps.volkskrant.nl/service/ssologin/index.html?client_id=caps-vk-1503&service=https://blendle.com/settings/subscriptions/callback/vkn" | |
| }, { | |
| id: "adn", | |
| url: "https://caps.ad.nl/service/ssologin/index.html?client_id=caps-ad-1501&service=https://blendle.com/settings/subscriptions/callback/adn" | |
| }, { | |
| id: "trn", | |
| url: "https://caps.trouw.nl/service/ssologin/index.html?client_id=caps-tr-1502&service=https://blendle.com/settings/subscriptions/callback/trn" | |
| }, { | |
| id: "lc", | |
| url: "https://ndc.evolok.net/evolok-ui-web/login.htm?serviceName=lc&viewType=paywall&redirectTo=https%3A%2F%2Fws.blendle.nl%2Fuser%2F{user_id}%2Fprovider_account%2Flc%2Fredirect%3Fsession_id%3D__sessionId", | |
| redirect: !0 | |
| }, { | |
| id: "dvhn", | |
| url: "https://ndc.evolok.net/evolok-ui-web/login.htm?serviceName=dvhn&viewType=paywall&redirectTo=https%3A%2F%2Fws.blendle.nl%2Fuser%2F{user_id}%2Fprovider_account%2Fdvhn%2Fredirect%3Fsession_id%3D__sessionId", | |
| redirect: !0 | |
| }, { | |
| id: "sueddeutschezeitung", | |
| url: a() | |
| }, { | |
| id: "vn", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "elsevier", | |
| authUri: "auth://%s:%s@reedbusiness/elsevier", | |
| intro: "Voer je abonneenummer en postcode in van je account bij <strong>Elsevier</strong> om je abonnement te koppelen.", | |
| firstField: { | |
| label: "Abonneenummer" | |
| }, | |
| secondField: { | |
| label: "Postcode", | |
| filter: function(e) { | |
| return e.replace(" ", "") | |
| } | |
| } | |
| }, { | |
| id: "opzij", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "newscientist", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "tpomagazine", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "brightideas", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "runners", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "psychologie", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "filosofiemagazine", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "nedag", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "derspiegel", | |
| name: "Der digitale Spiegel", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }, { | |
| id: "varagids", | |
| intro: "Voer het relatienummer en huisnummer in van je <strong>Varagids</strong> account om je abonnement te koppelen.", | |
| firstField: { | |
| label: "Relatienummer" | |
| }, | |
| secondField: { | |
| label: "Huisnummer" | |
| } | |
| }, { | |
| id: "wallstreetjournal", | |
| url: "https://login.wsj.com/auth/oauth2/authorize?response_type=code&redirect_uri=https%3A%2F%2Fblendle.com%2Fsettings%2Fsubscriptions%2Fcallback%2Fwallstreetjournal&scope=email%2Cfirst_name%2Clast_name%2Croles%2Ctrackid%2Crefresh_token&client_id=a40688b344384e0db700bed49cb47be7", | |
| redirect: !0 | |
| }, { | |
| id: "wsj", | |
| url: i(), | |
| redirect: !0 | |
| }, { | |
| id: "quest", | |
| url: r("quest"), | |
| redirect: !0 | |
| }, { | |
| id: "questhistorie", | |
| url: r("questhistorie"), | |
| redirect: !0 | |
| }, { | |
| id: "questpsychologie", | |
| url: r("questpsychologie"), | |
| redirect: !0 | |
| }, { | |
| id: "nationalgeographic", | |
| url: r("nationalgeographic"), | |
| redirect: !0 | |
| }, { | |
| id: "jan", | |
| url: r("jan"), | |
| redirect: !0 | |
| }, { | |
| id: "glamour", | |
| url: r("glamour"), | |
| redirect: !0 | |
| }, { | |
| id: "vogue", | |
| url: r("vogue"), | |
| redirect: !0 | |
| }, { | |
| id: "telegraaf", | |
| url: s(), | |
| redirect: !0 | |
| }, { | |
| id: "zeit", | |
| secondField: { | |
| secret: !0 | |
| } | |
| }]; | |
| t["default"] = o, | |
| e.exports = t["default"] | |
| }, | |
| 625: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return "all" === e ? s.providerLocales : s.providerLocales.filter(function(t) { | |
| return t.split("_")[1] === e.toUpperCase() | |
| }) | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = i; | |
| var s = n(89); | |
| e.exports = t["default"] | |
| }, | |
| 626: function(e, t) { | |
| "use strict"; | |
| e.exports = function(e) { | |
| var t = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1] | |
| , n = document.createElement(e); | |
| if (t.appendTo && (t.appendTo.appendChild(n), | |
| delete t.appendTo), | |
| t.children) { | |
| for (var i = 0; i < t.children.length; i++) | |
| n.appendChild(t.children[i]); | |
| delete t.children | |
| } | |
| for (var s in t) | |
| n[s] = t[s]; | |
| return n | |
| } | |
| }, | |
| 627: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| function t(e, n) { | |
| for (var s in n) | |
| i.isObject(n[s]) ? (e[s] || (e[s] = {}), | |
| t(e[s], n[s])) : e[s] = n[s]; | |
| return e | |
| } | |
| var i = n(5); | |
| return t | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 629: function(e, t) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = function(e) { | |
| var t = document.createElement("div"); | |
| return t.appendChild(e), | |
| t.innerHTML | |
| } | |
| , | |
| e.exports = t["default"] | |
| }, | |
| 630: function(e, t) { | |
| "use strict"; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = { | |
| getClassNames: function(e, t) { | |
| void 0 === e && (e = document.body); | |
| var n = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2] | |
| , i = this._getBoundingBoxesDiff(e, t, n); | |
| return { | |
| vertical: i.bottom < 0 ? "l-top" : "l-bottom", | |
| horizontal: i.right < 0 ? "l-left" : "l-right" | |
| } | |
| }, | |
| _getBoundingBoxesDiff: function(e, t, n) { | |
| var i = e.getBoundingClientRect() | |
| , s = t.getBoundingClientRect() | |
| , r = {}; | |
| for (var a in s) { | |
| r[a] = i[a] - s[a]; | |
| var o = n[a]; | |
| o && (r[a] -= o) | |
| } | |
| return r | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 632: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| var t = new a["default"](e).domain() | |
| , n = o.find(function(e) { | |
| return e.domain === t | |
| }); | |
| return n ? n.label : null | |
| } | |
| var s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t["default"] = i; | |
| var r = n(43) | |
| , a = s(r) | |
| , o = [{ | |
| domain: "facebook.com", | |
| label: "Facebook" | |
| }, { | |
| domain: "t.co", | |
| label: "Twitter" | |
| }, { | |
| domain: "twitter.com", | |
| label: "Twitter" | |
| }, { | |
| domain: "linkedin.com", | |
| label: "LinkedIn" | |
| }, { | |
| domain: "xing.com", | |
| label: "XING" | |
| }, { | |
| domain: "xing-news.com", | |
| label: "XING" | |
| }]; | |
| e.exports = t["default"] | |
| }, | |
| 633: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t) { | |
| var n = e[0]; | |
| if (o["default"].get(n, ["gifts", "blendle_first_deposit_gift", "eligible"])) { | |
| var i = n.gifts.blendle_first_deposit_gift; | |
| return t >= parseFloat(i.minimum_deposit_amount) | |
| } | |
| return !1 | |
| } | |
| function s(e, t, n) { | |
| var i = e.filter(function(e) { | |
| return "paypal" === e.code | |
| })[0]; | |
| if (o["default"].get(i, ["gifts", "paypal_gift", "eligible"])) { | |
| var s = !1; | |
| return t >= parseFloat(o["default"].get(i, ["gifts", "paypal_gift", "minimum_deposit_amount"])) && "paypal" === n && (s = !0), | |
| o["default"].extend(i.gifts.paypal_gift, { | |
| unlocked: s | |
| }) | |
| } | |
| return null | |
| } | |
| var r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.eligibleFirstDepositGift = i, | |
| t.eligiblePayPalDepositGift = s; | |
| var a = n(5) | |
| , o = r(a) | |
| }, | |
| 635: function(e, t, n) { | |
| "use strict"; | |
| function i(e, t, n) { | |
| return o["default"].expand((0, | |
| r.get)(e, ["_links", t, "href"]), n).toString() | |
| } | |
| var s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.getLink = i; | |
| var r = n(5) | |
| , a = n(43) | |
| , o = s(a) | |
| }, | |
| 638: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| return e.replace(/[ ]{2,}/g, " ") | |
| } | |
| function s(e) { | |
| return e.replace(/@/g, " at ") | |
| } | |
| var r = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var a = n(5) | |
| , o = r(a) | |
| , l = o["default"].flowRight(o["default"].kebabCase, i, o["default"].deburr, o["default"].trim, s); | |
| t["default"] = { | |
| createItemUri: function(e) { | |
| var t = e.getEmbedded("manifest"); | |
| return ["i", l(t.getProvider().get("name")), l(t.getTitleAsText()), e.id].join("/") | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 639: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| for (var t = arguments.length, n = Array(t > 1 ? t - 1 : 0), i = 1; t > i; i++) | |
| n[i - 1] = arguments[i]; | |
| l.push({ | |
| fn: e, | |
| args: n | |
| }) | |
| } | |
| function s() { | |
| l.forEach(function(e) { | |
| return e.fn.apply(e, o(e.args)) | |
| }), | |
| l = [] | |
| } | |
| function r(e) { | |
| return function() { | |
| for (var t = arguments.length, n = Array(t), r = 0; t > r; r++) | |
| n[r] = arguments[r]; | |
| a() ? (s(), | |
| e.apply(void 0, n)) : i.apply(void 0, [e].concat(n)) | |
| } | |
| } | |
| function a() { | |
| return window._support && window.Reamaze && "reload" in window.Reamaze | |
| } | |
| var o = n(187)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = [] | |
| , u = r(function(e) { | |
| "DE" === e ? window._support.account = "blendlede" : "NL" === e ? window._support.account = "blendle" : window._support.account = "blendleintl", | |
| window.Reamaze.reload() | |
| }); | |
| t.updateCountry = u; | |
| var c = r(function(e) { | |
| e.fetchRelation("private").then(function(t) { | |
| window._support.user = { | |
| id: e.get("id"), | |
| email: e.get("email"), | |
| name: e.get("full_name"), | |
| authkey: t.get("reamaze_auth_key"), | |
| avatar: e.get("avatar_url"), | |
| data: { | |
| country: e.get("country"), | |
| userAgent: window.navigator.userAgent, | |
| uri: window.location.href | |
| } | |
| }, | |
| window.Reamaze.reload() | |
| }) | |
| }); | |
| t.updateUser = c; | |
| var d = r(function(e) { | |
| window._support.user && window._support.user.data && (window._support.user.data.uri = e) | |
| }); | |
| t.updateURI = d | |
| }, | |
| 640: function(e, t) { | |
| "use strict"; | |
| function n(e, t) { | |
| if (e === t) | |
| return !0; | |
| if (!e || !t) | |
| return !1; | |
| if ("object" != typeof e || "object" != typeof t) | |
| return !1; | |
| var n; | |
| for (n in e) | |
| if (e.hasOwnProperty(n) && (!t.hasOwnProperty(n) || e[n] !== t[n])) | |
| return !1; | |
| for (n in t) | |
| if (t.hasOwnProperty(n) && !e.hasOwnProperty(n)) | |
| return !1; | |
| return !0 | |
| } | |
| e.exports = n | |
| }, | |
| 641: function(e, t, n) { | |
| var i; | |
| i = function() { | |
| "use strict"; | |
| var e = function(e, t) { | |
| var n = document.createEvent("HTMLEvents"); | |
| n.initEvent(t, !0, !0), | |
| e.dispatchEvent(n) | |
| } | |
| ; | |
| return e | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 642: function(e, t, n) { | |
| "use strict"; | |
| function i() { | |
| return l.v4() | |
| } | |
| function s() { | |
| return u.get("uuid") | |
| } | |
| function r() { | |
| return c ? window.localStorage.getItem("uuid") : null | |
| } | |
| function a(e) { | |
| return c && window.localStorage.setItem("uuid", e), | |
| u.set("uuid", e, { | |
| domain: ".blendle.com" | |
| }), | |
| e | |
| } | |
| function o() { | |
| var e = r() | |
| , t = s(); | |
| return a(e && t ? e : e || t ? e || t : i()) | |
| } | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(450) | |
| , u = n(52) | |
| , c = window.BrowserDetect.localStorageEnabled(); | |
| t["default"] = o, | |
| e.exports = t["default"] | |
| }, | |
| 645: function(e, t, n) { | |
| "use strict"; | |
| var i = n(93)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(348) | |
| , a = s(r) | |
| , o = n(358) | |
| , l = s(o) | |
| , u = n(497) | |
| , c = new a["default"]("//platform.twitter.com/widgets.js",{ | |
| libVar: "twttr" | |
| }); | |
| i(c, { | |
| shareUrl: "https://twitter.com/intent/tweet?url=%s&text=%s", | |
| openTweet: function(e, t) { | |
| var n = (0, | |
| u.sprintf)(this.shareUrl, encodeURIComponent(e), encodeURIComponent(t)); | |
| (0, | |
| l["default"])({ | |
| src: n, | |
| name: "intent", | |
| width: 550, | |
| height: 420 | |
| }) | |
| } | |
| }), | |
| t["default"] = c, | |
| e.exports = t["default"] | |
| }, | |
| 657: function(e, t, n) { | |
| "use strict"; | |
| n(874), | |
| n(659), | |
| n(658) | |
| }, | |
| 658: function(e, t) { | |
| "use strict"; | |
| var n = document.createElement("_"); | |
| if (n.classList.add("c1", "c2"), | |
| !n.classList.contains("c2")) { | |
| var i = function(e) { | |
| var t = DOMTokenList.prototype[e]; | |
| DOMTokenList.prototype[e] = function(e) { | |
| for (var n = 0; n < arguments.length; n++) | |
| e = arguments[n], | |
| t.call(this, e) | |
| } | |
| } | |
| ; | |
| i("add"), | |
| i("remove") | |
| } | |
| n.classList.toggle("c3", !1), | |
| n.classList.contains("c3") && !function() { | |
| var e = DOMTokenList.prototype.toggle; | |
| DOMTokenList.prototype.toggle = function(t, n) { | |
| return 1 in arguments && !this.contains(t) == !n ? n : e.call(this, t) | |
| } | |
| }(), | |
| n = null | |
| }, | |
| 659: function(e, t) { | |
| "use strict"; | |
| !function(e) { | |
| if (!e.requestAnimationFrame) { | |
| if (e.webkitRequestAnimationFrame) | |
| return e.requestAnimationFrame = e.webkitRequestAnimationFrame, | |
| void (e.cancelAnimationFrame = e.webkitCancelAnimationFrame || e.webkitCancelRequestAnimationFrame); | |
| var t = 0; | |
| e.requestAnimationFrame = function(n) { | |
| var i = (new Date).getTime() | |
| , s = Math.max(0, 16 - (i - t)) | |
| , r = e.setTimeout(function() { | |
| n(i + s) | |
| }, s); | |
| return t = i + s, | |
| r | |
| } | |
| , | |
| e.cancelAnimationFrame = function(e) { | |
| clearTimeout(e) | |
| } | |
| } | |
| }(window) | |
| }, | |
| 660: function(e, t, n) { | |
| "use strict"; | |
| var i = n(5) | |
| , s = n(4) | |
| , r = n(25) | |
| , a = n(16) | |
| , o = n(221) | |
| , l = n(30) | |
| , u = { | |
| _issues: new o(null ,{ | |
| track: !0 | |
| }), | |
| getRecommended: function(e) { | |
| return new o(null ,{ | |
| url: a.getLink("recommended_issues", { | |
| user_id: e.id | |
| }) | |
| }) | |
| }, | |
| fetchIssues: function(e) { | |
| var t = u._issues; | |
| return t.reset(), | |
| s.ajax({ | |
| url: a.get("publications").get("links").popular.href | |
| }).then(function(n) { | |
| return t.add(n.data, { | |
| parse: !0 | |
| }), | |
| i.isArray(e) ? r.resolve(i.reduce(e, function(e, n) { | |
| return e[n] = u._parseTag(t, n), | |
| e | |
| }, {})) : r.resolve(u._parseTag(t, e)) | |
| }) | |
| }, | |
| getIssues: function(e) { | |
| var t = u._issues; | |
| return t.length ? r.resolve(u._parseTag(t, e)) : u.fetchIssues(e) | |
| }, | |
| getIssuesByLatLng: function(e, t, n) { | |
| var i = { | |
| amount: n, | |
| latitude: e, | |
| longitude: t | |
| }; | |
| return s.ajax({ | |
| url: a.getLink("nearby_issues", i, ["issue-manifest"]), | |
| accept: "application/hal+json" | |
| }).then(function(e) { | |
| var t = new o(e.data._embedded["b:issues"]); | |
| return r.resolve(t) | |
| }) | |
| }, | |
| _parseTag: function(e, t) { | |
| return t ? u._filterTag(e, t) : e | |
| }, | |
| _filterTag: function(e, t) { | |
| return e.filter(function(e) { | |
| return i.find(l.models, function(n) { | |
| return e.get("provider").id === n.id && n.get("tags") && i.findWhere(n.get("tags"), { | |
| name: t | |
| }) | |
| }) | |
| }) | |
| } | |
| }; | |
| e.exports = u | |
| }, | |
| 661: function(e, t, n) { | |
| "use strict"; | |
| var i = n(21)["default"] | |
| , s = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var r = n(4) | |
| , a = s(r) | |
| , o = n(5929) | |
| , l = s(o); | |
| t["default"] = { | |
| getSupported: function() { | |
| return a["default"].ajax({ | |
| url: l["default"].i18n + "?" + Date.now() | |
| }).then(function(e) { | |
| return i({ | |
| countryHeader: e.headers["x-country"] | |
| }, e.data) | |
| }) | |
| } | |
| }, | |
| e.exports = t["default"] | |
| }, | |
| 662: function(e, t, n) { | |
| "use strict"; | |
| var i = n(4) | |
| , s = (n(5), | |
| n(25)) | |
| , r = n(16) | |
| , a = { | |
| getCurrentLocation: function() { | |
| return i.ajax({ | |
| url: r.getLink("current_location"), | |
| accept: "*/*", | |
| beforeSend: function(e, t) { | |
| t.headers = {} | |
| } | |
| }).then(function(e) { | |
| return s.resolve(e.data) | |
| }) | |
| }, | |
| suggestLocations: function(e) { | |
| return i.ajax({ | |
| url: r.getLink("search_locations", { | |
| name: e | |
| }), | |
| accept: "application/hal+json" | |
| }).then(function(e) { | |
| return s.resolve(e.data._embedded["b:locations"]) | |
| }) | |
| } | |
| }; | |
| e.exports = a | |
| }, | |
| 664: function(e, t, n) { | |
| "use strict"; | |
| function i(e) { | |
| var t = c["default"].getLink("latest_issue", { | |
| provider_id: e.id | |
| }) | |
| , n = new g["default"]; | |
| return n.fetch({ | |
| url: t | |
| }).then(function() { | |
| return n | |
| }) | |
| } | |
| function s(e, t) { | |
| var n = (0, | |
| b["default"])(t); | |
| return h["default"].getAll().filter(function(t) { | |
| if ("tst" === t.id || t.getCapability("disableIssue", !1)) | |
| return !1; | |
| var i = t.get("name").toLowerCase().includes(e.toLowerCase()) | |
| , s = n.includes(t.get("language")); | |
| return i && s | |
| }) | |
| } | |
| function r(e, t, n) { | |
| var r = s(e, t).splice(0, n); | |
| return o.all(r.map(i)) | |
| } | |
| function a(e, t, n) { | |
| var i = c["default"].getLink("search", { | |
| query: e | |
| }, ["b:tiles", "b:item", "b:pin", "b:acquisition", "b:issue-acquisition", "manifest", "b:search-context"]) | |
| , s = (0, | |
| b["default"])(t) | |
| , r = new p["default"](i); | |
| if (s.forEach(function(e) { | |
| r.addSearch({ | |
| "locales[]": e | |
| }) | |
| }), | |
| n) { | |
| var a = (0, | |
| S["default"])().startOf("day").unix(); | |
| r.addSearch({ | |
| min_age: a - (0, | |
| S["default"])(n.from).subtract(1, "days").unix(), | |
| max_age: a - n.to.unix() | |
| }) | |
| } | |
| var o = new y["default"]; | |
| return o.fetch({ | |
| url: r.toString(), | |
| accept: "application/hal+json" | |
| }).then(function() { | |
| return o | |
| }) | |
| } | |
| var o = n(24)["default"] | |
| , l = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }), | |
| t.fetchProvidersIssue = r, | |
| t.fetchItems = a; | |
| var u = n(16) | |
| , c = l(u) | |
| , d = n(43) | |
| , p = l(d) | |
| , f = n(30) | |
| , h = l(f) | |
| , m = n(90) | |
| , g = l(m) | |
| , v = n(170) | |
| , y = l(v) | |
| , _ = n(625) | |
| , b = l(_) | |
| , w = n(18) | |
| , S = l(w) | |
| }, | |
| 665: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(30) | |
| , o = i(a) | |
| , l = r["default"].Model.extend({ | |
| name: "pay_item", | |
| mappings: { | |
| "b:metadata": { | |
| resource: r["default"].Model | |
| } | |
| }, | |
| getParts: function() { | |
| var e = this.get("uid").split("-"); | |
| return { | |
| supplierUID: e[0], | |
| providerUID: e[1], | |
| datetime: e[2], | |
| custom: e[3] | |
| } | |
| }, | |
| getUrl: function() { | |
| var e = this.get("b:metadata"); | |
| return this.get("url") || (e ? e.get("url") : null ) | |
| }, | |
| getProvider: function() { | |
| return o["default"].getProvider(this.getParts().providerUID) | |
| } | |
| }); | |
| t["default"] = l, | |
| e.exports = t["default"] | |
| }, | |
| 666: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(16) | |
| , s = n(380) | |
| , r = n(12) | |
| , a = t.Model.extend({ | |
| name: "acquisition", | |
| autoRefundTimeout: 10, | |
| mappings: { | |
| "b:issue-acquisition": { | |
| resource: s | |
| } | |
| }, | |
| getSecondsSincePurchaseDate: function() { | |
| var e = this.get("purchaseDate"); | |
| return e ? ((new Date).getTime() - e.getTime()) / 1e3 : void 0 | |
| }, | |
| isEligibleForRefund: function() { | |
| var e = this.getSecondsSincePurchaseDate(); | |
| return this.get("refundable") && this.get("acquired") && e && e < this.autoRefundTimeout && !this.get("subscription") && !this.getEmbedded("b:issue-acquisition").get("acquired") | |
| }, | |
| parse: function(e) { | |
| return e._links || (e._links = {}), | |
| e._links["b:issue-acquisition"] || (e._links["b:issue-acquisition"] = { | |
| href: i.getLink("issue_acquisition", { | |
| issue_id: e._embedded.manifest.issue.id, | |
| user_context: r.getId() | |
| }) | |
| }), | |
| this.parseHal(e) | |
| } | |
| }); | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 667: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(38) | |
| , o = i(a) | |
| , l = n(16) | |
| , u = i(l) | |
| , c = n(5) | |
| , d = i(c) | |
| , p = r["default"].Model.extend({ | |
| defaults: { | |
| code: null , | |
| used: !0 | |
| }, | |
| required: { | |
| code: !0 | |
| }, | |
| idAttribute: "code", | |
| initialize: function() { | |
| this.urlTemplate = u["default"].get("links").signup_code.href | |
| }, | |
| sync: function(e, t) { | |
| return t.url = this.urlTemplate.replace("{code}", t.id), | |
| r["default"].Model.prototype.sync.apply(this, arguments) | |
| }, | |
| exportForSignUp: function(e) { | |
| return d["default"].merge(e.toJSON(), { | |
| signup_code: this.id, | |
| country: o["default"].getCountryCode() | |
| }) | |
| } | |
| }); | |
| t["default"] = p, | |
| e.exports = t["default"] | |
| }, | |
| 668: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = n(12) | |
| , a = i(r) | |
| , o = n(16) | |
| , l = i(o) | |
| , u = s.Model.extend({ | |
| defaults: { | |
| body: null | |
| }, | |
| required: { | |
| body: !0 | |
| }, | |
| expressions: { | |
| body: /..*/ | |
| }, | |
| initialize: function() { | |
| this.url = l["default"].get("links").feedback.href | |
| }, | |
| toJSON: function() { | |
| return { | |
| type: "contact-form", | |
| body: this.get("body"), | |
| user_agent: navigator.userAgent, | |
| email: a["default"].getUser() ? a["default"].getUser().get("email") : !1 | |
| } | |
| } | |
| }); | |
| t["default"] = u, | |
| e.exports = t["default"] | |
| }, | |
| 669: function(e, t, n) { | |
| var i, s = n(21)["default"]; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(5) | |
| , r = n(347) | |
| , a = n(44) | |
| , o = n(229) | |
| , l = t.Model.extend({ | |
| name: "subitem" | |
| }) | |
| , u = t.Model.extend({ | |
| name: "content", | |
| mappings: { | |
| items: { | |
| resource: function(e, t) { | |
| return e && a.subItems ? e.map(function(e) { | |
| return new l(e,t) | |
| }) : [] | |
| } | |
| } | |
| }, | |
| get: function(e) { | |
| if ("images" === e) { | |
| var n = this.get("provider"); | |
| if (n && n.id) { | |
| var i = o(n); | |
| if (i.disableImages) | |
| return [] | |
| } | |
| } | |
| return t.Model.prototype.get.apply(this, arguments) | |
| }, | |
| parse: function(e) { | |
| if (e._embedded && e._embedded.content) { | |
| var t = e._embedded.content; | |
| e = s({}, t) | |
| } | |
| return r.allowImages(e.date, e.id, e.provider.id) || (e.images && (e.images = []), | |
| i.has(e, "_embedded.content.images") && (e._embedded.content.images = []), | |
| i.has(e, "_links.content_images") && (e._links.content_images = [])), | |
| "telegraaf" === e.provider.id && (e.body = i.map(e.body, function(e) { | |
| return "hl1" === e.type ? { | |
| type: e.type, | |
| content: "<b>" + e.content + "</b>" | |
| } : e | |
| })), | |
| this.parseHal(e) | |
| } | |
| }); | |
| return u | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 670: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(67) | |
| , s = n(121) | |
| , r = n(377) | |
| , a = n(144) | |
| , o = n(91) | |
| , l = t.Model.extend({ | |
| name: "notification", | |
| mappings: { | |
| user: { | |
| resource: i | |
| }, | |
| item: { | |
| resource: o | |
| }, | |
| manifest: { | |
| resource: a | |
| }, | |
| post: { | |
| resource: s | |
| }, | |
| alert: { | |
| resource: r | |
| } | |
| } | |
| }); | |
| return l | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 671: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(376) | |
| , s = t.Model.extend({ | |
| mappings: { | |
| "item-tracker": { | |
| resource: i, | |
| track: !0 | |
| } | |
| }, | |
| constructor: function(e, n) { | |
| return n.track = !1, | |
| t.Model.call(this, e, n) | |
| }, | |
| parse: function(e) { | |
| return e._embedded || (e._embedded = {}), | |
| e._embedded["item-tracker"] = { | |
| id: e.id | |
| }, | |
| this.parseHal(e) | |
| } | |
| }) | |
| , r = t.Collection.extend({ | |
| model: s, | |
| parse: function(e) { | |
| return e | |
| } | |
| }) | |
| , a = t.Model.extend({ | |
| name: "page", | |
| defaults: { | |
| date: new Date, | |
| text: "", | |
| active: !1 | |
| }, | |
| mappings: { | |
| items: { | |
| resource: r, | |
| track: !1 | |
| } | |
| }, | |
| parse: function(e) { | |
| return e._embedded || (e._embedded = {}), | |
| e._embedded.items = e.items, | |
| delete e.items, | |
| this.parseHal(e) | |
| }, | |
| getPageWidth: function() { | |
| return this.getLinkAttribute("preview", "width") | |
| }, | |
| getPageHeight: function() { | |
| return this.getLinkAttribute("preview", "height") | |
| } | |
| }); | |
| return a | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 673: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Model.extend({ | |
| defaults: { | |
| reason: "", | |
| message: "" | |
| }, | |
| required: { | |
| reason: !0, | |
| message: !1 | |
| }, | |
| reasons: ["printed", "copied", "accident", "price_high", "accident", "price_high", "article_short", "article_long", "article_quality", "article_legability", "other"], | |
| expressions: { | |
| message: /^.{1,255}$/m | |
| }, | |
| createExpression: function() { | |
| var e = "^"; | |
| for (var t in this.reasons) | |
| e += this.reasons[t], | |
| t < this.reasons.length - 1 && (e += "|"); | |
| e += "$", | |
| this.expressions.reason = new RegExp(e) | |
| }, | |
| initialize: function() { | |
| this.createExpression() | |
| } | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 674: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Model.extend({}); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 675: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.Model.extend({ | |
| required: { | |
| provider: !0, | |
| username: !0, | |
| password: !0 | |
| }, | |
| expressions: { | |
| provider: /^.+$/, | |
| password: /^.+$/, | |
| username: /^.+$/ | |
| }, | |
| toJSON: function() { | |
| var e = { | |
| provider: this.get("provider"), | |
| username: this.get("username"), | |
| password: this.get("password") | |
| }; | |
| return e | |
| }, | |
| parse: function(e) { | |
| var t = e._embedded.provider; | |
| return t.valid = e.valid, | |
| t | |
| } | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 676: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(121) | |
| , s = n(91) | |
| , r = n(538) | |
| , a = n(317) | |
| , i = n(121) | |
| , o = t.Model.extend({ | |
| name: "tile", | |
| mappings: { | |
| "b:item": { | |
| resource: s, | |
| track: !0 | |
| }, | |
| "b:posts": { | |
| resource: r | |
| }, | |
| "b:relevant-posts": { | |
| resource: a | |
| }, | |
| "b:requested-user-post": { | |
| resource: i | |
| }, | |
| "b:popular-post": { | |
| resource: i | |
| }, | |
| "b:recent-post": { | |
| resource: i | |
| } | |
| } | |
| }); | |
| return o | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 677: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(91) | |
| , s = n(90) | |
| , r = n(144) | |
| , a = n(665) | |
| , o = t.Model.extend({ | |
| name: "transaction", | |
| mappings: { | |
| item: { | |
| resource: i | |
| }, | |
| issue: { | |
| resource: s | |
| }, | |
| manifest: { | |
| resource: r | |
| }, | |
| pay_item: { | |
| resource: a | |
| } | |
| }, | |
| parse: function(e) { | |
| return e._embedded && (e._embedded.refunded_transaction && e._embedded.refunded_transaction._embedded.item && (e._embedded.manifest = e._embedded.refunded_transaction._embedded.item._embedded.manifest), | |
| e._embedded.refunded_transaction && e._embedded.refunded_transaction._embedded.pay_item && (e._embedded.pay_item = e._embedded.refunded_transaction._embedded.pay_item), | |
| e._embedded.item && e._embedded.item._embedded.manifest && (e._embedded.manifest = e._embedded.item._embedded.manifest), | |
| e._embedded.issue && (e._embedded.issue = e._embedded.issue._embedded.issue)), | |
| this.parseHal(e) | |
| } | |
| }); | |
| return o | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 678: function(e, t, n) { | |
| "use strict"; | |
| var i = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var s = n(4) | |
| , r = i(s) | |
| , a = n(682) | |
| , o = i(a) | |
| , l = n(683) | |
| , u = i(l) | |
| , c = n(382) | |
| , d = i(c) | |
| , p = n(381) | |
| , f = i(p) | |
| , h = n(13) | |
| , m = i(h) | |
| , g = n(2) | |
| , v = i(g) | |
| , y = n(681) | |
| , _ = i(y) | |
| , b = r["default"].ModuleController.extend({ | |
| initialize: function(e) { | |
| this.setRootView(new o["default"]({ | |
| main: e.area | |
| })), | |
| this.addView(new u["default"], "sidebar") | |
| }, | |
| openAbout: function() { | |
| return this.addView(new r["default"].ReactView({ | |
| renderComponent: function() { | |
| return v["default"].createElement(_["default"], null ) | |
| } | |
| }), "pane"), | |
| this.getView("sidebar").setCurrent("blendle"), | |
| m["default"].track("View About/Contact"), | |
| this.getRootView().renderAndDisplay() | |
| }, | |
| openTermsAndConditions: function() { | |
| return this.addView(new d["default"], "pane"), | |
| this.getView("sidebar").setCurrent("termsandconditions"), | |
| m["default"].track("View About/Terms and Conditions"), | |
| this.getRootView().renderAndDisplay() | |
| }, | |
| openPrivacyStatement: function() { | |
| return this.addView(new f["default"], "pane"), | |
| this.getView("sidebar").setCurrent("privacy"), | |
| m["default"].track("View About/Privacy Statement"), | |
| this.getRootView().renderAndDisplay() | |
| } | |
| }); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 679: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(678) | |
| , s = n(680) | |
| , r = t.Module.extend({ | |
| name: "about", | |
| prefix: "", | |
| type: "dialogue", | |
| initialize: function() { | |
| this.setRouter(new s({ | |
| module: this | |
| })) | |
| }, | |
| openAbout: function() { | |
| this.setController(new i({ | |
| module: this, | |
| area: this.getArea() | |
| })), | |
| this.getController().openAbout(), | |
| this.load() | |
| }, | |
| openTermsAndConditions: function() { | |
| this.setController(new i({ | |
| module: this, | |
| area: this.getArea() | |
| })), | |
| this.getController().openTermsAndConditions(), | |
| this.load() | |
| }, | |
| openPrivacyStatement: function() { | |
| this.setController(new i({ | |
| module: this, | |
| area: this.getArea() | |
| })), | |
| this.getController().openPrivacyStatement(), | |
| this.load() | |
| } | |
| }); | |
| return new r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 680: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = t.ModuleRouter.extend({ | |
| initialize: function() { | |
| this.route("about", this.routeRoot), | |
| this.route("about/blendle", this.routeRoot), | |
| this.route("about/termsandconditions", this.routeTermsAndConditions), | |
| this.route("about/privacy", this.routePrivacyStatement), | |
| this.route("contact", this.routeRoot) | |
| }, | |
| routeRoot: function() { | |
| this._module.openAbout() | |
| }, | |
| routeTermsAndConditions: function() { | |
| this._module.openTermsAndConditions() | |
| }, | |
| routePrivacyStatement: function() { | |
| this._module.openPrivacyStatement() | |
| } | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 681: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(3) | |
| , d = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "pane contact l-text" | |
| }, u["default"].createElement("h1", { | |
| className: "title" | |
| }, (0, | |
| c.translate)("about.about.navigation")), u["default"].createElement("p", null , (0, | |
| c.translate)("app.text.about_blendle"), " ", u["default"].createElement("br", null ), u["default"].createElement("br", null ), (0, | |
| c.translateElement)("about.impressum", !1), u["default"].createElement("br", null ), (0, | |
| c.translate)("about.managing_directors"))) | |
| } | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = d, | |
| e.exports = t["default"] | |
| }, | |
| 682: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(185) | |
| , i = t.extend({ | |
| className: "white-close v-about" | |
| }); | |
| return i | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 683: function(e, t, n) { | |
| var i; | |
| i = function(e) { | |
| "use strict"; | |
| var t = n(4) | |
| , i = n(3).locale | |
| , s = n(1061) | |
| , r = t.View.extend({ | |
| className: "sidebar left", | |
| setCurrent: function(e) { | |
| this.current = e; | |
| var t = this.el.querySelector(".current"); | |
| t && t.classList.remove("current"); | |
| var n = this.el.querySelector("." + e); | |
| n && n.classList.add("current") | |
| }, | |
| render: function() { | |
| return this.el.innerHTML = s({ | |
| prefix: this.getModule().getRouter().getPrefix(), | |
| user: this.options.model, | |
| current: this.current, | |
| i18n: i | |
| }), | |
| this.display(), | |
| this | |
| } | |
| }); | |
| return r | |
| } | |
| .call(t, n, t, e), | |
| !(void 0 !== i && (e.exports = i)) | |
| }, | |
| 684: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(15) | |
| , d = o(c) | |
| , p = n(46) | |
| , f = (o(p), | |
| n(228)) | |
| , h = o(f) | |
| , m = n(111) | |
| , g = o(m) | |
| , v = n(3) | |
| , y = n(667) | |
| , _ = o(y) | |
| , b = n(20) | |
| , w = o(b) | |
| , S = n(4) | |
| , k = n(47) | |
| , E = o(k) | |
| , C = n(17) | |
| , T = o(C) | |
| , P = n(11) | |
| , N = o(P) | |
| , x = n(175) | |
| , R = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| formState: {}, | |
| checkingFromUrl: !1 | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| var e = (0, | |
| N["default"])("access-page", { | |
| hidden: this.state.checkingFromUrl | |
| }); | |
| return u["default"].createElement("div", { | |
| className: e | |
| }, u["default"].createElement("div", { | |
| className: "v-primary-navigation" | |
| }, u["default"].createElement(g["default"], null ), u["default"].createElement("div", { | |
| className: "access-login" | |
| }, u["default"].createElement(h["default"], { | |
| mobile: T["default"].isMobile() | |
| }))), u["default"].createElement("div", { | |
| className: "background" | |
| }, u["default"].createElement("div", { | |
| className: "content-container" | |
| }, u["default"].createElement("h1", null , v.locale.accesspage.header), u["default"].createElement("h2", null , v.locale.accesspage.subheader), u["default"].createElement("form", { | |
| method: "GET", | |
| className: "frm frm-access", | |
| onSubmit: this._onSubmit.bind(this) | |
| }, u["default"].createElement("p", { | |
| dangerouslySetInnerHTML: { | |
| __html: v.locale.accesspage.form.title | |
| } | |
| }), u["default"].createElement("div", { | |
| className: "input-wrapper" | |
| }, u["default"].createElement("input", { | |
| autoCorrect: "off", | |
| autoComplete: "off", | |
| className: "inp inp-text inp-accesskey", | |
| maxLength: "6", | |
| placeholder: v.locale.accesspage.form.placeholder, | |
| ref: "code", | |
| name: "code", | |
| onChange: this._onChange.bind(this) | |
| }), this._renderError(), u["default"].createElement(w["default"], { | |
| className: "btn-unlock btn-green", | |
| loading: "loading" === this.state.formState.type | |
| }, u["default"].createElement("span", { | |
| className: "icon-unlock" | |
| }), v.locale.accesspage.form.button))))), u["default"].createElement("p", { | |
| className: "lnk-invite", | |
| dangerouslySetInnerHTML: { | |
| __html: v.locale.accesspage.noinvite | |
| } | |
| })) | |
| } | |
| }, { | |
| key: "componentDidMount", | |
| value: function() { | |
| this.props.code && (d["default"].findDOMNode(this.refs.code).value = this.props.code) | |
| } | |
| }, { | |
| key: "_renderError", | |
| value: function() { | |
| return "error" === this.state.formState.type ? u["default"].createElement("p", { | |
| className: "error-message" | |
| }, this.state.formState.message) : void 0 | |
| } | |
| }, { | |
| key: "_onChange", | |
| value: function() { | |
| var e = d["default"].findDOMNode(this.refs.code).value; | |
| this.setState({ | |
| formState: {} | |
| }), | |
| d["default"].findDOMNode(this.refs.code).value = e | |
| } | |
| }, { | |
| key: "_checkCode", | |
| value: function(e) { | |
| var t = this; | |
| if ("" === e) | |
| return void this.setState({ | |
| formState: { | |
| type: "error", | |
| message: v.locale.app.error.default_form_field_required | |
| } | |
| }); | |
| this.setState({ | |
| formState: { | |
| type: "loading" | |
| } | |
| }); | |
| var n = new _["default"]; | |
| n.set("code", e), | |
| n.fetch().then(function() { | |
| n.get("used") ? t.setState({ | |
| formState: { | |
| type: "error", | |
| message: v.locale.accesspage.form.error | |
| }, | |
| checkingFromUrl: !1 | |
| }) : ((0, | |
| x.setAccessCookie)(), | |
| E["default"].set("signUpCode", n), | |
| S.history.navigate("signup/kiosk", { | |
| trigger: !0 | |
| })) | |
| }, function() { | |
| t.setState({ | |
| formState: { | |
| type: "error", | |
| message: v.locale.accesspage.form.error | |
| }, | |
| checkingFromUrl: !1 | |
| }) | |
| }) | |
| } | |
| }, { | |
| key: "_onSubmit", | |
| value: function(e) { | |
| e.preventDefault(); | |
| var t = d["default"].findDOMNode(this.refs.code).value.trim(); | |
| this._checkCode(t) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| code: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = R, | |
| e.exports = t["default"] | |
| }, | |
| 685: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(4) | |
| , u = n(2) | |
| , c = o(u) | |
| , d = n(684) | |
| , p = o(d) | |
| , f = n(12) | |
| , h = o(f) | |
| , m = n(38) | |
| , g = o(m) | |
| , v = n(44) | |
| , y = o(v) | |
| , _ = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).call(this), | |
| this.name = "access", | |
| this.type = "dialogue", | |
| this.setupModuleRouter(), | |
| window.location.href.includes(this.name) && !y["default"].showBetaAsReleased && g["default"].setCountryCode("US") | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "requireAuth", | |
| value: function() { | |
| return !h["default"].requireSignup() | |
| } | |
| }, { | |
| key: "getModuleRoutes", | |
| value: function() { | |
| return { | |
| "": this.openAccess.bind(this), | |
| ":code": this.openAccess.bind(this) | |
| } | |
| } | |
| }, { | |
| key: "openAccess", | |
| value: function(e) { | |
| this.load(), | |
| this.render(c["default"].createElement(p["default"], { | |
| code: e | |
| })) | |
| } | |
| }]), | |
| t | |
| }(l.ReactModule); | |
| t["default"] = new _, | |
| e.exports = t["default"] | |
| }, | |
| 686: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(37) | |
| , d = o(c) | |
| , p = n(12) | |
| , f = o(p) | |
| , h = n(8) | |
| , m = n(692) | |
| , g = o(m) | |
| , v = n(311) | |
| , y = o(v) | |
| , _ = n(830) | |
| , b = o(_) | |
| , w = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "componentDidMount", | |
| value: function() { | |
| y["default"].fetchAlerts(f["default"].getUser().id, this.props.query, this.props.showAddAlert) | |
| } | |
| }, { | |
| key: "componentWillReceiveProps", | |
| value: function(e) { | |
| e.query !== this.props.query && y["default"].fetchAlerts(f["default"].getUser().id, e.query) | |
| } | |
| }, { | |
| key: "_onAddAlert", | |
| value: function(e) { | |
| y["default"].addAlert(f["default"].getUser().id, e) | |
| } | |
| }, { | |
| key: "_onDeleteAlert", | |
| value: function() { | |
| var e = b["default"].getState().alert; | |
| y["default"].deleteAlert(e) | |
| } | |
| }, { | |
| key: "_onEditAlert", | |
| value: function(e) { | |
| var t = b["default"].getState().alert; | |
| y["default"].editAlert(t, e) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| var e = this; | |
| return u["default"].createElement(d["default"], { | |
| stores: { | |
| AlertsStore: b["default"] | |
| }, | |
| render: function(t) { | |
| return u["default"].createElement(g["default"], { | |
| showAddAlert: !!e.props.showAddAlert, | |
| showManager: !!e.props.query, | |
| query: e.props.query, | |
| searchQuery: t.AlertsStore.searchQuery, | |
| alertsStore: t.AlertsStore, | |
| onSetSearchQuery: y["default"].setSearchQuery, | |
| onAddAlert: e._onAddAlert, | |
| onClickDelete: e._onDeleteAlert.bind(e), | |
| onClickEdit: e._onEditAlert.bind(e), | |
| onShowResults: y["default"].fetchResults, | |
| onNearEnd: y["default"].fetchNextResults, | |
| loading: [t.AlertsStore.alertsStatus, t.AlertsStore.resultsStatus].includes(h.STATUS_PENDING) | |
| }) | |
| } | |
| }) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| query: u["default"].PropTypes.string, | |
| showAddAlert: u["default"].PropTypes.bool | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = w, | |
| e.exports = t["default"] | |
| }, | |
| 687: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(33) | |
| , d = o(c) | |
| , p = n(3) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_renderMessage", | |
| value: function() { | |
| switch (this.props.error.status) { | |
| case 422: | |
| return (0, | |
| p.translateElement)(u["default"].createElement("p", null ), "alerts.errors.double", [this.props.query], !1); | |
| case 409: | |
| return (0, | |
| p.translateElement)(u["default"].createElement("p", null ), "alerts.errors.limit"); | |
| default: | |
| return (0, | |
| p.translateElement)(u["default"].createElement("p", null ), "alerts.errors.failed_adding_alert") | |
| } | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(d["default"], null , (0, | |
| p.translateElement)(u["default"].createElement("h2", null ), "app.error.title"), this._renderMessage()) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| error: u["default"].PropTypes.object.isRequired, | |
| query: u["default"].PropTypes.string.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 688: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(15) | |
| , d = o(c) | |
| , p = n(78) | |
| , f = o(p) | |
| , h = n(20) | |
| , m = o(h) | |
| , g = n(687) | |
| , v = o(g) | |
| , y = n(8) | |
| , _ = n(3) | |
| , b = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onClickExampleAlert", | |
| value: function(e) { | |
| if (e.target.classList.contains("clickable")) { | |
| var t = e.target.innerText | |
| , n = d["default"].findDOMNode(this.refs.input); | |
| n.value = t, | |
| this.props.onClickExampleAlert(t) | |
| } | |
| } | |
| }, { | |
| key: "_renderError", | |
| value: function() { | |
| if (this.props.status !== y.STATUS_ERROR) | |
| return null ; | |
| var e = d["default"].findDOMNode(this.refs.input); | |
| return u["default"].createElement(v["default"], { | |
| error: this.props.error, | |
| query: e.value | |
| }) | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "v-tile v-alert-settings first tile-explain l-transparent l-edit s-success" | |
| }, u["default"].createElement("div", { | |
| className: "explanation" | |
| }, (0, | |
| _.translateElement)(u["default"].createElement("h2", null ), "alerts.text.explanation", !1), (0, | |
| _.translateElement)(u["default"].createElement("p", { | |
| className: "small-bottom-margin", | |
| onClick: this._onClickExampleAlert.bind(this) | |
| }), "alerts.text.example", !1)), u["default"].createElement("form", { | |
| className: "edit", | |
| name: "alert", | |
| onSubmit: this.props.onClickShowResults | |
| }, u["default"].createElement(f["default"], { | |
| ref: "input", | |
| name: "query", | |
| className: "inp inp-text inp-keyword", | |
| placeholder: (0, | |
| _.translate)("alerts.text.enter_keyword"), | |
| onChange: this.props.onChangeQuery, | |
| autoFocus: !0 | |
| }), u["default"].createElement(m["default"], { | |
| className: "btn-text btn-try", | |
| onClick: this.props.onClickShowResults | |
| }, (0, | |
| _.translate)("alerts.buttons.show")), u["default"].createElement(m["default"], { | |
| className: "btn-text btn-add", | |
| onClick: this.props.onClickAdd | |
| }, (0, | |
| _.translate)("alerts.buttons.add"))), this._renderError()) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onClickExampleAlert: u["default"].PropTypes.func.isRequired, | |
| onClickAdd: u["default"].PropTypes.func.isRequired, | |
| onClickShowResults: u["default"].PropTypes.func.isRequired, | |
| status: u["default"].PropTypes.number, | |
| error: u["default"].PropTypes.bool | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = b, | |
| e.exports = t["default"] | |
| }, | |
| 689: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(33) | |
| , d = o(c) | |
| , p = n(3) | |
| , f = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement(d["default"], { | |
| className: "v-edit-alert-dialog", | |
| onClose: this.props.onClose | |
| }, u["default"].createElement("div", null , (0, | |
| p.translateElement)(u["default"].createElement("span", { | |
| className: "header-title" | |
| }), "alerts.title.mobile_edit", [this.props.alert.get("query")], !1)), u["default"].createElement("button", { | |
| className: "btn-delete", | |
| onClick: this.props.onClickDelete | |
| }), u["default"].createElement("div", { | |
| className: "row" | |
| }, u["default"].createElement("p", { | |
| className: "label" | |
| }, (0, | |
| p.translate)("alerts.label.keyword")), u["default"].createElement("p", { | |
| className: "keyword" | |
| }, this.props.alert.get("query")))) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onClose: u["default"].PropTypes.func.isRequired, | |
| onClickDelete: u["default"].PropTypes.func.isRequired, | |
| alert: u["default"].PropTypes.object.isRequired | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = f, | |
| e.exports = t["default"] | |
| }, | |
| 690: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(15) | |
| , d = o(c) | |
| , p = n(78) | |
| , f = o(p) | |
| , h = n(20) | |
| , m = o(h) | |
| , g = n(3) | |
| , v = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments), | |
| this.state = { | |
| showEdit: !1, | |
| query: this.props.query | |
| } | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_onClickShowEdit", | |
| value: function(e) { | |
| e.preventDefault(), | |
| this.setState({ | |
| showEdit: !this.state.showEdit | |
| }) | |
| } | |
| }, { | |
| key: "_onClickEdit", | |
| value: function() { | |
| var e = d["default"].findDOMNode(this.refs.query); | |
| this.props.onClickEdit({ | |
| query: e.value | |
| }) | |
| } | |
| }, { | |
| key: "_renderEdit", | |
| value: function() { | |
| var e = this; | |
| return this.state.showEdit ? u["default"].createElement("form", { | |
| className: "edit", | |
| name: "alert", | |
| onSubmit: this.props.onClickShowResults | |
| }, u["default"].createElement(f["default"], { | |
| ref: "query", | |
| name: "query", | |
| className: "inp inp-text inp-keyword", | |
| defaultValue: this.props.query, | |
| onChange: this.props.onChangeQuery, | |
| autoFocus: !0 | |
| }), u["default"].createElement(m["default"], { | |
| className: "btn-text btn-try", | |
| onClick: this.props.onClickShowResults | |
| }, (0, | |
| g.translate)("alerts.buttons.show")), u["default"].createElement(m["default"], { | |
| className: "btn-text btn-update", | |
| onClick: function() { | |
| return e._onClickEdit() | |
| } | |
| }, (0, | |
| g.translate)("alerts.buttons.edit")), u["default"].createElement("div", { | |
| className: "lnk lnk-delete", | |
| onClick: this.props.onClickDelete | |
| }, (0, | |
| g.translate)("alerts.buttons.delete"))) : null | |
| } | |
| }, { | |
| key: "render", | |
| value: function() { | |
| return u["default"].createElement("div", { | |
| className: "v-tile v-alert-settings l-transparent tile-explain s-success" | |
| }, u["default"].createElement("div", { | |
| className: "explanation" | |
| }, (0, | |
| g.translateElement)(u["default"].createElement("h2", null ), "alerts.tiles.settings.explanation", [this.props.query], !0)), u["default"].createElement("div", { | |
| className: "display" | |
| }, u["default"].createElement("a", { | |
| href: "#", | |
| className: "lnk lnk-edit", | |
| onClick: this._onClickShowEdit.bind(this) | |
| }, (0, | |
| g.translate)("alerts.links.edit"))), this._renderEdit()) | |
| } | |
| }], [{ | |
| key: "propTypes", | |
| value: { | |
| onClickEdit: u["default"].PropTypes.func.isRequired, | |
| onChangeQuery: u["default"].PropTypes.func.isRequired, | |
| onClickShowResults: u["default"].PropTypes.func.isRequired, | |
| onClickDelete: u["default"].PropTypes.func.isRequired, | |
| query: u["default"].PropTypes.string | |
| }, | |
| enumerable: !0 | |
| }]), | |
| t | |
| }(u["default"].Component); | |
| t["default"] = v, | |
| e.exports = t["default"] | |
| }, | |
| 691: function(e, t, n) { | |
| "use strict"; | |
| var i = n(9)["default"] | |
| , s = n(10)["default"] | |
| , r = n(7)["default"] | |
| , a = n(6)["default"] | |
| , o = n(1)["default"]; | |
| Object.defineProperty(t, "__esModule", { | |
| value: !0 | |
| }); | |
| var l = n(2) | |
| , u = o(l) | |
| , c = n(174) | |
| , d = o(c) | |
| , p = n(5) | |
| , f = n(3) | |
| , h = n(17) | |
| , m = function(e) { | |
| function t() { | |
| a(this, t), | |
| i(Object.getPrototypeOf(t.prototype), "constructor", this).apply(this, arguments) | |
| } | |
| return s(t, e), | |
| r(t, [{ | |
| key: "_renderMobileDetailNavigation", | |
| value: function(e) { | |
| var t = [{ | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment