Files
2026-05-04 21:01:10 +02:00

1 line
14 KiB
JavaScript

!function(){"use strict";var e={d:function(n,t){for(var o in t)e.o(t,o)&&!e.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:t[o]})},o:function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{deviceInfo:function(){return E},fetchAppId:function(){return t},fetchAppInfo:function(){return r},fetchAppRootPath:function(){return i},keyboard:function(){return H},libVersion:function(){return K},platform:function(){return P},platformBack:function(){return s},service:function(){return g},systemInfo:function(){return L}});var t=function(){return window.PalmSystem&&window.PalmSystem.identifier?window.PalmSystem.identifier.split(" ")[0]:""},o={},r=function(e,n){if(0===Object.keys(o).length){var r=function(n,r){if(!n&&r)try{o=JSON.parse(r),e&&e(o)}catch(n){console.error("Unable to parse appinfo.json file for",t()),e&&e()}else e&&e()},i=new window.XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&(i.status>=200&&i.status<300||0===i.status?r(null,i.responseText):r({status:404}))};try{i.open("GET",n||"appinfo.json",!0),i.send(null)}catch(e){r({status:404})}}else e&&e(o)},i=function(){var e=window.location.href;if("baseURI"in window.document)e=window.document.baseURI;else{var n=window.document.getElementsByTagName("base");n.length>0&&(e=n[0].href)}var t=e.match(/.*:\/\/[^#]*\//);return t?t[0]:""},s=function(){if(window.PalmSystem&&window.PalmSystem.platformBack)return window.PalmSystem.platformBack()};function u(e){return u="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},u(e)}function a(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),t.push.apply(t,o)}return t}function c(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?a(Object(t),!0).forEach(function(n){l(e,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):a(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))})}return e}function l(e,n,t){return(n=d(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function f(e,n){for(var t=0;t<n.length;t++){var o=n[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,d(o.key),o)}}function d(e){var n=function(e){if("object"!=u(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var t=n.call(e,"string");if("object"!=u(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==u(n)?n:n+""}var m={},p=function(){return e=function e(){!function(e,n){if(!(e instanceof n))throw new TypeError("Cannot call a class as a function")}(this,e),this.bridge=null,this.cancelled=!1,this.subscribe=!1},n=[{key:"send",value:function(e){var n=e.service,t=void 0===n?"":n,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,l=e.onFailure,f=void 0===l?function(){}:l,d=e.onComplete,p=void 0===d?function(){}:d,v=e.subscribe,g=void 0!==v&&v;if(!window.PalmServiceBridge){var y={errorCode:-1,errorText:"PalmServiceBridge is not found.",returnValue:!1};return f(y),p(y),console.error("PalmServiceBridge is not found."),this}this.ts&&m[this.ts]&&delete m[this.ts];var w,b=c({},s);return this.subscribe=g,this.subscribe&&(b.subscribe=this.subscribe),b.subscribe&&(this.subscribe=b.subscribe),this.ts=Date.now(),m[this.ts]=this,this.bridge=new PalmServiceBridge,this.bridge.onservicecallback=this.callback.bind(this,a,f,p),this.bridge.call(("/"!==(w=t).slice(-1)&&(w+="/"),w+r),JSON.stringify(b)),this}},{key:"callback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},t=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,n(r)):(r.returnValue=!0,e(r)),t(r),this.subscribe||this.cancel()}}},{key:"cancel",value:function(){this.cancelled=!0,null!==this.bridge&&(this.bridge.cancel(),this.bridge=null),this.ts&&m[this.ts]&&delete m[this.ts]}}],n&&f(e.prototype,n),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,n}(),v={request:function(){var e=c({service:arguments.length>0&&void 0!==arguments[0]?arguments[0]:""},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return(new p).send(e)}},g=v;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},y(e)}var w={};if("object"===("undefined"==typeof window?"undefined":y(window))&&window.PalmSystem){if(window.navigator.userAgent.indexOf("SmartWatch")>-1)w.watch=!0;else if(window.navigator.userAgent.indexOf("SmartTV")>-1||window.navigator.userAgent.indexOf("Large Screen")>-1)w.tv=!0;else{try{var b=JSON.parse(window.PalmSystem.deviceInfo||"{}");if(b.platformVersionMajor&&b.platformVersionMinor){var h=Number(b.platformVersionMajor),S=Number(b.platformVersionMinor);h<3||3===h&&S<=0?w.legacy=!0:w.open=!0}}catch(e){w.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 O=window.navigator.userAgent.indexOf("Chr0me")>-1?window.navigator.userAgent.indexOf("Chr0me"):window.navigator.userAgent.indexOf("Chrome"),V=window.navigator.userAgent.slice(O).indexOf(" "),T=window.navigator.userAgent.slice(O+7,O+V).split(".");w.chrome=Number(T[0])}else w.chrome=0}else w.unknown=!0;var P=w,k={},j={},A=!1,C=!1,D=!1,x=[];function M(e){C&&D?(x.length&&(x.forEach(function(n){n!==e&&n(k)}),x=[]),e(k)):x.push(e)}function N(e){j.soundOutput&&0===j.soundOutput.indexOf("external_arc")&&"external_arc_sound_alive"!==j.soundOutput?e(!0):!j.soundOutput||0!==j.soundOutput.indexOf("tv_")&&"external_arc_sound_alive"!==j.soundOutput?e(null):e(!1)}function _(e){"auto"===j.soundOutputDigital||"passThrough"===j.soundOutputDigital?e(!0):e(!1)}function B(e,n){k.dolbyAtmos!==e&&(k.dolbyAtmos=e,C=!0,M(n))}function I(e){!function(e){k.sdkVersion&&e(k.sdkVersion.split(".")),(new p).send({service:"luna://com.webos.service.tv.systemproperty",method:"getSystemInfo",parameters:{keys:["sdkVersion"]},onSuccess:function(n){k.sdkVersion=n.sdkVersion||k.sdkVersion,e(k.sdkVersion.split("."))},onFailure:function(){e([0,0,0])}})}(function(n){parseInt(n[0],10)>=5?(new p).send({service:"luna://com.webos.service.arccontroller",method:"getARCState",subscribe:!0,onComplete:function(n){N(function(t){(t||!j.dolbyAtmosConfig&&"tv_speaker_external_arc_harmony"===j.soundOutput)&&_(function(t){B(!!t&&n.returnValue&&("ATMOS"===n.arcProfile||!0===n.earcATMOS),e)})})},onFailure:function(){console.log("[webOSTV.js] getARCState failed"),B(!1,e)}}):(new p).send({service:"luna://com.webos.service.eim",method:"getAllInputStatus",subscribe:!0,onComplete:function(n){N(function(t){!t&&(j.dolbyAtmosConfig||"tv_speaker_external_arc_harmony"!==j.soundOutput&&void 0!==j.soundOutput)||_(function(t){B(!!t&&n.returnValue&&!0===n.atmosDevice,e)})})},onFailure:function(){console.log("[webOSTV.js] getAllInputStatus failed"),B(!1,e)}})})}function R(e){void 0===j.dolbyAtmosConfig?(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["tv.config.supportDolbyTVATMOS","tv.model.soundModeType"]},onComplete:function(n){j.dolbyAtmosConfig=n.configs?n.configs["tv.config.supportDolbyTVATMOS"]||"Dolby Atmos"===n.configs["tv.model.soundModeType"]:"failure",R(e)}}):!0===j.dolbyAtmosConfig?B(!0,e):!1===j.dolbyAtmosConfig?"tv_speaker_external_arc_harmony"===j.soundOutput?_(function(n){n?I(e):B(!1,e)}):void 0===j.soundOutput?(console.log("[webOSTV.js] soundOutput value is",j.soundOutput),I(e)):B(!1,e):(console.log("[webOSTV.js] dolbyAtmos config is",j.dolbyAtmosConfig),B(!1,e))}function z(e){(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","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(n){if(n.configs){if(k.modelName=n.configs["tv.model.modelname"]||k.modelName,n.configs["tv.nyx.firmwareVersion"]&&"0.0.0"!==n.configs["tv.nyx.firmwareVersion"]||(n.configs["tv.nyx.firmwareVersion"]=n.configs["tv.nyx.platformVersion"]),n.configs["tv.nyx.firmwareVersion"]){k.version=n.configs["tv.nyx.firmwareVersion"];for(var t=k.version.split("."),o=["versionMajor","versionMinor","versionDot"],r=0;r<o.length;r+=1)try{k[o[r]]=parseInt(t[r],10)}catch(e){k[o[r]]=t[r]}}k.sdkVersion=n.configs["tv.nyx.platformVersion"]||k.sdkVersion,k.uhd="UD"===n.configs["tv.hw.panelResolution"]||"8K"===n.configs["tv.hw.panelResolution"],k.uhd8K="8K"===n.configs["tv.hw.panelResolution"]||!0===n.configs["tv.model.supportTemp8K"],k.oled="OLED"===n.configs["tv.hw.displayType"],k.ddrSize=n.configs["tv.hw.ddrSize"],k.hdr10=!0===n.configs["tv.model.supportHDR"],k.dolbyVision=!0===n.configs["tv.config.supportDolbyHDRContents"],k.brandName=n.configs["tv.model.TVBrandName"]||k.brandName,k.manufacturer=n.configs["tv.model.TVManufacturer"]||k.manufacturer,k.mainboardMaker=n.configs["tv.model.mainboardMaker"],n.configs["wee.platformBizType"]?k.platformBizType=n.configs["wee.platformBizType"]:"WEE"===n.configs["com.webos.app.home.uiStyle"]&&(k.platformBizType="wee"),n.configs["com.webos.service.utp.supportTunerless"]&&(k.tuner=!1)}!function(e,n){e?parseInt(e.split(".")[0],10)>=11?function(e){(new p).send({service:"luna://com.webos.service.systemprofile",method:"getProfiles",subscribe:!0,parameters:{names:["tunerless"]},onComplete:function(n){n.profiles&&n.profiles.tunerless?e(!n.profiles.tunerless.support):(n.missingProfiles&&n.missingProfiles.includes("tunerless"),e(!0))}})}(n):function(e){(new p).send({service:"luna://com.webos.service.config",method:"getConfigs",parameters:{configNames:["profile.list"]},onComplete:function(n){var t=n.configs&&n.configs["profile.list"];t&&t.includes("tunerless")?e(!1):e(!0)}})}(n):n(!0)}(k.sdkVersion,function(t){k.tuner=k.tuner&&t,!n.returnValue||function(e){var n=["com.webos.app.home.uiStyle","com.webos.service.utp.supportTunerless","tv.model.mainboardMaker","tv.model.supportTemp8K","tv.model.TVBrandName","tv.model.TVManufacturer","wee.platformBizType"],t=!1;if(e&&Array.isArray(e))for(var o=0;o<e.length;o+=1)if(!n.includes(e[o])){t=!0;break}return t}(n.missingConfigs)?function(e){(new p).send({service:"luna://com.webos.service.tv.systemproperty",method:"getSystemInfo",parameters:{keys:["ddrSize","firmwareVersion","modelName","OLED","sdkVersion","UHD"]},onComplete:function(n){if(k.modelName=n.modelName||k.modelName,k.sdkVersion=n.sdkVersion||k.sdkVersion,k.uhd=n.UHD?"true"===n.UHD:k.uhd,k.oled=n.OLED?"true"===n.OLED:k.oled,k.ddrSize=n.ddrSize||k.ddrSize,n.firmwareVersion&&"0.0.0"!==n.firmwareVersion||(n.firmwareVersion=n.sdkVersion),n.firmwareVersion){k.version=n.firmwareVersion;for(var t=k.version.split("."),o=["versionMajor","versionMinor","versionDot"],r=0;r<o.length;r+=1)try{k[o[r]]=parseInt(t[r],10)}catch(e){k[o[r]]=t[r]}}D=!0,M(e)}})}(e):(D=!0,M(e))})}})}var E=function(e){!function(e){(new p).send({service:"luna://com.webos.settingsservice",method:"getSystemSettings",parameters:{category:"sound",keys:["soundOutput","soundOutputDigital"]},subscribe:!0,onSuccess:function(n){n.settings?(j.soundOutput=n.settings.soundOutput||j.soundOutput,j.soundOutputDigital=n.settings.soundOutputDigital||j.soundOutputDigital,n.settings.soundOutput?(j.soundOutput=n.settings.soundOutput,N(function(n){n?_(function(n){n?I(e):B(!1,e)}):!1===n?R(e):B(!1,e)})):n.settings.soundOutputDigital&&N(function(n){(n||"tv_speaker_external_arc_harmony"===j.soundOutput&&!0!==j.dolbyAtmosConfig)&&_(function(n){n?I(e):B(!1,e)})})):B(!1,e)},onFailure:function(){console.log("[webOSTV.js] getSystemSettings(soundOutput) failed"),R(e)}})}(e),A?M(e):(A=!0,function(){try{var e=JSON.parse(window.PalmSystem.deviceInfo);k.modelName=e.modelName,k.version=e.platformVersion,k.versionMajor=e.platformVersionMajor,k.versionMinor=e.platformVersionMinor,k.versionDot=e.platformVersionDot,k.screenWidth=e.screenWidth,k.screenHeight=e.screenHeight}catch(e){k.modelName="webOS Device"}k.screenHeight=k.screenHeight||window.screen.height,k.screenWidth=k.screenWidth||window.screen.width}(),P.tv?(k.uhd=!1,k.uhd8K=!1,k.hdr10=!1,k.dolbyVision=!1,k.brandName="LG",k.manufacturer="LG Electronics",k.platformBizType="LG",k.tuner=!0,z(e)):(D=!0,M(e)))},H={isShowing:function(){return PalmSystem&&PalmSystem.isKeyboardVisible}},L=function(){var e={};if(window.PalmSystem){if(window.PalmSystem.country){var n=JSON.parse(window.PalmSystem.country);e.country=n.country,e.smartServiceCountry=n.smartServiceCountry}window.PalmSystem.timeZone&&(e.timezone=window.PalmSystem.timeZone)}return e},K="1.2.13";window.webOS=n}();