{"version":3,"sources":["webpack:///./src/frontend/components/ads/dfp-ad-init-data-decorator.js","webpack:///./src/EbaySweden.TouchWeb/static/script/packages/react/messaging.js","webpack:///./src/frontend/components/ads/boot-takeover-ads.js","webpack:///./src/frontend/components/ads/boot-react-ads.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/message-box-ui.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/login-signup-events.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/with-ajax.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/abstract-modal.js","webpack:///./node_modules/flightjs/build/flight.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/navigation-modal.js","webpack:///./src/frontend/components/application-error-boundary/application-error-boundary.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/is-hybrid-app.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/modal-tooltip-ui.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/navigation-filter.js","webpack:///./src/frontend/components/ads/index.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/google-tagmanager.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/init-data.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/modal-ui.js","webpack:///./src/frontend/components/wait-for-consent-api-loaded/wait-for-consent-api-loaded.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/navigation.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/temp-data.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/loading.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/login.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/saved-search-monitor-toggler-ui.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/window-load.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/window-scroll.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/prevent-default.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/signup-referral-path-cookie-creator.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/triot-flight-bridge.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/boot/boot-layout.js","webpack:///./node_modules/spin/spin.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/member-info.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/ads/ad-slot-utilities.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/ui/layout/login-signup-analytics.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/breakpoints.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/disable-zoom.js","webpack:///./src/frontend/components/ads/localized-dfp-ad.jsx","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/window-resize.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/history.js","webpack:///./src/EbaySweden.TouchWeb/static/script/app/data/anti-forgery-token.js","webpack:///./src/EbaySweden.TouchWeb/static/script/utils/bubbled-focus.js"],"names":["DfpAdInitDataDecorator","React","Component","constructor","props","super","this","state","pageTargeting","initData","gptData","customTargetingParameters","adUnitPath","componentDidUpdate","prevProps","setState","render","Messaging","subscribe","bind","publish","namespace","Date","now","Math","random","events","callback","Array","isArray","map","event","push","$","document","on","console","warn","payload","trigger","teardown","me","off","initLeeadsDesktop","takeoverElement","children","length","innerHTML","window","ADTECH","config","page","protocol","server","network","siteid","params","loc","placements","sizeid","alias","target","enqueueAd","executeQueue","isTakeOverAllowedOnPage","getInitData","pageName","loadScript","src","resolve","reject","script","createElement","async","onload","onerror","body","appendChild","initTakeovers","a","GdprSettings","isMarketingEnabled","getElementById","clientWidth","max","documentElement","innerWidth","isBreakpointOrHigher","BREAKPOINTS","MD","loadReactElements","getElementsByTagName","forEach","element","hasAttribute","position","getAttribute","adFormats","deviceName","adOnlyOnPages","stickyEnabled","autoscale","stickyTop","stickyBottom","adContainerClass","refresh","featureSwitches","split","indexOf","isNaN","isLoggedIn","sizeMapping","createGptSizeMapping","mapDeviceNameToViewport","minViewportWidth","maxViewportWidth","ReactDOM","minWidth","maxWidth","undefined","slotTargeting","pos","autoscaleOffsetWidth","offsetWidth","messages","unmountComponentAtNode","e","logger","initReactElement","setAttribute","reactAdsLoader","component","defaultAttrs","closeSelector","contentSelector","close","$node","removeClass","showError","select","html","message","addClass","css","opacity","after","trackLoginSuccess","memberId","analytics","trackLoginFailure","validationError","LoginWithPasswordButtonComponent","_click","connect","data","inIframe","set","LOGIN","PASSWORD","TrackLoginSuccessComponent","TrackConnectSuccessComponent","TrackLoginFailureComponent","TrackConnectFailureComponent","WithAjax","_currentRequests","_callSuccessHandler","callbackOrEvent","_callErrorHandler","jqXHR","_createSuccessHandler","_userAborted","statusText","_createErrorHandler","noShowError","textStatus","errorThrown","responseJSON","responseStatus","code","attr","reload","_populateOptions","options","method","url","toLocalizedUrl","languageCodeIso2","dataType","requestId","type","traditional","success","error","timeout","cache","_jsonRequest","deferred","Deferred","removeFromCurrentRequests","antiForgeryToken","addToAjaxRequest","startTime","ajax","done","fail","endTime","_globalErrorHandler","always","abort","_get","_post","_getInitDataForScribe","InitData","getForScribe","_populateScribePayload","eventName","status","responseHeaders","getAllResponseHeaders","pageUrl","location","href","referrer","modalId","opts","closeModal","modalBackground","modalTemplate","_isActive","$modal","find","$modalHtml","triggerOpen","evt","evtData","_open","triggerClose","_close","triggerSetNonDismissible","_setNonDismissible","openModal","_cancelSpinner","_updateModal","_createModal","clearTimeout","cssClass","$modalContent","content","adjustModalPosition","_adjustModalPosition","nonDismissible","beforeShow","clone","getTime","chromeless","append","_resizeModalHeight","_fadeIn","_escButtonClose","height","which","_nonDismissible","_closeClick","_closePrevented","stopPropagation","setTimeout","_removeModal","remove","popupHeight","scroll","scrollTop","windowHeight","innerHeight","clientHeight","targetOffset","_preventClose","_enableClose","value","focus","blur","BubbledFocus","factory","modules","installedModules","__webpack_require__","moduleId","exports","module","id","loaded","call","m","c","p","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","advice","compose","debug","registry","utils","apply","around","base","wrapped","i","l","arguments","args","before","beforeFn","obj","fnName","afterFn","res","unbound","withAdvice","fn","trim","mutateProperty","withBase","withLogging","functionNameRegEx","ignoredMixin","teardownAll","componentInfo","findComponentInfo","Object","keys","instances","k","info","instance","attachTo","selector","Error","merge","each","node","isAttachedTo","initialize","prettyPrintMixins","mixedIn","prototype","mixin","name","toString","match","filter","Boolean","join","define","mixins","enabled","describe","newComponent","newPrototype","create","concat","defaults","attrDef","unshift","withRegistration","components","slice","reset","dontLock","setWritability","writable","key","propertyWritability","hasOwnProperty","traverse","util","searchTerm","path","prop","tests","log","search","expected","ALL","logFilter","eventNames","actions","saveLogFilter","localStorage","setItem","ignored","enable","getItem","thisProp","retrieveLogFilter","DEBUG","byName","byNameContains","byType","byValue","byValueCoerced","custom","logByAction","logByName","logAll","logNone","actionSymbols","action","eventArgs","eventType","elem","toRegExp","actionLoggable","nameLoggable","pop","expr","test","RegExp","replace","some","result","tagName","toLowerCase","className","elemToString","groupCollapsed","Function","toArray","groupEnd","parseEventArgs","end","matchEvent","b","ComponentInfo","attachedTo","addInstance","instanceInfo","InstanceInfo","identity","removeInstance","indexOfNode","splice","removeComponentInfo","addBind","removeBind","allInstances","inst","index","findInstanceInfo","getBoundEventNames","ev","findInstanceInfoByNode","thisInstanceInfo","componentOn","boundCallback","otherArgs","canWriteProtect","writeProtectSupported","propertyIsEnumerable","getOwnPropertyDescriptor","isDomObj","nodeType","from","len","arr","extend","extra","protect","getEnumerableProperty","funcs","uniqueArray","array","u","debounce","func","wait","immediate","context","later","callNow","throttle","throttling","more","whenDone","countThen","num","delegate","rules","parent","isPropagationStopped","closest","currentTarget","el","once","ran","defineProperty","op","componentId","checkSerializable","postMessage","warnAboutReferenceType","initAttributes","attrs","incomingKeys","definedKeys","initDeprecatedAttributes","proxyEventTo","targetEvent","$element","defaultFn","lastIndex","lastArg","defaultBehavior","Event","eventData","isDefaultPrevented","originalCb","origin","resolveDelegateRules","bound","boundFunctions","ruleInfo","r","attributeKey","attributes","Attributes","jquery","_postModal","_abortPendingRequests","_request","headers","reloadAfterModalClose","_reloadAfterModalClose","_showModal","_getModal","parseHtml","_reloadPage","ApplicationErrorBoundary","componentDidCatch","fallback","capture","onError","propTypes","defaultProps","IsHybridApp","AbstractModal","_triggerOpen","thisTop","thisLeft","thisLeftPosition","offset","_addBreakpointClass","_fitsToTheRight","top","outerHeight","left","outerWidth","_getLeftPosition","arrowPosition","windowWidth","modalWidth","elementWidth","bestCenter","maxLeft","breakpoints","getCurrent","_getFilterModal","forceStart","_refresh","replaceSelector","$newView","$currentView","setFromHtml","History","pushState","title","empty","contents","hitCallbackCalled","pushToDataLayer","dataLayer","gaEventTrackingSelector","gaShowEventTrackingSelector","_trackPageView","_trackEvent","analyticsData","eventCategory","category","eventAction","eventLabel","label","eventValue","eventNonInteractive","_isNonInteractive","hitCallback","userTriggered","_trackEventFromLink","link","theUserWantsToOpenTheLinkInANewTab","metaKey","ctrlKey","keyCode","shiftKey","preventDefault","stopImmediatePropagation","_changeLocation","_sendTrackEvent","_trackEventFromPjax","_hasCategoryOrLabel","_getPayloadFromLink","_trackShowEvent","$el","_trackSearchFilterToggle","expand","_trackCategoryMenuToggle","open","_userLoggedIn","version","loginState","_clearPageVariables","currentData","current","currentClone","description","initDataString","JSON","parse","parsed","val","currentOrSet","_loading","spinner","Spinner","width","radius","lines","color","wrap","spin","WaitForConsentApiLoaded","placeHolder","onLoadRender","useSelector","ads","isTcfLoaded","PropTypes","isRequired","pageContainer","navigate","fullPageReload","toLocalizedRiotUrl","doTeardown","_process","tempDataString","tempData","justLoggedIn","_justLoggedIn","justLoggedInV2","_justLoggedInV2","errorMessage","_errorMessage","memberInfo","currentSpinner","stop","delayInMilliseconds","timeoutId","forced","_spinner","start","_show","isVisible","xlarge","isHybridApp","_startDelay","_hide","_showLogin","destination","encodeURIComponent","pathname","idAttribute","savedSearchTogglerElement","savedSearchTogglerLabelElement","disabledClass","_onToggleChange","is","SearchId","SendMail","_monitoringCallback","sendMail","_clickOnCheckbox","hasClass","_clickOnLabel","input","click","_triggerLoad","readyState","timer","_onScroll","_preventDefaultClick","createSignupReferralPathCookie","expireDate","referralPath","setTime","cookieUtil","createCookie","evtNames","_teardownTriot","triot","bus","keepRootTag","_gaEvent","_navigate","Login","NavigationFilterData","NavigationData","GoogleTagManager","PreventDefault","ModalUI","ModalTooltipUI","MessageBoxUI","disableZoomIfAndroidChrome","WindowResize","TempData","Loading","NavigationModal","SavedSearchMonitorTogglerUI","WindowLoad","WindowScroll","SignupReferralPathCookieCreator","TriotFlightBridge","LoginSignupEvents","attachFlightComponents","bootReactAds","humany","isFunctionalEnabled","then","loadModule","catch","handleModuleError","useCssAnimations","prefixes","animations","createEl","tag","n","ins","sheet","styleSheet","addAnimation","alpha","trail","z","prefix","substring","pre","insertRule","vendor","pp","s","style","charAt","toUpperCase","def","o","x","offsetLeft","y","offsetTop","offsetParent","rotate","speed","fps","zIndex","ep","tp","self","mid","insertBefore","firstChild","offsetHeight","f","ostep","astep","anim","parentNode","removeChild","seg","fill","shadow","background","boxShadow","transformOrigin","transform","borderRadius","hwaccel","animation","childNodes","vml","behavior","adj","addRule","grp","coordsize","coordorigin","margin","g","dx","rotation","arcsize","memberAlias","device","mobile","tablet","desktop","sizes","adFormat","panorama","wide_skyscraper","half_page","medium_rectangle","mobile_rectangle","mobile_wideboard","mapSingleAdFormatToSizes","cur","mapManyAdFormatsToSizes","sizeMap","viewport","slot","AnalyticsStorage","_key","sessionStorage","setIfEmpty","get","clear","removeItem","flow","FLOW","SIGNUP","UNKNOWN","METHOD","FACEBOOK","GOOGLE","trackEvent","trackButtonClick","Analytics","breakpoint","small","medium","large","xxlarge","siteheader","siteheaderportrait","sidebarsearch","Feature","detected","inputZoom","LocalizedDfpAd","text","t","useTranslator","store","globalStore","getState","environment","isCriteoDirectBidderEnabled","isLoggingEnabled","_lastWidth","_updateLayout","_setUpdateLayout","currentWidth","userResize","addEventListener","removeEventListener","doNothing","history","replaceState","go","forward","back","_value","boundNodes","callFn","_raise","_captureEvent","allowedTargets","detachFocus"],"mappings":"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","file":"script/chunks/chunk.basic~bidding~bin-form~campaigns~cart-checkout~checkout-select-payment~checkout2~detailed-search~log~fb92b3eb.ea795276ff.js","sourcesContent":["import React from 'react';\nimport LocalizedDfpAd from './localized-dfp-ad';\n\nclass DfpAdInitDataDecorator extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n pageTargeting: props.initData.gptData.customTargetingParameters,\n adUnitPath: props.initData.gptData.adUnitPath\n };\n }\n\n componentDidUpdate(prevProps) {\n if (\n prevProps.initData &&\n prevProps.initData.gptData &&\n prevProps.initData.gptData.customTargetingParameters\n ) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n pageTargeting:\n prevProps.initData.gptData.customTargetingParameters,\n adUnitPath: prevProps.initData.gptData.adUnitPath\n });\n }\n }\n\n render() {\n return ;\n }\n}\nexport default DfpAdInitDataDecorator;\n","import $ from 'jquery';\n\n/**\n * @description - class for connecting to twitter flight events\n * @class Messaging\n */\nexport default class Messaging {\n constructor() {\n this.subscribe = this.subscribe.bind(this);\n this.publish = this.publish.bind(this);\n this.namespace = `events-${Date.now()}-${Math.random()}`;\n this.events = [];\n }\n\n /**\n * @description - method to 'connect' to events\n * @param {array} events - array of all events to listen to\n * @param {function} callback - function invoked when an event is fired\n * @memberof Messaging\n */\n subscribe(events, callback) {\n if (!events) {\n console.warn('No event{s} passed, failing to register', true);\n return;\n }\n\n if (!Array.isArray(events)) {\n events = [events];\n }\n events.map(event => {\n this.events.push(event);\n $(document).on(`${event}.${this.namespace}`, callback);\n });\n }\n\n /**\n * @description - publish event\n * @param {string} event\n * @param {(object|string)} payload\n * @memberof Messaging\n */\n publish(event, payload) {\n // this.ConnectedToFlight.prototype.publishEvent(event, payload);\n $(document).trigger(event, payload);\n }\n\n teardown() {\n let me = this;\n this.events.map(event => {\n $(document).off(`${event}.${me.namespace}`);\n });\n this.events = [];\n }\n}\n","/*\n----------------------------------------------------------------------------------------------------------------------------------\n\n# DESCRIPTION\nThis script contains the boot loader for takeover ads at Tradera. In the current version it has support for following vendors:\n- Leeads\n\nIMPORTANT: if you need to add a new takeover solution then be sure it doesn't collide with the leeads takeover solution. \nThere is a risk you get a take over over a take over if that happens.\n\n----------------------------------------------------------------------------------------------------------------------------------\n*/\n\nimport { getInitData } from 'packages/init-data';\nimport { BREAKPOINTS, isBreakpointOrHigher } from 'tradera-utils/breakpoints';\nimport GdprSettings from 'tradera-utils/gdpr-settings';\n\n/**\n * this will be false if the user has an ad blocker\n */\nconst adTechLoaded = () => {\n return typeof window.ADTECH === 'undefined' ? false : true;\n};\n\n/**\n * init the leeads desktop take over\n * @param {*DOMElement} takeoverElement\n */\nconst initLeeadsDesktop = takeoverElement => {\n // console.info('[init] leeads take over - desktop');\n\n // \n if (takeoverElement.children.length == 0) {\n takeoverElement.innerHTML =\n '
';\n }\n window.ADTECH.config.page = {\n protocol: 'https',\n server: 'adserver.adtech.de',\n network: '1568.1',\n siteid: '894854',\n params: { loc: '100' }\n };\n window.ADTECH.config.placements[6498025] = {\n sizeid: '16',\n params: { alias: '', target: '_blank' }\n };\n window.ADTECH.enqueueAd(6498025);\n window.ADTECH.executeQueue();\n};\n\nconst isTakeOverAllowedOnPage = () => {\n let initData = getInitData();\n switch (initData.pageName) {\n case 'StartPage':\n case 'Category':\n case 'SearchResults':\n return true;\n default:\n return false;\n }\n};\n\nconst loadScript = src => {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.src = src;\n script.async = false;\n script.onload = () => {\n resolve();\n };\n script.onerror = () => {\n reject('failed to load adtech script');\n };\n document.body.appendChild(script);\n });\n};\n\nconst initTakeovers = async () => {\n if (!GdprSettings.isMarketingEnabled()) {\n return;\n }\n try {\n await loadScript('https://aka-cdn.adtech.de/dt/common/DAC.js');\n } catch (err) {\n // failed, maybe adblocker or other, do not do anything more here\n return;\n }\n\n if (!adTechLoaded()) {\n return;\n }\n\n if (!isTakeOverAllowedOnPage()) {\n return;\n }\n\n let takeoverElement = document.getElementById('ads-takeover');\n let clientWidth = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n\n // LEEADS TAKEOVERS\n if (isBreakpointOrHigher(BREAKPOINTS.MD, clientWidth)) {\n initLeeadsDesktop(takeoverElement);\n }\n};\n\nexport default initTakeovers;\n","/**\n *\n * DESCRIPTION:\n * This script detects elements in a HTML page and initializes react components in those slots.\n * The react component that is created can be configured using data attributes, see under function declaration below.\n *\n * data-g-ad-position - {string} Tradera domain specific custom targeting parameter e.g. mid1-desktop, see google ad manager (DFP) for more info\n * data-g-ad-format - {string} comma separated, maps to an ad size, see ad-slot-utilities.js\n * data-g-ad-device - {string} maps to viewport according to our breakpoints, see ad-slot-utilities.js\n * data-g-ad-only-on-pages - {string} comma separated, specify pages where ad should be visible, OR filter, uses our pagename in init-data\n * data-g-ad-sticky - {bool} enable sticky\n * data-g-ad-autoscale - {bool} enable autoscale, which resizes an ad to fit the available space to parent\n * data-g-ad-sticky-top - {string (#id) or number} if sticky is enabled, specifies top boundary\n * data-g-ad-sticky-bottom - {string (#id) or number} if sticky is enabled, specifies top boundary\n * data-g-ad-ad-container-class - {string} possibility to wrap entire ad component in div with class specified as value\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport logger from 'packages/logger';\nimport {\n createGptSizeMapping,\n mapDeviceNameToViewport\n} from 'static/script/app/ui/layout/ads/ad-slot-utilities';\nimport DfpAdInitDataDecorator from './dfp-ad-init-data-decorator';\nimport Messaging from 'packages/react/messaging';\nimport initTakeovers from './boot-takeover-ads';\nimport ApplicationErrorBoundary from 'tradera-components/application-error-boundary/application-error-boundary';\nimport MediaQuery from 'react-responsive';\n\n/**\n * initializes the react into the DOM element\n * @param {*HTMLDomElement} element a HTML Dom element for the that is to be initialized.\n * @param {*} initData The init data element that is part of every page request\n */\nconst initReactElement = (element, initData) => {\n // get all element attributes\n const position = element.getAttribute('data-g-ad-position');\n const adFormats = element.getAttribute('data-g-ad-format');\n const deviceName = element.getAttribute('data-g-ad-device');\n const adOnlyOnPages = element.getAttribute('data-g-ad-only-on-pages');\n const stickyEnabled = element.hasAttribute('data-g-ad-sticky');\n const autoscale = element.hasAttribute('data-g-ad-autoscale');\n let stickyTop = element.getAttribute('data-g-ad-sticky-top');\n let stickyBottom = element.getAttribute('data-g-ad-sticky-bottom');\n let adContainerClass = element.getAttribute('data-g-ad-ad-container-class');\n\n const refresh =\n element.hasAttribute('data-g-ad-refresh') &&\n 'ads-refresh' in initData.featureSwitches &&\n initData.featureSwitches['ads-refresh'] === true;\n\n // check if this adslot has specific exclusion rules\n if (adOnlyOnPages !== null) {\n // if page not found in list of ads to load then exit\n if (\n adOnlyOnPages\n .split(',')\n .indexOf(initData.gptData.customTargetingParameters.page) === -1\n ) {\n return;\n }\n }\n\n // handle sticky properties\n if (stickyTop !== null && !isNaN(stickyTop)) {\n stickyTop = parseInt(stickyTop);\n if (!initData.isLoggedIn) {\n stickyTop += 38;\n }\n }\n if (stickyBottom !== null && !isNaN(stickyBottom)) {\n stickyBottom = parseInt(stickyBottom);\n }\n\n // get size mapping\n const sizeMapping = createGptSizeMapping(adFormats, deviceName);\n const [minViewportWidth, maxViewportWidth] = mapDeviceNameToViewport(\n deviceName\n );\n\n if (element && sizeMapping) {\n try {\n ReactDOM.render(\n \n \n \n \n ,\n element\n );\n\n // make sure that we kill our react stuff once a pjax happens\n const messages = new Messaging();\n messages.subscribe(['data:navigation:after-page-load'], function() {\n ReactDOM.unmountComponentAtNode(element);\n messages.teardown();\n });\n } catch (e) {\n logger(e);\n }\n }\n};\n\n/**\n * Finds all react ad elements in the DOM and initializes them if they have not previously been initialized\n * @param {*object} initData\n */\nconst loadReactElements = initData => {\n // find all the elements on the page\n Array.from(document.getElementsByTagName('react-adslot')).forEach(\n element => {\n if (!element.hasAttribute('data-react-loaded')) {\n initReactElement(element, initData);\n element.setAttribute('data-react-loaded', true);\n }\n }\n );\n};\n\n/**\n * This is the main loader function to init the ads on a page. This function should only be called once per \"loaded page.\"\n * @param {*object} initData\n */\nconst reactAdsLoader = initData => {\n if (\n 'ads-leeads-takeover' in initData.featureSwitches &&\n initData.featureSwitches['ads-leeads-takeover'] === true\n ) {\n initTakeovers();\n }\n loadReactElements(initData);\n\n // make sure that on mobile pagination that the new that are sent are loaded\n const messages = new Messaging();\n messages.subscribe(\n [\n 'ui:search-result:after-pagination',\n 'data:navigation-filter:after-load'\n ],\n function() {\n loadReactElements(initData);\n }\n );\n messages.subscribe(['data:navigation:after-page-load'], function() {\n messages.teardown();\n });\n};\n\nexport default reactAdsLoader;\n","import { component } from 'flightjs';\n\nfunction MessageBoxUI() {\n this.defaultAttrs({\n closeSelector: '[data-message-box-close-btn]',\n contentSelector: '.message-box-content'\n });\n\n this.close = function() {\n this.$node.removeClass('message-box-wrapper-active');\n };\n\n this.showError = function(e, payload) {\n this.select('contentSelector').html(payload.message);\n\n this.$node.addClass('message-box-wrapper-active');\n this.$node.css({ opacity: 1 });\n };\n\n this.after('initialize', function() {\n this.on(document, 'ui:error:show', this.showError);\n this.on(document, 'data:navigation:after-page-load', this.close);\n this.on('click', { closeSelector: this.close });\n });\n}\n\nexport default component(MessageBoxUI);\n","import { component } from 'flightjs';\nimport * as analytics from './login-signup-analytics';\n\nexport function trackLoginSuccess(memberId) {\n analytics.trackEvent('user-login-success', memberId);\n}\n\nexport function trackLoginFailure(validationError) {\n analytics.trackEvent('user-login-fail', null, validationError);\n}\n\nfunction LoginWithPasswordButton() {\n this._click = function() {\n const connect = this.$node.data('loginConnect') || 'none';\n const inIframe = this.$node.data('loginSubmitIframe');\n if (connect !== 'none') {\n analytics.trackEvent('user-connect-submit');\n } else if (inIframe) {\n analytics.trackButtonClick();\n } else {\n analytics.flow.set(analytics.FLOW.LOGIN);\n analytics.method.set(analytics.METHOD.PASSWORD);\n analytics.trackEvent('user-login-submit');\n }\n };\n this.after('initialize', function() {\n this.on('click', this._click.bind(this));\n });\n}\n\nfunction TrackLoginSuccess() {\n this.after('initialize', function() {\n analytics.trackEvent('user-login-success', this.$node.data('memberId'));\n });\n}\n\nfunction TrackConnectSuccess() {\n this.after('initialize', function() {\n analytics.trackEvent(\n 'user-connect-success',\n this.$node.data('memberId')\n );\n });\n}\n\nfunction TrackLoginFailure() {\n this.after('initialize', function() {\n analytics.trackEvent(\n 'user-login-fail',\n null,\n this.$node.data('errorCode')\n );\n });\n}\n\nfunction TrackConnectFailure() {\n this.after('initialize', function() {\n analytics.trackEvent(\n 'user-connect-fail',\n null,\n this.$node.data('errorCode')\n );\n });\n}\n\nexport const LoginWithPasswordButtonComponent = component(\n LoginWithPasswordButton\n);\nexport const TrackLoginSuccessComponent = component(TrackLoginSuccess);\nexport const TrackConnectSuccessComponent = component(TrackConnectSuccess);\nexport const TrackLoginFailureComponent = component(TrackLoginFailure);\nexport const TrackConnectFailureComponent = component(TrackConnectFailure);\n","/*jshint maxcomplexity: 10 */\nimport ajax from 'static/script/app/data/ajax';\nimport antiForgeryToken from 'static/script/app/data/anti-forgery-token';\nimport InitData from 'static/script/app/data/init-data';\nimport initData from 'init-data';\nimport { reload } from 'tradera-utils/location';\nimport { toLocalizedUrl } from 'tradera-utils/url';\n\nlet WithAjax = function() {\n this._currentRequests = {};\n\n this._callSuccessHandler = function(callbackOrEvent, data) {\n if (typeof callbackOrEvent === 'function') {\n callbackOrEvent(data);\n } else if (typeof callbackOrEvent === 'string') {\n this.trigger(callbackOrEvent, data);\n }\n };\n\n this._callErrorHandler = function(callbackOrEvent, data, jqXHR) {\n if (typeof callbackOrEvent === 'function') {\n callbackOrEvent(data, jqXHR);\n } else if (typeof callbackOrEvent === 'string') {\n this.trigger(callbackOrEvent, data);\n }\n };\n\n this._createSuccessHandler = function(callbackOrEvent) {\n if (!callbackOrEvent) {\n return null;\n }\n\n return function(data) {\n return this._callSuccessHandler(callbackOrEvent, data);\n }.bind(this);\n };\n\n this._userAborted = function(jqXHR) {\n return jqXHR.statusText === 'abort';\n };\n\n this._createErrorHandler = function(callbackOrEvent, noShowError) {\n return function(jqXHR, textStatus, errorThrown) {\n if (this._userAborted(jqXHR, errorThrown)) {\n return;\n }\n\n let data = jqXHR.responseJSON || {\n message:\n 'Någonting gick fel. Pröva att ladda om sidan och försök igen.'\n };\n data = data.responseStatus || data;\n\n if (data.code === 'XSRF-Error') {\n reload();\n return;\n }\n\n if (!this.attr.noShowError && !noShowError) {\n this.trigger(document, 'ui:error:show', data);\n }\n\n this._callErrorHandler(callbackOrEvent, data, jqXHR);\n }.bind(this);\n };\n\n this._populateOptions = function(options, method) {\n options.url = toLocalizedUrl(options.url, initData.languageCodeIso2);\n options.dataType = options.dataType || 'json';\n options.requestId = options.requestId || '';\n options.type = method;\n options.traditional = true;\n options.success = this._createSuccessHandler(options.success);\n options.error = this._createErrorHandler(\n options.error,\n options.noShowError\n );\n\n if (options.type === 'GET') {\n options.timeout = 15000;\n }\n\n if (!options.cache) {\n options.cache = options.type === 'GET' ? false : true;\n }\n\n return options;\n };\n\n this._jsonRequest = function(options, method) {\n let deferred = $.Deferred(),\n removeFromCurrentRequests = requestId => {\n if (this._currentRequests[requestId]) {\n delete this._currentRequests[requestId];\n }\n };\n\n options = this._populateOptions(options, method);\n\n if (options.type === 'POST') {\n antiForgeryToken.addToAjaxRequest(options);\n }\n\n let startTime = new Date();\n let jqXHR = ajax(options)\n .done(function(data, textStatus, jqXHR) {\n deferred.resolve(data, textStatus, jqXHR);\n })\n .fail(\n function(jqXHR, textStatus, errorThrown) {\n let endTime = new Date();\n this._globalErrorHandler(\n jqXHR,\n textStatus,\n errorThrown,\n options,\n startTime,\n endTime\n );\n deferred.reject(jqXHR, textStatus, errorThrown);\n }.bind(this)\n )\n .always(function() {\n removeFromCurrentRequests(options.requestId);\n });\n\n if (options.requestId) {\n if (this._currentRequests[options.requestId]) {\n this._currentRequests[options.requestId].abort();\n }\n this._currentRequests[options.requestId] = jqXHR;\n }\n\n deferred.fail(function() {\n jqXHR.abort();\n });\n return deferred;\n };\n\n this._get = function(options) {\n return this._jsonRequest(options, 'GET');\n };\n\n this._post = function(options) {\n return this._jsonRequest(options, 'POST');\n };\n\n this._getInitDataForScribe = function() {\n return InitData.getForScribe();\n };\n\n this._populateScribePayload = function(\n jqXHR,\n textStatus,\n errorThrown,\n options,\n startTime,\n endTime\n ) {\n return {\n eventName: 'js-ajax-error',\n textStatus: textStatus || '',\n errorThrown: errorThrown || '',\n initData: this._getInitDataForScribe() || '',\n status: jqXHR.status || '',\n state: jqXHR.state ? jqXHR.state() : '',\n responseHeaders: jqXHR.getAllResponseHeaders\n ? jqXHR.getAllResponseHeaders()\n : '',\n options: options,\n pageUrl: document.location.href,\n referrer: document.referrer,\n startTime: startTime || '',\n endTime: endTime || ''\n };\n };\n\n this._globalErrorHandler = function(\n jqXHR,\n textStatus,\n errorThrown,\n options,\n startTime,\n endTime\n ) {\n if (\n this._userAborted(jqXHR, errorThrown) ||\n jqXHR.statusText === 'timeout'\n ) {\n return;\n }\n let payload = this._populateScribePayload(\n jqXHR || {},\n textStatus,\n errorThrown,\n options || {},\n startTime,\n endTime\n );\n this.trigger(document, 'data:scribe', payload);\n };\n};\n\nexport default WithAjax;\n","import $ from 'static/script/libs/jquery';\nimport { component } from 'flightjs';\nimport BubbledFocus from 'static/script/utils/bubbled-focus';\n\nfunction AbstractModal() {\n this.modalId = undefined;\n\n this.opts = {};\n\n this.defaultAttrs({\n closeModal: '[data-modal-close]',\n modalBackground: '[data-modal-background]',\n modalTemplate: '[data-modal-template]'\n });\n\n this._isActive = function() {\n if (\n this.$modal &&\n this.$modal.data('modalId') === this.modalId &&\n $('body').find('> ' + this.attr.modalBackground).length > 0 &&\n this.$modalHtml\n ) {\n return true;\n }\n return false;\n };\n\n this.triggerOpen = function(evt, evtData) {\n /* Triggered by event */\n this._open(evtData);\n };\n\n this.triggerClose = function(evt, evtData) {\n /* Triggered by event */\n this._close(evtData);\n };\n\n this.triggerSetNonDismissible = function(evt, evtData) {\n /* Triggered by event */\n this._setNonDismissible(evtData);\n };\n\n this.openModal = function(data) {\n /* Triggered from components extending this */\n this._open(data);\n };\n\n this._open = function(evtData) {\n this._cancelSpinner();\n if (this._isActive()) {\n this._updateModal(evtData);\n } else {\n this._createModal(evtData);\n }\n };\n\n this._cancelSpinner = function() {\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = null;\n }\n };\n\n this._updateModal = function(evtData) {\n evtData.cssClass = evtData.cssClass\n ? evtData.cssClass\n : 'modal-default';\n\n this.$modalContent.html(evtData.content);\n this.$modalHtml\n .attr('class', 'modal-background')\n .addClass(evtData.cssClass);\n if (evtData.adjustModalPosition) {\n evtData.adjustModalPosition(this);\n } else {\n this._adjustModalPosition();\n }\n\n if (evtData.nonDismissible) {\n this._setNonDismissible(true);\n }\n\n if (evtData.beforeShow) {\n evtData.beforeShow();\n }\n };\n\n this._createModal = function(evtData) {\n evtData.cssClass = evtData.cssClass\n ? evtData.cssClass\n : 'modal-default';\n\n this.$modalHtml = $(\n this.$node\n .find(this.attr.modalTemplate)\n .clone()\n .html()\n );\n this.$modal = this.$modalHtml.find('[data-modal]');\n\n this.modalId = 'id' + new Date().getTime();\n\n this.$modal.data('modalId', this.modalId);\n\n if (evtData.chromeless) {\n this.$modalContent = this.$modal;\n this.$modalContent.html(evtData.content);\n } else {\n this.$modalContent = this.$modalHtml.find('[data-modal-content]');\n this.$modalContent.html(evtData.content);\n }\n\n this.$modalHtml.addClass(evtData.cssClass);\n this.$node.append(this.$modalHtml);\n\n this._resizeModalHeight();\n if (evtData.adjustModalPosition) {\n evtData.adjustModalPosition(this);\n } else {\n this._adjustModalPosition();\n }\n\n if (evtData.nonDismissible) {\n this._setNonDismissible(true);\n }\n\n if (evtData.beforeShow) {\n evtData.beforeShow();\n }\n\n this._fadeIn();\n\n this.on(document, 'keyup', this._escButtonClose);\n };\n\n this._resizeModalHeight = function() {\n if (this._isActive()) {\n this.$modalHtml.css('height', $(document).height());\n }\n };\n\n this._escButtonClose = function(evt) {\n if (evt.which === 27 && !this._nonDismissible) {\n this._close();\n }\n };\n\n this._closeClick = function(evt) {\n if (!this._isActive()) {\n return;\n }\n if (this._closePrevented) {\n return;\n }\n\n let target = $(evt.target);\n if (target.attr('data-modal-close') === undefined) {\n return;\n }\n if (\n this._nonDismissible &&\n target.attr('data-modal-background') != undefined\n ) {\n return;\n }\n\n evt.stopPropagation();\n this._close();\n };\n\n this._close = function() {\n if (!this._isActive()) {\n return;\n }\n\n this.off(document, 'keyup', this._escButtonClose);\n this.trigger(document, 'ui:body-container:on-modal-close');\n\n this.$modalHtml.css('opacity', 0);\n setTimeout(\n function() {\n this._removeModal();\n }.bind(this),\n 250\n );\n };\n\n this._removeModal = function() {\n if (this.$modalHtml) {\n this.$modalHtml.remove();\n }\n };\n\n this._adjustModalPosition = function() {\n let popupHeight = this.$modal.height();\n let scroll = $(document).scrollTop();\n let windowHeight =\n window.innerHeight || document.documentElement.clientHeight;\n\n if (popupHeight > windowHeight) {\n this.$modal.css('margin-top', scroll);\n } else {\n let targetOffset = (windowHeight - popupHeight) * 0.25;\n this.$modal.css('margin-top', targetOffset + scroll);\n }\n };\n\n this._fadeIn = function() {\n this.$modalHtml.css('opacity', 1);\n };\n\n this._preventClose = function() {\n this._closePrevented = true;\n };\n\n this._enableClose = function() {\n setTimeout(\n function() {\n this._closePrevented = false;\n }.bind(this),\n 100\n );\n };\n\n this._setNonDismissible = function(value) {\n this._nonDismissible = value;\n if (value) {\n this.$modalHtml.addClass('modal-close-disabled');\n } else {\n this.$modalHtml.removeClass('modal-close-disabled');\n }\n };\n\n this.after('initialize', function() {\n this.on(\n document,\n 'ui:error:show ui:saved-search-modal:after-added',\n this._close\n );\n this.on('click', {\n closeModal: this._closeClick\n });\n\n this.on(document, 'ui:teardown', this._removeModal);\n this.on(\n document,\n 'ui:recently-viewed-items:on-items-change',\n this._resizeModalHeight\n );\n\n this.focus('[data-modal] input', this._preventClose.bind(this));\n this.blur('[data-modal] input', this._enableClose.bind(this));\n });\n}\n\nexport default component(AbstractModal, BubbledFocus);\n","/*! Flight v1.5.0 | (c) Twitter, Inc. | MIT License */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"flight\"] = factory();\n\telse\n\t\troot[\"flight\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(1),\n __webpack_require__(2),\n __webpack_require__(3),\n __webpack_require__(4),\n __webpack_require__(5),\n __webpack_require__(6),\n __webpack_require__(7)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(advice, component, compose, debug, logger, registry, utils) {\n 'use strict';\n\n return {\n advice: advice,\n component: component,\n compose: compose,\n debug: debug,\n logger: logger,\n registry: registry,\n utils: utils\n };\n\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(7)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n 'use strict';\n\n var advice = {\n\n around: function(base, wrapped) {\n return function composedAround() {\n // unpacking arguments by hand benchmarked faster\n var i = 0, l = arguments.length, args = new Array(l + 1);\n args[0] = base.bind(this);\n for (; i < l; i++) {\n args[i + 1] = arguments[i];\n }\n return wrapped.apply(this, args);\n };\n },\n\n before: function(base, before) {\n var beforeFn = (typeof before == 'function') ? before : before.obj[before.fnName];\n return function composedBefore() {\n beforeFn.apply(this, arguments);\n return base.apply(this, arguments);\n };\n },\n\n after: function(base, after) {\n var afterFn = (typeof after == 'function') ? after : after.obj[after.fnName];\n return function composedAfter() {\n var res = (base.unbound || base).apply(this, arguments);\n afterFn.apply(this, arguments);\n return res;\n };\n },\n\n // a mixin that allows other mixins to augment existing functions by adding additional\n // code before, after or around.\n withAdvice: function() {\n ['before', 'after', 'around'].forEach(function(m) {\n this[m] = function(method, fn) {\n var methods = method.trim().split(' ');\n\n methods.forEach(function(i) {\n utils.mutateProperty(this, i, function() {\n if (typeof this[i] == 'function') {\n this[i] = advice[m](this[i], fn);\n } else {\n this[i] = fn;\n }\n\n return this[i];\n });\n }, this);\n };\n }, this);\n }\n };\n\n return advice;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(1),\n __webpack_require__(7),\n __webpack_require__(3),\n __webpack_require__(8),\n __webpack_require__(6),\n __webpack_require__(5),\n __webpack_require__(4)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(advice, utils, compose, withBase, registry, withLogging, debug) {\n 'use strict';\n\n var functionNameRegEx = /function (.*?)\\s?\\(/;\n var ignoredMixin = {\n withBase: true,\n withLogging: true\n };\n\n // teardown for all instances of this constructor\n function teardownAll() {\n var componentInfo = registry.findComponentInfo(this);\n\n componentInfo && Object.keys(componentInfo.instances).forEach(function(k) {\n var info = componentInfo.instances[k];\n // It's possible that a previous teardown caused another component to teardown,\n // so we can't assume that the instances object is as it was.\n if (info && info.instance) {\n info.instance.teardown();\n }\n });\n }\n\n function attachTo(selector/*, options args */) {\n // unpacking arguments by hand benchmarked faster\n var l = arguments.length;\n var args = new Array(l - 1);\n for (var i = 1; i < l; i++) {\n args[i - 1] = arguments[i];\n }\n\n if (!selector) {\n throw new Error('Component needs to be attachTo\\'d a jQuery object, native node or selector string');\n }\n\n var options = utils.merge.apply(utils, args);\n var componentInfo = registry.findComponentInfo(this);\n\n $(selector).each(function(i, node) {\n if (componentInfo && componentInfo.isAttachedTo(node)) {\n // already attached\n return;\n }\n\n (new this).initialize(node, options);\n }.bind(this));\n }\n\n function prettyPrintMixins() {\n //could be called from constructor or constructor.prototype\n var mixedIn = this.mixedIn || this.prototype.mixedIn || [];\n return mixedIn.map(function(mixin) {\n if (mixin.name == null) {\n // function name property not supported by this browser, use regex\n var m = mixin.toString().match(functionNameRegEx);\n return (m && m[1]) ? m[1] : '';\n }\n return (!ignoredMixin[mixin.name] ? mixin.name : '');\n }).filter(Boolean).join(', ');\n };\n\n\n // define the constructor for a custom component type\n // takes an unlimited number of mixin functions as arguments\n // typical api call with 3 mixins: define(timeline, withTweetCapability, withScrollCapability);\n function define(/*mixins*/) {\n // unpacking arguments by hand benchmarked faster\n var l = arguments.length;\n var mixins = new Array(l);\n for (var i = 0; i < l; i++) {\n mixins[i] = arguments[i];\n }\n\n var Component = function() {};\n\n Component.toString = Component.prototype.toString = prettyPrintMixins;\n if (debug.enabled) {\n Component.describe = Component.prototype.describe = Component.toString();\n }\n\n // 'options' is optional hash to be merged with 'defaults' in the component definition\n Component.attachTo = attachTo;\n // enables extension of existing \"base\" Components\n Component.mixin = function() {\n var newComponent = define(); //TODO: fix pretty print\n var newPrototype = Object.create(Component.prototype);\n newPrototype.mixedIn = [].concat(Component.prototype.mixedIn);\n newPrototype.defaults = utils.merge(Component.prototype.defaults);\n newPrototype.attrDef = Component.prototype.attrDef;\n compose.mixin(newPrototype, arguments);\n newComponent.prototype = newPrototype;\n newComponent.prototype.constructor = newComponent;\n return newComponent;\n };\n Component.teardownAll = teardownAll;\n\n // prepend common mixins to supplied list, then mixin all flavors\n if (debug.enabled) {\n mixins.unshift(withLogging);\n }\n mixins.unshift(withBase, advice.withAdvice, registry.withRegistration);\n compose.mixin(Component.prototype, mixins);\n\n return Component;\n }\n\n define.teardownAll = function() {\n registry.components.slice().forEach(function(c) {\n c.component.teardownAll();\n });\n registry.reset();\n };\n\n return define;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(7)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n 'use strict';\n\n var dontLock = ['mixedIn', 'attrDef'];\n\n function setWritability(obj, writable) {\n Object.keys(obj).forEach(function (key) {\n if (dontLock.indexOf(key) < 0) {\n utils.propertyWritability(obj, key, writable);\n }\n });\n }\n\n function mixin(base, mixins) {\n base.mixedIn = Object.prototype.hasOwnProperty.call(base, 'mixedIn') ? base.mixedIn : [];\n\n for (var i = 0; i < mixins.length; i++) {\n if (base.mixedIn.indexOf(mixins[i]) == -1) {\n setWritability(base, false);\n mixins[i].call(base);\n base.mixedIn.push(mixins[i]);\n }\n }\n\n setWritability(base, true);\n }\n\n return {\n mixin: mixin\n };\n\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6)], __WEBPACK_AMD_DEFINE_RESULT__ = function(registry) {\n 'use strict';\n\n // ==========================================\n // Search object model\n // ==========================================\n\n function traverse(util, searchTerm, options) {\n options = options || {};\n var obj = options.obj || window;\n var path = options.path || ((obj == window) ? 'window' : '');\n var props = Object.keys(obj);\n props.forEach(function(prop) {\n if ((tests[util] || util)(searchTerm, obj, prop)) {\n console.log([path, '.', prop].join(''), '->', ['(', typeof obj[prop], ')'].join(''), obj[prop]);\n }\n if (Object.prototype.toString.call(obj[prop]) == '[object Object]' && (obj[prop] != obj) && path.split('.').indexOf(prop) == -1) {\n traverse(util, searchTerm, {obj: obj[prop], path: [path,prop].join('.')});\n }\n });\n }\n\n function search(util, expected, searchTerm, options) {\n if (!expected || typeof searchTerm == expected) {\n traverse(util, searchTerm, options);\n } else {\n console.error([searchTerm, 'must be', expected].join(' '));\n }\n }\n\n var tests = {\n 'name': function(searchTerm, obj, prop) {return searchTerm == prop;},\n 'nameContains': function(searchTerm, obj, prop) {return prop.indexOf(searchTerm) > -1;},\n 'type': function(searchTerm, obj, prop) {return obj[prop] instanceof searchTerm;},\n 'value': function(searchTerm, obj, prop) {return obj[prop] === searchTerm;},\n 'valueCoerced': function(searchTerm, obj, prop) {return obj[prop] == searchTerm;}\n };\n\n function byName(searchTerm, options) {search('name', 'string', searchTerm, options);}\n function byNameContains(searchTerm, options) {search('nameContains', 'string', searchTerm, options);}\n function byType(searchTerm, options) {search('type', 'function', searchTerm, options);}\n function byValue(searchTerm, options) {search('value', null, searchTerm, options);}\n function byValueCoerced(searchTerm, options) {search('valueCoerced', null, searchTerm, options);}\n function custom(fn, options) {traverse(fn, null, options);}\n\n // ==========================================\n // Event logging\n // ==========================================\n\n var ALL = 'all'; //no filter\n\n //log nothing by default\n var logFilter = {\n eventNames: [],\n actions: []\n }\n\n function filterEventLogsByAction(/*actions*/) {\n var actions = [].slice.call(arguments);\n\n logFilter.eventNames.length || (logFilter.eventNames = ALL);\n logFilter.actions = actions.length ? actions : ALL;\n saveLogFilter();\n }\n\n function filterEventLogsByName(/*eventNames*/) {\n var eventNames = [].slice.call(arguments);\n\n logFilter.actions.length || (logFilter.actions = ALL);\n logFilter.eventNames = eventNames.length ? eventNames : ALL;\n saveLogFilter();\n }\n\n function hideAllEventLogs() {\n logFilter.actions = [];\n logFilter.eventNames = [];\n saveLogFilter();\n }\n\n function showAllEventLogs() {\n logFilter.actions = ALL;\n logFilter.eventNames = ALL;\n saveLogFilter();\n }\n\n function saveLogFilter() {\n try {\n if (window.localStorage) {\n localStorage.setItem('logFilter_eventNames', logFilter.eventNames);\n localStorage.setItem('logFilter_actions', logFilter.actions);\n }\n } catch (ignored) {};\n }\n\n function retrieveLogFilter() {\n var eventNames, actions;\n try {\n eventNames = (window.localStorage && localStorage.getItem('logFilter_eventNames'));\n actions = (window.localStorage && localStorage.getItem('logFilter_actions'));\n } catch (ignored) {\n return;\n }\n eventNames && (logFilter.eventNames = eventNames);\n actions && (logFilter.actions = actions);\n\n // reconstitute arrays in place\n Object.keys(logFilter).forEach(function(k) {\n var thisProp = logFilter[k];\n if (typeof thisProp == 'string' && thisProp !== ALL) {\n logFilter[k] = thisProp ? thisProp.split(',') : [];\n }\n });\n }\n\n return {\n\n enable: function(enable) {\n this.enabled = !!enable;\n\n if (enable && window.console) {\n console.info('Booting in DEBUG mode');\n console.info('You can configure event logging with DEBUG.events.logAll()/logNone()/logByName()/logByAction()');\n }\n\n retrieveLogFilter();\n\n window.DEBUG = this;\n },\n\n warn: function (message) {\n if (!window.console) { return; }\n var fn = (console.warn || console.log);\n fn.call(console, this.toString() + ': ' + message);\n },\n\n registry: registry,\n\n find: {\n byName: byName,\n byNameContains: byNameContains,\n byType: byType,\n byValue: byValue,\n byValueCoerced: byValueCoerced,\n custom: custom\n },\n\n events: {\n logFilter: logFilter,\n\n // Accepts any number of action args\n // e.g. DEBUG.events.logByAction(\"on\", \"off\")\n logByAction: filterEventLogsByAction,\n\n // Accepts any number of event name args (inc. regex or wildcards)\n // e.g. DEBUG.events.logByName(/ui.*/, \"*Thread*\");\n logByName: filterEventLogsByName,\n\n logAll: showAllEventLogs,\n logNone: hideAllEventLogs\n }\n };\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(7)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils) {\n 'use strict';\n\n var actionSymbols = {\n on: '<-',\n trigger: '->',\n off: 'x '\n };\n\n function elemToString(elem) {\n var tagStr = elem.tagName ? elem.tagName.toLowerCase() : elem.toString();\n var classStr = elem.className ? '.' + (elem.className) : '';\n var result = tagStr + classStr;\n return elem.tagName ? ['\\'', '\\''].join(result) : result;\n }\n\n function log(action, component, eventArgs) {\n if (!window.DEBUG || !window.DEBUG.enabled) {\n return;\n }\n var name, eventType, elem, fn, payload, logFilter, toRegExp, actionLoggable, nameLoggable, info;\n\n if (typeof eventArgs[eventArgs.length - 1] == 'function') {\n fn = eventArgs.pop();\n fn = fn.unbound || fn; // use unbound version if any (better info)\n }\n\n if (eventArgs.length == 1) {\n elem = component.$node[0];\n eventType = eventArgs[0];\n } else if ((eventArgs.length == 2) && typeof eventArgs[1] == 'object' && !eventArgs[1].type) {\n //2 args, first arg is not elem\n elem = component.$node[0];\n eventType = eventArgs[0];\n if (action == \"trigger\") {\n payload = eventArgs[1];\n }\n } else {\n //2+ args, first arg is elem\n elem = eventArgs[0];\n eventType = eventArgs[1];\n if (action == \"trigger\") {\n payload = eventArgs[2];\n }\n }\n\n name = typeof eventType == 'object' ? eventType.type : eventType;\n\n logFilter = DEBUG.events.logFilter;\n\n // no regex for you, actions...\n actionLoggable = logFilter.actions == 'all' || (logFilter.actions.indexOf(action) > -1);\n // event name filter allow wildcards or regex...\n toRegExp = function(expr) {\n return expr.test ? expr : new RegExp('^' + expr.replace(/\\*/g, '.*') + '$');\n };\n nameLoggable =\n logFilter.eventNames == 'all' ||\n logFilter.eventNames.some(function(e) {return toRegExp(e).test(name);});\n\n if (actionLoggable && nameLoggable) {\n info = [actionSymbols[action], action, '[' + name + ']'];\n payload && info.push(payload);\n info.push(elemToString(elem));\n info.push(component.constructor.describe.split(' ').slice(0,3).join(' '));\n console.groupCollapsed && action == 'trigger' && console.groupCollapsed(action, name);\n // IE9 doesn't define `apply` for console methods, but this works everywhere:\n Function.prototype.apply.call(console.info, console, info);\n }\n }\n\n function withLogging() {\n this.before('trigger', function() {\n log('trigger', this, utils.toArray(arguments));\n });\n if (console.groupCollapsed) {\n this.after('trigger', function() {\n console.groupEnd();\n });\n }\n this.before('on', function() {\n log('on', this, utils.toArray(arguments));\n });\n this.before('off', function() {\n log('off', this, utils.toArray(arguments));\n });\n }\n\n return withLogging;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() {\n 'use strict';\n\n function parseEventArgs(instance, args) {\n var element, type, callback;\n var end = args.length;\n\n if (typeof args[end - 1] == 'function') {\n end -= 1;\n callback = args[end];\n }\n\n if (typeof args[end - 1] == 'object') {\n end -= 1;\n }\n\n if (end == 2) {\n element = args[0];\n type = args[1];\n } else {\n element = instance.node;\n type = args[0];\n }\n\n return {\n element: element,\n type: type,\n callback: callback\n };\n }\n\n function matchEvent(a, b) {\n return (\n (a.element == b.element) &&\n (a.type == b.type) &&\n (b.callback == null || (a.callback == b.callback))\n );\n }\n\n function Registry() {\n\n var registry = this;\n\n (this.reset = function() {\n this.components = [];\n this.allInstances = {};\n this.events = [];\n }).call(this);\n\n function ComponentInfo(component) {\n this.component = component;\n this.attachedTo = [];\n this.instances = {};\n\n this.addInstance = function(instance) {\n var instanceInfo = new InstanceInfo(instance);\n this.instances[instance.identity] = instanceInfo;\n this.attachedTo.push(instance.node);\n\n return instanceInfo;\n };\n\n this.removeInstance = function(instance) {\n delete this.instances[instance.identity];\n var indexOfNode = this.attachedTo.indexOf(instance.node);\n (indexOfNode > -1) && this.attachedTo.splice(indexOfNode, 1);\n\n if (!Object.keys(this.instances).length) {\n //if I hold no more instances remove me from registry\n registry.removeComponentInfo(this);\n }\n };\n\n this.isAttachedTo = function(node) {\n return this.attachedTo.indexOf(node) > -1;\n };\n }\n\n function InstanceInfo(instance) {\n this.instance = instance;\n this.events = [];\n\n this.addBind = function(event) {\n this.events.push(event);\n registry.events.push(event);\n };\n\n this.removeBind = function(event) {\n for (var i = 0, e; e = this.events[i]; i++) {\n if (matchEvent(e, event)) {\n this.events.splice(i, 1);\n }\n }\n };\n }\n\n this.addInstance = function(instance) {\n var component = this.findComponentInfo(instance);\n\n if (!component) {\n component = new ComponentInfo(instance.constructor);\n this.components.push(component);\n }\n\n var inst = component.addInstance(instance);\n\n this.allInstances[instance.identity] = inst;\n\n return component;\n };\n\n this.removeInstance = function(instance) {\n //remove from component info\n var componentInfo = this.findComponentInfo(instance);\n componentInfo && componentInfo.removeInstance(instance);\n\n //remove from registry\n delete this.allInstances[instance.identity];\n };\n\n this.removeComponentInfo = function(componentInfo) {\n var index = this.components.indexOf(componentInfo);\n (index > -1) && this.components.splice(index, 1);\n };\n\n this.findComponentInfo = function(which) {\n var component = which.attachTo ? which : which.constructor;\n\n for (var i = 0, c; c = this.components[i]; i++) {\n if (c.component === component) {\n return c;\n }\n }\n\n return null;\n };\n\n this.findInstanceInfo = function(instance) {\n return this.allInstances[instance.identity] || null;\n };\n\n this.getBoundEventNames = function(instance) {\n return this.findInstanceInfo(instance).events.map(function(ev) {\n return ev.type;\n });\n };\n\n this.findInstanceInfoByNode = function(node) {\n var result = [];\n Object.keys(this.allInstances).forEach(function(k) {\n var thisInstanceInfo = this.allInstances[k];\n if (thisInstanceInfo.instance.node === node) {\n result.push(thisInstanceInfo);\n }\n }, this);\n return result;\n };\n\n this.on = function(componentOn) {\n var instance = registry.findInstanceInfo(this), boundCallback;\n\n // unpacking arguments by hand benchmarked faster\n var l = arguments.length, i = 1;\n var otherArgs = new Array(l - 1);\n for (; i < l; i++) {\n otherArgs[i - 1] = arguments[i];\n }\n\n if (instance) {\n boundCallback = componentOn.apply(null, otherArgs);\n if (boundCallback) {\n otherArgs[otherArgs.length - 1] = boundCallback;\n }\n var event = parseEventArgs(this, otherArgs);\n instance.addBind(event);\n }\n };\n\n this.off = function(/*el, type, callback*/) {\n var event = parseEventArgs(this, arguments),\n instance = registry.findInstanceInfo(this);\n\n if (instance) {\n instance.removeBind(event);\n }\n\n //remove from global event registry\n for (var i = 0, e; e = registry.events[i]; i++) {\n if (matchEvent(e, event)) {\n registry.events.splice(i, 1);\n }\n }\n };\n\n // debug tools may want to add advice to trigger\n registry.trigger = function() {};\n\n this.teardown = function() {\n registry.removeInstance(this);\n };\n\n this.withRegistration = function() {\n this.after('initialize', function() {\n registry.addInstance(this);\n });\n\n this.around('on', registry.on);\n this.after('off', registry.off);\n //debug tools may want to add advice to trigger\n window.DEBUG && (false).enabled && this.after('trigger', registry.trigger);\n this.after('teardown', {obj: registry, fnName: 'teardown'});\n };\n\n }\n\n return new Registry;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function(debug) {\n 'use strict';\n\n var DEFAULT_INTERVAL = 100;\n\n function canWriteProtect() {\n var writeProtectSupported = debug.enabled && !Object.propertyIsEnumerable('getOwnPropertyDescriptor');\n if (writeProtectSupported) {\n //IE8 getOwnPropertyDescriptor is built-in but throws exeption on non DOM objects\n try {\n Object.getOwnPropertyDescriptor(Object, 'keys');\n } catch (e) {\n return false;\n }\n }\n\n return writeProtectSupported;\n }\n\n var utils = {\n\n isDomObj: function(obj) {\n return !!(obj.nodeType || (obj === window));\n },\n\n toArray: function(obj, from) {\n from = from || 0;\n var len = obj.length, arr = new Array(len - from);\n for (var i = from; i < len; i++) {\n arr[i - from] = obj[i];\n }\n return arr;\n },\n\n // returns new object representing multiple objects merged together\n // optional final argument is boolean which specifies if merge is recursive\n // original objects are unmodified\n //\n // usage:\n // var base = {a:2, b:6};\n // var extra = {b:3, c:4};\n // merge(base, extra); //{a:2, b:3, c:4}\n // base; //{a:2, b:6}\n //\n // var base = {a:2, b:6};\n // var extra = {b:3, c:4};\n // var extraExtra = {a:4, d:9};\n // merge(base, extra, extraExtra); //{a:4, b:3, c:4. d: 9}\n // base; //{a:2, b:6}\n //\n // var base = {a:2, b:{bb:4, cc:5}};\n // var extra = {a:4, b:{cc:7, dd:1}};\n // merge(base, extra, true); //{a:4, b:{bb:4, cc:7, dd:1}}\n // base; //{a:2, b:{bb:4, cc:5}};\n\n merge: function(/*obj1, obj2,....deepCopy*/) {\n // unpacking arguments by hand benchmarked faster\n var l = arguments.length,\n args = new Array(l + 1);\n\n if (l === 0) {\n return {};\n }\n\n for (var i = 0; i < l; i++) {\n args[i + 1] = arguments[i];\n }\n\n //start with empty object so a copy is created\n args[0] = {};\n\n if (args[args.length - 1] === true) {\n //jquery extend requires deep copy as first arg\n args.pop();\n args.unshift(true);\n }\n\n return $.extend.apply(undefined, args);\n },\n\n // updates base in place by copying properties of extra to it\n // optionally clobber protected\n // usage:\n // var base = {a:2, b:6};\n // var extra = {c:4};\n // push(base, extra); //{a:2, b:6, c:4}\n // base; //{a:2, b:6, c:4}\n //\n // var base = {a:2, b:6};\n // var extra = {b: 4 c:4};\n // push(base, extra, true); //Error (\"utils.push attempted to overwrite 'b' while running in protected mode\")\n // base; //{a:2, b:6}\n //\n // objects with the same key will merge recursively when protect is false\n // eg:\n // var base = {a:16, b:{bb:4, cc:10}};\n // var extra = {b:{cc:25, dd:19}, c:5};\n // push(base, extra); //{a:16, {bb:4, cc:25, dd:19}, c:5}\n //\n push: function(base, extra, protect) {\n if (base) {\n Object.keys(extra || {}).forEach(function(key) {\n if (base[key] && protect) {\n throw new Error('utils.push attempted to overwrite \"' + key + '\" while running in protected mode');\n }\n\n if (typeof base[key] == 'object' && typeof extra[key] == 'object') {\n // recurse\n this.push(base[key], extra[key]);\n } else {\n // no protect, so extra wins\n base[key] = extra[key];\n }\n }, this);\n }\n\n return base;\n },\n\n // If obj.key points to an enumerable property, return its value\n // If obj.key points to a non-enumerable property, return undefined\n getEnumerableProperty: function(obj, key) {\n return obj.propertyIsEnumerable(key) ? obj[key] : undefined;\n },\n\n // build a function from other function(s)\n // utils.compose(a,b,c) -> a(b(c()));\n // implementation lifted from underscore.js (c) 2009-2012 Jeremy Ashkenas\n compose: function() {\n var funcs = arguments;\n\n return function() {\n var args = arguments;\n\n for (var i = funcs.length - 1; i >= 0; i--) {\n args = [funcs[i].apply(this, args)];\n }\n\n return args[0];\n };\n },\n\n // Can only unique arrays of homogeneous primitives, e.g. an array of only strings, an array of only booleans, or an array of only numerics\n uniqueArray: function(array) {\n var u = {}, a = [];\n\n for (var i = 0, l = array.length; i < l; ++i) {\n if (u.hasOwnProperty(array[i])) {\n continue;\n }\n\n a.push(array[i]);\n u[array[i]] = 1;\n }\n\n return a;\n },\n\n debounce: function(func, wait, immediate) {\n if (typeof wait != 'number') {\n wait = DEFAULT_INTERVAL;\n }\n\n var timeout, result;\n\n return function() {\n var context = this, args = arguments;\n var later = function() {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n\n timeout && clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n result = func.apply(context, args);\n }\n\n return result;\n };\n },\n\n throttle: function(func, wait) {\n if (typeof wait != 'number') {\n wait = DEFAULT_INTERVAL;\n }\n\n var context, args, timeout, throttling, more, result;\n var whenDone = this.debounce(function() {\n more = throttling = false;\n }, wait);\n\n return function() {\n context = this; args = arguments;\n var later = function() {\n timeout = null;\n if (more) {\n result = func.apply(context, args);\n }\n whenDone();\n };\n\n if (!timeout) {\n timeout = setTimeout(later, wait);\n }\n\n if (throttling) {\n more = true;\n } else {\n throttling = true;\n result = func.apply(context, args);\n }\n\n whenDone();\n return result;\n };\n },\n\n countThen: function(num, base) {\n return function() {\n if (!--num) { return base.apply(this, arguments); }\n };\n },\n\n delegate: function(rules) {\n return function(e, data) {\n var target = $(e.target), parent;\n\n Object.keys(rules).forEach(function(selector) {\n if (!e.isPropagationStopped() && (parent = target.closest(selector)).length) {\n data = data || {};\n e.currentTarget = data.el = parent[0];\n return rules[selector].apply(this, [e, data]);\n }\n }, this);\n };\n },\n\n // ensures that a function will only be called once.\n // usage:\n // will only create the application once\n // var initialize = utils.once(createApplication)\n // initialize();\n // initialize();\n //\n // will only delete a record once\n // var myHanlder = function () {\n // $.ajax({type: 'DELETE', url: 'someurl.com', data: {id: 1}});\n // };\n // this.on('click', utils.once(myHandler));\n //\n once: function(func) {\n var ran, result;\n\n return function() {\n if (ran) {\n return result;\n }\n\n ran = true;\n result = func.apply(this, arguments);\n\n return result;\n };\n },\n\n propertyWritability: function(obj, prop, writable) {\n if (canWriteProtect() && obj.hasOwnProperty(prop)) {\n Object.defineProperty(obj, prop, { writable: writable });\n }\n },\n\n // Property locking/unlocking\n mutateProperty: function(obj, prop, op) {\n var writable;\n\n if (!canWriteProtect() || !obj.hasOwnProperty(prop)) {\n op.call(obj);\n return;\n }\n\n writable = Object.getOwnPropertyDescriptor(obj, prop).writable;\n\n Object.defineProperty(obj, prop, { writable: true });\n op.call(obj);\n Object.defineProperty(obj, prop, { writable: writable });\n\n }\n\n };\n\n return utils;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* Copyright 2013 Twitter, Inc. Licensed under The MIT License. http://opensource.org/licenses/MIT */\n\n!(__WEBPACK_AMD_DEFINE_ARRAY__ = [\n __webpack_require__(7),\n __webpack_require__(6),\n __webpack_require__(4)\n ], __WEBPACK_AMD_DEFINE_RESULT__ = function(utils, registry, debug) {\n 'use strict';\n\n // common mixin allocates basic functionality - used by all component prototypes\n // callback context is bound to component\n var componentId = 0;\n\n function teardownInstance(instanceInfo) {\n instanceInfo.events.slice().forEach(function(event) {\n var args = [event.type];\n\n event.element && args.unshift(event.element);\n (typeof event.callback == 'function') && args.push(event.callback);\n\n this.off.apply(this, args);\n }, instanceInfo.instance);\n }\n\n function checkSerializable(type, data) {\n try {\n window.postMessage(data, '*');\n } catch (e) {\n debug.warn.call(this, [\n 'Event \"', type, '\" was triggered with non-serializable data. ',\n 'Flight recommends you avoid passing non-serializable data in events.'\n ].join(''));\n }\n }\n\n function warnAboutReferenceType(key) {\n debug.warn.call(this, [\n 'Attribute \"', key, '\" defaults to an array or object. ',\n 'Enclose this in a function to avoid sharing between component instances.'\n ].join(''));\n }\n\n function initAttributes(attrs) {\n var definedKeys = [], incomingKeys;\n\n this.attr = new this.attrDef;\n\n if (debug.enabled && window.console) {\n for (var key in this.attrDef.prototype) {\n definedKeys.push(key);\n }\n incomingKeys = Object.keys(attrs);\n\n for (var i = incomingKeys.length - 1; i >= 0; i--) {\n if (definedKeys.indexOf(incomingKeys[i]) == -1) {\n debug.warn.call(this, 'Passed unused attribute \"' + incomingKeys[i] + '\".');\n break;\n }\n }\n }\n\n for (var key in this.attrDef.prototype) {\n if (typeof attrs[key] == 'undefined') {\n if (this.attr[key] === null) {\n throw new Error('Required attribute \"' + key +\n '\" not specified in attachTo for component \"' + this.toString() + '\".');\n }\n // Warn about reference types in attributes\n if (debug.enabled && typeof this.attr[key] === 'object') {\n warnAboutReferenceType.call(this, key);\n }\n } else {\n this.attr[key] = attrs[key];\n }\n\n if (typeof this.attr[key] == 'function') {\n this.attr[key] = this.attr[key].call(this);\n }\n }\n\n }\n\n function initDeprecatedAttributes(attrs) {\n // merge defaults with supplied options\n // put options in attr.__proto__ to avoid merge overhead\n var attr = Object.create(attrs);\n\n for (var key in this.defaults) {\n if (!attrs.hasOwnProperty(key)) {\n attr[key] = this.defaults[key];\n // Warn about reference types in defaultAttrs\n if (debug.enabled && typeof this.defaults[key] === 'object') {\n warnAboutReferenceType.call(this, key);\n }\n }\n }\n\n this.attr = attr;\n\n Object.keys(this.defaults || {}).forEach(function(key) {\n if (this.defaults[key] === null && this.attr[key] === null) {\n throw new Error('Required attribute \"' + key +\n '\" not specified in attachTo for component \"' + this.toString() + '\".');\n }\n }, this);\n }\n\n function proxyEventTo(targetEvent) {\n return function(e, data) {\n $(e.target).trigger(targetEvent, data);\n };\n }\n\n function withBase() {\n\n // delegate trigger, bind and unbind to an element\n // if $element not supplied, use component's node\n // other arguments are passed on\n // event can be either a string specifying the type\n // of the event, or a hash specifying both the type\n // and a default function to be called.\n this.trigger = function() {\n var $element, type, data, event, defaultFn;\n var lastIndex = arguments.length - 1, lastArg = arguments[lastIndex];\n\n if (typeof lastArg != 'string' && !(lastArg && lastArg.defaultBehavior)) {\n lastIndex--;\n data = lastArg;\n }\n\n if (lastIndex == 1) {\n $element = $(arguments[0]);\n event = arguments[1];\n } else {\n $element = this.$node;\n event = arguments[0];\n }\n\n if (event.defaultBehavior) {\n defaultFn = event.defaultBehavior;\n event = $.Event(event.type);\n }\n\n type = event.type || event;\n\n if (debug.enabled && window.postMessage) {\n checkSerializable.call(this, type, data);\n }\n\n if (typeof this.attr.eventData == 'object') {\n data = $.extend(true, {}, this.attr.eventData, data);\n }\n\n $element.trigger((event || type), data);\n\n if (defaultFn && !event.isDefaultPrevented()) {\n (this[defaultFn] || defaultFn).call(this, event, data);\n }\n\n return $element;\n };\n\n\n this.on = function() {\n var $element, type, callback, originalCb;\n var lastIndex = arguments.length - 1, origin = arguments[lastIndex];\n\n if (typeof origin == 'object') {\n //delegate callback\n originalCb = utils.delegate(\n this.resolveDelegateRules(origin)\n );\n } else if (typeof origin == 'string') {\n originalCb = proxyEventTo(origin);\n } else {\n originalCb = origin;\n }\n\n if (lastIndex == 2) {\n $element = $(arguments[0]);\n type = arguments[1];\n } else {\n $element = this.$node;\n type = arguments[0];\n }\n\n if (typeof originalCb != 'function' && typeof originalCb != 'object') {\n throw new Error('Unable to bind to \"' + type +\n '\" because the given callback is not a function or an object');\n }\n\n callback = originalCb.bind(this);\n callback.target = originalCb;\n callback.context = this;\n\n $element.on(type, callback);\n\n // store every bound version of the callback\n originalCb.bound || (originalCb.bound = []);\n originalCb.bound.push(callback);\n\n return callback;\n };\n\n this.off = function() {\n var $element, type, callback;\n var lastIndex = arguments.length - 1;\n\n if (typeof arguments[lastIndex] == 'function') {\n callback = arguments[lastIndex];\n lastIndex -= 1;\n }\n\n if (lastIndex == 1) {\n $element = $(arguments[0]);\n type = arguments[1];\n } else {\n $element = this.$node;\n type = arguments[0];\n }\n\n if (callback) {\n //this callback may be the original function or a bound version\n var boundFunctions = callback.target ? callback.target.bound : callback.bound || [];\n //set callback to version bound against this instance\n boundFunctions && boundFunctions.some(function(fn, i, arr) {\n if (fn.context && (this.identity == fn.context.identity)) {\n arr.splice(i, 1);\n callback = fn;\n return true;\n }\n }, this);\n $element.off(type, callback);\n } else {\n // Loop through the events of `this` instance\n // and unbind using the callback\n registry.findInstanceInfo(this).events.forEach(function (event) {\n if (type == event.type) {\n $element.off(type, event.callback);\n }\n });\n }\n\n return $element;\n };\n\n this.resolveDelegateRules = function(ruleInfo) {\n var rules = {};\n\n Object.keys(ruleInfo).forEach(function(r) {\n if (!(r in this.attr)) {\n throw new Error('Component \"' + this.toString() + '\" wants to listen on \"' + r + '\" but no such attribute was defined.');\n }\n rules[this.attr[r]] = (typeof ruleInfo[r] == 'string') ? proxyEventTo(ruleInfo[r]) : ruleInfo[r];\n }, this);\n\n return rules;\n };\n\n this.select = function(attributeKey) {\n return this.$node.find(this.attr[attributeKey]);\n };\n\n // New-style attributes\n\n this.attributes = function(attrs) {\n\n var Attributes = function() {};\n\n if (this.attrDef) {\n Attributes.prototype = new this.attrDef;\n }\n\n for (var name in attrs) {\n Attributes.prototype[name] = attrs[name];\n }\n\n this.attrDef = Attributes;\n };\n\n // Deprecated attributes\n\n this.defaultAttrs = function(defaults) {\n utils.push(this.defaults, defaults, true) || (this.defaults = defaults);\n };\n\n this.initialize = function(node, attrs) {\n attrs = attrs || {};\n this.identity || (this.identity = componentId++);\n\n if (!node) {\n throw new Error('Component needs a node');\n }\n\n if (node.jquery) {\n this.node = node[0];\n this.$node = node;\n } else {\n this.node = node;\n this.$node = $(node);\n }\n\n if (this.attrDef) {\n initAttributes.call(this, attrs);\n } else {\n initDeprecatedAttributes.call(this, attrs);\n }\n\n return this;\n };\n\n this.teardown = function() {\n teardownInstance(registry.findInstanceInfo(this));\n };\n }\n\n return withBase;\n }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\n\n/***/ }\n/******/ ])\n});\n","import { component } from 'flightjs';\nimport WithAjax from 'static/script/app/data/with-ajax';\nimport InitData from 'static/script/app/data/init-data';\nimport { reload } from 'tradera-utils/location';\n\nfunction NavigationModal() {\n this._postModal = function(evt, eventData) {\n this.trigger(document, 'data:navigation:before-modal-load', {\n element: eventData.element\n });\n this._abortPendingRequests();\n this._request = this._post({\n url: eventData.href,\n data: eventData.data,\n dataType: 'html',\n headers: { 'x-push-state-request': 'true' }\n })\n .done(\n function() {\n if (eventData.reloadAfterModalClose) {\n this._reloadAfterModalClose();\n }\n }.bind(this)\n )\n .done(this._showModal.bind(this));\n };\n\n this._getModal = function(evt, eventData) {\n this.trigger(document, 'data:navigation:before-modal-load');\n this._abortPendingRequests();\n\n if (eventData.reloadAfterModalClose) {\n this._reloadAfterModalClose();\n }\n\n this._request = this._get({\n url: eventData.href,\n dataType: 'html',\n headers: { 'x-push-state-request': 'true' }\n }).done(this._showModal.bind(this));\n };\n\n this._showModal = function(html) {\n this._request = null;\n let initData = InitData.parseHtml(html);\n this.trigger(document, 'ui:modal:open', {\n content: $(html).find('#view'),\n cssClass: 'bidding-modal'\n });\n this.trigger(document, 'data:navigation:after-modal-load', initData);\n };\n\n this._reloadAfterModalClose = function() {\n this.off(\n document,\n 'ui:body-container:on-modal-close',\n this._reloadPage\n );\n this.on(document, 'ui:body-container:on-modal-close', this._reloadPage);\n };\n\n this._reloadPage = function() {\n reload();\n };\n\n this._abortPendingRequests = function() {\n if (this._request) {\n this._request.reject();\n this._request = null;\n }\n };\n\n this.after('initialize', function() {\n this.on('data:navigation:post-to-modal', this._postModal);\n this.on('data:navigation:get-to-modal', this._getModal);\n this.on(\n document,\n 'ui:body-container:on-modal-close',\n this._abortPendingRequests\n );\n });\n}\n\nexport default component(NavigationModal, WithAjax);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as Sentry from '@sentry/react';\n\nclass ApplicationErrorBoundary extends React.Component {\n componentDidCatch() {}\n\n render() {\n const { children, fallback, capture } = this.props;\n\n if (!capture) {\n return children;\n }\n\n return (\n \n {children}\n \n );\n }\n}\n\nApplicationErrorBoundary.propTypes = {\n // Capture function, if false then errors are silently ignored\n capture: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]).isRequired,\n fallback: PropTypes.node\n};\n\nApplicationErrorBoundary.defaultProps = {\n capture: true,\n fallback: null\n};\n\nexport default ApplicationErrorBoundary;\n","function IsHybridApp() {\n return $('#app-data').length > 0;\n}\n\nexport default IsHybridApp;\n","import AbstractModal from 'static/script/utils/abstract-modal';\nimport breakpoints from 'static/script/utils/breakpoints';\n\n// This Component extends AbstractModal\nfunction ModalTooltipUI() {\n this._triggerOpen = function(evt, opts) {\n this.opts = opts;\n this._open(opts);\n };\n\n this._adjustModalPosition = function() {\n if (!this._isActive()) {\n return;\n }\n\n let element = $(this.opts.element),\n offset = element.offset(),\n thisTop,\n thisLeft,\n thisLeftPosition;\n\n this._addBreakpointClass();\n\n if (this._fitsToTheRight(element)) {\n thisTop = parseInt(offset.top + element.outerHeight() / 2 - 20, 10);\n thisLeft = parseInt(\n element.offset().left + element.outerWidth() + 15,\n 10\n ); // 15 is for the arrow\n\n this.$modal\n .removeClass(function(index, css) {\n return (css.match(/\\bmodal-tooltip-arrow-\\S+/g) || []).join(\n ' '\n );\n })\n .addClass('modal-tooltip-arrow-left-top');\n } else {\n thisLeftPosition = this._getLeftPosition(element); // Add 5px to make it differ from the other elements\n thisTop = parseInt(offset.top + element.outerHeight(), 10) + 8; // 8 is for the arrow\n thisLeft = thisLeftPosition.left;\n\n this.$modal\n .removeClass(function(index, css) {\n return (css.match(/\\bmodal-tooltip-arrow-\\S+/g) || []).join(\n ' '\n );\n })\n .addClass(\n 'modal-tooltip-arrow-top-' + thisLeftPosition.arrowPosition\n );\n }\n\n this.$modal.css({ top: thisTop, left: thisLeft });\n };\n\n this._getLeftPosition = function(element) {\n let windowWidth = parseInt($(window).outerWidth(), 10),\n modalWidth = this.$modal.outerWidth(),\n elementWidth = $(element).outerWidth(),\n bestCenter = parseInt(\n $(element).offset().left + elementWidth / 2,\n 10\n ),\n maxLeft = windowWidth - 10 - modalWidth,\n minLeft = 10,\n left = parseInt(bestCenter - modalWidth / 2, 10);\n\n if (left > maxLeft) {\n return { arrowPosition: 'right', left: maxLeft };\n } else if (left < minLeft) {\n return { arrowPosition: 'left', left: minLeft };\n } else {\n return { arrowPosition: 'center', left: left };\n }\n };\n\n this._fitsToTheRight = function(element) {\n let windowWidth = parseInt($(window).outerWidth(), 10),\n elementRightOffset = parseInt(\n element.offset().left + element.outerWidth(),\n 10\n ),\n roomLeft = windowWidth - (elementRightOffset + 10);\n\n if (roomLeft > this.$modal.outerWidth()) {\n return true;\n }\n return false;\n };\n\n this._addBreakpointClass = function() {\n this.$modal.removeClass(function(index, css) {\n return (css.match(/\\bmodal-tooltip-size-\\S+/g) || []).join(' ');\n });\n\n this.$modal.addClass('modal-tooltip-size-' + breakpoints.getCurrent());\n };\n\n this.after('initialize', function() {\n this.on(\n document,\n 'ui:save-search:on-modal-tooltip-open',\n this._triggerOpen\n );\n this.on(\n document,\n 'utils:window-resize:resized',\n this._adjustModalPosition\n );\n });\n}\n\nexport default AbstractModal.mixin(ModalTooltipUI);\n","import { component } from 'flightjs';\nimport WithAjax from 'static/script/app/data/with-ajax';\nimport InitData from 'static/script/app/data/init-data';\nimport History from 'static/script/utils/history';\n\nfunction NavigationFilter() {\n this._getFilterModal = function(evt, eventData) {\n this.trigger(document, 'data:navigation-filter:before-load', {\n forceStart: true\n });\n this._abortPendingRequests();\n\n if (eventData.reloadAfterModalClose) {\n this._reloadAfterModalClose();\n }\n\n let successCallback = function(html) {\n this._refresh(html, eventData.href);\n };\n\n this._request = this._get({\n url: eventData.href,\n dataType: 'html',\n headers: { 'x-push-state-request': 'true' }\n }).done(successCallback.bind(this));\n };\n\n this._refresh = function(html, href) {\n let replaceSelector = '[data-result-layout]';\n\n let $html = $(html),\n $newView = $html.find(replaceSelector),\n $currentView = this.$node.find(replaceSelector);\n\n let initData = InitData.setFromHtml(html);\n\n // this.trigger('ui:teardown', initData);\n\n History.pushState({ href: href }, initData.title, href);\n\n $currentView.empty().append($newView.contents());\n // var module = require(initData.module);\n // module(initData);\n\n // if (initData.subModule) {\n // var subModule = require(initData.subModule);\n // subModule(initData);\n // }\n\n this.trigger(document, 'data:navigation-filter:after-load', initData);\n };\n\n this._abortPendingRequests = function() {\n if (this._request) {\n this._request.reject();\n this._request = null;\n }\n };\n\n this.after('initialize', function() {\n this.on('ui:modal-filter-ui:on-load', this._getFilterModal);\n this.on(\n document,\n 'ui:body-container:on-modal-close',\n this._abortPendingRequests\n );\n });\n}\n\nexport default component(NavigationFilter, WithAjax);\n","export { default as LocalizedDfpAd } from './localized-dfp-ad';\nexport { default as bootReactAds } from './boot-react-ads';\n","/**\n * OBSOLETE - use google tag manager service instead:\n * src\\EbaySweden.TouchWeb\\static\\script\\app\\ui\\google-tagmanager-service.js\n *\n */\nimport { component } from 'flightjs';\n\nfunction GoogleTagManager() {\n let hitCallbackCalled = false;\n\n this.defaultAttrs({\n gaEventTrackingSelector:\n 'a[data-ga-category], button[data-ga-category]',\n gaShowEventTrackingSelector: '[data-ga-show]'\n });\n\n function pushToDataLayer(payload) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(payload);\n }\n\n this._trackPageView = function() {\n pushToDataLayer({ event: 'trackPageview' });\n };\n\n this._trackEvent = function(evt, analyticsData) {\n let eventCategory = analyticsData.category || '';\n\n if (eventCategory != '') {\n pushToDataLayer({\n event: 'trackEvent',\n eventCategory: eventCategory,\n eventAction: analyticsData.action || '',\n eventLabel: analyticsData.label || '',\n eventValue: analyticsData.value || '0',\n eventNonInteractive: this._isNonInteractive(analyticsData),\n hitCallback: analyticsData.hitCallback\n });\n }\n };\n\n this._isNonInteractive = function(analyticsData) {\n if (analyticsData.userTriggered === undefined) {\n return true;\n }\n return !analyticsData.userTriggered;\n };\n\n this._trackEventFromLink = function(evt) {\n let link = $(evt.target).closest(this.attr.gaEventTrackingSelector),\n hitCallback = null;\n\n if (link.length === 0) {\n return;\n }\n\n /* jshint maxcomplexity:7 */\n let theUserWantsToOpenTheLinkInANewTab =\n evt.which > 1 ||\n evt.metaKey ||\n evt.ctrlKey ||\n evt.keyCode > 1 ||\n evt.shiftKey;\n\n if (\n link.attr('data-nav') === undefined &&\n !evt.isDefaultPrevented() &&\n !theUserWantsToOpenTheLinkInANewTab &&\n !link.attr('target')\n ) {\n evt.preventDefault();\n evt.stopImmediatePropagation();\n hitCallback = this._changeLocation(link.attr('href'));\n }\n\n this._sendTrackEvent(link, hitCallback);\n };\n\n this._changeLocation = function(href) {\n hitCallbackCalled = false;\n\n let hitCallback = function() {\n if (hitCallbackCalled === false) {\n // Avoid double-calls since the iPad seems to continue to setTimeout when using the back button\n hitCallbackCalled = true;\n if (href) {\n window.location.href = href;\n }\n }\n };\n\n setTimeout(hitCallback, 1000);\n return hitCallback;\n };\n\n this._trackEventFromPjax = function(e, payload) {\n if (!payload.target) {\n return;\n }\n\n this._sendTrackEvent($(payload.target));\n };\n\n this._sendTrackEvent = function(link, hitCallback) {\n if (!this._hasCategoryOrLabel(link)) {\n return;\n }\n\n let payload = this._getPayloadFromLink(link);\n\n if (hitCallback) {\n payload.hitCallback = hitCallback;\n }\n\n if (payload.category != '') {\n this.trigger('analytics:track-event', payload);\n }\n };\n\n this._getPayloadFromLink = function(link) {\n let payload = {\n category: link.data('ga-category') || '',\n action: link.data('ga-action') || 'Navigation',\n label: link.data('ga-label') || '',\n value: link.data('ga-value') || null\n };\n\n return payload;\n };\n\n this._hasCategoryOrLabel = function(link) {\n if (!link.data('ga-category') && !link.data('ga-label')) {\n return false;\n }\n return true;\n };\n\n this._trackShowEvent = function() {\n this.select('gaShowEventTrackingSelector').each(\n function(i, el) {\n let $el = $(el);\n let data = {\n category: $el.data('ga-category') || '',\n action: $el.data('ga-show') || 'Show',\n label: $el.data('ga-label') || ''\n };\n\n if (data.category != '') {\n this.trigger('analytics:track-event', data);\n }\n }.bind(this)\n );\n };\n\n this._trackSearchFilterToggle = function(evt, payload) {\n let label = payload.expand === true ? 'Open' : 'Close';\n\n if (evt.type === 'ui:toggle:search-filters-categories') {\n label = label + ' categories';\n } else {\n label = label + ' filters';\n }\n\n this.trigger('analytics:track-event', {\n category: 'Search',\n action: 'Toggle',\n label: label\n });\n };\n\n this._trackCategoryMenuToggle = function(evt, payload) {\n if (!payload.open) {\n return;\n }\n\n this.trigger('analytics:track-event', {\n category: 'Category',\n action: 'Open category menu',\n label: 'Open category menu'\n });\n };\n\n this._userLoggedIn = function(evt, payload) {\n if (payload && payload.version) {\n this.trigger('analytics:track-event', {\n category: 'Login',\n action: 'Navigation',\n label: 'Successful login - member: ' + payload.memberId\n });\n } else {\n this.trigger('analytics:track-event', {\n category: 'Login',\n action: 'Login',\n label: 'member-' + payload.memberId\n });\n }\n\n pushToDataLayer({\n memberId: payload.memberId,\n loginState: 'logged in'\n });\n };\n\n this._clearPageVariables = function() {\n //Clear page variable\n pushToDataLayer({\n page: null\n });\n // Prevent previously set page variables to get a value of 0\n // There is probably a more elegant solution to this. Feel free to change\n pushToDataLayer({\n page: {}\n });\n };\n\n this.after('initialize', function() {\n this.on(document, 'analytics:track-event', this._trackEvent);\n this.on(\n document,\n 'ui:navigation:after-page-change',\n this._trackPageView\n );\n this.on(\n document,\n 'ui:toggle:search-filters ui:toggle:search-filters-categories',\n this._trackSearchFilterToggle\n );\n this.on(\n document,\n 'ui:site-header:on-toggle-nav-categories',\n this._trackCategoryMenuToggle\n );\n this.on(document, 'data:login:logged-in', this._userLoggedIn);\n this.on('click', this._trackEventFromLink);\n this.on(document, 'ui:navigate', this._trackEventFromPjax);\n this.on(document, 'ui:before-page-change', this._clearPageVariables);\n this.on(document, 'utils:window-load', this._trackShowEvent);\n });\n}\n\nexport default component(GoogleTagManager);\n","//@TODO - kil me when we kill phantomjs;\nimport $ from 'jquery';\n/**\n * @description Gets initData from HTML string or body tag;\n * @class InitData\n */\nclass InitData {\n constructor() {\n this.currentData = null;\n }\n\n /**\n * @returns {object} current initData\n * @memberof InitData\n */\n current() {\n return this.currentData ? { ...this.currentData } : null;\n }\n\n getForScribe() {\n let currentClone = this.current();\n if (currentClone) {\n delete currentClone.description;\n }\n return currentClone;\n }\n\n /**\n * @param {(string|Array)} html HTML string or dom Nodes Array.\n * @returns {object} JSON representation of initData innerHTML\n * @memberof InitData\n */\n parseHtml(html) {\n //@TODO - when we kill phantom use the following 2 lines\n // let doc = typeof html === 'string' ? new DOMParser().parseFromString(html, 'text/html') : html;\n // let initDataString = doc.querySelectorAll('#init-data')[0].innerHTML;\n let initDataString = $(html)\n .find('#init-data')\n .attr('data-init-data');\n return initDataString ? JSON.parse(initDataString) : null;\n }\n\n setFromHtml(html) {\n let parsed = this.parseHtml(html);\n this.set(parsed);\n return this.current();\n }\n\n set(val) {\n this.currentData = val;\n }\n\n currentOrSet() {\n let c = this.current();\n if (c !== null) {\n return c;\n }\n return this.setFromHtml(document.body);\n }\n}\n\nexport default new InitData();\n","import AbstractModal from 'static/script/utils/abstract-modal';\nimport Spinner from 'static/script/libs/spin';\n\n// This Component extends AbstractModal\nfunction ModalUI() {\n this._loading = function(evt, opts) {\n this._cancelSpinner();\n if (!this._isActive()) {\n this.trigger('ui:modal:open', {\n content: '
'\n });\n }\n let spinner = new Spinner({\n width: 2,\n length: 4,\n radius: 5,\n lines: 11,\n color: '#404a54'\n });\n if (opts && opts.element) {\n let $el = $(opts.element);\n $el.css('opacity', 0.5);\n $el.wrap('
')\n .parent()\n .each(function() {\n spinner.spin(this);\n });\n } else {\n let e = this.$modalContent[0];\n this.$modalHtml.addClass('modal-loading');\n this.timeout = setTimeout(function() {\n spinner.spin(e);\n }, 500);\n }\n };\n\n this.after('initialize', function() {\n this.on(document, 'ui:modal:open', this.triggerOpen);\n this.on(document, 'ui:modal:close', this.triggerClose);\n this.on(\n document,\n 'ui:modal:set-non-dismissible',\n this.triggerSetNonDismissible\n );\n this.on(document, 'data:navigation:before-modal-load', this._loading);\n });\n}\n\nexport default AbstractModal.mixin(ModalUI);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\n\nconst WaitForConsentApiLoaded = ({ placeHolder, onLoadRender }) => {\n const isTcfLoaded = useSelector(state => state.ads.isTcfLoaded);\n if (!isTcfLoaded) return placeHolder || null; // Return ads placeholder until Tcf is loaded\n return <>{onLoadRender()};\n};\n\nWaitForConsentApiLoaded.propTypes = {\n placeHolder: PropTypes.node,\n onLoadRender: PropTypes.func.isRequired\n};\n\nexport default WaitForConsentApiLoaded;\n","import { component } from 'flightjs';\nimport WithAjax from 'static/script/app/data/with-ajax';\nimport { toLocalizedRiotUrl } from 'tradera-apps/syi/script/app_react/utils/language';\n\nfunction NavigationData() {\n this.defaultAttrs({\n pageContainer: '#page-container',\n noShowError: true,\n version: null\n });\n\n this.navigate = function(evt, eventData) {\n this.fullPageReload(eventData.href);\n };\n\n this.fullPageReload = function(href) {\n window.location.href = toLocalizedRiotUrl(href);\n };\n\n this.doTeardown = function() {\n component.teardownAll();\n };\n\n this.after('initialize', function() {\n this.on(document, 'ui:navigate', this.navigate);\n this.on(document, 'ui:teardown', this.doTeardown);\n });\n}\n\nexport default component(NavigationData, WithAjax);\n","import { component } from 'flightjs';\nimport 'static/script/libs/jquery';\nimport memberInfo from 'static/script/app/data/member-info';\n\nfunction TempData() {\n this._process = function(actions) {\n let tempDataString = this.$node.val();\n let tempData = JSON.parse(tempDataString);\n\n Object.entries(tempData).forEach(([key, value]) => {\n if (actions[key]) {\n actions[key](value);\n }\n });\n };\n\n this.after('initialize', function() {\n let actions = {\n justLoggedIn: this._justLoggedIn.bind(this),\n justLoggedInV2: this._justLoggedInV2.bind(this),\n errorMessage: this._errorMessage.bind(this)\n };\n\n this._process(actions);\n });\n\n this._justLoggedIn = function(value) {\n if (value) {\n let payload = { memberId: memberInfo.memberId };\n this.trigger(document, 'data:login:logged-in', payload);\n }\n };\n\n this._justLoggedInV2 = function(value) {\n if (value) {\n let payload = { memberId: memberInfo.memberId, version: 'V2' };\n this.trigger(document, 'data:login:logged-in', payload);\n }\n };\n\n this._errorMessage = function(value) {\n if (value) {\n let payload = { message: value };\n this.trigger(document, 'ui:error:show', payload);\n }\n };\n}\n\nexport default component(TempData);\n","/*jslint bitwise: true */\nimport $ from 'static/script/libs/jquery';\nimport breakpoints from 'static/script/utils/breakpoints';\nimport { component } from 'flightjs';\nimport Spinner from 'static/script/libs/spin';\nimport isHybridApp from 'static/script/utils/is-hybrid-app';\n\nfunction Loading() {\n this.defaultAttrs({\n delayInMilliseconds: 1000,\n timeoutId: -1,\n forced: false\n });\n\n this._spinner = (function() {\n let currentSpinner = null;\n let stop = function() {\n if (!currentSpinner) {\n return;\n }\n currentSpinner.stop();\n currentSpinner = null;\n };\n let start = function() {\n if (currentSpinner) {\n stop();\n }\n\n let options = {\n top: parseInt(\n $(window).scrollTop() + ($(window).height() / 7) * 3 || 0,\n 10\n ),\n lines: 9,\n length: 8,\n width: 4,\n radius: 6,\n className: 'framed-spinner'\n };\n\n currentSpinner = new Spinner(options);\n currentSpinner.spin(document.body);\n };\n return {\n start: start,\n stop: stop\n };\n })();\n\n this._show = function(evt, payload) {\n if (breakpoints.isVisible(breakpoints.xlarge) || isHybridApp()) {\n return;\n }\n\n if (\n payload &&\n payload.hasOwnProperty('forceStart') &&\n payload.forceStart === true\n ) {\n this.attr.forced = true;\n }\n\n this._spinner.start();\n this.attr.timeoutId = -1;\n };\n\n this._startDelay = function() {\n if (this.attr.forced !== true) {\n this._hide();\n this.attr.timeoutId = window.setTimeout(\n this._show.bind(this),\n this.attr.delayInMilliseconds\n );\n }\n };\n\n this._hide = function() {\n if (this.attr.timeoutId !== -1) {\n window.clearTimeout(this.attr.timeoutId);\n this.attr.timeoutId = -1;\n }\n\n this.attr.forced = false;\n this._spinner.stop();\n };\n\n this.after('initialize', function() {\n this.on(document, 'ui:loading:before-load', this._show);\n this.on(document, 'ui:loading:after-load', this._hide);\n\n this.on(document, 'ui:side-menu:on-filter-click', this._show);\n this.on(document, 'data:navigation-filter:before-load', this._show);\n this.on(document, 'data:navigation-filter:after-load', this._hide);\n this.on(document, 'data:navigation:before-page-load', this._startDelay);\n this.on(document, 'data:navigation-filter:after-load', this._hide);\n this.on(document, 'data:navigation:after-page-load', this._hide);\n this.on(document, 'ui:site-search:on-search-field-input', this._hide);\n });\n}\n\nexport default component(Loading);\n","import { component } from 'flightjs';\nimport { toLocalizedRiotUrl } from 'tradera-apps/syi/script/app_react/utils/language';\n\nfunction Login() {\n this._showLogin = function(evt, evtData) {\n const destination =\n evtData && evtData.destination\n ? evtData.destination\n : encodeURIComponent(window.location.pathname) +\n encodeURIComponent(window.location.search);\n const url = toLocalizedRiotUrl('/login?ReturnUrl=' + destination);\n document.location.href = url;\n };\n\n this.after('initialize', function() {\n this.on(document, 'ui:login:show', this._showLogin);\n });\n}\n\nexport default component(Login);\n","import $ from 'static/script/libs/jquery';\nimport { component } from 'flightjs';\n\nfunction SavedSearchMonitorTogglerUI() {\n this.defaultAttrs({\n idAttribute: 'data-search-form-monitor-id',\n savedSearchTogglerElement: '[data-search-form-monitor-id]',\n savedSearchTogglerLabelElement: '[data-search-form-monitor-label]',\n disabledClass: 'disabled'\n });\n\n this._onToggleChange = function(element) {\n let eventName, payload;\n\n if (element.is(':checked')) {\n eventName = 'ui:saved-searches:on-monitor-start';\n payload = {\n SearchId: element.attr(this.attr.idAttribute),\n SendMail: true,\n element: element\n };\n } else {\n eventName = 'ui:saved-searches:on-monitor-stop';\n payload = {\n SearchId: element.attr(this.attr.idAttribute),\n SendMail: false,\n element: element\n };\n }\n\n element.addClass(this.attr.disabledClass); // Avoid double clicks or slow connections clicking twice\n this.trigger(eventName, payload);\n };\n\n this._monitoringCallback = function(evt, payload) {\n let sendMail = payload.sendMail,\n element = payload.element;\n\n if (element.is(':checkbox')) {\n element.attr('checked', sendMail);\n element.removeClass(this.attr.disabledClass);\n }\n };\n\n this._clickOnCheckbox = function(evt, options) {\n evt.stopPropagation(); // If the checkbox is inside a