{"version":3,"file":"timing-D4iu--sf.js","sources":["../../../app/assets/javascripts/app/tracking/google/timing.ts"],"sourcesContent":["\n// https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingTiming\nconst isValidTime = (time_ms: null | number) => {\n if (time_ms == null) { return null }\n\n return 0 < time_ms && time_ms < 60 * 60 * 1000\n}\n\nconst Timer = {\n init(category: string, action: string, opt_label?: any, opt_val?: any){\n this.category = category\n this.action = action\n this.opt_label = opt_label\n this.opt_val = opt_val\n },\n recordStartTime(){\n this.start_time = new Date().getTime()\n },\n recordEndTime(){\n this.end_time = new Date().getTime()\n },\n send(){\n if (isValidTime(this._timeSpent())){\n if ((window as any)._gaq){\n (window as any)._gaq.push([\"_trackTiming\", this.category, this.action, this._timeSpent(), this.opt_label, this.opt_val])\n }\n }\n },\n _timeSpent(){\n if (!this.start_time || !this.end_time){\n return null\n }\n return this.end_time - this.start_time\n },\n}\n\n\nconst PageVisitDurationTimer = Object.assign({}, Timer, {\n init(page_name: string, opt_label?: any, opt_val?: any){\n // Put page name in category, hope that's fine\n Timer.init.call(this, page_name, \"Browse\", opt_label, opt_val)\n this.autoTiming()\n },\n autoTiming(){\n // record start time when created\n this.recordStartTime()\n // Using umbrellajs for unload related event types would throw error like\n // \"Blocked a frame with origin \"xxx\" from accessing a cross-origin frame.\"\n window.addEventListener(\"unload\", () => {\n this.recordEndTime()\n this.send()\n })\n },\n})\n\nconst factory = {\n create(page_name: string, opt_label?: any, opt_val?: any ){\n const x: typeof PageVisitDurationTimer = Object.create(PageVisitDurationTimer)\n x.init(page_name, opt_label, opt_val)\n return x\n },\n}\n\nexport default {\n PageVisitDurationTimer: factory,\n}\n\n\n"],"names":["isValidTime","time_ms","Timer","category","action","opt_label","opt_val","PageVisitDurationTimer","page_name","factory","x","Timing"],"mappings":"AAEA,MAAMA,EAAeC,GACfA,GAAW,KAAe,KAEvB,EAAIA,GAAWA,EAAU,KAG5BC,EAAQ,CACZ,KAAKC,EAAkBC,EAAgBC,EAAiBC,EAAc,CACpE,KAAK,SAAWH,EAChB,KAAK,OAASC,EACd,KAAK,UAAYC,EACjB,KAAK,QAAUC,CACjB,EACA,iBAAiB,CACf,KAAK,WAAa,IAAI,KAAK,EAAE,QAAQ,CACvC,EACA,eAAe,CACb,KAAK,SAAW,IAAI,KAAK,EAAE,QAAQ,CACrC,EACA,MAAM,CACAN,EAAY,KAAK,WAAW,CAAC,GAC1B,OAAe,MACjB,OAAe,KAAK,KAAK,CAAC,eAAgB,KAAK,SAAU,KAAK,OAAQ,KAAK,aAAc,KAAK,UAAW,KAAK,OAAO,CAAC,CAG7H,EACA,YAAY,CACV,MAAI,CAAC,KAAK,YAAc,CAAC,KAAK,SACrB,KAEF,KAAK,SAAW,KAAK,UAAA,CAEhC,EAGMO,EAAyB,OAAO,OAAO,CAAA,EAAIL,EAAO,CACtD,KAAKM,EAAmBH,EAAiBC,EAAc,CAErDJ,EAAM,KAAK,KAAK,KAAMM,EAAW,SAAUH,EAAWC,CAAO,EAC7D,KAAK,WAAW,CAClB,EACA,YAAY,CAEV,KAAK,gBAAgB,EAGd,OAAA,iBAAiB,SAAU,IAAM,CACtC,KAAK,cAAc,EACnB,KAAK,KAAK,CAAA,CACX,CAAA,CAEL,CAAC,EAEKG,EAAU,CACd,OAAOD,EAAmBH,EAAiBC,EAAe,CAClD,MAAAI,EAAmC,OAAO,OAAOH,CAAsB,EAC3E,OAAAG,EAAA,KAAKF,EAAWH,EAAWC,CAAO,EAC7BI,CAAA,CAEX,EAEeC,EAAA,CACb,uBAAwBF,CAC1B"}