1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-08-02 15:27:00 +00:00
fcast/receivers/webos/fcast-receiver/lib/webOSTVjs-1.2.10/webOSTV.js
2024-12-09 00:56:55 -06:00

1 line
No EOL
15 KiB
JavaScript

window.webOS=function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=1)}([function(e){e.exports=JSON.parse('{"name":"webostv-js","version":"1.2.10","description":"","main":"index.js","scripts":{"belazy":"npm run lint && npm run release","build":"node scripts/build.js","build:dev":"node scripts/build.js develop","clean":"git clean -xdf","lint":"eslint . --cache","format":"prettier --write \\"{src,tests,config,scripts}/**/*.{js,json}\\"","release":"node scripts/release.js","zip":"node scripts/zip.js","test":"node scripts/test.js app","test:mocha":"node scripts/test.js mocha"},"repository":{"type":"git","url":"http://mod.lge.com/hub/tvsdk/webostv-js.git"},"keywords":[],"author":"LGE TV Lab","license":"Apache-2.0","devDependencies":{"@babel/cli":"^7.10.1","@babel/core":"^7.10.2","@babel/polyfill":"^7.10.1","@babel/preset-env":"^7.10.2","address":"^1.0.3","archiver":"^4.0.1","babel-loader":"^8.1.0","chalk":"^2.4.1","command-exists":"^1.2.7","eslint":"^4.19.1","eslint-config-airbnb-base":"^12.1.0","eslint-loader":"^2.0.0","eslint-plugin-import":"^2.12.0","fs-extra":"^8.1.0","html-webpack-plugin":"^4.3.0","mocha":"^5.2.0","mocha-loader":"^1.1.3","prettier":"^3.2.5","webpack":"^4.10.1","webpack-dev-server":"^3.1.4","webpack-merge":"^4.1.2"}}')},function(e,t,n){"use strict";n.r(t),n.d(t,"deviceInfo",(function(){return I})),n.d(t,"fetchAppId",(function(){return o})),n.d(t,"fetchAppInfo",(function(){return i})),n.d(t,"fetchAppRootPath",(function(){return s})),n.d(t,"keyboard",(function(){return H})),n.d(t,"libVersion",(function(){return K})),n.d(t,"platformBack",(function(){return u})),n.d(t,"platform",(function(){return k})),n.d(t,"service",(function(){return b})),n.d(t,"systemInfo",(function(){return L}));var o=function(){return window.PalmSystem&&window.PalmSystem.identifier?window.PalmSystem.identifier.split(" ")[0]:""},r={},i=function(e,t){if(0===Object.keys(r).length){var n=function(t,n){if(!t&&n)try{r=JSON.parse(n),e&&e(r)}catch(t){console.error("Unable to parse appinfo.json file for",o()),e&&e()}else e&&e()},i=new window.XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&(i.status>=200&&i.status<300||0===i.status?n(null,i.responseText):n({status:404}))};try{i.open("GET",t||"appinfo.json",!0),i.send(null)}catch(e){n({status:404})}}else e&&e(r)},s=function(){var e=window.location.href;if("baseURI"in window.document)e=window.document.baseURI;else{var t=window.document.getElementsByTagName("base");t.length>0&&(e=t[0].href)}var n=e.match(/.*:\/\/[^#]*\//);return n?n[0]:""},u=function(){if(window.PalmSystem&&window.PalmSystem.platformBack)return window.PalmSystem.platformBack()};function a(e){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){d(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function d(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,m(o.key),o)}}function m(e){var t=function(e,t){if("object"!==a(e)||null===e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!==a(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===a(t)?t:String(t)}var p={},v=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.bridge=null,this.cancelled=!1,this.subscribe=!1}var t,n,o;return t=e,(n=[{key:"send",value:function(e){var t=e.service,n=void 0===t?"":t,o=e.method,r=void 0===o?"":o,i=e.parameters,s=void 0===i?{}:i,u=e.onSuccess,a=void 0===u?function(){}:u,c=e.onFailure,d=void 0===c?function(){}:c,f=e.onComplete,m=void 0===f?function(){}:f,v=e.subscribe,b=void 0!==v&&v;if(!window.PalmServiceBridge){var y={errorCode:-1,errorText:"PalmServiceBridge is not found.",returnValue:!1};return d(y),m(y),console.error("PalmServiceBridge is not found."),this}this.ts&&p[this.ts]&&delete p[this.ts];var g,w=l({},s);return this.subscribe=b,this.subscribe&&(w.subscribe=this.subscribe),w.subscribe&&(this.subscribe=w.subscribe),this.ts=Date.now(),p[this.ts]=this,this.bridge=new PalmServiceBridge,this.bridge.onservicecallback=this.callback.bind(this,a,d,m),this.bridge.call(("/"!==(g=n).slice(-1)&&(g+="/"),g+r),JSON.stringify(w)),this}},{key:"callback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";if(!this.cancelled){var r={};try{r=JSON.parse(o)}catch(e){r={errorCode:-1,errorText:o,returnValue:!1}}var i=r,s=i.errorCode,u=i.returnValue;s||!1===u?(r.returnValue=!1,t(r)):(r.returnValue=!0,e(r)),n(r),this.subscribe||this.cancel()}}},{key:"cancel",value:function(){this.cancelled=!0,null!==this.bridge&&(this.bridge.cancel(),this.bridge=null),this.ts&&p[this.ts]&&delete p[this.ts]}}])&&f(t.prototype,n),o&&f(t,o),Object.defineProperty(t,"prototype",{writable:!1}),e}(),b={request:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=l({service:e},t);return(new v).send(n)}};function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var g={};if("object"===("undefined"==typeof window?"undefined":y(window))&&window.PalmSystem){if(window.navigator.userAgent.indexOf("SmartWatch")>-1)g.watch=!0;else if(window.navigator.userAgent.indexOf("SmartTV")>-1||window.navigator.userAgent.indexOf("Large Screen")>-1)g.tv=!0;else{try{var w=JSON.parse(window.PalmSystem.deviceInfo||"{}");if(w.platformVersionMajor&&w.platformVersionMinor){var h=Number(w.platformVersionMajor),O=Number(w.platformVersionMinor);h<3||3===h&&O<=0?g.legacy=!0:g.open=!0}}catch(e){g.open=!0}window.Mojo=window.Mojo||{relaunch:function(){}},window.PalmSystem.stageReady&&window.PalmSystem.stageReady()}if(window.navigator.userAgent.indexOf("Chr0me")>-1||window.navigator.userAgent.indexOf("Chrome")>-1){var S=window.navigator.userAgent.indexOf("Chr0me")>-1?window.navigator.userAgent.indexOf("Chr0me"):window.navigator.userAgent.indexOf("Chrome"),V=window.navigator.userAgent.slice(S).indexOf(" "),j=window.navigator.userAgent.slice(S+7,S+V).split(".");g.chrome=Number(j[0])}else g.chrome=0}else g.unknown=!0;var k=g,T={},P={},x=!1,D=!1,A=!1,C=[];function M(e){D&&A?(C.length&&(C.forEach((function(t){t!==e&&t(T)})),C=[]),e(T)):C.push(e)}function _(e){P.soundOutput&&0===P.soundOutput.indexOf("external_arc")&&"external_arc_sound_alive"!==P.soundOutput?e(!0):!P.soundOutput||0!==P.soundOutput.indexOf("tv_")&&"external_arc_sound_alive"!==P.soundOutput?e(null):e(!1)}function N(e){"auto"===P.soundOutputDigital||"passThrough"===P.soundOutputDigital?e(!0):e(!1)}function z(e,t){T.dolbyAtmos!==e&&(T.dolbyAtmos=e,D=!0,M(t))}function B(e){!function(e){T.sdkVersion&&e(T.sdkVersion.split(".")),(new v).send({service:"luna://com.webos.service.tv.systemproperty",method:"getSystemInfo",parameters:{keys:["sdkVersion"]},onSuccess:function(t){T.sdkVersion=t.sdkVersion||T.sdkVersion,e(T.sdkVersion.split("."))},onFailure:function(){e([0,0,0])}})}((function(t){parseInt(t[0],10)>=5?(new v).send({service:"luna://com.webos.service.arccontroller",method:"getARCState",subscribe:!0,onComplete:function(t){_((function(n){(n||!P.dolbyAtmosConfig&&"tv_speaker_external_arc_harmony"===P.soundOutput)&&N((function(n){z(!!n&&(t.returnValue&&"ATMOS"===t.arcProfile),e)}))}))},onFailure:function(){console.log("[webOSTV.js] getARCState failed"),z(!1,e)}}):(new v).send({service:"luna://com.webos.service.eim",method:"getAllInputStatus",subscribe:!0,onComplete:function(t){_((function(n){!n&&(P.dolbyAtmosConfig||"tv_speaker_external_arc_harmony"!==P.soundOutput&&void 0!==P.soundOutput)||N((function(n){z(!!n&&(t.returnValue&&!0===t.atmosDevice),e)}))}))},onFailure:function(){console.log("[webOSTV.js] getAllInputStatus failed"),z(!1,e)}})}))}function R(e){void 0===P.dolbyAtmosConfig?(new v).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["tv.config.supportDolbyTVATMOS","tv.model.soundModeType"]},onComplete:function(t){P.dolbyAtmosConfig=t.configs?t.configs["tv.config.supportDolbyTVATMOS"]||"Dolby Atmos"===t.configs["tv.model.soundModeType"]:"failure",R(e)}}):!0===P.dolbyAtmosConfig?z(!0,e):!1===P.dolbyAtmosConfig?"tv_speaker_external_arc_harmony"===P.soundOutput?N((function(t){t?B(e):z(!1,e)})):void 0===P.soundOutput?(console.log("[webOSTV.js] soundOutput value is",P.soundOutput),B(e)):z(!1,e):(console.log("[webOSTV.js] dolbyAtmos config is",P.dolbyAtmosConfig),z(!1,e))}function E(e){(new v).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","profile.list","tv.config.supportDolbyHDRContents","tv.hw.ddrSize","tv.hw.displayType","tv.hw.panelResolution","tv.model.mainboardMaker","tv.model.modelname","tv.model.supportHDR","tv.model.supportTemp8K","tv.model.TVBrandName","tv.model.TVManufacturer","tv.nyx.firmwareVersion","tv.nyx.platformVersion","wee.platformBizType"]},onComplete:function(t){if(t.configs){if(T.modelName=t.configs["tv.model.modelname"]||T.modelName,t.configs["tv.nyx.firmwareVersion"]&&"0.0.0"!==t.configs["tv.nyx.firmwareVersion"]||(t.configs["tv.nyx.firmwareVersion"]=t.configs["tv.nyx.platformVersion"]),t.configs["tv.nyx.firmwareVersion"]){T.version=t.configs["tv.nyx.firmwareVersion"];for(var n=T.version.split("."),o=["versionMajor","versionMinor","versionDot"],r=0;r<o.length;r+=1)try{T[o[r]]=parseInt(n[r],10)}catch(e){T[o[r]]=n[r]}}T.sdkVersion=t.configs["tv.nyx.platformVersion"]||T.sdkVersion,T.uhd="UD"===t.configs["tv.hw.panelResolution"]||"8K"===t.configs["tv.hw.panelResolution"],T.uhd8K="8K"===t.configs["tv.hw.panelResolution"]||!0===t.configs["tv.model.supportTemp8K"],T.oled="OLED"===t.configs["tv.hw.displayType"],T.ddrSize=t.configs["tv.hw.ddrSize"],T.hdr10=!0===t.configs["tv.model.supportHDR"],T.dolbyVision=!0===t.configs["tv.config.supportDolbyHDRContents"],T.brandName=t.configs["tv.model.TVBrandName"]||T.brandName,T.manufacturer=t.configs["tv.model.TVManufacturer"]||T.manufacturer,T.mainboardMaker=t.configs["tv.model.mainboardMaker"],t.configs["wee.platformBizType"]?T.platformBizType=t.configs["wee.platformBizType"]:"WEE"===t.configs["com.webos.app.home.uiStyle"]&&(T.platformBizType="wee"),t.configs["profile.list"]?T.tuner=!t.configs["profile.list"].includes("tunerless"):t.configs["com.webos.service.utp.supportTunerless"]&&(T.tuner=!1)}!t.returnValue||function(e){var t=["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","profile.list","tv.model.mainboardMaker","tv.model.supportTemp8K","tv.model.TVBrandName","tv.model.TVManufacturer","wee.platformBizType"],n=!1;if(e&&Array.isArray(e))for(var o=0;o<e.length;o+=1)if(!t.includes(e[o])){n=!0;break}return n}(t.missingConfigs)?function(e){(new v).send({service:"luna://com.webos.service.tv.systemproperty",method:"getSystemInfo",parameters:{keys:["ddrSize","firmwareVersion","modelName","OLED","sdkVersion","UHD"]},onComplete:function(t){if(T.modelName=t.modelName||T.modelName,T.sdkVersion=t.sdkVersion||T.sdkVersion,T.uhd=t.UHD?"true"===t.UHD:T.uhd,T.oled=t.OLED?"true"===t.OLED:T.oled,T.ddrSize=t.ddrSize||T.ddrSize,t.firmwareVersion&&"0.0.0"!==t.firmwareVersion||(t.firmwareVersion=t.sdkVersion),t.firmwareVersion){T.version=t.firmwareVersion;for(var n=T.version.split("."),o=["versionMajor","versionMinor","versionDot"],r=0;r<o.length;r+=1)try{T[o[r]]=parseInt(n[r],10)}catch(e){T[o[r]]=n[r]}}A=!0,M(e)}})}(e):(A=!0,M(e))}})}var I=function(e){!function(e){(new v).send({service:"luna://com.webos.settingsservice",method:"getSystemSettings",parameters:{category:"sound",keys:["soundOutput","soundOutputDigital"]},subscribe:!0,onSuccess:function(t){t.settings?(P.soundOutput=t.settings.soundOutput||P.soundOutput,P.soundOutputDigital=t.settings.soundOutputDigital||P.soundOutputDigital,t.settings.soundOutput?(P.soundOutput=t.settings.soundOutput,_((function(t){t?N((function(t){t?B(e):z(!1,e)})):!1===t?R(e):z(!1,e)}))):t.settings.soundOutputDigital&&_((function(t){(t||"tv_speaker_external_arc_harmony"===P.soundOutput&&!0!==P.dolbyAtmosConfig)&&N((function(t){t?B(e):z(!1,e)}))}))):z(!1,e)},onFailure:function(){console.log("[webOSTV.js] getSystemSettings(soundOutput) failed"),R(e)}})}(e),x?M(e):(x=!0,function(){try{var e=JSON.parse(window.PalmSystem.deviceInfo);T.modelName=e.modelName,T.version=e.platformVersion,T.versionMajor=e.platformVersionMajor,T.versionMinor=e.platformVersionMinor,T.versionDot=e.platformVersionDot,T.screenWidth=e.screenWidth,T.screenHeight=e.screenHeight}catch(e){T.modelName="webOS Device"}T.screenHeight=T.screenHeight||window.screen.height,T.screenWidth=T.screenWidth||window.screen.width}(),k.tv?(T.uhd=!1,T.uhd8K=!1,T.hdr10=!1,T.dolbyVision=!1,T.brandName="LG",T.manufacturer="LG Electronics",T.platformBizType="LG",T.tuner=!0,E(e)):(A=!0,M(e)))},H={isShowing:function(){return PalmSystem&&PalmSystem.isKeyboardVisible}},L=function(){var e={};if(window.PalmSystem){if(window.PalmSystem.country){var t=JSON.parse(window.PalmSystem.country);e.country=t.country,e.smartServiceCountry=t.smartServiceCountry}window.PalmSystem.timeZone&&(e.timezone=window.PalmSystem.timeZone)}return e},K=n(0).version}]);