PageSourceSearch

https://www.febelink.com/chunk-VPC2736S.js

js febelink.com collected 2026-09-24 14:06:39 UTC 72,434 bytes, 1,661 lines download raw bytes

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.