1import { 2 SendComponent 3} from "./chunk-UTAJGYYJ.js"; 4import "./chunk-MF3PKXSZ.js"; 5import { 6 WalletService 7} from "./chunk-RNVF3USP.js"; 8import { 9 AdviseService, 10 FileService, 11 GuidePage, 12 ImgErrorFallbackDirective, 13 IonAvatar as IonAvatar2, 14 IonBackButton, 15 IonButton, 16 IonButtons, 17 IonCol as IonCol2, 18 IonContent, 19 IonGrid as IonGrid2, 20 IonHeader, 21 IonIcon, 22 IonImg as IonImg2, 23 IonItem as IonItem2, 24 IonLabel as IonLabel2, 25 IonList as IonList2, 26 IonRow as IonRow2, 27 IonSpinner, 28 IonToolbar, 29 LinkPreviewComponent, 30 LoadingBLComponent, 31 PublicarOpinionPage, 32 SharePopoverComponent, 33 SharedModule, 34 UserSessionSvc 35} from "./chunk-M4DM6MA5.js"; 36import "./chunk-DF5LHESM.js"; 37import { 38 ApiService, 39 AuthenticationService, 40 HttpService, 41 LoadingSvc, 42 MailService, 43 ReportService, 44 ToastSvc, 45 UserService, 46 UtilitiesService, 47 environment 48} from "./chunk-PN5BFG24.js"; 49import { 50 DateFormatType 51} from "./chunk-WEOUUBAE.js"; 52import { 53 TranslateConfigService, 54 TranslateModule, 55 TranslatePipe, 56 TranslateService 57} from "./chunk-HX5YTJMG.js"; 58import { 59 ActivatedRoute, 60 AlertController, 61 CommonModule, 62 EventEmitter, 63 IonAvatar, 64 IonCol, 65 IonGrid, 66 IonImg, 67 IonItem, 68 IonLabel, 69 IonList, 70 IonRow, 71 IonicModule, 72 ModalController, 73 NgClass, 74 NgForOf, 75 NgIf, 76 Platform, 77 PopoverController, 78 Router, 79 RouterModule, 80 ɵsetClassDebugInfo, 81 ɵɵNgOnChangesFeature, 82 ɵɵadvance, 83 ɵɵclassMap, 84 ɵɵdefineComponent, 85 ɵɵdefineInjectable, 86 ɵɵdefineInjector, 87 ɵɵdefineNgModule, 88 ɵɵdirectiveInject, 89 ɵɵelement, 90 ɵɵelementEnd, 91 ɵɵelementStart, 92 ɵɵgetCurrentView, 93 ɵɵinject, 94 ɵɵlistener, 95 ɵɵnextContext, 96 ɵɵpipe, 97 ɵɵpipeBind1, 98 ɵɵproperty, 99 ɵɵpureFunction1, 100 ɵɵresetView, 101 ɵɵrestoreView, 102 ɵɵsanitizeHtml, 103 ɵɵsanitizeUrl, 104 ɵɵtemplate, 105 ɵɵtext, 106 ɵɵtextInterpolate, 107 ɵɵtextInterpolate1, 108 ɵɵtextInterpolate2 109} from "./chunk-TWFE46J6.js"; 110import "./chunk-SONIKJF5.js"; 111import "./chunk-QL4WNSOC.js"; 112import "./chunk-U4ZO4AAN.js"; 113import "./chunk-ILAHRKCU.js"; 114import "./chunk-QTWZEYHK.js"; 115import "./chunk-MXGO5LI2.js"; 116import "./chunk-AXOFHZOB.js"; 117import "./chunk-WVA3HESQ.js"; 118import "./chunk-AFW4WBUV.js"; 119import "./chunk-F6N777MP.js"; 120import "./chunk-C5CEXBFJ.js"; 121import "./chunk-XP36ZTLO.js"; 122import "./chunk-3GEMAHDJ.js"; 123import "./chunk-6JMEYUFM.js"; 124import "./chunk-CHSEYX77.js"; 125import "./chunk-VQMSNZL6.js"; 126import "./chunk-OLOXINNV.js"; 127import "./chunk-2UENHT7X.js"; 128import "./chunk-7XTMFLID.js"; 129import "./chunk-I6COZ3BV.js"; 130import "./chunk-ELM33WLN.js"; 131import "./chunk-2NYDW7HV.js"; 132import "./chunk-Y6NIZY2U.js"; 133import "./chunk-RSM4ZNQS.js"; 134import "./chunk-PEBVOEBX.js"; 135import "./chunk-4U6KKISA.js"; 136import "./chunk-NUJSO76P.js"; 137import "./chunk-ASEYXBYK.js"; 138import "./chunk-W26RH5TH.js"; 139import "./chunk-BYOQVAT4.js"; 140import { 141 __async, 142 __spreadValues 143} from "./chunk-QQUUYUXS.js"; 144
145// src/app/components/follower/services/follower.service.ts 146var FollowerService = class _FollowerService { 147 constructor(http) { 148 this.http = http; 149 } 150 // To Create a Follow 151 create(follower) { 152 return __async(this, null, function* () { 153 return this.http.post("followers", follower); 154 }); 155 } 156 // To Get a Follow 157 get(uid_follower, uid_followed) { 158 return __async(this, null, function* () { 159 return this.http.get("followers", { uid_follower, uid_followed }); 160 }); 161 } 162 // To Get Follows based on Filter 163 list(filter) { 164 return __async(this, null, function* () { 165 return this.http.get("followers", filter); 166 }); 167 } 168 // To Update a Follow 169 update(id, follower) { 170 return __async(this, null, function* () { 171 return this.http.patch("followers/" + id, follower); 172 }); 173 } 174 // To Toggle a Follow 175 toggle(follower) { 176 return __async(this, null, function* () { 177 return this.http.patch("followers", follower); 178 }); 179 } 180 // To Delete a Follow 181 delete(id) { 182 return __async(this, null, function* () { 183 return this.http.delete("followers/" + id); 184 }); 185 } 186 static { 187 this.\u0275fac = function FollowerService_Factory(t) { 188 return new (t || _FollowerService)(\u0275\u0275inject(HttpService)); 189 }; 190 } 191 static { 192 this.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _FollowerService, factory: _FollowerService.\u0275fac, providedIn: "root" }); 193 } 194}; 195
196// src/app/components/follower/button/follower-button.component.ts 197var _c0 = (a0) => ({ "following-color": a0 }); 198function FollowerButtonComponent_div_1_Template(rf, ctx) { 199 if (rf & 1) { 200 const _r3 = \u0275\u0275getCurrentView(); 201 \u0275\u0275elementStart(0, "div", 4); 202 \u0275\u0275listener("click", function FollowerButtonComponent_div_1_Template_div_click_0_listener() { 203 \u0275\u0275restoreView(_r3); 204 const ctx_r2 = \u0275\u0275nextContext(); 205 return \u0275\u0275resetView(ctx_r2.toggleFollow()); 206 }); 207 \u0275\u0275text(1); 208 \u0275\u0275pipe(2, "translate"); 209 \u0275\u0275elementEnd(); 210 } 211 if (rf & 2) { 212 const ctx_r0 = \u0275\u0275nextContext(); 213 \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(4, _c0, ctx_r0.isFollowing())); 214 \u0275\u0275advance(); 215 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 2, "common.follow." + (!ctx_r0.isFollowing() ? "do" : "cancel")), " "); 216 } 217} 218function FollowerButtonComponent_div_3_Template(rf, ctx) { 219 if (rf & 1) { 220 const _r5 = \u0275\u0275getCurrentView(); 221 \u0275\u0275elementStart(0, "div", 5); 222 \u0275\u0275listener("click", function FollowerButtonComponent_div_3_Template_div_click_0_listener() { 223 \u0275\u0275restoreView(_r5); 224 const ctx_r4 = \u0275\u0275nextContext(); 225 return \u0275\u0275resetView(ctx_r4.toggleFollow()); 226 }); 227 \u0275\u0275text(1); 228 \u0275\u0275pipe(2, "translate"); 229 \u0275\u0275elementEnd(); 230 } 231 if (rf & 2) { 232 const ctx_r1 = \u0275\u0275nextContext(); 233 \u0275\u0275property("ngClass", \u0275\u0275pureFunction1(4, _c0, ctx_r1.isFollowing())); 234 \u0275\u0275advance(); 235 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 2, "common.follow." + (!ctx_r1.isFollowing() ? "do" : "cancel")), " "); 236 } 237} 238var FollowerButtonComponent = class _FollowerButtonComponent { 239 constructor(userSessionSvc, followerSvc, toastSvc) { 240 this.userSessionSvc = userSessionSvc; 241 this.followerSvc = followerSvc; 242 this.toastSvc = toastSvc; 243 this.clase = ""; 244 this.transparent = false; 245 this.isLoading = false; 246 this.isLogged = false; 247 } 248 ngOnInit() { 249 this.get(); 250 } 251 get() { 252 return __async(this, null, function* () { 253 if (this.isLogged == null) { 254 this.isLogged = yield this.userSessionSvc.isLogged(); 255 } 256 if (!this.isLogged) { 257 return; 258 } 259 this.isLoading = true; 260 const { response, error } = yield this.followerSvc.get( 261 //@ts-ignore 262 yield this.userSessionSvc.id(), 263 Number(this.user?.id) 264 ); 265 if (response) { 266 this.follower = response; 267 } else { 268 this.follower = { 269 uid_follower: Number(yield this.userSessionSvc.id()), 270 uid_followed: Number(this.user?.id), 271 created_at: "", 272 canceled_at: "" 273 }; 274 } 275 this.isLoading = false; 276 }); 277 } 278 toggleFollow() { 279 return __async(this, null, function* () { 280 if (this.isLoading) { 281 return; 282 } 283 if (yield this.isSame()) { 284 return; 285 } 286 this.isLoading = true; 287 if (this.follower !== void 0) { 288 const { response, error } = yield this.followerSvc.toggle(this.follower); 289 if (error) { 290 this.toastSvc.show(error.message, true); 291 } else { 292 this.follower = response?.follower || this.follower; 293 } 294 this.isLoading = false; 295 } 296 }); 297 } 298 isFollowing() { 299 return Boolean(this.follower?.created_at && !this.follower?.canceled_at); 300 } 301 isSame() { 302 return __async(this, null, function* () { 303 return new Promise((resolve) => __async(this, null, function* () { 304 if (this.user && (yield this.userSessionSvc.isUser(this.user.id))) { 305 this.toastSvc.show("common.follow.same", true); 306 resolve(true); 307 } 308 resolve(false); 309 })); 310 }); 311 } 312 static { 313 this.\u0275fac = function FollowerButtonComponent_Factory(t) { 314 return new (t || _FollowerButtonComponent)(\u0275\u0275directiveInject(UserSessionSvc), \u0275\u0275directiveInject(FollowerService), \u0275\u0275directiveInject(ToastSvc)); 315 }; 316 } 317 static { 318 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _FollowerButtonComponent, selectors: [["app-follower-button"]], inputs: { user: "user", clase: "clase", follower: "follower", transparent: "transparent" }
318, decls: 4, vars: 2, consts: [[1, "mobile"], ["class", "follower-btn-text-b follower-uppercase", 3, "ngClass", "click", 4, "ngIf"], [1, "desktop"], ["class", "follower-btn-text-b", 3, "ngClass", "click", 4, "ngIf"], [1, "follower-btn-text-b", "follower-uppercase", 3, "ngClass", "click"], [1, "follower-btn-text-b", 3, "ngClass", "click"]], template: function FollowerButtonComponent_Template(rf, ctx) { 319 if (rf & 1) { 320 \u0275\u0275elementStart(0, "div", 0); 321 \u0275\u0275template(1, FollowerButtonComponent_div_1_Template, 3, 6, "div", 1); 322 \u0275\u0275elementEnd(); 323 \u0275\u0275elementStart(2, "div", 2); 324 \u0275\u0275template(3, FollowerButtonComponent_div_3_Template, 3, 6, "div", 3); 325 \u0275\u0275elementEnd(); 326 } 327 if (rf & 2) { 328 \u0275\u0275advance(); 329 \u0275\u0275property("ngIf", ctx.isLogged); 330 \u0275\u0275advance(2); 331 \u0275\u0275property("ngIf", ctx.isLogged); 332 } 333 }, dependencies: [NgClass, NgIf, TranslatePipe], styles: ["\n\n.image[_ngcontent-%COMP%] {\n width: 180px;\n margin: 40px auto 10px auto;\n}\n.container[_ngcontent-%COMP%] {\n text-align: center;\n padding: 0px 15px;\n margin: auto;\n}\n.container[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] {\n margin: 20px 0;\n color: var(--ion-color-medium);\n font-size: 16px;\n}\n.container[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%] {\n font-size: 60px;\n}\n.follower-btn-text-b[_ngcontent-%COMP%] {\n font-weight: 500;\n font-size: 14px;\n line-height: 150%;\n color: #1B80F8;\n cursor: pointer;\n}\n.following-color[_ngcontent-%COMP%] {\n color: #FF5A1F;\n}\n.follower-uppercase[_ngcontent-%COMP%] {\n text-transform: uppercase;\n}"] }); 334 } 335}; 336(() => { 337 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(FollowerButtonComponent, { className: "FollowerButtonComponent", filePath: "src/app/components/follower/button/follower-button.component.ts", lineNumber: 13 }); 338})(); 339
340// src/app/components/follower/follower.module.ts 341var FollowerButtonModule = class _FollowerButtonModule { 342 static { 343 this.\u0275fac = function FollowerButtonModule_Factory(t) { 344 return new (t || _FollowerButtonModule)(); 345 }; 346 } 347 static { 348 this.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _FollowerButtonModule }); 349 } 350 static { 351 this.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ imports: [ 352 CommonModule, 353 IonicModule, 354 TranslateModule.forChild() 355 ] }); 356 } 357}; 358
359// src/app/services/wallet/wallet-info.service.ts 360var WalletInfoSvc = class _WalletInfoSvc { 361 constructor(walletSvc, loadingSvc) { 362 this.walletSvc = walletSvc; 363 this.loadingSvc = loadingSvc; 364 this.walletParams = { userWallets: [] }; 365 this.isLoading = false; 366 } 367 get(showLoading = true) { 368 return new Promise((resolve) => __async(this, null, function* () { 369 if (showLoading) 370 yield this.loadingSvc.show(); 371 this.isLoading = true; 372 const serviceRequest = yield this.walletSvc.getWalletInfo().then(); 373 serviceRequest.subscribe((response) => __async(this, null, function* () { 374 this.setVars(response); 375 if (showLoading) 376 yield this.loadingSvc.dismiss(); 377 resolve(this.walletParams); 378 })); 379 })); 380 } 381 setVars(response) { 382 this.walletParams.publicKey = response.publicKey; 383 this.walletParams.userWallets = response.data; 384 this.walletParams.retainedTks = response.retainedTks; 385 this.walletParams.verified = response.verified; 386 this.transactions = response.transacciones; 387 this.walletParams.minnersFee = response.minnersFee; 388 this.isLoading = false; 389 this.walletParams.stripeFee = response.stripeFee; 390 this.walletParams.assetsMaxDecimals = Number(response.assetsMaxDecimals || "0"); 391 } 392 static { 393 this.\u0275fac = function WalletInfoSvc_Factory(t) { 394 return new (t || _WalletInfoSvc)(\u0275\u0275inject(WalletService), \u0275\u0275inject(LoadingSvc)); 395 }; 396 } 397 static { 398 this.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _WalletInfoSvc, factory: _WalletInfoSvc.\u0275fac, providedIn: "root" }); 399 } 400}; 401
402// src/app/services/wallet/wallet-send.service.ts 403var WalleSendSvc = class _WalleSendSvc { 404 constructor(walletInfoSvc, userSvc, userSessionSvc, modalCtrl, translateSvc, toastSvc) { 405 this.walletInfoSvc = walletInfoSvc; 406 this.userSvc = userSvc; 407 this.userSessionSvc = userSessionSvc; 408 this.modalCtrl = modalCtrl; 409 this.translateSvc = translateSvc; 410 this.toastSvc = toastSvc; 411 } 412 exec(title, user, showLoading = true) { 413 return __async(this, null, function* () { 414 if (yield this.isUser(user?.id)) 415 return; 416 const walletParams = yield this.walletInfoSvc.get(showLoading); 417 if (!walletParams?.verified?.mandatory) { 418 yield this.userSvc.showAlertToRedir(); 419 return; 420 } 421 const sendTksModal = yield this.modalCtrl.create({ 422 component: SendComponent, 423 componentProps: { 424 title, 425 asset: walletParams?.userWallets?.[0] ?? null, 426 // If walletParams or userWallets is undefined or userWallets is empty, set asset to null 427 user, 428 retainedTks: walletParams?.retainedTks ?? null, 429 // If walletParams or retainedTks is undefined, set retainedTks to null 430 assetsMaxDecimals: walletParams?.assetsMaxDecimals ?? null, 431 // If walletParams or assetsMaxDecimals is undefined, set assetsMaxDecimals to null 432 returnBalance: true, 433 hideWarning: true 434 }, 435 cssClass: "modal-mobile" 436 }); 437 yield sendTksModal.present(); 438 const { data } = yield sendTksModal.onDidDismiss(); 439 return new Promise((resolve) => resolve(data?.response)); 440 }); 441 } 442 tip(user, showLoading = true) { 443 if (!user) { 444 this.toastSvc.show("pages.wallet.donate.no-user", true); 445 } 446 return this.exec(this.translateSvc.instant("pages.wallet.donate.title", { 447 person: (user?.name || user?.nick) + (!user?.lastName ? "" : " " + user.lastName) 448 }), user, showLoading); 449 } 450 isUser(id) { 451 return new Promise((resolve) => __async(this, null, function* () { 452 if (!(yield this.userSessionSvc.isUser(id))) { 453 resolve(false); 454 return; 455 } 456 this.toastSvc.show("pages.wallet.donate.same-user", true); 457 resolve(false); 458 })); 459 } 460 static { 461 this.\u0275fac = function WalleSendSvc_Factory(t) { 462 return new (t || _WalleSendSvc)(\u0275\u0275inject(WalletInfoSvc), \u0275\u0275inject(UserService), \u0275\u0275inject(UserSessionSvc), \u0275\u0275inject(ModalController), \u0275\u0275inject(TranslateConfigService), \u0275\u0275inject(ToastSvc)); 463 }; 464 } 465 static { 466 this.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _WalleSendSvc, factory: _WalleSendSvc.\u0275fac, providedIn: "root" }); 467 } 468}; 469
470// src/app/components/donate/donate-button.component.ts 471var DonateButtonComponent = class _DonateButtonComponent { 472 constructor(walletSendSvc) { 473 this.walletSendSvc = walletSendSvc; 474 this.text = "common.labelDonate"; 475 this.clase = true; 476 this.asButton = false; 477 } 478 ngOnInit() { 479 } 480 donate() { 481 return __async(this, null, function* () { 482 this.walletSendSvc.tip(this.user); 483 }); 484 } 485 static { 486 this.\u0275fac = function DonateButtonComponent_Factory(t) { 487 return new (t || _DonateButtonComponent)(\u0275\u0275directiveInject(WalleSendSvc)); 488 }; 489 } 490 static { 491 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _DonateButtonComponent, selectors: [["app-donate-button"]], inputs: { text: "text", user: "user", clase: "clase", asButton: "asButton" }, decls: 8, vars: 0, consts: [[1, "mobile"], [3, "click"], ["src", "assets/icon/svg/tip.svg", 1, "tip-svg"], [1, "desktop"], ["src", "assets/icon/svg/tip-blue.svg", 1, "tip-svg"]], template: function DonateButtonComponent_Template(rf, ctx) { 492 if (rf & 1) { 493 \u0275\u0275elementStart(0, "div", 0)(1, "div", 1); 494 \u0275\u0275listener("click", function DonateButtonComponent_Template_div_click_1_listener() { 495 return ctx.donate(); 496 }); 497 \u0275\u0275element(2, "img", 2); 498 \u0275\u0275text(3, "Dar propina "); 499 \u0275\u0275elementEnd()(); 500 \u0275\u0275elementStart(4, "div", 3)(5, "div", 1); 501 \u0275\u0275listener("click", function DonateButtonComponent_Template_div_click_5_listener() { 502 return ctx.donate(); 503 }); 504 \u0275\u0275element(6, "img", 4); 505 \u0275\u0275text(7, "Dar propina "); 506 \u0275\u0275elementEnd()(); 507 } 508 }, styles: ["\n\n.tip-svg[_ngcontent-%COMP%] {\n width: 14px;\n margin-right: 13px;\n position: relative;\n top: 2px;\n}"] }); 509 } 510}; 511(() => { 512 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(DonateButtonComponent, { className: "DonateButtonComponent", filePath: "src/app/components/donate/donate-button.component.ts", lineNumber: 10 }); 513})(); 514
515// src/app/components/donate/donate-button.module.ts 516var DonateButtonModule = class _DonateButtonModule { 517 static { 518 this.\u0275fac = function DonateButtonModule_Factory(t) { 519 return new (t || _DonateButtonModule)(); 520 }; 521 } 522 static { 523 this.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _DonateButtonModule }); 524 } 525 static { 526 this.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ imports: [ 527 CommonModule, 528 IonicModule, 529 TranslateModule.forChild() 530 ] }); 531 } 532}; 533
534// src/app/pages/posts/advises/services/stats.service.ts 535var PostStatsSvc = class _PostStatsSvc { 536 constructor(http) { 537 this.http = http; 538 } 539 // To Get Total Qant Posts done By User 540 getQPosts(uid) { 541 return __async(this, null, function* () { 542 return this.http.get(`posts/oracles/stats/qantPOSTsByUser/${uid}`); 543 }); 544 } 545 // To Get Total Reacts to every Post done By User 546 getQReactsToPOST(uid) { 547 return __async(this, null, function* () { 548 return this.http.get(`posts/oracles/stats/qantReactsToPOSTsByUser/${uid}`); 549 }); 550 } 551 // To Get Stats about Posts By User 552 getQs(uid) { 553 return __async(this, null, function* () { 554 return this.http.get(`posts/oracles/stats/qantsByUser/${uid}`); 555 }); 556 } 557 static { 558 this.\u0275fac = function PostStatsSvc_Factory(t) { 559 return new (t || _PostStatsSvc)(\u0275\u0275inject(HttpService)); 560 }; 561 } 562 static { 563 this.\u0275prov = /* @__PURE__ */ \u0275\u0275defineInjectable({ token: _PostStatsSvc, factory: _PostStatsSvc.\u0275fac, providedIn: "root" }); 564 } 565}; 566
567// src/app/pages/posts/components/summary/summary.component.ts 568function PostSummaryComponent_ion_avatar_5_ion_img_1_Template(rf, ctx) { 569 if (rf & 1) { 570 \u0275\u0275element(0, "ion-img", 20); 571 } 572 if (rf & 2) { 573 const ctx_r4 = \u0275\u0275nextContext(2); 574 \u0275\u0275property("src", ctx_r4.iAdvise.media_url); 575 } 576} 577function PostSummaryComponent_ion_avatar_5_video_2_Template(rf, ctx) { 578 if (rf & 1) { 579 \u0275\u0275element(0, "video", 21); 580 } 581 if (rf & 2) { 582 const ctx_r5 = \u0275\u0275nextContext(2); 583 \u0275\u0275property("src", ctx_r5.iAdvise.media_url, \u0275\u0275sanitizeUrl); 584 } 585} 586function PostSummaryComponent_ion_avatar_5_Template(rf, ctx) { 587 if (rf & 1) { 588 \u0275\u0275elementStart(0, "ion-avatar", 17); 589 \u0275\u0275template(1, PostSummaryComponent_ion_avatar_5_ion_img_1_Template, 1, 1, "ion-img", 18)(2, PostSummaryComponent_ion_avatar_5_video_2_Template, 1, 1, "video", 19); 590 \u0275\u0275elementEnd(); 591 } 592 if (rf & 2) { 593 const ctx_r0 = \u0275\u0275nextContext(); 594 let tmp_0_0; 595 let tmp_1_0; 596 \u0275\u0275advance(); 597 \u0275\u0275property("ngIf", ctx_r0.iAdvise && ctx_r0.fileSvc.isImage((tmp_0_0 = ctx_r0.iAdvise.media_ext) !== null && tmp_0_0 !== void 0 ? tmp_0_0 : "")); 598 \u0275\u0275advance(); 599 \u0275\u0275property("ngIf", ctx_r0.iAdvise && ctx_r0.fileSvc.isImage((tmp_1_0 = ctx_r0.iAdvise.media_ext) !== null && tmp_1_0 !== void 0 ? tmp_1_0 : "")); 600 } 601} 602function PostSummaryComponent_ion_label_14_Template(rf, ctx) { 603 if (rf & 1) { 604 \u0275\u0275elementStart(0, "ion-label", 22); 605 \u0275\u0275text(1); 606 \u0275\u0275pipe(2, "translate"); 607 \u0275\u0275elementEnd(); 608 } 609 if (rf & 2) { 610 \u0275\u0275advance(); 611 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(2, 1, "common.labelEdited"), " "); 612 } 613} 614function PostSummaryComponent_ion_label_18_Template(rf, ctx) { 615 if (rf & 1) { 616 \u0275\u0275elementStart(0, "ion-label", 23); 617 \u0275\u0275text(1, ">"); 618 \u0275\u0275elementEnd(); 619 } 620} 621function PostSummaryComponent_ion_label_19_Template(rf, ctx) { 622 if (rf & 1) { 623 \u0275\u0275elementStart(0, "ion-label", 14); 624 \u0275\u0275text(1); 625 \u0275\u0275elementEnd(); 626 } 627 if (rf & 2) { 628 const ctx_r3 = \u0275\u0275nextContext(); 629 \u0275\u0275advance(); 630 \u0275\u0275textInterpolate(ctx_r3.iAdvise.subsector); 631 } 632} 633var PostSummaryComponent = class _PostSummaryComponent { 634 constructor(router, adviseSvc, fileSvc) { 635 this.router = router; 636 this.adviseSvc = adviseSvc; 637 this.fileSvc = fileSvc; 638 this.id = 0; 639 this.watchOnClick = true; 640 this.dateFormatType = DateFormatType; 641 } 642 ngOnInit() { 643 } 644 watch() { 645 if (this.watchOnClick) 646 this.router.navigate([`posts/oracle/${this.id}`]); 647 } 648 static { 649 this.\u0275fac = function PostSummaryComponent_Factory(t) { 650 return new (t || _PostSummaryComponent)(\u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AdviseService), \u0275\u0275directiveInject(FileService)); 651 }; 652 } 653 static { 654 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _PostSummaryComponent, selectors: [["app-post-summary-component"]], inputs: { id: "id", iAdvise: "iAdvise", watchOnClick: "watchOnClick" }, decls: 20, vars: 9, consts: [[3, "click"], [1, "box-bw-r1-lln", "marg-5", "no-padding"], [1, "marg-s", "marg-e", "marg-t5"], ["size", "10", 1, "no-padding"], ["tappable", "", "lines", "none", "color", "transparent", 1, "no-padding"], ["slot", "start", "class", "no-margin wh-40 br-ln-1 tx-center", 4, "ngIf"], [1, "marg-s10", "marg-e10", "w-full"], [1, "no-margin", "bold-6", "font-18", "sum-title", "one-line", 3, "innerHTML"], [1, "lines-2", "marg-t5", "inline"], [1, "sum-summary", "hint", "lines-2", 3, "innerHTML"], ["size", "2", 1, "no-padding"], [1, "align-end"], ["class", "hint font-13", 4, "ngIf"], [1, "marg-s10", "marg-e10", "marg-b5"], ["color", "febelink", 1, "font-14"], ["color", "febelink", "class", "font-14 marg-s10 marg-e10", 4, "ngIf"], ["color", "febelink", "class", "font-14", 4, "ngIf"], ["slot", "start", 1, "no-margin", "wh-40", "br-ln-1", "tx-center"], ["class", "sum-media", 3, "src", 4, "ngIf"], ["playsinline", "", "controls", "", "class", "sum-media", 3, "src", 4, "ngIf"], [1, "sum-media", 3, "src"], ["playsinline", "", "controls", "", 1, "sum-media", 3, "src"], [1, "hint", "font-13"], ["color", "febelink", 1, "font-14", "marg-s10", "marg-e10"]], template: function PostSummaryComponent_Template(rf, ctx) { 655 if (rf & 1) { 656 \u0275\u0275elementStart(0, "div", 0); 657 \u0275\u0275listener("click", function PostSummaryComponent_Template_div_click_0_listener() { 658 return ctx.watch(); 659 }); 660 \u0275\u0275elementStart(1, "ion-grid", 1)(2, "ion-row", 2)(3, "ion-col", 3)(4, "ion-item", 4); 661 \u0275\u0275template(5, PostSummaryComponent_ion_avatar_5_Template, 3, 2, "ion-avatar", 5); 662 \u0275\u0275elementStart(6, "ion-grid", 6)(7, "ion-row"); 663 \u0275\u0275element(8, "h1", 7); 664 \u0275\u0275elementEnd(); 665 \u0275\u0275elementStart(9, "ion-row", 8); 666 \u0275\u0275element(10, "ion-label", 9); 667 \u0275\u0275elementEnd()()()(); 668 \u0275\u0275elementStart(11, "ion-col", 10); 669 \u0275\u0275element(12, "ion-row", 11); 670 \u0275\u0275elementStart(13, "ion-row", 11); 671 \u0275\u0275template(14, PostSummaryComponent_ion_label_14_Template, 3, 3, "ion-label", 12); 672 \u0275\u0275elementEnd()()(); 673 \u0275\u0275elementStart(15, "ion-row", 13)(16, "ion-label", 14); 674 \u0275\u0275text(17); 675 \u0275\u0275elementEnd(); 676 \u0275\u0275template(18, PostSummaryComponent_ion_label_18_Template, 2, 0, "ion-label", 15)(19, PostSummaryComponent_ion_label_19_Template, 2, 1, "ion-label", 16); 677 \u0275\u0275elementEnd()()(); 678 } 679 if (rf & 2) { 680 \u0275\u0275classMap("marg-se marg-b10 pad-tb-1 w-max-600 shadow-light" + (!ctx.watchOnClick ? "" : " pointer")); 681 \u0275\u0275advance(5); 682 \u0275\u0275property("ngIf", ctx.iAdvise && ctx.iAdvise.media_url); 683 \u0275\u0275advance(3); 684 \u0275\u0275property("innerHTML", ctx.adviseSvc.extractTitle(ctx.iAdvise), \u0275\u0275sanitizeHtml); 685 \u0275\u0275advance(2); 686 \u0275\u0275property("innerHTML", ctx.adviseSvc.extractSummary(ctx.iAdvise), \u0275\u0275sanitizeHtml); 687 \u0275\u0275advance(4); 688 \u0275\u0275property("ngIf", ctx.iAdvise.created_at != ctx.iAdvise.updated_at); 689 \u0275\u0275advance(3); 690 \u0275\u0275textInterpolate(ctx.iAdvise.sector); 691 \u0275\u0275advance(); 692 \u0275\u0275property("ngIf", ctx.iAdvise.subsector); 693 \u0275\u0275advance(); 694 \u0275\u0275property("ngIf", ctx.iAdvise.subsector); 695 } 696 }, dependencies: [NgIf, IonAvatar, IonCol, IonGrid, IonImg, IonItem, IonLabel, IonRow, IonRow2, IonCol2, IonImg2, IonGrid2, IonLabel2, IonAvatar2, IonItem2, TranslatePipe], styles: ["/* src/app/pages/posts/components/summary/summary.component.scss */\n.sum-media {\n object-fit: cover;\n max-width: 100%;\n max-height: 100%;\n}\n.sum-title p,\n.sum-summary p {\n display: inline;\n}\n.sum-title img,\n.sum-summary img {\n display: none;\n}\n"], encapsulation: 2 }); 697 } 698}; 699(() => { 700 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(PostSummaryComponent, { className: "PostSummaryComponent", filePath: "src/app/pages/posts/components/summary/summary.component.ts", lineNumber: 14 }); 701})(); 702
703// src/app/pages/posts/advises/stats/stats.component.ts 704function PostStatsComponent_ion_grid_0_ion_col_3_Template(rf, ctx) { 705 if (rf & 1) { 706 \u0275\u0275elementStart(0, "ion-col", 6)(1, "ion-label"); 707 \u0275\u0275text(2); 708 \u0275\u0275pipe(3, "translate"); 709 \u0275\u0275elementEnd(); 710 \u0275\u0275elementStart(4, "ion-label", 7); 711 \u0275\u0275text(5); 712 \u0275\u0275elementEnd()(); 713 } 714 if (rf & 2) { 715 const ctx_r1 = \u0275\u0275nextContext(2); 716 \u0275\u0275advance(2); 717 \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 2, "pages.posts.advises.stats.qCreated")); 718 \u0275\u0275advance(3); 719 \u0275\u0275textInterpolate((ctx_r1.stats == null ? null : ctx_r1.stats.qPosts) || 0); 720 } 721} 722function PostStatsComponent_ion_grid_0_ion_col_4_Template(rf, ctx) { 723 if (rf & 1) { 724 \u0275\u0275elementStart(0, "ion-col", 6)(1, "ion-label"); 725 \u0275\u0275text(2); 726 \u0275\u0275pipe(3, "translate"); 727 \u0275\u0275elementEnd(); 728 \u0275\u0275elementStart(4, "ion-label", 7); 729 \u0275\u0275text(5); 730 \u0275\u0275elementEnd()(); 731 } 732 if (rf & 2) { 733 const ctx_r2 = \u0275\u0275nextContext(2); 734 \u0275\u0275advance(2); 735 \u0275\u0275textInterpolate(\u0275\u0275pipeBind1(3, 2, "pages.posts.advises.stats.qReacts")); 736 \u0275\u0275advance(3); 737 \u0275\u0275textInterpolate((ctx_r2.stats == null ? null : ctx_r2.stats.qReacts) || 0); 738 } 739} 740function PostStatsComponent_ion_grid_0_ion_list_5_app_post_summary_component_1_Template(rf, ctx) { 741 if (rf & 1) { 742 \u0275\u0275element(0, "app-post-summary-component", 9); 743 } 744 if (rf & 2) { 745 const oracle_r6 = ctx.$implicit; 746 let tmp_0_0; 747 \u0275\u0275property("id", (tmp_0_0 = oracle_r6 == null ? null : oracle_r6.id) !== null && tmp_0_0 !== void 0 ? tmp_0_0 : 0)("iAdvise", oracle_r6); 748 } 749} 750function PostStatsComponent_ion_grid_0_ion_list_5_Template(rf, ctx) { 751 if (rf & 1) { 752 \u0275\u0275elementStart(0, "ion-list"); 753 \u0275\u0275template(1, PostStatsComponent_ion_grid_0_ion_list_5_app_post_summary_component_1_Template, 1, 2, "app-post-summary-component", 8); 754 \u0275\u0275elementEnd(); 755 } 756 if (rf & 2) { 757 const ctx_r3 = \u0275\u0275nextContext(2); 758 \u0275\u0275advance(); 759 \u0275\u0275property("ngForOf", ctx_r3.stats == null ? null : ctx_r3.stats.posts); 760 } 761} 762function PostStatsComponent_ion_grid_0_ion_row_6_Template(rf, ctx) { 763 if (rf & 1) { 764 const _r8 = \u0275\u0275getCurrentView(); 765 \u0275\u0275elementStart(0, "ion-row", 10)(1, "ion-label", 11); 766 \u0275\u0275listener("click", function PostStatsComponent_ion_grid_0_ion_row_6_Template_ion_label_click_1_listener() { 767 \u0275\u0275restoreView(_r8); 768 const ctx_r7 = \u0275\u0275nextContext(2); 769 return \u0275\u0275resetView(ctx_r7.seePosts()); 770 }); 771 \u0275\u0275elementStart(2, "em"); 772 \u0275\u0275text(3); 773 \u0275\u0275pipe(4, "translate"); 774 \u0275\u0275elementEnd()()(); 775 } 776 if (rf & 2) { 777 const ctx_r4 = \u0275\u0275nextContext(2); 778 let tmp_0_0; 779 \u0275\u0275advance(3); 780 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(4, 1, "pages.posts.advises.see" + (((tmp_0_0 = ctx_r4.stats == null ? null : ctx_r4.stats.qPosts) !== null && tmp_0_0 !== void 0 ? tmp_0_0 : 0 > 0) ? "-user" : "")), " "); 781 } 782} 783function PostStatsComponent_ion_grid_0_Template(rf, ctx) { 784 if (rf & 1) { 785 \u0275\u0275elementStart(0, "ion-grid", 1); 786 \u0275\u0275element(1, "app-loading", 2); 787 \u0275\u0275elementStart(2, "ion-row"); 788 \u0275\u0275template(3, PostStatsComponent_ion_grid_0_ion_col_3_Template, 6, 4, "ion-col", 3)(4, PostStatsComponent_ion_grid_0_ion_col_4_Template, 6, 4, "ion-col", 3); 789 \u0275\u0275elementEnd(); 790 \u0275\u0275template(5, PostStatsComponent_ion_grid_0_ion_list_5_Template, 2, 1, "ion-list", 4)(6, PostStatsComponent_ion_grid_0_ion_row_6_Template, 5, 3, "ion-row", 5); 791 \u0275\u0275elementEnd(); 792 } 793 if (rf & 2) { 794 const ctx_r0 = \u0275\u0275nextContext(); 795 \u0275\u0275advance(); 796 \u0275\u0275property("isLoading", ctx_r0.isLoading !== null ? ctx_r0.isLoading : false); 797 \u0275\u0275advance(2); 798 \u0275\u0275property("ngIf", ctx_r0.stats); 799 \u0275\u0275advance(); 800 \u0275\u0275property("ngIf", ctx_r0.stats); 801 \u0275\u0275advance(); 802 \u0275\u0275property("ngIf", ctx_r0.stats == null ? null : ctx_r0.stats.posts); 803 \u0275\u0275advance(); 804 \u0275\u0275property("ngIf", !ctx_r0.isLoading); 805 } 806} 807var PostStatsComponent = class _PostStatsComponent { 808 constructor(router, postStatsSvc) { 809 this.router = router; 810 this.postStatsSvc = postStatsSvc; 811 this.stats = null; 812 this.dateFormatType = DateFormatType; 813 this.isLoading = null; 814 } 815 ngOnInit() { 816 } 817 ngOnChanges(changes) { 818 if ("id" in changes) { 819 this.id = changes["id"].currentValue;
820 if (this.id) 821 this.get(); 822 } 823 } 824 get() { 825 return __async(this, null, function* () { 826 this.isLoading = true; 827 const { response } = yield this.postStatsSvc.getQs(Number(this.id)); 828 this.stats = response; 829 this.isLoading = false; 830 }); 831 } 832 seePosts() { 833 this.router.navigate(["posts/oracles"], { queryParams: { uid: this.id } }); 834 } 835 static { 836 this.\u0275fac = function PostStatsComponent_Factory(t) { 837 return new (t || _PostStatsComponent)(\u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(PostStatsSvc)); 838 }; 839 } 840 static { 841 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _PostStatsComponent, selectors: [["app-post-stats-component"]], inputs: { id: "id", stats: "stats" }, features: [\u0275\u0275NgOnChangesFeature], decls: 1, vars: 1, consts: [["class", "box-bw-r1-lln marg-tb-10", 4, "ngIf"], [1, "box-bw-r1-lln", "marg-tb-10"], [3, "isLoading"], ["size", "6", "class", "tx-center", 4, "ngIf"], [4, "ngIf"], ["class", "align-center", 4, "ngIf"], ["size", "6", 1, "tx-center"], [1, "bold-6"], [3, "id", "iAdvise", 4, "ngFor", "ngForOf"], [3, "id", "iAdvise"], [1, "align-center"], [1, "pointer", "hint", 3, "click"]], template: function PostStatsComponent_Template(rf, ctx) { 842 if (rf & 1) { 843 \u0275\u0275template(0, PostStatsComponent_ion_grid_0_Template, 7, 5, "ion-grid", 0); 844 } 845 if (rf & 2) { 846 \u0275\u0275property("ngIf", ctx.id); 847 } 848 }, dependencies: [NgForOf, NgIf, IonCol, IonGrid, IonLabel, IonList, IonRow, LoadingBLComponent, IonRow2, IonCol2, IonGrid2, IonLabel2, IonList2, PostSummaryComponent, TranslatePipe], styles: ["\n\nion-img[_ngcontent-%COMP%] {\n width: 100%;\n --width: 100%;\n max-width: 100%;\n height: 25vh;\n --height: 25vh;\n max-height: 25vh;\n object-fit: cover;\n}\nion-icon[_ngcontent-%COMP%] {\n width: 25px;\n}"] }); 849 } 850}; 851(() => { 852 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(PostStatsComponent, { className: "PostStatsComponent", filePath: "src/app/pages/posts/advises/stats/stats.component.ts", lineNumber: 12 }); 853})(); 854
855// src/app/pages/posts/components/models/react-types.model.ts 856var ReactTypes; 857(function(ReactTypes2) { 858 ReactTypes2[ReactTypes2["NONE"] = 0] = "NONE"; 859 ReactTypes2[ReactTypes2["LIKE"] = 1] = "LIKE"; 860 ReactTypes2[ReactTypes2["DISAGREEMENT"] = 2] = "DISAGREEMENT"; 861 ReactTypes2[ReactTypes2["LOVE"] = 3] = "LOVE"; 862 ReactTypes2[ReactTypes2["USEFUL"] = 4] = "USEFUL"; 863})(ReactTypes || (ReactTypes = {})); 864var Reacts = class _Reacts { 865 static { 866 this.LIKE = { id: ReactTypes.LIKE, type: "like", state: 1 }; 867 } 868 static { 869 this.DISAGREEMENT = { id: ReactTypes.DISAGREEMENT, type: "disagreement", state: 1 }; 870 } 871 static { 872 this.LOVE = { id: ReactTypes.LOVE, type: "love", state: 1 }; 873 } 874 static { 875 this.USEFUL = { id: ReactTypes.USEFUL, type: "useful", state: 1 }; 876 } 877 static { 878 this.NONE = { id: ReactTypes.NONE, type: "", state: 1 }; 879 } 880 static get(reactType) { 881 switch (reactType) { 882 case ReactTypes.LIKE: 883 return _Reacts.LIKE; 884 case ReactTypes.DISAGREEMENT: 885 return _Reacts.DISAGREEMENT; 886 case ReactTypes.LOVE: 887 return _Reacts.LOVE; 888 case ReactTypes.USEFUL: 889 return _Reacts.USEFUL; 890 case ReactTypes.NONE: 891 default: 892 return _Reacts.NONE; 893 } 894 } 895 static list() { 896 return [ 897 /* Reacts.NONE 898 , */ 899 _Reacts.LIKE, 900 _Reacts.DISAGREEMENT, 901 _Reacts.LOVE 902 // , Reacts.USEFUL 903 ]; 904 } 905 static img(reactType) { 906 const iReactType = _Reacts.get(reactType); 907 return `assets/icon/svg/react${!iReactType?.type ? "" : "_" + iReactType.type}.svg`; 908 } 909}; 910
911// src/app/pages/posts/components/react-types/react-types.component.ts 912function ReactTypesComponent_div_1_Template(rf, ctx) { 913 if (rf & 1) { 914 const _r3 = \u0275\u0275getCurrentView(); 915 \u0275\u0275elementStart(0, "div", 2); 916 \u0275\u0275listener("click", function ReactTypesComponent_div_1_Template_div_click_0_listener() { 917 const restoredCtx = \u0275\u0275restoreView(_r3); 918 const reactType_r1 = restoredCtx.$implicit; 919 const ctx_r2 = \u0275\u0275nextContext(); 920 return \u0275\u0275resetView(ctx_r2.reacted(reactType_r1)); 921 }); 922 \u0275\u0275element(1, "img", 3); 923 \u0275\u0275text(2); 924 \u0275\u0275pipe(3, "translate"); 925 \u0275\u0275elementEnd(); 926 } 927 if (rf & 2) { 928 const reactType_r1 = ctx.$implicit; 929 const ctx_r0 = \u0275\u0275nextContext(); 930 \u0275\u0275advance(); 931 \u0275\u0275property("src", ctx_r0.reacts.img(reactType_r1 == null ? null : reactType_r1.id), \u0275\u0275sanitizeUrl); 932 \u0275\u0275advance(); 933 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 2, "pages.posts.reacts." + reactType_r1.type), " "); 934 } 935} 936var ReactTypesComponent = class _ReactTypesComponent { 937 constructor(popCtrl) { 938 this.popCtrl = popCtrl; 939 this.OnReacted = new EventEmitter(); 940 this.reactTypes = Reacts.list(); 941 this.reacts = Reacts; 942 } 943 ngOnInit() { 944 } 945 reacted(reactType) { 946 if (this.OnReacted) 947 this.OnReacted.emit(reactType); 948 this.popCtrl.dismiss(reactType); 949 } 950 static { 951 this.\u0275fac = function ReactTypesComponent_Factory(t) { 952 return new (t || _ReactTypesComponent)(\u0275\u0275directiveInject(PopoverController)); 953 }; 954 } 955 static { 956 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _ReactTypesComponent, selectors: [["app-react-types-component"]], outputs: { OnReacted: "OnReacted" }, decls: 2, vars: 1, consts: [[2, "display", "table", "width", "240px", "padding", "4px 6px", "background", "#FFFFFF"], ["style", "cursor:pointer;display:table-cell;vertical-align:middle;text-align:center;font-weight: 500;font-size: 14px;line-height: 150%;color: #1C64F2;", 3, "click", 4, "ngFor", "ngForOf"], [2, "cursor", "pointer", "display", "table-cell", "vertical-align", "middle", "text-align", "center", "font-weight", "500", "font-size", "14px", "line-height", "150%", "color", "#1C64F2", 3, "click"], [2, "width", "14px", "margin-right", "6px", "margin-left", "8px", 3, "src"]], template: function ReactTypesComponent_Template(rf, ctx) { 957 if (rf & 1) { 958 \u0275\u0275elementStart(0, "div", 0); 959 \u0275\u0275template(1, ReactTypesComponent_div_1_Template, 4, 4, "div", 1); 960 \u0275\u0275elementEnd(); 961 } 962 if (rf & 2) { 963 \u0275\u0275advance(); 964 \u0275\u0275property("ngForOf", ctx.reactTypes); 965 } 966 }, dependencies: [NgForOf, TranslatePipe], styles: ["/* src/app/pages/posts/components/react-types/react-types.component.scss */\n"], encapsulation: 2 }); 967 } 968}; 969(() => { 970 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(ReactTypesComponent, { className: "ReactTypesComponent", filePath: "src/app/pages/posts/components/react-types/react-types.component.ts", lineNumber: 11 }); 971})(); 972
973// src/app/pages/posts/shared-post.module.ts 974var SharedPostModule = class _SharedPostModule { 975 static { 976 this.\u0275fac = function SharedPostModule_Factory(t) { 977 return new (t || _SharedPostModule)(); 978 }; 979 } 980 static { 981 this.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _SharedPostModule }); 982 } 983 static { 984 this.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ imports: [ 985 CommonModule, 986 IonicModule, 987 TranslateModule.forChild(), 988 SharedModule 989 ] }); 990 } 991}; 992
993// src/app/pages/perfil-demandante/perfil-demandante.page.ts 994function PerfilDemandantePage_ion_button_17_Template(rf, ctx) { 995 if (rf & 1) { 996 const _r4 = \u0275\u0275getCurrentView(); 997 \u0275\u0275elementStart(0, "ion-button", 3); 998 \u0275\u0275listener("click", function PerfilDemandantePage_ion_button_17_Template_ion_button_click_0_listener() { 999 \u0275\u0275restoreView(_r4); 1000 const ctx_r3 = \u0275\u0275nextContext(); 1001 return \u0275\u0275resetView(ctx_r3.irA("/menu/perfil")); 1002 }); 1003 \u0275\u0275element(1, "ion-icon", 15); 1004 \u0275\u0275text(2); 1005 \u0275\u0275pipe(3, "translate"); 1006 \u0275\u0275elementEnd(); 1007 } 1008 if (rf & 2) { 1009 const ctx_r0 = \u0275\u0275nextContext(); 1010 \u0275\u0275advance(2); 1011 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(3, 1, ctx_r0.perfil !== null ? "menu.tabs.profile" : "menu.tabs.login"), " "); 1012 } 1013} 1014function PerfilDemandantePage_div_23_Template(rf, ctx) { 1015 if (rf & 1) { 1016 \u0275\u0275elementStart(0, "div", 16); 1017 \u0275\u0275element(1, "ion-spinner"); 1018 \u0275\u0275elementStart(2, "p"); 1019 \u0275\u0275text(3, "Cargando..."); 1020 \u0275\u0275elementEnd()(); 1021 } 1022} 1023function PerfilDemandantePage_div_24_ion_grid_1_img_3_Template(rf, ctx) { 1024 if (rf & 1) { 1025 const _r18 = \u0275\u0275getCurrentView(); 1026 \u0275\u0275elementStart(0, "img", 39); 1027 \u0275\u0275listener("error", function PerfilDemandantePage_div_24_ion_grid_1_img_3_Template_img_error_0_listener() { 1028 \u0275\u0275restoreView(_r18); 1029 const ctx_r17 = \u0275\u0275nextContext(3); 1030 return \u0275\u0275resetView(ctx_r17.perfilpublico.logo = null); 1031 }); 1032 \u0275\u0275elementEnd(); 1033 } 1034 if (rf & 2) { 1035 const ctx_r13 = \u0275\u0275nextContext(3); 1036 \u0275\u0275property("src", ctx_r13.perfilpublico == null ? null : ctx_r13.perfilpublico.logo, \u0275\u0275sanitizeUrl); 1037 } 1038} 1039function PerfilDemandantePage_div_24_ion_grid_1_img_4_Template(rf, ctx) { 1040 if (rf & 1) { 1041 \u0275\u0275element(0, "img", 40); 1042 } 1043} 1044function PerfilDemandantePage_div_24_ion_grid_1_div_12_Template(rf, ctx) { 1045 if (rf & 1) { 1046 \u0275\u0275elementStart(0, "div", 41)(1, "h2", 37); 1047 \u0275\u0275text(2, "Descripci\xF3n"); 1048 \u0275\u0275elementEnd(); 1049 \u0275\u0275elementStart(3, "p", 42); 1050 \u0275\u0275text(4); 1051 \u0275\u0275elementEnd()(); 1052 } 1053 if (rf & 2) { 1054 const ctx_r15 = \u0275\u0275nextContext(3); 1055 \u0275\u0275advance(4); 1056 \u0275\u0275textInterpolate(ctx_r15.perfilpublico == null ? null : ctx_r15.perfilpublico.descripcion); 1057 } 1058} 1059var _c02 = (a0) => ({ u: a0, d: void 0, showLink: true }); 1060var _c1 = (a0) => [a0]; 1061function PerfilDemandantePage_div_24_ion_grid_1_ion_row_13_Template(rf, ctx) { 1062 if (rf & 1) { 1063 \u0275\u0275elementStart(0, "ion-row")(1, "ion-col", 43)(2, "div", 41)(3, "h2", 37); 1064 \u0275\u0275text(4, "Link URL"); 1065 \u0275\u0275elementEnd(); 1066 \u0275\u0275element(5, "app-link-preview", 44); 1067 \u0275\u0275elementEnd()()(); 1068 } 1069 if (rf & 2) { 1070 const ctx_r16 = \u0275\u0275nextContext(3); 1071 let tmp_1_0; 1072 \u0275\u0275advance(5);
1073 \u0275\u0275property("columns", 1)("urls", \u0275\u0275pureFunction1(4, _c1, \u0275\u0275pureFunction1(2, _c02, (tmp_1_0 = ctx_r16.perfilpublico == null ? null : ctx_r16.perfilpublico.link_url) !== null && tmp_1_0 !== void 0 ? tmp_1_0 : ""))); 1074 } 1075} 1076function PerfilDemandantePage_div_24_ion_grid_1_Template(rf, ctx) { 1077 if (rf & 1) { 1078 const _r20 = \u0275\u0275getCurrentView(); 1079 \u0275\u0275elementStart(0, "ion-grid", 19)(1, "ion-row")(2, "ion-col", 33); 1080 \u0275\u0275template(3, PerfilDemandantePage_div_24_ion_grid_1_img_3_Template, 1, 1, "img", 34)(4, PerfilDemandantePage_div_24_ion_grid_1_img_4_Template, 1, 0, "img", 35); 1081 \u0275\u0275elementEnd(); 1082 \u0275\u0275elementStart(5, "ion-col", 36)(6, "h1", 37); 1083 \u0275\u0275text(7); 1084 \u0275\u0275elementEnd(); 1085 \u0275\u0275elementStart(8, "ion-button", 38); 1086 \u0275\u0275listener("click", function PerfilDemandantePage_div_24_ion_grid_1_Template_ion_button_click_8_listener($event) { 1087 \u0275\u0275restoreView(_r20); 1088 const ctx_r19 = \u0275\u0275nextContext(2); 1089 return \u0275\u0275resetView(ctx_r19.shareProfile($event)); 1090 }); 1091 \u0275\u0275text(9, "Compartir perfil"); 1092 \u0275\u0275elementEnd()()(); 1093 \u0275\u0275elementStart(10, "ion-row")(11, "ion-col"); 1094 \u0275\u0275template(12, PerfilDemandantePage_div_24_ion_grid_1_div_12_Template, 5, 1, "div", 20); 1095 \u0275\u0275elementEnd()(); 1096 \u0275\u0275template(13, PerfilDemandantePage_div_24_ion_grid_1_ion_row_13_Template, 6, 6, "ion-row", 24); 1097 \u0275\u0275elementEnd(); 1098 } 1099 if (rf & 2) { 1100 const ctx_r5 = \u0275\u0275nextContext(2); 1101 \u0275\u0275advance(3); 1102 \u0275\u0275property("ngIf", ctx_r5.perfilpublico == null ? null : ctx_r5.perfilpublico.logo); 1103 \u0275\u0275advance(); 1104 \u0275\u0275property("ngIf", !(ctx_r5.perfilpublico == null ? null : ctx_r5.perfilpublico.logo)); 1105 \u0275\u0275advance(3); 1106 \u0275\u0275textInterpolate(ctx_r5.perfilpublico == null ? null : ctx_r5.perfilpublico.nick); 1107 \u0275\u0275advance(5); 1108 \u0275\u0275property("ngIf", ctx_r5.perfilpublico == null ? null : ctx_r5.perfilpublico.descripcion); 1109 \u0275\u0275advance(); 1110 \u0275\u0275property("ngIf", ctx_r5.hasSubscription && (ctx_r5.perfilpublico == null ? null : ctx_r5.perfilpublico.link_url)); 1111 } 1112} 1113function PerfilDemandantePage_div_24_div_5_Template(rf, ctx) { 1114 if (rf & 1) { 1115 \u0275\u0275elementStart(0, "div", 41)(1, "h2", 37); 1116 \u0275\u0275text(2, "Datos de contacto"); 1117 \u0275\u0275elementEnd(); 1118 \u0275\u0275elementStart(3, "p", 45); 1119 \u0275\u0275element(4, "ion-icon", 46); 1120 \u0275\u0275text(5, " Email: "); 1121 \u0275\u0275elementStart(6, "a", 47)(7, "em"); 1122 \u0275\u0275text(8); 1123 \u0275\u0275elementEnd()()(); 1124 \u0275\u0275elementStart(9, "p", 45); 1125 \u0275\u0275element(10, "ion-icon", 48); 1126 \u0275\u0275text(11, " Telefono: "); 1127 \u0275\u0275elementStart(12, "a", 47)(13, "em"); 1128 \u0275\u0275text(14); 1129 \u0275\u0275elementEnd()()()(); 1130 } 1131 if (rf & 2) { 1132 const ctx_r6 = \u0275\u0275nextContext(2); 1133 \u0275\u0275advance(6); 1134 \u0275\u0275property("href", "mailto:" + (ctx_r6.perfilpublico == null ? null : ctx_r6.perfilpublico.email), \u0275\u0275sanitizeUrl); 1135 \u0275\u0275advance(2); 1136 \u0275\u0275textInterpolate(ctx_r6.perfilpublico == null ? null : ctx_r6.perfilpublico.email); 1137 \u0275\u0275advance(4); 1138 \u0275\u0275property("href", "tel:" + (ctx_r6.perfilpublico == null ? null : ctx_r6.perfilpublico.telefono), \u0275\u0275sanitizeUrl); 1139 \u0275\u0275advance(2); 1140 \u0275\u0275textInterpolate(ctx_r6.perfilpublico == null ? null : ctx_r6.perfilpublico.telefono); 1141 } 1142} 1143function PerfilDemandantePage_div_24_div_10_strong_1_Template(rf, ctx) { 1144 if (rf & 1) { 1145 \u0275\u0275elementStart(0, "strong", 51); 1146 \u0275\u0275text(1); 1147 \u0275\u0275elementEnd(); 1148 } 1149 if (rf & 2) { 1150 const val_r21 = \u0275\u0275nextContext().$implicit; 1151 \u0275\u0275advance(); 1152 \u0275\u0275textInterpolate2("", val_r21.length, " ", val_r21[0].nick || val_r21[0].name, ""); 1153 } 1154} 1155function PerfilDemandantePage_div_24_div_10_Template(rf, ctx) { 1156 if (rf & 1) { 1157 \u0275\u0275elementStart(0, "div", 49); 1158 \u0275\u0275template(1, PerfilDemandantePage_div_24_div_10_strong_1_Template, 2, 2, "strong", 50); 1159 \u0275\u0275elementEnd(); 1160 } 1161 if (rf & 2) { 1162 const val_r21 = ctx.$implicit; 1163 \u0275\u0275advance(); 1164 \u0275\u0275property("ngIf", val_r21.length > 0); 1165 } 1166} 1167function PerfilDemandantePage_div_24_div_13_Template(rf, ctx) { 1168 if (rf & 1) { 1169 \u0275\u0275elementStart(0, "div")(1, "span", 21)(2, "p", 42); 1170 \u0275\u0275text(3, "Sin valoraciones"); 1171 \u0275\u0275elementEnd()()(); 1172 } 1173} 1174function PerfilDemandantePage_div_24_div_14_ion_item_5_ion_icon_6_Template(rf, ctx) { 1175 if (rf & 1) { 1176 \u0275\u0275element(0, "ion-icon", 57); 1177 } 1178} 1179function PerfilDemandantePage_div_24_div_14_ion_item_5_ion_icon_7_Template(rf, ctx) { 1180 if (rf & 1) { 1181 \u0275\u0275element(0, "ion-icon", 58); 1182 } 1183} 1184function PerfilDemandantePage_div_24_div_14_ion_item_5_Template(rf, ctx) { 1185 if (rf & 1) { 1186 \u0275\u0275elementStart(0, "ion-item")(1, "div")(2, "span")(3, "strong"); 1187 \u0275\u0275text(4); 1188 \u0275\u0275elementEnd()(); 1189 \u0275\u0275elementStart(5, "span", 53); 1190 \u0275\u0275template(6, PerfilDemandantePage_div_24_div_14_ion_item_5_ion_icon_6_Template, 1, 0, "ion-icon", 54)(7, PerfilDemandantePage_div_24_div_14_ion_item_5_ion_icon_7_Template, 1, 0, "ion-icon", 55); 1191 \u0275\u0275elementEnd()(); 1192 \u0275\u0275elementStart(8, "div", 56)(9, "p"); 1193 \u0275\u0275text(10); 1194 \u0275\u0275elementEnd()()(); 1195 } 1196 if (rf & 2) { 1197 const opinion_r25 = ctx.$implicit; 1198 \u0275\u0275advance(4); 1199 \u0275\u0275textInterpolate(opinion_r25 == null ? null : opinion_r25.usuario); 1200 \u0275\u0275advance(2); 1201 \u0275\u0275property("ngForOf", opinion_r25 == null ? null : opinion_r25.vacias); 1202 \u0275\u0275advance(); 1203 \u0275\u0275property("ngForOf", opinion_r25 == null ? null : opinion_r25.valoracion); 1204 \u0275\u0275advance(3); 1205 \u0275\u0275textInterpolate(opinion_r25 == null ? null : opinion_r25.texto); 1206 } 1207} 1208function PerfilDemandantePage_div_24_div_14_Template(rf, ctx) { 1209 if (rf & 1) { 1210 \u0275\u0275elementStart(0, "div")(1, "span", 21)(2, "p", 42); 1211 \u0275\u0275text(3); 1212 \u0275\u0275elementEnd()(); 1213 \u0275\u0275elementStart(4, "ion-list"); 1214 \u0275\u0275template(5, PerfilDemandantePage_div_24_div_14_ion_item_5_Template, 11, 4, "ion-item", 52); 1215 \u0275\u0275elementEnd()(); 1216 } 1217 if (rf & 2) { 1218 const ctx_r9 = \u0275\u0275nextContext(2); 1219 \u0275\u0275advance(3); 1220 \u0275\u0275textInterpolate1("", ctx_r9.opiniones == null ? null : ctx_r9.opiniones.length, " Valoraciones del perfil"); 1221 \u0275\u0275advance(2); 1222 \u0275\u0275property("ngForOf", ctx_r9.opiniones); 1223 } 1224} 1225function PerfilDemandantePage_div_24_ion_button_15_Template(rf, ctx) { 1226 if (rf & 1) { 1227 const _r31 = \u0275\u0275getCurrentView(); 1228 \u0275\u0275elementStart(0, "ion-button", 29); 1229 \u0275\u0275listener("click", function PerfilDemandantePage_div_24_ion_button_15_Template_ion_button_click_0_listener() { 1230 \u0275\u0275restoreView(_r31); 1231 const ctx_r30 = \u0275\u0275nextContext(2);
1232 return \u0275\u0275resetView(ctx_r30.opinionModal()); 1233 }); 1234 \u0275\u0275text(1, " Publicar opinion "); 1235 \u0275\u0275elementEnd(); 1236 } 1237} 1238function PerfilDemandantePage_div_24_ion_row_16_Template(rf, ctx) { 1239 if (rf & 1) { 1240 \u0275\u0275elementStart(0, "ion-row", 59)(1, "ion-col", 60); 1241 \u0275\u0275element(2, "app-follower-button", 61); 1242 \u0275\u0275elementEnd()(); 1243 } 1244 if (rf & 2) { 1245 const ctx_r11 = \u0275\u0275nextContext(2); 1246 \u0275\u0275advance(2); 1247 \u0275\u0275property("user", ctx_r11.perfilpublico); 1248 } 1249} 1250function PerfilDemandantePage_div_24_ion_row_17_Template(rf, ctx) { 1251 if (rf & 1) { 1252 \u0275\u0275elementStart(0, "ion-row", 59)(1, "ion-col", 60); 1253 \u0275\u0275element(2, "app-donate-button", 62); 1254 \u0275\u0275elementEnd()(); 1255 } 1256 if (rf & 2) { 1257 const ctx_r12 = \u0275\u0275nextContext(2); 1258 \u0275\u0275advance(2); 1259 \u0275\u0275property("user", ctx_r12.perfilpublico)("asButton", true); 1260 } 1261} 1262function PerfilDemandantePage_div_24_Template(rf, ctx) { 1263 if (rf & 1) { 1264 const _r33 = \u0275\u0275getCurrentView(); 1265 \u0275\u0275elementStart(0, "div", 17); 1266 \u0275\u0275template(1, PerfilDemandantePage_div_24_ion_grid_1_Template, 14, 5, "ion-grid", 18); 1267 \u0275\u0275elementStart(2, "ion-grid", 19)(3, "ion-row")(4, "ion-col"); 1268 \u0275\u0275template(5, PerfilDemandantePage_div_24_div_5_Template, 15, 4, "div", 20); 1269 \u0275\u0275elementEnd()()(); 1270 \u0275\u0275elementStart(6, "ion-grid", 19)(7, "ion-row")(8, "ion-col")(9, "span", 21); 1271 \u0275\u0275template(10, PerfilDemandantePage_div_24_div_10_Template, 2, 1, "div", 22); 1272 \u0275\u0275elementEnd()()(); 1273 \u0275\u0275elementStart(11, "ion-row")(12, "ion-col", 23); 1274 \u0275\u0275template(13, PerfilDemandantePage_div_24_div_13_Template, 4, 0, "div", 24)(14, PerfilDemandantePage_div_24_div_14_Template, 6, 2, "div", 24)(15, PerfilDemandantePage_div_24_ion_button_15_Template, 2, 0, "ion-button", 25); 1275 \u0275\u0275elementEnd()(); 1276 \u0275\u0275template(16, PerfilDemandantePage_div_24_ion_row_16_Template, 3, 1, "ion-row", 26)(17, PerfilDemandantePage_div_24_ion_row_17_Template, 3, 2, "ion-row", 26); 1277 \u0275\u0275elementStart(18, "ion-row", 27)(19, "ion-col", 28)(20, "ion-button", 29); 1278 \u0275\u0275listener("click", function PerfilDemandantePage_div_24_Template_ion_button_click_20_listener() { 1279 \u0275\u0275restoreView(_r33); 1280 const ctx_r32 = \u0275\u0275nextContext(); 1281 return \u0275\u0275resetView(ctx_r32.report()); 1282 }); 1283 \u0275\u0275element(21, "ion-icon", 30); 1284 \u0275\u0275text(22); 1285 \u0275\u0275pipe(23, "translate"); 1286 \u0275\u0275elementEnd()(); 1287 \u0275\u0275elementStart(24, "ion-col", 28)(25, "ion-button", 29); 1288 \u0275\u0275listener("click", function PerfilDemandantePage_div_24_Template_ion_button_click_25_listener() { 1289 \u0275\u0275restoreView(_r33); 1290 const ctx_r34 = \u0275\u0275nextContext(); 1291 return \u0275\u0275resetView(ctx_r34.userSvc.blockUser(ctx_r34.perfilpublico)); 1292 }); 1293 \u0275\u0275element(26, "ion-icon", 31); 1294 \u0275\u0275text(27); 1295 \u0275\u0275pipe(28, "translate"); 1296 \u0275\u0275elementEnd()()(); 1297 \u0275\u0275element(29, "app-post-stats-component", 32); 1298 \u0275\u0275elementEnd()(); 1299 } 1300 if (rf & 2) { 1301 const ctx_r2 = \u0275\u0275nextContext(); 1302 \u0275\u0275advance(); 1303 \u0275\u0275property("ngIf", ctx_r2.perfilpublico != null); 1304 \u0275\u0275advance(4); 1305 \u0275\u0275property("ngIf", ctx_r2.contacto === "true"); 1306 \u0275\u0275advance(5); 1307 \u0275\u0275property("ngForOf", ctx_r2.perfilpublico.valoracion); 1308 \u0275\u0275advance(3); 1309 \u0275\u0275property("ngIf", ctx_r2.sinOpiniones == true); 1310 \u0275\u0275advance(); 1311 \u0275\u0275property("ngIf", (ctx_r2.opiniones == null ? null : ctx_r2.opiniones.length) > 0); 1312 \u0275\u0275advance(); 1313 \u0275\u0275property("ngIf", ctx_r2.sinOpiniones); 1314 \u0275\u0275advance(); 1315 \u0275\u0275property("ngIf", (ctx_r2.perfilpublico == null ? null : ctx_r2.perfilpublico.id) != (ctx_r2.currentUser == null ? null : ctx_r2.currentUser.id)); 1316 \u0275\u0275advance(); 1317 \u0275\u0275property("ngIf", ctx_r2.perfilpublico); 1318 \u0275\u0275advance(5); 1319 \u0275\u0275textInterpolate1(" \xA0", \u0275\u0275pipeBind1(23, 11, "common.buttons.report"), " "); 1320 \u0275\u0275advance(5); 1321 \u0275\u0275textInterpolate1(" \xA0", \u0275\u0275pipeBind1(28, 13, "common.buttons.block"), " "); 1322 \u0275\u0275advance(2); 1323 \u0275\u0275property("id", ctx_r2.perfilpublico == null ? null : ctx_r2.perfilpublico.id); 1324 } 1325} 1326var PerfilDemandantePage = class _PerfilDemandantePage { 1327 constructor(route, api, platform, modalCtrl, popoverController, router, alertController, utilities, translateService, authSvc, userSvc, mailSvc, reportSvc) { 1328 this.route = route; 1329 this.api = api; 1330 this.platform = platform; 1331 this.modalCtrl = modalCtrl; 1332 this.popoverController = popoverController; 1333 this.router = router; 1334 this.alertController = alertController; 1335 this.utilities = utilities; 1336 this.translateService = translateService; 1337 this.authSvc = authSvc; 1338 this.userSvc = userSvc; 1339 this.mailSvc = mailSvc; 1340 this.reportSvc = reportSvc; 1341 this.isLoading = false;
1342 this.currentUser = null; 1343 this.urlName = null; 1344 this.homePage = environment.HOME_PAGE; 1345 this.hasSubscription = false; 1346 var data = route.snapshot.queryParamMap; 1347 this.contacto = data.params.contacto; 1348 this.route.paramMap.subscribe((params) => { 1349 this.id_perfil = params.get("id"); 1350 this.urlName = params.get("name"); 1351 }); 1352 this.refreshTab = this.api.getUserLogged().subscribe((item) => { 1353 this.getUserProfile(); 1354 }); 1355 } 1356 getUserProfile() { 1357 return __async(this, null, function* () { 1358 yield this.utilities.getGuia().then((data) => { 1359 this.isLogin = data; 1360 }); 1361 yield this.utilities.getUserData().then((data) => { 1362 this.currentUser = __spreadValues({}, data); 1363 if (this.currentUser) { 1364 if (this.currentUser.skip_wizard === 0 && this.isLogin === "login") { 1365 this.utilities.setGuia("other"); 1366 } 1367 } 1368 }); 1369 }); 1370 } 1371 ngOnInit() { 1372 this.obtenerPerfil(); 1373 this.getUserProfile(); 1374 this.checkHasSubscription(); 1375 } 1376 /** 1377 * Obtenemos el perfil del servidor 1378 */ 1379 obtenerPerfil() { 1380 return __async(this, null, function* () { 1381 this.isLoading = true; 1382 (yield this.api.obtenerPerfil(this.id_perfil)).subscribe((res) => { 1383 this.perfilpublico = res.user; 1384 this.id_perfil = this.perfilpublico.reference; 1385 if (this.perfilpublico.logo != null) { 1386 if (!this.perfilpublico.logo.includes("http://") && !this.perfilpublico.logo.includes("https://")) 1387 this.perfilpublico.logo = `${environment.baseWebUrl}storage/${this.perfilpublico.logo}`; 1388 } else { 1389 this.perfilpublico.logo = ""; 1390 } 1391 this.perfilpublico.valoracion = res.opinions; 1392 this.isLoading = false; 1393 this.opinionesPerfil(); 1394 this.comprobarOpinion(); 1395 this.isCorrectSearch(); 1396 }, (err) => { 1397 this.isLoading = false; 1398 }); 1399 }); 1400 } 1401 isCorrectSearch() { 1402 return __async(this, null, function* () { 1403 if (this.urlName) { 1404 const nameToUrlType = this.utilities.textToUrl(this.perfilpublico.nick); 1405 if (nameToUrlType !== this.urlName) { 1406 const alert = yield this.alertController.create({ 1407 header: this.translateService.instant("pages.perfilDemandante.alertNameDontMatch.header"), 1408 message: this.translateService.instant("pages.perfilDemandante.alertNameDontMatch.message"), 1409 buttons: ["Aceptar"] 1410 }); 1411 alert.present(); 1412 } 1413 } 1414 }); 1415 } 1416 /** 1417 * Obtenemos las opiniones del perfil del servidor 1418 */ 1419 opinionesPerfil() { 1420 return __async(this, null, function* () { 1421 (yield this.api.opinionesPerfil(this.id_perfil)).subscribe((data) => { 1422 this.opiniones = data; 1423 }); 1424 }); 1425 } 1426 /** 1427 * Comprobar si el perfil tiene opiniones realizadas 1428 */ 1429 comprobarOpinion() { 1430 return __async(this, null, function* () { 1431 (yield this.api.comprobarOpinion(this.id_perfil)).subscribe((sinOpiniones) => { 1432 this.sinOpiniones = sinOpiniones.sin_opiniones; 1433 }); 1434 }); 1435 } 1436 checkHasSubscription() { 1437 return __async(this, null, function* () { 1438 (yield this.api.hasSubscription(this.id_perfil)).subscribe((hasSubscription) => __async(this, null, function* () { 1439 this.hasSubscription = hasSubscription; 1440 })); 1441 }); 1442 } 1443 shareProfile(ev) { 1444 return __async(this, null, function* () { 1445 let subject = "Mira el perfil de " + this.perfilpublico.nick + " usuario de Febelink:"; 1446 const nameForUrl = this.utilities.textToUrl(this.perfilpublico.nick); 1447 let url = `${environment.WEB_URL}perfil/${this.id_perfil}/${nameForUrl}`; 1448 let message = "Febelink \n" + subject + " \n"; 1449 let image = null; 1450 if (yield this.isImage(this.perfilpublico.logo)) { 1451 image = this.perfilpublico.logo; 1452 } 1453 if (this.platform.is("cordova")) { 1454 this.shareProfileNative(url, message, image); 1455 } else { 1456 this.shareProfileWeb(ev, url, message, image); 1457 } 1458 }); 1459 } 1460 /** 1461 * Share Native ( Android/iOS) 1462 */ 1463 shareProfileNative(url, message, image) { 1464 } 1465 /** 1466 * Share Web 1467 */ 1468 shareProfileWeb(ev, url, message, image) { 1469 return __async(this, null, function* () { 1470 const popover = yield this.popoverController.create({ 1471 component: SharePopoverComponent, 1472 event: ev, 1473 translucent: true, 1474 mode: "ios", 1475 componentProps: { url, title: "Febelink", desc: message, image } 1476 }); 1477 return yield popover.present(); 1478 }); 1479 } 1480 /* 1481 * Check if image exist 1482 */ 1483 isImage(src) { 1484 return new Promise((resolve) => { 1485 var image = new Image(); 1486 image.onerror = function() { 1487 resolve(false); 1488 }; 1489 image.onload = function() { 1490 resolve(true); 1491 }; 1492 image.src = src; 1493 }); 1494 } 1495 /** 1496 * Modal para valorar el perfil 1497 */ 1498 opinionModal() { 1499 return __async(this, null, function* () { 1500 if (this.currentUser?.id != void 0) { 1501 if (this.userSvc.checkUserDataComplete(this.currentUser)) { 1502 const publicarModal = yield this.modalCtrl.create({ 1503 component: PublicarOpinionPage, 1504 componentProps: { id_demandante: this.perfilpublico.id } 1505 }); 1506 yield publicarModal.present(); 1507 const { data } = yield publicarModal.onWillDismiss(); 1508 this.opinionesPerfil(); 1509 this.comprobarOpinion(); 1510 this.obtenerPerfil(); 1511 } 1512 } else { 1513 this.authSvc.userNeedsToRegister(); 1514 } 1515 }); 1516 } 1517 home() { 1518 this.router.navigate([this.homePage]); 1519 } 1520 irA(p) { 1521 if (p === "/menu/perfil") { 1522 if (this.perfil === void 0) { 1523 this.router.navigate(["login"]); 1524 } else { 1525 this.router.navigate(["/menu/perfil"]); 1526 } 1527 } else { 1528 this.router.navigate([p]); 1529 } 1530 } 1531 openGuide() { 1532 return __async(this, null, function* () { 1533 const guideModal = yield this.modalCtrl.create({ 1534 component: GuidePage, 1535 cssClass: "guide-modal" 1536 }); 1537 return yield guideModal.present(); 1538 }); 1539 } 1540 report() { 1541 this.reportSvc.show({ 1542 perfil: this.perfilpublico?.id 1543 }); 1544 } 1545 static { 1546 this.\u0275fac = function PerfilDemandantePage_Factory(t) { 1547 return new (t || _PerfilDemandantePage)(\u0275\u0275directiveInject(ActivatedRoute), \u0275\u0275directiveInject(ApiService), \u0275\u0275directiveInject(Platform), \u0275\u0275directiveInject(ModalController), \u0275\u0275directiveInject(PopoverController), \u0275\u0275directiveInject(Router), \u0275\u0275directiveInject(AlertController), \u0275\u0275directiveInject(UtilitiesService), \u0275\u0275directiveInject(TranslateService), \u0275\u0275directiveInject(AuthenticationService), \u0275\u0275directiveInject(UserService), \u0275\u0275directiveInject(MailService), \u0275\u0275directiveInject(ReportService)); 1548 }; 1549 } 1550 static { 1551 this.\u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _PerfilDemandantePage, selectors: [["app-perfil-demandante"]], decls: 25, vars: 12, consts: [["color", "light"], ["slot", "start"], ["slot", "end", 1, "desktop"], [1, "btn-header", 3, "click"], ["slot", "start", "name", "search"], ["slot", "start", "name", "heart"], ["slot", "start", "name", "chatbubbles"], ["class", "btn-header", 3, "click", 4, "ngIf"], ["src", "assets/imgs/logo.png", "alt", "", 1, "logo", 3, "click"], ["size", "large", "slot", "end"], ["size", "large", "color", "primary", "slot", "icon-only", 3, "click"], ["name", "information-circle", 2, "font-size", "x-large"], [1, "ion-padding"], ["class", "ion-text-center ion-padding-top", 4, "ngIf"], ["class", "content", 4, "ngIf"], ["slot", "start", "name", "person"], [1, "ion-text-center", "ion-padding-top"], [1, "content"], ["fixed", "", 4, "ngIf"], ["fixed", ""], ["class", "apartado", 4, "ngIf"], [1, "reviews"], ["class", "val", 4, "ngFor", "ngForOf"], [1, "ion-no-padding"], [4, "ngIf"], ["class", "boton max-width", "color", "febelink", "class", "boton", 3, "click", 4, "ngIf"], ["class", "marg-t", 4, "ngIf"], [1, "margin-top"], ["size", "6", 1, "ion-no-padding"], ["color", "febelink", 1, "boton", 3, "click"], ["name", "alert-outline"], ["name", "close-outline", "item-left", ""], [3, "id"], ["size", "12", "size-sm", "4"], ["class", "logo", 3, "src", "error", 4, "ngIf"], ["src", "assets/imgs/4.jpg", "class", "logo", "appImgErrorFallback", "", 4, "ngIf"], ["size", "12", "size-sm", "8"], [1, "title"], ["color", "febelink", "expand", "block", 1, "boton", 3, "click"], [1, "logo", 3, "src", "error"], ["src", "assets/imgs/4.jpg", "appImgErrorFallback", "", 1, "logo"], [1, "apartado"], [1, "desc"], ["size", "8"], [3, "columns", "urls"], [1, "contact-info"], ["name", "mail"], ["target", "_top", 3, "href"], ["name", "call"], [1, "val"], ["id", "valoracion", 4, "ngIf"], ["id", "valoracion"], [4, "ngFor", "ngForOf"], [1, "valoracion"], ["name", "star-outline", 4, "ngFor", "ngForOf"], ["name", "star", 4, "ngFor", "ngForOf"], [1, "valoracion-text"], ["name", "star-outline"], ["name", "star"], [1, "marg-t"], ["size", "12", 1, "ion-no-padding"], [1, "boton", "max-width", 3, "user"], [1, "boton", "max-width", 3, "user", "asButton"]], template: function PerfilDemandantePage_Template(rf, ctx) { 1552 if (rf & 1) {
1553 \u0275\u0275elementStart(0, "ion-header")(1, "ion-toolbar", 0)(2, "ion-buttons", 1); 1554 \u0275\u0275element(3, "ion-back-button"); 1555 \u0275\u0275elementEnd(); 1556 \u0275\u0275elementStart(4, "ion-buttons", 2)(5, "ion-button", 3); 1557 \u0275\u0275listener("click", function PerfilDemandantePage_Template_ion_button_click_5_listener() { 1558 return ctx.irA("/" + ctx.homePage); 1559 }); 1560 \u0275\u0275element(6, "ion-icon", 4); 1561 \u0275\u0275text(7); 1562 \u0275\u0275pipe(8, "translate"); 1563 \u0275\u0275elementEnd(); 1564 \u0275\u0275elementStart(9, "ion-button", 3); 1565 \u0275\u0275listener("click", function PerfilDemandantePage_Template_ion_button_click_9_listener() { 1566 return ctx.irA("/menu/busquedas"); 1567 }); 1568 \u0275\u0275element(10, "ion-icon", 5); 1569 \u0275\u0275text(11); 1570 \u0275\u0275pipe(12, "translate"); 1571 \u0275\u0275elementEnd(); 1572 \u0275\u0275elementStart(13, "ion-button", 3); 1573 \u0275\u0275listener("click", function PerfilDemandantePage_Template_ion_button_click_13_listener() { 1574 return ctx.irA("/menu/ofertas"); 1575 }); 1576 \u0275\u0275element(14, "ion-icon", 6); 1577 \u0275\u0275text(15); 1578 \u0275\u0275pipe(16, "translate"); 1579 \u0275\u0275elementEnd(); 1580 \u0275\u0275template(17, PerfilDemandantePage_ion_button_17_Template, 4, 3, "ion-button", 7); 1581 \u0275\u0275elementEnd(); 1582 \u0275\u0275elementStart(18, "img", 8); 1583 \u0275\u0275listener("click", function PerfilDemandantePage_Template_img_click_18_listener() { 1584 return ctx.home(); 1585 }); 1586 \u0275\u0275elementEnd(); 1587 \u0275\u0275elementStart(19, "ion-buttons", 9)(20, "ion-button", 10); 1588 \u0275\u0275listener("click", function PerfilDemandantePage_Template_ion_button_click_20_listener() { 1589 return ctx.openGuide(); 1590 }); 1591 \u0275\u0275element(21, "ion-icon", 11); 1592 \u0275\u0275elementEnd()()()(); 1593 \u0275\u0275elementStart(22, "ion-content", 12); 1594 \u0275\u0275template(23, PerfilDemandantePage_div_23_Template, 4, 0, "div", 13)(24, PerfilDemandantePage_div_24_Template, 30, 15, "div", 14); 1595 \u0275\u0275elementEnd(); 1596 } 1597 if (rf & 2) { 1598 \u0275\u0275advance(7); 1599 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(8, 6, "menu.tabs.searchEngine"), " "); 1600 \u0275\u0275advance(4); 1601 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(12, 8, "menu.tabs.recommend"), " "); 1602 \u0275\u0275advance(4); 1603 \u0275\u0275textInterpolate1(" ", \u0275\u0275pipeBind1(16, 10, "menu.tabs.chat"), " "); 1604 \u0275\u0275advance(2); 1605 \u0275\u0275property("ngIf", ctx.perfil === null); 1606 \u0275\u0275advance(6); 1607 \u0275\u0275property("ngIf", ctx.isLoading); 1608 \u0275\u0275advance(); 1609 \u0275\u0275property("ngIf", ctx.perfilpublico != null && !ctx.isLoading); 1610 } 1611 }, dependencies: [NgForOf, NgIf, ImgErrorFallbackDirective, LinkPreviewComponent, IonHeader, IonButton, IonRow2, IonCol2, IonGrid2, IonToolbar, IonContent, IonItem2, IonList2, IonIcon, IonButtons, IonSpinner, IonBackButton, PostStatsComponent, FollowerButtonComponent, DonateButtonComponent, TranslatePipe], styles: ["\n\nion-header[_ngcontent-%COMP%] {\n text-align: center;\n background: var(--ion-color-light);\n}\nion-header[_ngcontent-%COMP%] .btn-header[_ngcontent-%COMP%] {\n margin: 0 0.8rem;\n}\nion-header[_ngcontent-%COMP%] .active[_ngcontent-%COMP%] {\n color: var(--ion-color-primary) !important;\n}\n@media (min-width: 768px) {\n ion-header[_ngcontent-%COMP%] ion-toolbar[_ngcontent-%COMP%] {\n margin: 0 auto;\n max-width: 1200px;\n }\n}\nion-header[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%] {\n position: absolute;\n top: 10%;\n left: 28%;\n width: 45%;\n max-width: 200px;\n}\n@media (min-width: 768px) {\n ion-header[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%] {\n position: relative;\n width: 45%;\n max-width: 130px;\n left: 0;\n float: left;\n margin-left: 20px;\n }\n}\n@media (min-width: 768px) {\n ion-content[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] {\n max-width: 800px;\n margin: 0 auto;\n }\n}\nion-content[_ngcontent-%COMP%] ion-item[_ngcontent-%COMP%] {\n padding-left: 0 !important;\n margin-left: 0 !important;\n}\nion-content[_ngcontent-%COMP%] .ofertante[_ngcontent-%COMP%] {\n display: block;\n color: #9f9f9f;\n margin-bottom: 10px;\n}\nion-content[_ngcontent-%COMP%] .title[_ngcontent-%COMP%] {\n font-size: 18px;\n}\nion-content[_ngcontent-%COMP%] .btn-info[_ngcontent-%COMP%] {\n width: 100%;\n}\nion-content[_ngcontent-%COMP%] .apartado[_ngcontent-%COMP%] {\n margin-bottom: 15px;\n margin-top: 15px;\n}\nion-content[_ngcontent-%COMP%] .logo[_ngcontent-%COMP%] {\n object-fit: cover;\n height: 200px;\n display: block;\n margin: 0 auto;\n max-width: 100%;\n}\nion-content[_ngcontent-%COMP%] .max-width[_ngcontent-%COMP%] {\n max-width: 200px;\n}
1611\nion-content[_ngcontent-%COMP%] .editar[_ngcontent-%COMP%] {\n color: var(--ion-color-primary);\n margin-left: 20px;\n}\nion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] {\n font-size: 16px;\n color: #ffbb58;\n}\nion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] #valoracion[_ngcontent-%COMP%] {\n text-transform: capitalize;\n}\nion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] #valoracion[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%] {\n color: #ffbb58;\n}\nion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] a[_ngcontent-%COMP%] {\n color: #9f9f9f;\n text-decoration: none;\n margin-left: 20px;\n}\nion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%] {\n color: #9f9f9f;\n}\n@media (min-width: 768px) {\n ion-content[_ngcontent-%COMP%] .reviews[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%] {\n font-size: 18px;\n }\n}\nion-content[_ngcontent-%COMP%] .valoracion[_ngcontent-%COMP%] {\n float: right;\n}\nion-content[_ngcontent-%COMP%] .valoracion[_ngcontent-%COMP%] ion-icon[_ngcontent-%COMP%] {\n color: #ffbb58;\n}\nion-content[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #95a5a6;\n}\n@media (min-width: 768px) {\n ion-content[_ngcontent-%COMP%] .desc[_ngcontent-%COMP%] {\n font-size: 17px;\n }\n}\nion-content[_ngcontent-%COMP%] .share[_ngcontent-%COMP%] {\n margin-right: 10px;\n font-size: 12px;\n color: #8b8b8b;\n}\nion-content[_ngcontent-%COMP%] .valoracion-text[_ngcontent-%COMP%] {\n margin: 10px 0px 10px 0px !important;\n}\nion-content[_ngcontent-%COMP%] .valoracion-text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n white-space: normal !important;\n word-break: break-all;\n}\nion-content[_ngcontent-%COMP%] .boton[_ngcontent-%COMP%] {\n display: block;\n}\n@media (min-width: 768px) {\n ion-content[_ngcontent-%COMP%] .contact-info[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n}"] }); 1612 } 1613}; 1614(() => { 1615 (typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(PerfilDemandantePage, { className: "PerfilDemandantePage", filePath: "src/app/pages/perfil-demandante/perfil-demandante.page.ts", lineNumber: 29 }); 1616})(); 1617
1618// src/app/pages/perfil-demandante/perfil-demandante-routing.module.ts 1619var routes = [ 1620 { 1621 path: "", 1622 component: PerfilDemandantePage 1623 } 1624]; 1625var PerfilDemandantePageRoutingModule = class _PerfilDemandantePageRoutingModule { 1626 static { 1627 this.\u0275fac = function PerfilDemandantePageRoutingModule_Factory(t) { 1628 return new (t || _PerfilDemandantePageRoutingModule)(); 1629 }; 1630 } 1631 static { 1632 this.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _PerfilDemandantePageRoutingModule }); 1633 } 1634 static { 1635 this.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ imports: [RouterModule.forChild(routes), RouterModule] }); 1636 } 1637}; 1638
1639// src/app/pages/perfil-demandante/perfil-demandante.module.ts 1640var PerfilDemandantePageModule = class _PerfilDemandantePageModule { 1641 static { 1642 this.\u0275fac = function PerfilDemandantePageModule_Factory(t) { 1643 return new (t || _PerfilDemandantePageModule)(); 1644 }; 1645 } 1646 static { 1647 this.\u0275mod = /* @__PURE__ */ \u0275\u0275defineNgModule({ type: _PerfilDemandantePageModule }); 1648 } 1649 static { 1650 this.\u0275inj = /* @__PURE__ */ \u0275\u0275defineInjector({ imports: [ 1651 SharedModule, 1652 PerfilDemandantePageRoutingModule, 1653 SharedPostModule, 1654 FollowerButtonModule, 1655 DonateButtonModule 1656 ] }); 1657 } 1658}; 1659export { 1660 PerfilDemandantePageModule 1661};
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.