{"version":3,"file":"History.js","names":["pushState","data","pageTitle","document","title","encodeHTMLEntity","b","arguments","length","args","Array","e","window","history","replaceState","c","d","a","setters","Event","execute","GLOBAL_PREVIOUS_STATE","onpushstate","state","onpopstate","globalPrevState","isHistoryState","emit"],"sources":["services/History.js"],"sourcesContent":["import { Event } from 'services/EventEmitter';\nimport { encodeHTMLEntity } from 'toolbox/html';\n\nlet GLOBAL_PREVIOUS_STATE = null;\n\n/**\n * Push state\n * @param {Object} data - Data to be pushed\n * @param {...*} args - list of arguments\n */\nexport function pushState(data, ...args) {\n if (data && data.pageTitle) {\n document.title = encodeHTMLEntity(data.pageTitle);\n }\n\n window.history.pushState(data, ...args);\n}\n\n/**\n * Replace state\n * @param {Object} data - Data to be updated\n * @param {...*} args - list of arguments\n */\nexport function replaceState(data, ...args) {\n if (data && data.pageTitle) {\n document.title = encodeHTMLEntity(data.pageTitle);\n }\n\n window.history.replaceState(data, ...args);\n}\n\n\nwindow.onpushstate = function onpushstate(e) {\n GLOBAL_PREVIOUS_STATE = e.state;\n};\n\nwindow.onpopstate = function onpopstate(e) {\n if (e.state) {\n // @TODO: do we need to update other meta tags like description, keywords, etc. ?\n if (e.state.pageTitle) {\n document.title = encodeHTMLEntity(e.state.pageTitle);\n }\n\n const globalPrevState = GLOBAL_PREVIOUS_STATE;\n\n if (!globalPrevState || globalPrevState.isHistoryState) {\n Event.emit('state.changed', e.state);\n }\n }\n};\n"],"mappings":"+FAUO,QAAS,CAAAA,SAASA,CAACC,CAAI,CAAW,CACjCA,CAAI,EAAIA,CAAI,CAACC,SAAS,GACtBC,QAAQ,CAACC,KAAK,CAAGC,CAAgB,CAACJ,CAAI,CAACC,SAAS,CAAC,UAAAI,CAAA,CAAAC,SAAA,CAAAC,MAAA,CAFtBC,CAAI,CAAAC,KAAA,GAAAJ,CAAA,CAAAA,CAAA,MAAAK,CAAA,GAAAA,CAAA,CAAAL,CAAA,CAAAK,CAAA,GAAJF,CAAI,CAAAE,CAAA,IAAAJ,SAAA,CAAAI,CAAA,EAKnCC,MAAM,CAACC,OAAO,CAACb,SAAS,CAACC,CAAI,CAAE,GAAGQ,CAAI,CAC1C,CAOO,QAAS,CAAAK,YAAYA,CAACb,CAAI,CAAW,CACpCA,CAAI,EAAIA,CAAI,CAACC,SAAS,GACtBC,QAAQ,CAACC,KAAK,CAAGC,CAAgB,CAACJ,CAAI,CAACC,SAAS,CAAC,UAAAI,CAAA,CAAAC,SAAA,CAAAC,MAAA,CAFnBC,CAAI,CAAAC,KAAA,GAAAJ,CAAA,CAAAA,CAAA,MAAAK,CAAA,GAAAA,CAAA,CAAAL,CAAA,CAAAK,CAAA,GAAJF,CAAI,CAAAE,CAAA,IAAAJ,SAAA,CAAAI,CAAA,EAKtCC,MAAM,CAACC,OAAO,CAACC,YAAY,CAACb,CAAI,CAAE,GAAGQ,CAAI,CAC7C,CAAC,IAAAH,CAAA,CAAAS,CAAA,CAAAC,CAAA,QAAAC,CAAA,EAAAjB,SAAA,CAnBeA,SAAS,CAAAc,YAAA,CAaTA,YAAY,IAAAI,OAAA,WAAAD,CAAA,EAvBnBE,CAAK,CAAAF,CAAA,CAALE,KAAK,WAAAF,CAAA,EACLZ,CAAgB,CAAAY,CAAA,CAAhBZ,gBAAgB,GAAAe,OAAA,SAAAA,CAAA,EAErBC,CAAqB,CAAG,IAAI,CA6BhCT,MAAM,CAACU,WAAW,CAAG,QAAS,CAAAA,WAAWA,CAACX,CAAC,CAAE,CACzCU,CAAqB,CAAGV,CAAC,CAACY,KAC9B,CAAC,CAEDX,MAAM,CAACY,UAAU,CAAG,QAAS,CAAAA,UAAUA,CAACb,CAAC,CAAE,CACvC,GAAIA,CAAC,CAACY,KAAK,CAAE,CAELZ,CAAC,CAACY,KAAK,CAACrB,SAAS,GACjBC,QAAQ,CAACC,KAAK,CAAGC,CAAgB,CAACM,CAAC,CAACY,KAAK,CAACrB,SAAS,CAAC,EAGxD,KAAM,CAAAuB,CAAe,CAAGJ,CAAqB,CAAC,CAE1C,CAACI,CAAe,EAAIA,CAAe,CAACC,cAAc,GAClDP,CAAK,CAACQ,IAAI,CAAC,eAAe,CAAEhB,CAAC,CAACY,KAAK,CAE3C,CACJ,CAAC","ignoreList":[]}