PageSourceSearch

https://ttb.org/2.30e343334988b5f5.js

js ttb.org collected 2026-10-01 11:49:03 UTC 14,459 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkapp=self.webpackChunkapp||[]).push([[2],{60002(b,M,a){a.d(M,{ShareAppPage:()=>w});var u=a(75796),v=a(55537),_=a(83534),p=a(49458),S=a(36074),o=a(61e3),r=a(68554),h=a(36487),f=a(47762),C=a(46286),E=a(34594),R=a(42826),I=a(22322),O=a(85562),m=a(30299),e=a(10599),k=a(91222),A=a(38776),x=a(20995),D=a(10082),T=a(58850);function U(s,g){if(1&s&&(e.j41(0,"h3",19),e.EFF(1),e.k0s()),2&s){const t=e.XpG();e.R7$(),e.JRh(t.app_name)}}function L(s,g){if(1&s&&(e.j41(0,"p",20),e.EFF(1),e.k0s()),2&s){const t=e.XpG();e.R7$(),e.JRh(t.app_subtitle)}}function y(s,g){if(1&s&&e.nrm(0,"qrcode",21),2&s){const t=e.XpG();e.Y8G("qrdata",t.qr_code_url)("width",200)("margin",0)("errorCorrectionLevel","M")("imageSrc",t.qr_logo_src)("imageWidth",48)("imageHeight",48)}}function B(s,g){1&s&&e.nrm(0,"ion-spinner",22)}function j(s,g){1&s&&e.nrm(0,"ion-icon",23)}function F(s,g){1&s&&e.nrm(0,"ion-spinner",22)}function W(s,g){1&s&&e.nrm(0,"ion-icon",27)}function $(s,g){if(1&s){const t=e.RV6();e.j41(0,"div",24)(1,"h3"),e.EFF(2),e.nI1(3,"translate"),e.k0s(),e.j41(4,"p"),e.EFF(5),e.nI1(6,"translate"),e.k0s(),e.j41(7,"ion-button",15),e.bIt("click",function(){m.eBV(t);const i=e.XpG();return m.Njj(i.shareInstalledApp())}),e.DNE(8,F,1,0,"ion-spinner",16)(9,W,1,0,"ion-icon",25),e.EFF(10),e.nI1(11,"translate"),e.nI1(12,"translate"),e.k0s(),e.j41(13,"ion-button",26),e.bIt("click",function(){m.eBV(t);const i=e.XpG();return m.Njj(i.shareContent())}),e.nrm(14,"ion-icon",27),e.EFF(15),e.nI1(16,"translate"),e.k0s()()}if(2&s){const t=e.XpG();e.R7$(2),e.JRh(e.bMT(3,7,"share_app_offline_title")),e.R7$(3),e.JRh(e.bMT(6,9,"share_app_offline_description")),e.R7$(2),e.Y8G("disabled",t.isSharing),e.R7$(),e.Y8G("ngIf",t.isSharing),e.R7$(),e.Y8G("ngIf",!t.isSharing),e.R7$(),e.SpI(" ",t.isSharing?e.bMT(11,11,"sharing"):e.bMT(12,13,"share_apk")," "),e.R7$(5),e.SpI(" ",e.bMT(16,15,"share_content")," ")}}(0,I.a)({"arrow-back":O.$$C,arrowBack:O.$$C});let w=(()=>{class s{constructor(t,n,i,c,l,P,K,G,z,X){this.observable_service=t,this.app_service=n,this.appSharingService=i,this.fileShareService=c,this.router=l,this.fileSelectionService=P,this.common_component_service=K,this.api_service=G,this.platform=z,this.translate=X,this.app_tile_data=null,this.lastShareResult=null,this.isSharing=!1,this.isSharingLink=!1,this.share_link="https://radiobase.org",this.share_description="Check out this amazing radio app!",this.station_name="RadioBase App",this.station_id="",this.qr_code_url="",this.qr_logo_src="",this.station_detail={},this.platformType="",this.app_name="",this.app_subtitle="",this.app_icon="",this.is_desktop=!1,this.apple_store_link="",this.google_play_store_link="",this.is_desktop=this.platform.is("desktop"),this.observable_service.station_detail.subscribe(d=>{0!==d.design.station_id&&(this.station_detail=d,this.station_id=d.design.station_id.toString(),this.station_name=d.design.station_name,this.app_tile_data=d.app_tile.length&&d.app_tile[0].app_tile_data?.length?d.app_tile[0].app_tile_data[0]:null,this.apple_store_link=this.app_tile_data?.ios_link||"",this.google_play_store_link=this.app_tile_data?.android_link||"",this.setQRCodeUrl(),this.getAppRatting())})}ngOnInit(){this.platformType=S.Ii.getPlatform()}goBack(){this.app_service.goBack()}shareInstalledApp(){var t=this;return(0,u.A)(function*(){if(!t.isSharing){t.isSharing=!0;try{const n=yield h.q.getInfo();console.log("\u{1f4f1} App Info from @capacitor/app:",n);const i=yield h.q.getState();console.log("\u{1f4f1} App State:",i);let c="";try{c=(yield h.q.getLaunchUrl())?.url||"",console.log("\u{1f4f1} Launch URL:",c)}catch{console.log("\u{1f4f1} No launch URL available")}const l=yield t.appSharingService.shareApp({appPackageName:n.id||"com.radiobase.app",appName:n.name||"RadioBase App",appVersion:n.version||"1.0.0",appSize:"Unknown",appDescription:`RadioBase App v${n.version||"1.0.0"} - ${n.name||"Radio App"}`,shareMethod:"default"});t.lastShareResult=l,console.log("\u{1f4f1} Complete App Information:",{id:n.id,name:n.name,version:n.version,build:n.build,size:"Unknown",state:i,launchUrl:c}),l.success||t.showToast(t.translate.instant("share_app_share_failed",{message:l.message}),"warning")}catch(n){console.error("Error sharing app:",n)}finally{t.isSharing=!1}}})()}shareApp(){var t=this;return(0,u.A)(function*(n=!1){if(!t.isSharingLink){if(t.isSharingLink=!0,t.share_link=t.qr_code_url,!t.share_link||!t.isValidUrl(t.share_link))return console.error("Invalid URL for sharing:",t.share_link),t.showToast(t.translate.instant("share_app_invalid_url"),"danger"),void(t.isSharingLink=!1);console.log("\u2705 Sharing URL:",t.share_link);try{const i=t.station_detail.name;if(!n)return t.shareApp(!0);yield C.S.share({title:i,text:t.station_detail.design.share_description,url:t.share_link}),t.showToast(t.translate.instant("share_app_link_shared"),"success")}catch(i){console.error("Error sharing link:",i)}finally{t.isSharingLink=!1}}}).apply(this,arguments)}showToast(t,n){this.common_component_service.presentToast("bottom",t,"success"===n?"success":"warning"===n?"warning":"danger")}isValidUrl(t){if(!t||"string"!=typeof t)return console.error("URL validation failed: URL is empty or not a string"),!1;try{if(!t.startsWith("http://")&&!t.startsWith("https://"))return console.error("URL validation failed: Missing protocol (http:// or https://)"),!1;const n=new URL(t);return n.hostname&&n.hostname.includes(".")?(console.log("\u2705 URL validation passed:",{protocol:n.protocol,hostname:n.hostname,pathname:n.pathname,search:n.search}),!0):(console.error("URL validation failed: Invalid hostname"),!1)}catch(n){return console.error("URL validation failed: Invalid URL format",n),!1}}setQRCodeUrl(){const t=S.Ii.getPlatform();if("ios"===t)return void(this.qr_code_url=this.apple_store_link||this.app_service.builder_url+"/home/"+this.station_id+"?getApp=true");if("android"===t)return void(this.qr_code_url=this.google_play_store_link||this.app_service.builder_url+"/home/"+this.station_id+"?getApp=true");const n=navigator.userAgent.toLowerCase(),i=n.includes("android"),c=/iphone|ipad|ipod/.test(n);let l=this.app_service.builder_url+"/home/"+this.station_id+"?getApp=true";i?l=this.google_play_store_link||l:c?l=this.apple_store_link||l:this.is_desktop&&(n.includes("mac")&&this.apple_store_link?l=this.apple_store_link:this.google_play_store_link&&(l=this.google_play_store_link)),this.qr_code_url=l}setQRCodeLogo(){this.qr_logo_src=this.app_icon?this.app_icon:this.app_tile_data?.app_logo?this.app_tile_data.app_logo:""}getAppRatting(){const t={station_id:parseInt(this.station_id)};this.api_service.getStoreRattings(t).subscribe(n=>{if(n.status){const i=this.platform.is("ios");i&&n.apple_store?this.setAppStoreData(n.apple_store):!i&&n.play_store?this.setAppStoreData(n.play_store):(n.play_store||n.apple_store)&&this.setAppStoreData(n.play_store||n.apple_store)}})}setAppStoreData(t){this.app_name=this.app_tile_data?.custom_title||t.trackName,this.app_subt
1itle=this.app_tile_data?.custom_description||t.sellerName,this.app_icon=t.artworkUrl512,this.setQRCodeLogo()}shareContent(){var t=this;return(0,u.A)(function*(){t.fileSelectionService.enableSelectionMode(),t.router.navigate(["/downloads-manager"])})()}static{this.\u0275fac=function(n){return new(n||s)(e.rXU(r.s),e.rXU(o.d),e.rXU(k.h),e.rXU(A.B),e.rXU(x.Ix),e.rXU(D.k),e.rXU(f.F),e.rXU(E.G),e.rXU(T.OD),e.rXU(p.c$))}}static{this.\u0275cmp=e.VBU({type:s,selectors:[["app-share-app"]],decls:28,vars:18,consts:[[1,"innerPageHeader","innerPageHeader--mobile"],[1,"header--toolbar"],["slot","start"],["color","dark","fill","clear","size","small",3,"click"],["slot","start","name","arrow-back"],[1,"page-wrapper"],[1,"backBtn-wrapper","ion-hide-lg-down"],["color","primary","shape","round",3,"click"],["fixed",""],[1,"qrShare"],["class","app-title",4,"ngIf"],["class","app-subtitle",4,"ngIf"],[1,"shareAppQRWrapper"],["elementType","svg",3,"qrdata","width","margin","errorCorrectionLevel","imageSrc","imageWidth","imageHeight",4,"ngIf"],[1,"ion-text-center"],["color","primary","shape","round","size","large",3,"click","disabled"],["slot","start","name","crescent",4,"ngIf"],["slot","start","src","assets/ionicons/dist/collection/components/icon/svg/link.svg",4,"ngIf"],["class","offlineShare",4,"ngIf"],[1,"app-title"],[1,"app-subtitle"],["elementType","svg",3,"qrdata","width","margin","errorCorrectionLevel","imageSrc","imageWidth","imageHeight"],["slot","start","name","crescent"],["slot","start","src","assets/ionicons/dist/collection/components/icon/svg/link.svg"],[1,"offlineShare"],["slot","start","src","assets/ionicons/dist/collection/components/icon/svg/share-social-outline.svg",4,"ngIf"],["color","primary","shape","round","size","large",3,"click"],["slot","start","src","assets/ionicons/dist/collection/components/icon/svg/share-social-outline.svg"]],template:function(n,i){1&n&&(e.j41(0,"ion-header",0)(1,"ion-toolbar",1)(2,"ion-buttons",2)(3,"ion-button",3),e.bIt("click",function(){return i.goBack()}),e.nrm(4,"ion-icon",4),e.EFF(5),e.nI1(6,"translate"),e.k0s()()()(),e.j41(7,"ion-content")(8,"div",5)(9,"div",6)(10,"ion-button",7),e.bIt("click",function(){return i.goBack()}),e.nrm(11,"ion-icon",4),e.EFF(12),e.nI1(13,"translate"),e.k0s()(),e.j41(14,"ion-grid",8)(15,"div",9),e.DNE(16,U,2,1,"h3",10)(17,L,2,1,"p",11),e.j41(18,"div",12),e.DNE(19,y,1,7,"qrcode",13),e.k0s(),e.j41(20,"div",14)(21,"ion-button",15),e.bIt("click",function(){return i.shareApp(!0)}),e.DNE(22,B,1,0,"ion-spinner",16)(23,j,1,0,"ion-icon",17),e.EFF(24),e.nI1(25,"translate"),e.nI1(26,"translate"),e.k0s()()(),e.DNE(27,$,17,17,"div",18),e.k0s()()()),2&n&&(e.R7$(5),e.SpI(" ",(null==i.app_tile_data?null:i.app_tile_data.page_name)||e.bMT(6,10,"share_the_app")," "),e.R7$(7),e.SpI(" ",e.bMT(13,12,"share_app_back")," "),e.R7$(4),e.Y8G("ngIf",i.app_name),e.R7$(),e.Y8G("ngIf",i.app_subtitle),e.R7$(2),e.Y8G("ngIf",i.qr_code_url),e.R7$(2),e.Y8G("disabled",i.isSharingLink),e.R7$(),e.Y8G("ngIf",i.isSharingLink),e.R7$(),e.Y8G("ngIf",!i.isSharingLink),e.R7$(),e.SpI(" ",i.isSharingLink?e.bMT(25,14,"sharing"):e.bMT(26,16,"share_link")," "),e.R7$(3),e.Y8G("ngIf","android"===i.platformType))},dependencies:[_.eU,_.ai,_.QW,_.Jm,_.iq,_.W9,_.lO,_.w2,v.bT,p.h,R.c,p.D9],styles:[".offlineShare[_ngcontent-%COMP%], .qrShare[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:20px}.offlineShare[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%], .qrShare[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{margin:0}.offlineShare[_ngcontent-%COMP%]   p[_ngcontent-%COMP%], .qrShare[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{max-width:285px;margin:0 auto}.offlineShare[_ngcontent-%COMP%]   .app-title[_ngcontent-%COMP%], .qrShare[_ngcontent-%COMP%]   .app-title[_ngcontent-%COMP%]{font-size:18px;font-weight:700;margin:0 0 4px;text-align:center}.offlineShare[_ngcontent-%COMP%]   .app-subtitle[_ngcontent-%COMP%], .qrShare[_ngcontent-%COMP%]   .app-subtitle[_ngcontent-%COMP%]{font-size:14px;margin:0 0 16px;line-height:1.4;opacity:.7;text-align:center}.shareAppQRWrapper[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center;margin:0 auto;width:245px;height:245px}.shareAppQRWrapper[_ngcontent-%COMP%]   qrcode[_ngcontent-%COMP%]{border:1px solid #ccc;border-radius:8px;padding:16px;background-color:#fff}.shareAppQRWrapper[_ngcontent-%COMP%]   canvas[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%;height:100%}.offlineShare[_ngcontent-%COMP%]{padding-top:20px;margin-top:20px;text-align:center;border-top:1px solid #5b5a5a}ion-button[size=large][_ngcontent-%COMP%]{min-width:280px}@media screen and (max-width:413.98px){ion-button[size=large][_ngcontent-%COMP%]{width:100%}}.offlineProgress[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--ion-color-primary);padding:12px;border-radius:32px;background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, var(--gray-200))));width:80%}@media screen and (max-width:413.98px){.offlineProgress[_ngcontent-%COMP%]{width:100%}}.offlineProgress[_ngcontent-%COMP%]   .ionMedia[_ngcontent-%COMP%]{width:100%;text-align:left}.offlineProgress[_ngcontent-%COMP%]   ion-button[size=small][_ngcontent-%COMP%]{--padding-start: 14px;--padding-end: 14px;margin:0;--border-radius: 24px;--padding-bottom: 8px;--padding-top: 8px;min-height:32px;max-width:72px;font-size:12px}.offlineProgress[_ngcontent-%COMP%]   ion-thumbnail[_ngcontent-%COMP%]{--size: 32px;--border-radius: 8px}.ion-margin-top[_ngcontent-%COMP%]{margin-top:16px}ion-card[_ngcontent-%COMP%]   ion-card-content[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px}ion-card[_ngcontent-%COMP%]   ion-card-content[_ngcontent-%COMP%]   ion-icon[_ngcontent-%COMP%]{font-size:20px}ion-card[_ngcontent-%COMP%]   ion-card-content[_ngcontent-%COMP%]   .ion-margin-start[_ngcontent-%COMP%]{margin-left:8px}ion-card[_ngcontent-%COMP%]   ion-card-content[_ngcontent-%COMP%]   .ion-margin-top[_ngcontent-%COMP%]{margin-top:8px}ion-button[disabled][_ngcontent-%COMP%]{opacity:.6}ion-spinner[_ngcontent-%COMP%]{--color: var(--ion-color-primary-contrast)}"]})}}return s})()},10082(b,M,a){a.d(M,{k:()=>_});var u=a(99438),v=a(30299);let _=(()=>
1{class p{constructor(){this.selectionModeSubject=new u.t(!1),this.selectedFilesSubject=new u.t([]),this.selectionMode$=this.selectionModeSubject.asObservable(),this.selectedFiles$=this.selectedFilesSubject.asObservable()}enableSelectionMode(){this.selectionModeSubject.next(!0)}disableSelectionMode(){this.selectionModeSubject.next(!1),this.clearSelection()}toggleFileSelection(o){const r=this.selectedFilesSubject.value,h=r.findIndex(f=>f.id===o.id);h>-1?r.splice(h,1):r.push(o),this.selectedFilesSubject.next([...r])}isFileSelected(o){return this.selectedFilesSubject.value.some(r=>r.id===o)}getSelectedFiles(){return this.selectedFilesSubject.value}getSelectedCount(){return this.selectedFilesSubject.value.length}getTotalSize(){return this.selectedFilesSubject.value.reduce((o,r)=>o+r.size,0)}clearSelection(){this.selectedFilesSubject.next([])}selectAll(o){this.selectedFilesSubject.next([...o])}formatSize(o){if(0===o)return"0 Bytes";const f=Math.floor(Math.log(o)/Math.log(1024));return Math.round(o/Math.pow(1024,f)*100)/100+" "+["Bytes","KB","MB","GB"][f]}isSelectionMode(){return this.selectionModeSubject.value}static{this.\u0275fac=function(r){return new(r||p)}}static{this.\u0275prov=v.jDH({token:p,factory:p.\u0275fac,providedIn:"root"})}}return p})()}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.