six-favorites-widget
Version:
SIX Favorites Widget
1 lines • 8.82 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=function(){function a(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}}(),a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},r=require("react"),c=s(r),e=require("prop-types"),t=s(e),i=require("six-widget-support/lib/context-provider"),l=s(i),u=require("six-analysis-icon-widget/lib/analysis-icon"),d=require("six-widget-support");function s(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function p(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function f(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function m(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];if(t&&0<t.length)for(var a=0;a<t.length;a++)if(0===t[a]||t[a])return t[a]}function g(e,t){return t.fmtPc(t.evenRound(e,2))}function y(e,t){return t.formatPrice(e)}function x(e,t,n){switch(e){case"FOREX":return t.formatPrice4(n);case"INDEX":return t.formatPrice2(n);default:return y(n,t)}}function E(e,t){return t.abbrNbr(e)}function h(e,t){return t.fmtNbr(e)}function v(e,t){return t.formatTime(e)}function b(e){switch(e.type){case"FUTURE":case"FORWARD":case"OPTION":case"WARRANT":return e.name;default:return e.longName}}var C={listing:t.default.object.isRequired,context:t.default.object.isRequired};function N(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.changeDay},c.default.createElement("td",{className:"six-change-column six-display-priority-2"},c.default.createElement(d.ChangeDecorator,{value:a.changeDay},x(t.type,n,a.changeDay))))}function k(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.changePercentDay},c.default.createElement("td",{className:"six-change-percent-column"},c.default.createElement(d.ChangeDecorator,{value:a.changePercentDay},g(a.changePercentDay,n))))}function P(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{},r=m(a.lastPrice,a.lastValue,a.midPrice,a.midInterest);return c.default.createElement(d.Flash,{value:r},c.default.createElement("td",{className:"six-last-column"},x(t.type,n,r,n)))}function A(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.bidPrice},c.default.createElement("td",{className:"six-bid-column six-display-priority-2"},x(t.type,n,a.bidPrice)))}function T(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.askPrice},c.default.createElement("td",{className:"six-ask-column six-display-priority-2"},x(t.type,n,a.askPrice)))}function q(e){var t=e.listing,n=e.context.dateFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.lastUpdated,comparator:d.Flash.GENERIC_CHANGE_COMPARATOR},c.default.createElement("td",{className:"six-last-updated-column six-display-priority-2"},v(a.lastUpdated,n)))}function F(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.tradedAmount,comparator:d.Flash.GENERIC_CHANGE_COMPARATOR},c.default.createElement("td",{className:"six-traded-amount-column six-display-priority-3",title:h(a.tradedAmount,n)},E(a.tradedAmount,n)))}function R(e){var t=e.listing,n=e.context.numberFormatter,a=t.quotes||{};return c.default.createElement(d.Flash,{value:a.tradedVolume,comparator:d.Flash.GENERIC_CHANGE_COMPARATOR},c.default.createElement("td",{className:"six-traded-volume-column six-display-priority-3",title:h(a.tradedVolume,n)},E(a.tradedVolume,n)))}N.propTypes=C,k.propTypes=C,P.propTypes=C,A.propTypes=C,T.propTypes=C,q.propTypes=C,F.propTypes=C,R.propTypes=C,exports.default=function(t){return c.default.createElement(l.default.Consumer,null,function(e){return c.default.createElement(_,a({},t,{context:e}))})};var _=function(e){function t(){return o(this,t),p(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return f(t,r.Component),n(t,[{key:"shouldComponentUpdate",value:function(e,t){var n=this.props,a=e,r=this.state||{},i=t||{},l=a&&(this._lastUpdated!==(e.listing.quotes&&a.listing.quotes.lastUpdated)||n.isTriggered!==a.isTriggered||n.isActiveTrigger!==a.isActiveTrigger||n.onBuyButtonClick!==a.onBuyButtonClick||n.onSellButtonClick!==a.onSellButtonClick||n.onListingSelect!==a.onListingSelect||n.analysis!==a.analysis||n.onAlertClick!==a.onAlertClick||r.actionInProgress!==i.actionInProgress||n.context.locale!==a.context.locale);return e&&(this._lastUpdated=e.listing.quotes&&e.listing.quotes.lastUpdated),l}},{key:"render",value:function(){var t=this,n=this.props.listing,a=this.props.context,e=function(e){return a.translator.translate(e)},r=this.props.onListingClick&&this.props.onListingClick(n)||null,i=null;(this.props.onBuyButtonClick||this.props.onSellButtonClick)&&(i=c.default.createElement("td",{className:"six-buttons-column"},c.default.createElement(d.ClickEventDecorator,{listing:n,onClickHandler:this.props.onBuyButtonClick},c.default.createElement("button",{className:"six-button six-buy-button",title:e("Buy")},c.default.createElement("span",{className:"six-icon six-buy-icon"}),c.default.createElement("span",{className:"six-buy-text"},e("Buy")))),c.default.createElement(d.ClickEventDecorator,{listing:n,onClickHandler:this.props.onSellButtonClick},c.default.createElement("button",{className:"six-button six-sell-button",title:e("Sell")},c.default.createElement("span",{className:"six-icon six-sell-icon"}),c.default.createElement("span",{className:"six-sell-text"},e("Sell"))))));var l=null;this.props.analysis&&(l=c.default.createElement("td",{className:"six-analysis-column"},c.default.createElement(u.AnalysisIcon,{listing:n,analysis:this.props.analysis})));var s=this.props.isActiveTrigger?"six-active-trigger":"six-inactive-trigger";s+=this.props.isTriggered?" six-matched-trigger":"";var o="";return this.state&&this.state.actionInProgress&&(o="six-action-in-progress"),c.default.createElement("tr",{key:"1",onClick:function(){r&&r(n)},className:s+" "+o},i,c.default.createElement("td",{className:"six-name-column",title:n.longName},b(n)),l,c.default.createElement(P,{listing:n,context:a}),c.default.createElement(k,{listing:n,context:a}),c.default.createElement(N,{listing:n,context:a}),c.default.createElement(A,{listing:n,context:a}),c.default.createElement(T,{listing:n,context:a}),c.default.createElement(q,{listing:n,context:a}),c.default.createElement(F,{listing:n,context:a}),c.default.createElement(R,{listing:n,context:a}),c.default.createElement("td",{className:"six-currency-column six-display-priority-3"},n.currencyCode),c.default.createElement("td",{className:"six-mic-code-column six-display-priority-3"},n.micCode),c.default.createElement("td",{className:"six-admin-column"},c.default.createElement("button",{className:"six-button six-remove-button",onClick:function(e){return e.stopPropagation(),t.setState({actionInProgress:!0}),t.props.session._internal.managers.favorites.deleteListing(t.props.favoriteId,t.props.listing.id).then(function(){}).catch(function(){console.warn("Failed to delete favorite",t.props.favoriteId,t.props.listing.id),t.setState({actionInProgress:!1})})},title:e("Delete")},c.default.createElement("span",{className:"six-button-content"})),this.props.session._internal.managers&&this.props.session._internal.managers.alerts?c.default.createElement("button",{className:"six-button six-alert-button",onClick:function(e){e.stopPropagation(),t.props.onAlertClick&&t.props.onAlertClick(n)},title:e("Add alert")},c.default.createElement("span",{className:"six-button-content"})):null))}}]),t}();_.propTypes={listing:t.default.object.isRequired,context:t.default.object.isRequired,session:t.default.object.isRequired,favoriteId:t.default.string.isRequired,analysis:t.default.func,onListingClick:t.default.func,onAlertClick:t.default.func,onBuyButtonClick:t.default.func,onSellButtonClick:t.default.func,isActiveTrigger:t.default.bool,isTriggered:t.default.bool},_.defaultProps={analysis:void 0,onListingClick:void 0,onAlertClick:void 0,onBuyButtonClick:void 0,onSellButtonClick:void 0,isActiveTrigger:!1,isTriggered:!1};