asap-feed-beta 12.2.1-dev.3 → 12.2.1-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"asap-feed-beta.js","sources":["ng://asap-feed-beta/lib/asap-feed-beta.service.ts","ng://asap-feed-beta/lib/constants/constants.ts","ng://asap-feed-beta/lib/services/asap-feed.service.ts","ng://asap-feed-beta/lib/asap-feed-beta.component.ts","ng://asap-feed-beta/lib/services/stream.service.ts","ng://asap-feed-beta/lib/models/feed.model.ts","ng://asap-feed-beta/lib/services/utils.service.ts","ng://asap-feed-beta/lib/feed-publication/feed-modal-item-edit/feed-modal-item-edit.component.ts","ng://asap-feed-beta/lib/feed-item/feed-item.component.ts","ng://asap-feed-beta/lib/pipes/stream.pipe.ts","ng://asap-feed-beta/lib/pipes/safe.pipe.ts","ng://asap-feed-beta/lib/pipes/currency.pipe.ts","ng://asap-feed-beta/lib/pipes/pipes.module.ts","ng://asap-feed-beta/lib/feed-comments/feed-comments.component.ts","ng://asap-feed-beta/lib/feed-actions/feed-actions.component.ts","ng://asap-feed-beta/lib/services/product.service.ts","ng://asap-feed-beta/lib/feed-publication/modal-announce/modal-announce.component.ts","ng://asap-feed-beta/lib/feed-publication/feed-publication.component.ts","ng://asap-feed-beta/lib/services/channel.service.ts","ng://asap-feed-beta/lib/stories/stories.component.ts","ng://asap-feed-beta/lib/asap-feed-beta.module.ts","ng://asap-feed-beta/lib/asap-feed-beta.routing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AsapFeedBetaService {\r\n public announce = false;\r\n public publication = true;\r\n public stories = true;\r\n public query = null;\r\n public options = {};\r\n constructor() {\r\n console.log('[AsapFeedBetaService] ->', this);\r\n }\r\n}\r\n","const prefix = (localStorage.getItem('feed_prefix')) ? localStorage.getItem('feed_prefix') : '';\r\n\r\nexport function path() {\r\n return {\r\n images: `${prefix}images`,\r\n feed: `${prefix}feed`,\r\n likes: `${prefix}likes`,\r\n shareds: `${prefix}shareds`\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { path } from '../constants/constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AsapFeedService {\r\n public clientFirebaseServer = localStorage.getItem('firebase_server_id');\r\n private baseUrlAPI;\r\n private client_id;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.baseUrlAPI = `https://us-central1-${this.clientFirebaseServer}.cloudfunctions.net/api`;\r\n this.client_id = localStorage.getItem('client');\r\n }\r\n\r\n public getFeed(feed_id, user=null, query = null) {\r\n let limit = 6;\r\n let url;\r\n\r\n if (!query) {\r\n console.log('Not Query');\r\n url = `${this.baseUrlAPI}/mobile/feed/${feed_id}?limit=${limit}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n else if (query && query.searchBy && query.searchValue) {\r\n console.log('Query');\r\n url = `${this.baseUrlAPI}/mobile/feed/${feed_id}?limit=${limit}&searchBy=${query.searchBy}&searchValue=${query.searchValue}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n\r\n return this.http.post(url,{user: user});\r\n }\r\n\r\n public createFeed(data) {\r\n return this.http.post(`${this.baseUrlAPI}/feed?feed_path=${path().feed}&client_id=${this.client_id}`, data);\r\n }\r\n\r\n public getMoreFeed(limit, last_documment, user=null, query = null) {\r\n let url\r\n\r\n if (!query) {\r\n url = this.baseUrlAPI + `/mobile/feed?limit=${limit}&last_doc=${last_documment}&feed_path=${path().feed}&client_id=${this.client_id}`;\r\n }\r\n else if (query && query.searchBy && query.searchValue) {\r\n url = `${this.baseUrlAPI}/mobile/feed?limit=${limit}&last_doc=${last_documment}&searchBy=${query.searchBy}&searchValue=${query.searchValue}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n\r\n return this.http.post(url,{user: user});\r\n }\r\n\r\n public sendComment(feed_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/${feed_id}`, data);\r\n }\r\n\r\n public deleteComment(feed_id, comment_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/${feed_id}/${comment_id}`);\r\n }\r\n\r\n public sendReplyComment(feed_id, comment_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/reply/${feed_id}/${comment_id}`, data);\r\n }\r\n\r\n public deleteReplyComment(feed_id, comment_id, reply_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/reply/${feed_id}/${comment_id}/${reply_id}`);\r\n }\r\n\r\n public likeComment(feed_id, comment_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/like/${feed_id}/${comment_id}`, data);\r\n }\r\n\r\n public likePost(feed_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/like/${feed_id}`, data);\r\n }\r\n\r\n public deleteLikeComment(feed_id, comment_id, like_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/like/${feed_id}/${comment_id}/${like_id}`);\r\n }\r\n\r\n public sendNotification(user_id, type, data) {\r\n console.log('[SendNotification] ->', user_id, type, data);\r\n return this.http.post(`${this.baseUrlAPI}/notification/${user_id}/${type}`, data);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AsapFeedService } from './services/asap-feed.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AsapFeedBetaService } from './asap-feed-beta.service';\r\nimport { Global } from 'asap-crud';\r\n\r\n@Component({\r\n selector: 'asap-feed-beta',\r\n templateUrl: './asap-feed-beta.component.html',\r\n styles: ['./asap-feed.beta.componente.scss']\r\n})\r\nexport class AsapFeedBetaComponent implements OnInit, OnChanges {\r\n\r\n public hasFeed = true;\r\n public loading = true;\r\n\r\n @Input() id;\r\n @Input() ignoreControl = false;\r\n\r\n public hasID = false;\r\n\r\n public stories = true;\r\n public announce = false;\r\n public publication = true;\r\n public query = null;\r\n public feedID;\r\n public feeds;\r\n public paginate;\r\n public topPosToStartShowing = 400;\r\n public showToTopButton = false;\r\n public isSinglePost = false;\r\n\r\n constructor(\r\n private feedService: AsapFeedService,\r\n public db: AngularFirestore,\r\n public route: ActivatedRoute,\r\n public controlService: AsapFeedBetaService,\r\n public global: Global,\r\n ) {\r\n this.loading = true;\r\n this.query = null;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n \r\n if (!this.ignoreControl) {\r\n this.announce = this.controlService.announce;\r\n this.stories = this.controlService.stories;\r\n this.publication = this.controlService.publication;\r\n this.query = this.controlService.query;\r\n }\r\n\r\n console.log('Query ->', this.query);\r\n\r\n this.route.params.subscribe(param => {\r\n console.log('Params ->', param);\r\n if (param) {\r\n if (param.feed_id) {\r\n this.feedID = param.feed_id;\r\n this.isSinglePost = true;\r\n\r\n setTimeout(() => {\r\n this.getFeed(this.feedID);\r\n }, 600);\r\n }\r\n else {\r\n this.getFeed();\r\n }\r\n }\r\n });\r\n this.checkFeedChange();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log('HasChanges ->', changes);\r\n\r\n if (changes.feedID) {\r\n console.log('HasChanges [feedID]->', changes.feedID);\r\n setTimeout(() => {\r\n this.getFeed(this.feedID);\r\n }, 600);\r\n }\r\n\r\n if (changes.id) {\r\n if (this.id) {\r\n this.hasID = true;\r\n if (!this.controlService.query) this.controlService.query = {};\r\n this.controlService.query.searchBy = 'user_info.id';\r\n this.controlService.query.searchValue = this.id + '&typeValue=number';\r\n }\r\n }\r\n }\r\n\r\n public getFeed(feed_id = '') {\r\n console.log('[getFeed] Query', this.query);\r\n this.feedService.getFeed(feed_id, this.global.loggedUser(), this.query).subscribe((response: any) => {\r\n this.feeds = response.data;\r\n console.log('Feeds', this.feeds);\r\n this.paginate = response.pagination;\r\n this.loading = false;\r\n this.hasFeed = (this.feeds.length > 0);\r\n });\r\n }\r\n\r\n public getMore() {\r\n console.log('[getMore]', this.paginate.next_document);\r\n if (this.paginate.next_document) {\r\n this.loading = true;\r\n this.feedService.getMoreFeed(5, this.paginate.next_document, this.global.loggedUser(), this.query).subscribe((response: any) => {\r\n response.data.map(item => {\r\n if (this.permitted(item)) {\r\n this.feeds.push(item);\r\n }\r\n });\r\n\r\n this.paginate = response.pagination;\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n public checkFeedChange() {\r\n // const collection = this.db.collection(path().feed, ref => {\r\n // return ref.orderBy('updated_at', 'desc');\r\n // });\r\n\r\n // collection.snapshotChanges().subscribe(response => {\r\n // console.log(\"[checkFeedChange]\",response);\r\n // if (response) {\r\n // setTimeout(() => {\r\n // console.log(\"[checkFeedChange]\")\r\n // this.getFeed(this.feedID);\r\n // }, 600);\r\n // }\r\n // })\r\n }\r\n\r\n @HostListener('window:scroll')\r\n checkScroll() {\r\n const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n if (scrollPosition >= this.topPosToStartShowing) {\r\n this.showToTopButton = true;\r\n } else {\r\n this.showToTopButton = false;\r\n }\r\n }\r\n\r\n gotoTop() {\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n permitted(post) {\r\n if (post.permission) {\r\n if (post.permission.length > 0) {\r\n let result = false;\r\n const user = this.global.loggedUser();\r\n if (user) {\r\n if (post.user_info && post.user_info.id == user.id) {\r\n result = true;\r\n }\r\n else if (user.extras) {\r\n const extras = user.extras[0];\r\n for (const perm of post.permission) {\r\n if ((perm.field == 'multi-conta') && (perm.value == user.client_id)) {\r\n result = true;\r\n break;\r\n }\r\n else if (extras[perm.field] == perm.value) {\r\n result = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public onNewFeed(id) {\r\n console.log('[onNewFeed]', id);\r\n this.feedService.getFeed(id).subscribe((response: any) => {\r\n let index = this.feeds.length;\r\n\r\n for (const feed of response.data) {\r\n feed.focus = true;\r\n }\r\n\r\n for (const feed of this.feeds) {\r\n feed.focus = false;\r\n }\r\n\r\n for (let i = 0; i < this.feeds.length; i++) {\r\n console.log('[onNewFeed] Feed', this.feeds[i]);\r\n if (!this.feeds[i].isHighlighted) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n this.feeds = [\r\n ... this.feeds.slice(0, index),\r\n ... response.data,\r\n ... this.feeds.slice(index)\r\n ];\r\n\r\n setTimeout(() => {\r\n const el = document.getElementsByClassName('focus-on-me')[0];\r\n el.scrollIntoView({ behavior: 'smooth' });\r\n }, 500);\r\n\r\n });\r\n }\r\n\r\n public sendVisible(item) {\r\n console.log(\"[sendVisible] marcando como visualizado\", item);\r\n const user = this.global.loggedUser();\r\n\r\n let postData = {\r\n post_id: item.id,\r\n title: item.title,\r\n created_at: item.updated_at\r\n };\r\n\r\n let data = {\r\n post_id: item.id,\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: user.id,\r\n updated_at: Date.now(),\r\n name: user.name,\r\n picture: user.picture\r\n }\r\n };\r\n\r\n const documentID = `feed-view/${item.id}`;\r\n const document = this.db.doc(documentID);\r\n document.set(postData).then((response) => {\r\n const documentID = `feed-view/${item.id}/views/${user.id}`;\r\n const document = this.db.doc(documentID);\r\n document.get().subscribe((doc) => {\r\n if (!doc.exists) {\r\n doc.ref.set(data).then((response) => {\r\n console.log(\"[sendVisible] marcado como visualizado\", response);\r\n });\r\n }\r\n else {\r\n console.log(\"[sendVisible] já foi marcado como visualizado\", doc);\r\n }\r\n });\r\n this.db.collection(`${documentID}/history`).add(data);\r\n });\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StreamService {\r\n\r\n public streamVideoPath: string;\r\n\r\n constructor(public http: HttpClient) {\r\n if (localStorage.getItem('loggedUser')) {\r\n const session = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.streamVideoPath = (session.data.link_company) ? session.data.link_company : session.data.link;\r\n console.log('streamVideoPath', this.streamVideoPath);\r\n }\r\n }\r\n\r\n private getHeaders() {\r\n let headers = {\r\n 'Accept': 'application/json'\r\n };\r\n if (localStorage.getItem('token')) {\r\n headers['Authorization'] = localStorage.getItem('token');\r\n }\r\n return headers;\r\n }\r\n\r\n public status(id: string): any {\r\n return this.http.get(this.streamVideoPath + 'videos/' + id, { headers: this.getHeaders() });\r\n }\r\n\r\n public uploadFile(data: any): any {\r\n const formData: FormData = new FormData();\r\n formData.append('file', data);\r\n\r\n const req = new HttpRequest('POST', 'http://api.tecnologiaasap.com.br/api/cloudinary/upload', formData, {\r\n reportProgress: true,\r\n responseType: 'json',\r\n headers: new HttpHeaders(this.getHeaders())\r\n });\r\n\r\n console.log('RESPONSE UPLOAD', req);\r\n return this.http.request(req);\r\n }\r\n\r\n uid() {\r\n return this.s4() + this.s4() + '-' + this.s4() + '-' + this.s4() + '-' +\r\n this.s4() + '-' + this.s4() + this.s4() + this.s4();\r\n }\r\n\r\n s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n}\r\n","export class UserInfo {\r\n id: number = null;\r\n name: string = null;\r\n updated_at: any = null;\r\n picture: string = null;\r\n}\r\n\r\nexport class ProductModel {\r\n cod: number = null;\r\n descr: string = null;\r\n hashtag: string = null;\r\n id: number = null;\r\n produto: string = null;\r\n parcela: string = null;\r\n qtdMinimo: number = null;\r\n valorAte: number = null;\r\n valorDe: number = null;\r\n adaptation: string = null;\r\n desconto: number = null;\r\n fotos = [];\r\n}\r\n\r\nexport class FilesModel {\r\n url: string = null;\r\n type: string = null;\r\n status: number = 1;\r\n thumb_rendering = false;\r\n video_rendering = false;\r\n video_low_rendering = false;\r\n name: string = null;\r\n isCloudinary:boolean = false;\r\n}\r\n\r\nexport class FilesModelEdit {\r\n url: string = null;\r\n type: string = null;\r\n status: number = null;\r\n thumb_rendering = false;\r\n video_rendering = false;\r\n video_low_rendering = false;\r\n name: string = null;\r\n new:boolean = true\r\n}\r\n\r\nexport class FeedModel {\r\n id: string = null;\r\n ref: string = null;\r\n status: boolean = true;\r\n product: ProductModel = new ProductModel();\r\n type: string = 'post';\r\n source: string = 'web';\r\n likes = 0;\r\n shareds = 0;\r\n user_info: UserInfo = new UserInfo();\r\n updated_at: any = null;\r\n title: string = null;\r\n files: Array<FilesModel> = [];\r\n}","import { Injectable } from '@angular/core';\r\nimport { AngularFireStorage, AngularFireUploadTask } from '@angular/fire/storage';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { FirebaseApp } from '@angular/fire';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { AsapFeedService } from './asap-feed.service';\r\nimport { Global } from 'asap-crud';\r\n\r\n@Injectable()\r\n\r\nexport class UtilsService {\r\n\r\n public percentage: Observable<number>;\r\n public task: AngularFireUploadTask;\r\n public snapshot: Observable<any>;\r\n public lastDoc;\r\n\r\n constructor(\r\n public firebaseStorage: AngularFireStorage,\r\n public db: AngularFirestore,\r\n public firebase: FirebaseApp,\r\n public feedService:AsapFeedService,\r\n public global: Global\r\n ) { }\r\n\r\n public uploadFile(fileName: string, base64: string) {\r\n console.log('TO SUBINDO', fileName);\r\n try {\r\n let correctBase64 = base64;\r\n const ref = this.firebaseStorage.ref(fileName);\r\n this.task = ref.putString(correctBase64, 'data_url');\r\n this.percentage = this.task.percentageChanges();\r\n this.snapshot = this.task.snapshotChanges();\r\n } catch (error) {\r\n console.log(`ERRO DO SUBINDO`, error);\r\n }\r\n }\r\n\r\n getFireStorageURL(id: string) {\r\n return this.firebaseStorage.ref(id).getDownloadURL();\r\n }\r\n\r\n async deleteFireStorage(id: string) {\r\n return await this.firebaseStorage.ref(id).delete().toPromise();\r\n }\r\n\r\n uid() {\r\n return this.s4() + this.s4() + '-' + this.s4() + '-' + this.s4() + '-' +\r\n this.s4() + '-' + this.s4() + this.s4() + this.s4();\r\n }\r\n\r\n s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n isUrl(s: string): boolean {\r\n const regexp = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n return regexp.test(s);\r\n }\r\n\r\n public sendNotification(data, user_destination, type) {\r\n\r\n console.log('Destinatario', user_destination);\r\n console.log('Remetente', this.global.loggedUser());\r\n\r\n if (user_destination.id != this.global.loggedUser().id) {\r\n this.feedService.sendNotification(user_destination.id,type, data).subscribe( response => {\r\n console.log('Retorno Notificacao', response);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { Global } from 'asap-crud';\r\nimport { FilesModel, FeedModel, FilesModelEdit } from '../../models/feed.model';\r\nimport { StreamService } from '../../services/stream.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { path } from '../../constants/constants';\r\nimport { UtilsService } from '../../services/utils.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'lib-feed-modal-item-edit',\r\n templateUrl: './feed-modal-item-edit.component.html',\r\n styleUrls: ['../../asap-feed.beta.componente.scss','./feed-modal-item-edit.component.scss',],\r\n providers: [StreamService]\r\n})\r\nexport class FeedModalItemEditComponent implements OnInit {\r\n\r\n public showAnnouncePublication = false;\r\n public notAnnounce;\r\n public openAnnounceModal;\r\n public newProduct;\r\n public ExpandImg;\r\n // \r\n public title;\r\n public tmpFileArray: Array<FilesModelEdit>;\r\n public progress;\r\n public uploading;\r\n public type;\r\n public videoSendedID;\r\n public embedFile;\r\n public tmpEmbedFile;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<FeedModalItemEditComponent>,\r\n @Inject(MAT_DIALOG_DATA) public item,\r\n public global: Global,\r\n public streamService: StreamService,\r\n public sanitizer: DomSanitizer,\r\n public utilsService: UtilsService,\r\n public db: AngularFirestore\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.item) {\r\n this.title = this.item.title;\r\n this.type = this.item.type;\r\n this.tmpFileArray = this.item.files;\r\n console.log('Feed Modal ->', this.item);\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n async uploadFile(event: any) {\r\n for (const file of event.target.files) {\r\n\r\n const tmpFile: FilesModelEdit = new FilesModelEdit();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n if (this.getTypeByMimeType(file.type) === 'video' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você só pode enviar um vídeo por Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 4) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você pode utilizar até no máximo 5 imagens no seu Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n console.log('File Sended',file);\r\n // **********************************************\r\n // !file.name.includes('firebasestorage')\r\n // Este trecho de código, verifica se o arquivo que está no tmpFileArray já foi enviado para evitar\r\n // o reenvio\r\n // ***********************************************\r\n if (this.getTypeByMimeType(file.type) === 'image' && !file.new) {\r\n console.log('File do Upload ->', file);\r\n if (file.type == 'image/gif') {\r\n tmpFile.url = `${this.streamService.uid()}.gif`;\r\n tmpFile.name = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = `${this.streamService.uid()}.${extname}`;\r\n tmpFile.name = await this.resizeImages(file, 800);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n\r\n else if (this.getTypeByMimeType(file.type) === 'video' && !file.new) {\r\n this.uploading = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n let reader = file\r\n if (reader) {\r\n let blobURL = URL.createObjectURL(reader);\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n this.uploading = true;\r\n await this.streamService.uploadFile(file).subscribe(\r\n response => {\r\n if (response['loaded']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n this.progress = tmpFile.status;\r\n console.log('Response', tmpFile);\r\n }\r\n\r\n if (response['body']) {\r\n tmpFile.url = response['body']['uuidVideo'];\r\n this.videoSendedID = tmpFile.url;\r\n this.uploading = false;\r\n this.progress = null;\r\n\r\n }\r\n }\r\n )\r\n console.log('tmpFile', tmpFile);\r\n }\r\n }\r\n }\r\n }\r\n\r\n share(): any {\r\n let data = null;\r\n data = this.item;\r\n delete data.likes;\r\n delete data.comments;\r\n data.title = this.title;\r\n\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n data.files = this.tmpFileArray;\r\n data.files.map(item => {\r\n if (item.type === 'video' && !item.video_rendering) {\r\n console.log('Existe um video no Feed', item);\r\n item.video_rendering = false;\r\n item.video_low_rendering = false;\r\n item.thumb_rendering = false;\r\n\r\n // Setando o ID do Feed igual ao ID do vídeo\r\n data.ref = item.url;\r\n data.status = false;\r\n this.streamService.status(item.url).subscribe((res: any) => {\r\n item.video_rendering = !res.p480;\r\n item.video_low_rendering = !res.p480_low;\r\n item.thumb_rendering = !res.thumb;\r\n });\r\n }\r\n })\r\n }\r\n\r\n this.publish(data);\r\n\r\n }\r\n\r\n public publish(data: FeedModel) {\r\n let count = 0;\r\n if (this.type == 'embed') {\r\n let fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n }\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n const images = this.tmpFileArray.filter(\r\n (image: any) => this.getTypeByMimeType(image.type) === 'image' && image.new\r\n );\r\n\r\n const step = 98 / images.length;\r\n\r\n if (images && images.length > 0) {\r\n console.log('Imagens para Publicar ->', images);\r\n\r\n for (const image of images) {\r\n console.log('Imagem ->', image);\r\n\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${image.url}`, image.name);\r\n\r\n this.utilsService.percentage.subscribe(percent => {\r\n image.status = percent;\r\n image.name = image.url;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n const index = data.files.findIndex(item => item.name === image.name);\r\n\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n console.log('Image File Url ->', imageURL);\r\n data.files[index].name = imageURL;\r\n });\r\n\r\n delete data.files[index].url;\r\n\r\n if (count == images.length) {\r\n console.log('Imagens Pos Processaento ->', data.files);\r\n const collection = this.db.collection(path().feed).doc(this.item.id)\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n });\r\n })\r\n }\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed).doc(this.item.id);\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed).doc(this.item.id);\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n\r\n // publish(data: FeedModel) {\r\n // let image;\r\n\r\n // console.log('Publish()', 1, data);\r\n // this.uploading = true;\r\n // this.progress = 0;\r\n\r\n\r\n // let count = 0;\r\n\r\n // if (this.type == 'embed') {\r\n // let fileEmbed: any = {\r\n // name: this.embedFile,\r\n // url: this.embedFile,\r\n // type: 'embed'\r\n // }\r\n\r\n // this.tmpFileArray.push(fileEmbed);\r\n // }\r\n\r\n // if (this.type != 'embed') {\r\n // if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n\r\n // const imagesFiles = this.tmpFileArray.filter(\r\n // (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n // );\r\n\r\n\r\n // const step = 98 / imagesFiles.length;\r\n\r\n // if (imagesFiles.length > 0) {\r\n // console.log('Publish()', 3, imagesFiles)\r\n // for (const file of imagesFiles) {\r\n // if (file.new) {\r\n // setTimeout(() => {\r\n // this.utilsService.uploadFile(`images/${file.url}`, file.name);\r\n // this.utilsService.percentage.subscribe(percent => {\r\n // file.status = percent;\r\n // // file.name = file.url;\r\n // delete file.new;\r\n // console.log(\"File\", file);\r\n // });\r\n\r\n // this.utilsService.task.snapshotChanges().subscribe(\r\n // async snap => {\r\n // if (snap.bytesTransferred === snap.totalBytes) {\r\n // count++;\r\n // this.progress += step;\r\n // console.log('PROGRESS', this.progress);\r\n // const index = data.files.findIndex(item => item.url === file.url);\r\n\r\n // if ((!image) && (data.files[index])) {\r\n // this.utilsService.getFireStorageURL(`images/${data.files[index].url}`).subscribe((imageURL) => {\r\n // image = imageURL;\r\n // });\r\n\r\n // }\r\n\r\n // data.files[index].name = data.files[index].url;\r\n\r\n\r\n // console.log('Data Files ->',data.files);\r\n // if (count == imagesFiles.length) {\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id)\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n\r\n // console.log('Publish()', 4)\r\n // }\r\n // }\r\n // },\r\n // error => {\r\n // console.error('Error', error);\r\n // })\r\n // });\r\n // }\r\n // }\r\n // }\r\n // else {\r\n // console.log('Publish()', 5)\r\n // console.log(data)\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n\r\n\r\n\r\n // }\r\n // }\r\n // else {\r\n // console.log('Publish()', 5);\r\n // console.log(data);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // }\r\n // }\r\n\r\n // else {\r\n // data.files = this.tmpFileArray;\r\n\r\n // console.log('Publish(Embed)', 6);\r\n // console.log(data);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // }\r\n\r\n\r\n // console.log('Publish()', 0, path().feed);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id); \r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // this.global.toast('Publicação criada com sucesso.')\r\n // this.close();\r\n // }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n const MAX_HEIGHT: any = 1334;\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.height = scale * img.height;\r\n\r\n canvas.width = MAX_WIDTH;\r\n let ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n let dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n }\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkPublicationType(title) {\r\n console.log('Event ->', event);\r\n if (title.length > 35) {\r\n if (this.isValidUrl(title)) {\r\n console.log('checkPublicationType', title);\r\n if (title.includes('youtube')) {\r\n this.tmpFileArray = [];\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.uploading = false;\r\n this.embedFile = title.replace('watch?v=', 'embed/');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n }\r\n else if (title.includes('spotify')) {\r\n this.tmpFileArray = [];\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.embedFile = title.replace('/episode', '/embed-podcast/episode');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n this.uploading = false;\r\n }\r\n\r\n let fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n }\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n }\r\n }\r\n\r\n removeEmbedFiles() {\r\n this.title = \"\";\r\n this.embedFile = \"\";\r\n this.type = \"post\";\r\n this.tmpFileArray = [] \r\n }\r\n\r\n isValidUrl(str) {\r\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\r\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\r\n return !!pattern.test(str);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport { StreamService } from '../services/stream.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { Global } from 'asap-crud';\r\nimport { FeedModalItemEditComponent } from '../feed-publication/feed-modal-item-edit/feed-modal-item-edit.component';\r\nimport { path } from '../constants/constants';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport SwiperCore, { Navigation, Pagination } from 'swiper';\r\nSwiperCore.use([Navigation, Pagination]);\r\n\r\n@Component({\r\n selector: 'app-feed-item',\r\n templateUrl: './feed-item.component.html',\r\n styleUrls: ['../asap-feed.beta.componente.scss', './feed-item.component.scss'],\r\n providers: [StreamService]\r\n})\r\nexport class FeedItemComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @Input() item;\r\n @Input() owner;\r\n\r\n @Output() isVisible = new EventEmitter();\r\n\r\n @ViewChild('videoPlayer', { static: true }) videoplayer: ElementRef\r\n @ViewChild('visibleControl', { static: false, read: ElementRef }) visibleControl;\r\n\r\n public currentIndex;\r\n public imageLoaded = false;\r\n public imageDataLoaded = false;\r\n public currentCarrouselIndex;\r\n public blurBackgroundIndex = Math.floor((Math.random() * 5) + 1);\r\n\r\n public observer;\r\n public visibleTimer;\r\n public shotTimer;\r\n\r\n constructor(\r\n public streamService: StreamService,\r\n public db: AngularFirestore,\r\n public global: Global,\r\n public dialog: MatDialog,\r\n public service: UtilsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loadVisibilityControls();\r\n\r\n if (this.item.files && this.item.files.length > 0) {\r\n this.item.files.map(feed => {\r\n if (feed.url && feed.url.includes('youtube')) {\r\n feed.isYoutube = true;\r\n let youtubeID = this.getYoutubeID(feed.url);\r\n feed.url = `https://www.youtube.com/embed/${youtubeID}`;\r\n }\r\n })\r\n }\r\n\r\n // console.log('ITEM ->', this.item);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.observer.observe(this.visibleControl.nativeElement);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.observer.disconnect();\r\n clearInterval(this.visibleTimer);\r\n }\r\n\r\n public loadVisibilityControls() {\r\n this.visibleTimer = setInterval(() => {\r\n this.shotTimer--;\r\n if (this.shotTimer == 0) {\r\n this.isVisible.emit(this.item);\r\n clearInterval(this.visibleTimer);\r\n this.observer.disconnect();\r\n }\r\n }, 1000);\r\n\r\n const options = {\r\n rootMargin: '0px',\r\n threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\r\n };\r\n\r\n this.observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n this.shotTimer = -1;\r\n this.item.active = false;\r\n if (entry.intersectionRatio == 1) {\r\n this.shotTimer = 5;\r\n }\r\n });\r\n }, options);\r\n }\r\n\r\n public onloadImage(event) {\r\n // console.log('Event onloadImage ->', event);\r\n this.imageLoaded = true;\r\n this.imageDataLoaded = true;\r\n }\r\n\r\n public onErrorImage(event) {\r\n // console.log('Event onErrorImage ->', event);\r\n }\r\n\r\n public playVideo(event) {\r\n // console.log('Event ->', event);\r\n if (this.videoplayer) {\r\n this.videoplayer.nativeElement.play();\r\n }\r\n }\r\n\r\n public linkify(str) {\r\n var re: any;\r\n re = [\r\n \"\\\\b((?:https?|ftp)://[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(www\\\\.[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(\\\\w[\\\\w.+-]*@[\\\\w.-]+\\\\.[a-z]{2,6})\\\\b\",\r\n \"#([a-z0-9]+)\"];\r\n re = new RegExp(re.join('|'), \"gi\");\r\n\r\n if (str) {\r\n return str.replace(re, function (match, url, www, mail, twitler) {\r\n if (url)\r\n return \"<a class='text-primary' target='_blank' (click)='redirectNewLink(url)' href=\\\"\" + url + \"\\\">\" + url + \"</a>\";\r\n if (www)\r\n return \"<a class='text-primary' href=\\\"http://\" + www + \"\\\">\" + www + \"</a>\";\r\n if (mail)\r\n return \"<a class='text-primary' href=\\\"#</a>\";\r\n if (twitler)\r\n return \"<a class='text-primary' href=\\\"portal/search/\" + encodeURIComponent('#' + twitler) + \"\\\">#\" + twitler + \"</a>\";\r\n // return \"<a class='text-primary' href=\\\"#\\\">#\" + twitler + \"</a>\";\r\n\r\n // shouldnt get here, but just in case\r\n return match;\r\n });\r\n }\r\n }\r\n\r\n public checkVideoRender(item) {\r\n\r\n console.log('videoRender ->', item);\r\n this.streamService.status(item).subscribe((res: any) => {\r\n console.log('checkVideoRender', res);\r\n })\r\n }\r\n\r\n public onEditItem() {\r\n // Preparar feed para editar\r\n let feed;\r\n feed = this.item;\r\n delete feed.comments;\r\n delete feed.likes;\r\n\r\n feed.files.map(file => {\r\n file.new = false;\r\n });\r\n\r\n this.dialog.open(FeedModalItemEditComponent, {\r\n width: '600px',\r\n data: feed,\r\n panelClass: 'modal-feed-publication'\r\n })\r\n }\r\n\r\n preConvertNumber(value) {\r\n return parseFloat(value);\r\n }\r\n\r\n public onRemoveItem(item) {\r\n this.global.swal({\r\n title: 'Você realmente deseja remover este Post?',\r\n text: 'Você não poderá reverter essa ação depois de confirmado',\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(async confirm => {\r\n if (confirm.value) {\r\n const collection = this.db.collection(path().feed).doc(item.id);\r\n\r\n if (item.files && item.files.length > 0) {\r\n for (const file of item.files) {\r\n if (file.type === 'image') {\r\n if (file.name) {\r\n try {\r\n await this.service.deleteFireStorage(`${path().images}/${file.name}`);\r\n } catch (error) {\r\n console.log('Removendo um post com imagem não referenciada', error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n collection.delete();\r\n item.deleted = true;\r\n this.global.toast('Post removido com Sucesso');\r\n }\r\n });\r\n }\r\n\r\n checkFileOrigin(file) {\r\n\r\n }\r\n\r\n isYoutube(file) {\r\n console.log('IsYoutube ->', file);\r\n if (file.includes('youtube')) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getYoutubeID(url) {\r\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\r\n var match = url.match(regExp);\r\n return (match && match[7].length == 11) ? match[7] : false;\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl, SafeUrl, SafeStyle } from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'stream'})\r\nexport class StreamPipe implements PipeTransform {\r\n\r\n public url: string;\r\n\r\n constructor(private domSanitizer: DomSanitizer) {\r\n if (localStorage.getItem('loggedUser')) {\r\n const session = JSON.parse(localStorage.getItem('loggedUser')).data;\r\n this.url = (session.link_company) ? session.link_company : session.link;\r\n }\r\n else {\r\n // Carregar vídeos no Feed caso o usuário não esteja logado\r\n let link = localStorage.getItem('streamURL');\r\n this.url = link;\r\n }\r\n\r\n }\r\n\r\n transform(param: string, arg?: string): SafeResourceUrl | string {\r\n if (arg === 'link') {\r\n return this.getVideoUri(param);\r\n }\r\n if (arg === 'thumb') {\r\n return this.getVideoThumb(param);\r\n }\r\n if (arg === 'id') {\r\n return this.getVideoId(param);\r\n }\r\n if (arg === 'fire') {\r\n return this.getFireStorageURL(param);\r\n }\r\n if (arg === 'styleThumbUrl') {\r\n return this.domSanitizer.bypassSecurityTrustStyle(`url(${this.getVideoThumb(param)})`);\r\n }\r\n if (arg === 'backgroundImage') {\r\n return this.domSanitizer.bypassSecurityTrustStyle(`url(${param}`);\r\n }\r\n \r\n return param;\r\n }\r\n\r\n getVideoThumb(url: string): SafeResourceUrl {\r\n return this.url + 'videos/thumb/' + this.getVideoId(url);\r\n }\r\n\r\n getVideoUri(url: string): SafeResourceUrl {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.url + 'videos/' + this.getVideoId(url) + '/480_low');\r\n }\r\n\r\n getFireStorageURL(url:string): SafeUrl {\r\n console.log('URL', url);\r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n getVideoId(url: string): string {\r\n if (this.isUrl(url)) {\r\n const split = url.split('/');\r\n return split[4];\r\n }\r\n return url;\r\n }\r\n\r\n isUrl(s: string): boolean {\r\n const regexp = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n return regexp.test(s);\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n \r\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n if (value) {\r\n switch (type) {\r\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default: throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\nconst _NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\r\n\r\n@Pipe({name: 'looseCurrency'})\r\nexport class LooseCurrencyPipe implements PipeTransform {\r\n constructor(private _currencyPipe: CurrencyPipe) {}\r\n\r\n transform(value: any, currencyCode: string, symbolDisplay: boolean, digits: string): string {\r\n if (typeof value === 'number' || _NUMBER_FORMAT_REGEXP.test(value)) {\r\n return this._currencyPipe.transform(value, currencyCode, symbolDisplay, digits);\r\n } else {\r\n return value;\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { StreamPipe } from './stream.pipe';\r\nimport { SafePipe } from './safe.pipe';\r\nimport { LooseCurrencyPipe } from './currency.pipe';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n SafePipe,\r\n StreamPipe,\r\n LooseCurrencyPipe\r\n ],\r\n imports: [\r\n\r\n ],\r\n exports: [\r\n SafePipe,\r\n StreamPipe,\r\n LooseCurrencyPipe\r\n ],\r\n providers:[\r\n CurrencyPipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { Global, AsapService } from 'asap-crud';\r\n\r\n@Component({\r\n selector: 'feed-comments',\r\n templateUrl: './feed-comments.component.html',\r\n styleUrls: ['./feed-comments.component.scss', '../asap-feed.beta.componente.scss']\r\n})\r\nexport class FeedCommentsComponent implements OnInit {\r\n\r\n @Input() feed_id;\r\n @Input() user;\r\n public comments = [];\r\n public replyingComment = [];\r\n public mentionsList;\r\n public limitCommentsTo = 3;\r\n public limitReplysTo = 1;\r\n public comment;ng \r\n public reply;\r\n public editedComment;\r\n public editedReply;\r\n public onLoadingLike = false;\r\n public onLoadingReply = false;\r\n public onLoadingComment = false;\r\n\r\n constructor(\r\n public global: Global,\r\n public db: AngularFirestore,\r\n public feedService: AsapFeedService,\r\n public service: UtilsService,\r\n public asapService: AsapService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getComments(this.feed_id);\r\n }\r\n\r\n public getComments(feed_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments', (ref: any) => {\r\n let query = ref.orderBy(\"updated_at\", \"desc\");\r\n return query;\r\n });\r\n\r\n\r\n collection.snapshotChanges().subscribe((comment: any) => {\r\n this.comments = [];\r\n comment.map(item => {\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n data.likeForMe = false;\r\n data.limitReplysTo = 1;\r\n\r\n const likesCollection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments')\r\n .doc(data.id)\r\n .collection('like');\r\n\r\n\r\n likesCollection.snapshotChanges().subscribe(like => {\r\n data.likes = [];\r\n like.map(subItemLike => {\r\n let likeData = subItemLike.payload.doc.data();\r\n likeData.id = subItemLike.payload.doc['id'];\r\n\r\n if (this.global.loggedUser()) {\r\n if (likeData.user_info && likeData.user_info.id === this.global.loggedUser().id) {\r\n data.likeForMe = true;\r\n data.likeForMeID = likeData.id;\r\n }\r\n }\r\n \r\n data.likes.push(likeData);\r\n\r\n });\r\n });\r\n\r\n const replyCollection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments')\r\n .doc(data.id)\r\n .collection('reply', ref => {\r\n return ref.orderBy('updated_at', 'desc');\r\n });\r\n\r\n replyCollection.snapshotChanges().subscribe(reply => {\r\n data.replys = [];\r\n reply.map(subItem => {\r\n let replyData = subItem.payload.doc.data();\r\n replyData.id = subItem.payload.doc['id'];\r\n\r\n data.replys.push(replyData);\r\n });\r\n\r\n });\r\n\r\n this.comments.push(data);\r\n });\r\n });\r\n }\r\n\r\n public onReplyComment(i) {\r\n if (!this.replyingComment[i]) {\r\n this.replyingComment[i] = true;\r\n }\r\n else {\r\n this.replyingComment[i] = false;\r\n }\r\n }\r\n\r\n public sendComment(comment) {\r\n let data = {\r\n comment: comment,\r\n updated_at: Date.now(),\r\n created_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments');\r\n\r\n if (comment.length > 0) {\r\n this.onLoadingComment = true;\r\n collection.add(data);\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Novo comentário`,\r\n description: `${this.global.loggedUser().name}: ${comment}`,\r\n user: this.global.loggedUser(),\r\n client_id:this.global.loggedUser().client_id,\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, this.user, 'feed');\r\n\r\n this.comment = \"\";\r\n this.onLoadingComment = false;\r\n }\r\n }\r\n\r\n public replyComment(comment_id, comment, user_info, i) {\r\n let data = {\r\n comment: comment,\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n if (comment.length > 0) {\r\n this.onLoadingReply = true;\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply');\r\n\r\n collection.add(data);\r\n\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Nova Resposta`,\r\n description: `${this.global.loggedUser().name} respondeu: ${comment}`,\r\n client_id:this.global.loggedUser().client_id,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, user_info, 'feed');\r\n\r\n this.reply = \"\";\r\n this.onLoadingReply = false;\r\n this.replyingComment[i] = false;\r\n }\r\n }\r\n\r\n public deleteReply(comment_id, reply_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply')\r\n .doc(reply_id);\r\n\r\n collection.delete();\r\n }\r\n\r\n public deleteComment(comment_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id);\r\n\r\n collection.delete();\r\n }\r\n\r\n public sendLikeComment(comment_id, like_id = null, item) {\r\n this.onLoadingLike = true;\r\n if (!item.likeForMe) {\r\n let data = {\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('like');\r\n\r\n collection.add(data);\r\n\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Nova Curtida`,\r\n description: `${this.global.loggedUser().name} curtiu seu comentário: ${item.comment}`,\r\n client_id:this.global.loggedUser().client_id,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, item.user_info, 'feed');\r\n\r\n item.likeForMe = true;\r\n this.onLoadingLike = false;\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('like')\r\n .doc(like_id);\r\n\r\n collection.delete();\r\n item.likeForMe = false;\r\n this.onLoadingLike = false;\r\n }\r\n }\r\n\r\n public loadMoreComments() {\r\n this.limitCommentsTo = this.limitCommentsTo + 3;\r\n }\r\n\r\n public loadMoreReplys(item) {\r\n item.limitReplysTo = item.limitReplysTo + 3;\r\n }\r\n\r\n public linkify(str) {\r\n var re: any;\r\n re = [\r\n \"\\\\b((?:https?|ftp)://[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(www\\\\.[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(\\\\w[\\\\w.+-]*@[\\\\w.-]+\\\\.[a-z]{2,6})\\\\b\",\r\n \"#([a-z0-9]+)\"];\r\n re = new RegExp(re.join('|'), \"gi\");\r\n\r\n if (str) {\r\n return str.replace(re, function (match, url, www, mail, twitler) {\r\n if (url)\r\n return \"<a class='text-primary' target='_blank' (click)='redirectNewLink(url)' href=\\\"\" + url + \"\\\">\" + url + \"</a>\";\r\n if (www)\r\n return \"<a class='text-primary' href=\\\"http://\" + www + \"\\\">\" + www + \"</a>\";\r\n if (mail)\r\n return \"<a class='text-primary' href=\\\"#</a>\";\r\n if (twitler)\r\n return \"<a class='text-primary' href=\\\"portal/search/\" + encodeURIComponent('#' + twitler) + \"\\\">#\" + twitler + \"</a>\";\r\n // return \"<a class='text-primary' href=\\\"#\\\">#\" + twitler + \"</a>\";\r\n\r\n // shouldnt get here, but just in case\r\n return match;\r\n });\r\n }\r\n }\r\n\r\n public onEditReply(reply) {\r\n this.editedReply = reply.comment;\r\n if (reply.onEdit) {\r\n reply.onEdit = false;\r\n }\r\n else {\r\n reply.onEdit = true;\r\n }\r\n }\r\n\r\n public onEditComment(comment) {\r\n this.editedComment = comment.comment;\r\n\r\n if (comment.onEdit) {\r\n comment.onEdit = false;\r\n }\r\n else {\r\n comment.onEdit = true;\r\n }\r\n }\r\n\r\n public updateComment(id, comment) {\r\n this.onLoadingComment = true;\r\n let data = {\r\n comment: this.editedComment,\r\n edited: true,\r\n updated_at: Date.now()\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(id);\r\n\r\n if (comment.length > 0) {\r\n collection.update(data);\r\n this.editedComment = \"\";\r\n this.onLoadingComment = false;\r\n }\r\n }\r\n\r\n public updateReply(comment_id, old_reply, reply) {\r\n this.onLoadingReply = true;\r\n let data = {\r\n comment: reply,\r\n updated_at: Date.now(),\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply')\r\n .doc(old_reply.id);\r\n collection.update(data);\r\n this.editedComment = \"\";\r\n this.onLoadingReply = false;\r\n old_reply.onEdit = false;\r\n }\r\n\r\n public searchMetionUsers(event) {\r\n\r\n }\r\n\r\n public loadUsers() {\r\n this.asapService.entityName = 'asap-user';\r\n this.asapService.getResources().subscribe((response: any) => {\r\n this.mentionsList = {\r\n items: response.data.map((item: any) => item.name),\r\n triggerChar: '@'\r\n };\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, isDevMode } from '@angular/core';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { Global } from 'asap-crud';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: 'feed-actions',\r\n templateUrl: './feed-actions.component.html',\r\n styleUrls: ['./feed-actions.component.scss', '../asap-feed.beta.componente.scss']\r\n})\r\nexport class FeedActionsComponent implements OnInit {\r\n\r\n @Input() item;\r\n @Input() portalName;\r\n\r\n public likes = [];\r\n public listUsersLikes;\r\n public comments = [];\r\n public shareds = [];\r\n public likeForMe = false;\r\n public sharedForMe = false;\r\n public likeForMeID;\r\n public sharedForMeID;\r\n public disabledLike;\r\n public onSendLike = false;\r\n public onSendShared = false;\r\n public deviceInfo = null;\r\n\r\n constructor(\r\n public global: Global,\r\n public db: AngularFirestore,\r\n public feedService: AsapFeedService,\r\n public service: UtilsService,\r\n public translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getLikes();\r\n this.getComments();\r\n this.getShareds();\r\n }\r\n\r\n public getLikes() {\r\n const collection = this.db.collection('likes', ref => {\r\n return ref.where('post_id', '==', this.item.id);\r\n });\r\n\r\n collection.snapshotChanges().subscribe(likes => {\r\n this.likes = [];\r\n // this.listUsersLikes = likes.map( (item:any) => item.user_info.name);\r\n // this.listUsersLikes = this.listUsersLikes.toString();\r\n likes.map((item: any) => {\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n\r\n if (this.global.loggedUser()) {\r\n // Este condição é para a versão antiga da Collection Likes\r\n if (data.uid && data.uid == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n\r\n // Este condição é para a versão nova da Collection Likes\r\n if (data.user_info && data.user_info.id == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n }\r\n\r\n this.likes.push(data);\r\n })\r\n });\r\n }\r\n\r\n public getComments() {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.item.id)\r\n .collection('comments');\r\n\r\n collection.valueChanges().subscribe(response => {\r\n this.comments = response;\r\n })\r\n }\r\n\r\n public getShareds() {\r\n const collection = this.db.collection('shareds', ref => {\r\n return ref.where('post_id', '==', this.item.id);\r\n });\r\n\r\n collection.snapshotChanges().subscribe(shareds => {\r\n this.shareds = [];\r\n shareds.map((item: any) => {\r\n console.log('Shareds ->', item);\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n\r\n if (this.global.loggedUser()) {\r\n // Este condição é para a versão antiga da Collection Shareds\r\n if (data.uid && data.uid == this.global.loggedUser().id) {\r\n this.sharedForMe = true;\r\n this.sharedForMeID = data.id;\r\n }\r\n\r\n // Este condição é para a versão nova da Collection Shareds\r\n if (data.user_info && data.user_info.id == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n }\r\n\r\n this.shareds.push(data);\r\n })\r\n });\r\n }\r\n\r\n public sendLike() {\r\n if (this.onSendLike) {\r\n console.log(\"[sendLike] bloqueio...\")\r\n }\r\n else {\r\n this.onSendLike = true;\r\n setTimeout(() => {\r\n console.log(\"[sendLike] enviando like...\")\r\n let data = {\r\n post_id: this.item.id,\r\n create_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n updated_at: Date.now(),\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n \r\n if (!this.likeForMe) {\r\n \r\n const notification = {\r\n title: `Nova curtida`,\r\n description: `${this.global.loggedUser().name} curtiu seu post`,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.item.id}`,\r\n client_id: this.global.loggedUser().client_id,\r\n }\r\n \r\n this.service.sendNotification(notification, this.item.user_info, 'feed');\r\n \r\n const collection = this.db.collection('likes');\r\n const commentData = collection.add(data);\r\n console.log(commentData);\r\n // const \r\n // const feedDataCollection = await db.collection('feed').doc(feed_id).collection('comments').doc(comment_id);\r\n // await feedDataCollection.update({ reply_count: admin.firestore.FieldValue.increment(1) });\r\n setTimeout(() => {\r\n this.onSendLike = false;\r\n }, 1000);\r\n }\r\n else {\r\n const collection = this.db.collection('likes').doc(this.likeForMeID);\r\n collection.delete();\r\n setTimeout(() => {\r\n this.onSendLike = false;\r\n }, 1000);\r\n this.likeForMe = false;\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n public copyToClipBoard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n //alert(\"Link copiado para a área de transferencia\")\r\n this.global.notification.success('Pronto!', 'Link copiado para a área de transferencia');\r\n }\r\n\r\n sharePost(type = 'link') {\r\n this.onSendShared = false;\r\n\r\n let data = {\r\n post_id: this.item.id,\r\n create_at: Date.now(),\r\n updated_at: Date.now(),\r\n uid: this.global.loggedUser().id,\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n updated_at: Date.now(),\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n if (!this.sharedForMe) {\r\n\r\n\r\n\r\n const notification = {\r\n title: `Novo Compartilhamento`,\r\n description: `${this.global.loggedUser().name} compartilhou seu post através do ${type}`,\r\n meta_data: this.global.loggedUser(),\r\n redirect: `/portal/${this.item.id}`,\r\n client_id: this.global.loggedUser().client_id,\r\n }\r\n\r\n\r\n\r\n this.service.sendNotification(notification, this.item.user_info, 'feed');\r\n\r\n\r\n const collection = this.db.collection('shareds');\r\n collection.add(data);\r\n }\r\n\r\n this.onSendShared = false;\r\n var base_url = window.location.origin;\r\n let urlShare = base_url + `/post/${this.item.id}`;\r\n\r\n // this.deviceInfo = this.deviceService.getDeviceInfo();\r\n const isMobile = false;//this.deviceService.isMobile();\r\n //const canShare = window.navigator.canShare(data);\r\n //console.log(\"canShare\",canShare)\r\n\r\n if (isMobile) {\r\n let myNavigator: any;\r\n myNavigator = window.navigator;\r\n\r\n\r\n if (myNavigator.share) {\r\n myNavigator.share({\r\n title: 'Gostei deste post',\r\n text: 'Veja esse poste de *' + this.item.user_info.name + '* que gostei ' + '\\n\\n' + urlShare,\r\n url: urlShare,\r\n })\r\n .then(() => console.log('Successful share'))\r\n .catch((error) => console.log('Error sharing', error));\r\n }\r\n\r\n } else {\r\n let url = '';\r\n if (type == 'whatsapp') {\r\n let original = this.translate.instant('LookThisPostThatIFound');\r\n url = `${original.split(\"{{user_name}}\").join(this.item.user_info.name)}\\n\\n${urlShare}`;\r\n url = `https://wa.me/?text=${encodeURIComponent(url)}`;\r\n window.open(url);\r\n }\r\n else if (type == 'linkedin') {\r\n url = `https://www.linkedin.com/shareArticle?mini=true&url=${urlShare}&title=${encodeURIComponent('Gostei deste post do *' + this.item.user_info.name + '* que encontrei no ' + 'Portal ' + '\\n\\n' + urlShare)}`\r\n window.open(url);\r\n }\r\n else if (type == 'telegram') {\r\n url = `https://telegram.me/share/url?url=${urlShare}`;\r\n window.open(url);\r\n }\r\n else if (type == 'link') {\r\n this.copyToClipBoard(urlShare);\r\n }\r\n else if (type == 'facebook') {\r\n url = `https://www.facebook.com/sharer/sharer.php?u=${urlShare}`;\r\n window.open(url);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global, AsapBaseService } from 'asap-crud';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class ProductService extends AsapBaseService {\r\n\r\n constructor(\r\n public http: HttpClient,\r\n public global: Global,\r\n public router: Router\r\n ) {\r\n super(http);\r\n this.entityName = \"\";\r\n this.basePath = \"api/v2\";\r\n }\r\n\r\n public product(id):any {\r\n return this.getResources({router:'client/produto/' + id});\r\n }\r\n \r\n public createProduct(data):any {\r\n return this.createResource(data, {router:'loja/produto'});\r\n } \r\n\r\n public categories():any {\r\n return this.getResources({router:'client/categoria/' + this.global.clientID()});\r\n }\r\n\r\n public subCategories(category):any {\r\n return this.getResources({router:'client/subcategoria/' + this.global.clientID() + \"/\" + category});\r\n }\r\n\r\n public subCategoryProducts(id,page=null):any {\r\n let qryPage = null;\r\n if (page) {\r\n qryPage = \"page=\" + page;\r\n }\r\n return this.getResources({router:'client/showcasefilter/' + id, query: qryPage});\r\n } \r\n\r\n public mainProducts():any {\r\n return this.getResources({router:'client/produto/mais/vendidos/' + this.global.clientID()});\r\n }\r\n\r\n public getMyProducts():any {\r\n return this.getResources({router:'client/seller/' +this.global.loggedUser().id});\r\n }\r\n \r\n public spotlightProducts(page=null,search=\"\"):any {\r\n let qryPage = \"\";\r\n if (page) {\r\n qryPage = \"page=\" + page;\r\n }\r\n if (search != \"\") {\r\n if (qryPage != \"\") qryPage += \"&busca=\" + search;\r\n }\r\n return this.getResources({router:'client/showcase/' + this.global.clientID(), query: qryPage});\r\n }\r\n\r\n public order(id,orderData):any {\r\n return this.createResource(orderData,{router:'loja/pedido/' + id});\r\n }\r\n\r\n public searchCep(cep):any {\r\n return this.http.get('https://viacep.com.br/ws/'+cep+'/json/');\r\n }\r\n\r\n public checkUserExists(email):any{\r\n return this.getResources({router:'admin/verify/user?search='+email + '&client_id=' +this.global.clientID()});\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject, Input, ViewChild, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { Global, AsapService } from 'asap-crud';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { CdkStepper } from '@angular/cdk/stepper';\r\nimport { StreamService } from '../../services/stream.service';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { ProductModel, FilesModel, FeedModel } from '../../models/feed.model';\r\nimport { UtilsService } from '../../services/utils.service';\r\nimport { path } from '../../constants/constants';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\ndeclare var swal: any;\r\n\r\n@Component({\r\n selector: 'modal-announce',\r\n templateUrl: './modal-announce.component.html',\r\n styleUrls: ['./modal-announce.component.scss', '../../asap-feed.beta.componente.scss'],\r\n providers: [AsapService, Global, StreamService, ProductService]\r\n})\r\nexport class ModalAnnounceComponent implements OnInit {\r\n @Input() images;\r\n @ViewChild('file', { static: false }) file: ElementRef;\r\n @Output() published = new EventEmitter<boolean>(false);\r\n\r\n public category: any;\r\n public subCategory: any;\r\n public error = false;\r\n public entity: any = {}\r\n public newProduct: boolean = true;\r\n public newAdversing: any;\r\n public myProducts: any;\r\n public selectedProduct: any = {};\r\n public tempProductData: ProductModel;\r\n public tmpFileArray: Array<FilesModel>;\r\n public uploading: boolean;\r\n public uploadingVideo: boolean;\r\n public progress;\r\n public title;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ModalAnnounceComponent>,\r\n public global: Global,\r\n public asapService: AsapService,\r\n public utilsService: UtilsService,\r\n public sanitizer: DomSanitizer,\r\n public streamService: StreamService,\r\n public productService: ProductService,\r\n public route: ActivatedRoute,\r\n public db: AngularFirestore,\r\n @Inject(MAT_DIALOG_DATA) public feed,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tmpFileArray = [];\r\n this.progress = 0;\r\n this.newProduct = true;\r\n this.loadCategory();\r\n this.loadMyProducts();\r\n }\r\n\r\n close() {\r\n this.global.alert({\r\n title: 'Você quer mesmo fechar anúncio?',\r\n text: 'Você perderá todas as informações se confirmar...',\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(async confirm => {\r\n if (confirm.value) {\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n public defaults() {\r\n return {\r\n fotos: []\r\n }\r\n }\r\n\r\n public loadSubCategory(event) {\r\n this.productService.subCategories(this.entity.categoria_id).subscribe((response: any) => {\r\n this.subCategory = response;\r\n });\r\n }\r\n\r\n public addPicture(image) {\r\n this.entity.fotos.push({ img: image.path });\r\n }\r\n\r\n public delPicture(index) {\r\n // this.global.swal({\r\n // title: 'Remover imagem...',\r\n // text: \"Você deseja remover essa imagem!\",\r\n // type: 'warning',\r\n // showCancelButton: true,\r\n // confirmButtonText: 'Sim',\r\n // cancelButtonText: 'Não',\r\n // reverseButtons: true\r\n // }).then((result) => {\r\n // if (result.value) {\r\n // this.entity.fotos.splice(index,1);\r\n // }\r\n // })\r\n }\r\n\r\n public categoryName(id) {\r\n if (this.category) {\r\n let cat = this.category.find(item => item.id == id);\r\n if (cat) {\r\n return cat.name;\r\n }\r\n }\r\n return \"NÃO SELECIONADO\";\r\n }\r\n\r\n public subCategoryName(id) {\r\n if (this.subCategory) {\r\n let cat = this.subCategory.find(item => item.id == id);\r\n if (cat) {\r\n return cat.subCategory;\r\n }\r\n }\r\n return \"NÃO SELECIONADO\";\r\n }\r\n\r\n public onSave() {\r\n this.uploading = true;\r\n this.progress = 1;\r\n this.images = this.tmpFileArray;\r\n if (!this.newProduct) {\r\n this.addPostOnFeed();\r\n this.global.notification.success('Seu produto foi anunciado com Sucesso!');\r\n\r\n }\r\n else if (this.newProduct) {\r\n this.tempProductData = this.entity;\r\n this.entity.fotos = [];\r\n\r\n for (let index = 0; index < this.images.length; index++) {\r\n this.entity.fotos[index] = {\r\n img: this.images[index].url\r\n };\r\n\r\n }\r\n\r\n this.productService.createProduct(this.entity).subscribe((response: any) => {\r\n console.log('ResponseFeed');\r\n this.tempProductData.id = response.produto.data.id;\r\n this.addPostOnFeed();\r\n this.global.notification.success('Produto, cadastrado e anunciado com Sucesso');\r\n },\r\n\r\n (error: any) => {\r\n console.error('Erro', error);\r\n });\r\n }\r\n }\r\n\r\n public loadCategory() {\r\n this.productService.categories().subscribe((response: any) => {\r\n console.log('loadSubCategories', response);\r\n this.category = response.data;\r\n\r\n })\r\n }\r\n\r\n public loadSubCategories(id_categorie) {\r\n console.log('loadSubCategories', id_categorie);\r\n this.productService.subCategories(id_categorie).subscribe((response: any) => {\r\n this.subCategory = response;\r\n\r\n });\r\n }\r\n\r\n public loadMyProducts() {\r\n this.productService.getMyProducts().subscribe((response: any) => {\r\n console.log('MyPrid', response);\r\n this.myProducts = response.data.produtos.data;\r\n },\r\n (error: any) => {\r\n this.global.notification.error('Ocorreu um problema ao processar sua requisição, entre em contato com o Administrador do Sistema')\r\n })\r\n }\r\n\r\n public addPostOnFeed() {\r\n console.log('Owner', this);\r\n console.log('Data Feed', this.tempProductData);\r\n this.share();\r\n // const feedCollection = this.db.collection(path().feed);\r\n // const images = []; \r\n\r\n // for (let index = 0; index < this.images.length; index++) {\r\n // images[index] = {\r\n // type:'image',\r\n // url:this.images[index].url || this.images[index].img\r\n // };\r\n // }\r\n\r\n // const post = {\r\n // likes: 0,\r\n // isLiked: false,\r\n // user_info: this.global.loggedUser(),\r\n // updated_at: Date.now(),\r\n // title: data.produto,\r\n // product:{\r\n // data\r\n // },\r\n // type: 'announce',\r\n // files: images,\r\n // };\r\n\r\n // console.log('DATA', post);\r\n\r\n // feedCollection.add(post).then(res => {\r\n // this.db.doc(`feed/${res.id}`).update({ id: res.id });\r\n // });\r\n }\r\n\r\n share(): any {\r\n console.log('New Prodct 1', this.newProduct);\r\n const data: FeedModel = new FeedModel();\r\n data.product = (this.newProduct) ? this.tempProductData : this.selectedProduct;\r\n data.updated_at = Date.now();\r\n data.type = 'announce';\r\n console.log('Post Data', data);\r\n console.log('New Prodct', this.newProduct);\r\n\r\n if (this.newProduct) {\r\n\r\n data.title = '<b>' + data.product.produto + '</b>' + '<br><br>' + data.product.descr;\r\n data.product = this.tempProductData;\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n console.log(2);\r\n data.files = this.tmpFileArray;\r\n console.log('FILES ------------>', data.files);\r\n const videoFilter = data.files.filter(tmp => this.getTypeByMimeType(tmp.type) === 'video');\r\n\r\n if (videoFilter.length > 0) {\r\n console.log(3);\r\n data.files[0].video_rendering = true;\r\n data.files[0].video_low_rendering = true;\r\n data.files[0].thumb_rendering = true;\r\n\r\n this.streamService.status(videoFilter[0].url).subscribe((res: any) => {\r\n data.files[0].video_rendering = !res.p480;\r\n data.files[0].video_low_rendering = !res.p480_low;\r\n data.files[0].thumb_rendering = !res.thumb;\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n else if (!this.newProduct) {\r\n data.title = '<b>' + data.product.produto + '</b>' + '<br><br>' + data.product.descr;\r\n if (data.product.fotos.length > 0) {\r\n for (let index = 0; index < data.product.fotos.length; index++) {\r\n console.log('Fotos ->', data.product.fotos[index]);\r\n data.product.fotos[index].url = data.product.fotos[index].img;\r\n data.product.fotos[index].type = 'image';\r\n delete data.product.fotos[index].img;\r\n data.files[index] = data.product.fotos[index];\r\n }\r\n\r\n if (data.files.length == data.product.fotos.length) {\r\n console.log('Fotos', data);\r\n }\r\n }\r\n\r\n }\r\n\r\n console.log('SHARE', data);\r\n this.publish(data);\r\n this.feed.owner.published.emit(true);\r\n\r\n }\r\n\r\n\r\n async uploadFile(event: any) {\r\n console.log('uploadFile(event)', event);\r\n for (const file of event.target.files) {\r\n console.log('Target Files', file);\r\n const fileGenerated = window.URL.createObjectURL(file);\r\n const fileSanitized = this.sanitizer.bypassSecurityTrustUrl(\r\n fileGenerated\r\n );\r\n\r\n const tmpFile: FilesModel = new FilesModel();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n\r\n if (\r\n this.getTypeByMimeType(file.type) === 'video' &&\r\n this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0\r\n ) {\r\n swal.fire('Ops...', 'Você só pode enviar 1 vídeo por postagem', 'error');\r\n error = true;\r\n }\r\n\r\n if (\r\n this.getTypeByMimeType(file.type) === 'image' &&\r\n this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 8\r\n ) {\r\n swal.fire(\r\n 'Ops...',\r\n 'Você só pode enviar até 9 imagens por postagem',\r\n 'error'\r\n );\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n // this.uploading = true;\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image') {\r\n if (file.type == 'image/gif') {\r\n tmpFile.name = `${this.utilsService.uid()}.gif`;\r\n tmpFile.url = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = await this.resizeImages(file, 800);\r\n tmpFile.name = `${this.utilsService.uid()}.${extname}`;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n else if (this.getTypeByMimeType(file.type) === 'video') {\r\n this.uploadingVideo = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n let reader = event.target.files[0];\r\n if (reader) {\r\n let blobURL = this.sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(reader));\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n console.log('Result', blobURL);\r\n }\r\n this.streamService.uploadFile(file).subscribe(\r\n async response => {\r\n if (response['loaded']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n }\r\n\r\n if (response['body']) {\r\n tmpFile.url = await response['body']['uuidVideo'];\r\n this.uploadingVideo = false;\r\n console.log('Pronto!', response);\r\n\r\n }\r\n }\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.height = scale * img.height;\r\n canvas.width = MAX_WIDTH;\r\n let ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n let dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n }\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n checkUploading(): boolean {\r\n const tmpFileUploading = this.tmpFileArray.filter((tmp: any) => tmp.url === '');\r\n return (tmpFileUploading.length > 0) ? true : false;\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkIfHasEmbededVideo(value: string): any {\r\n if (value) {\r\n if (value.includes('vimeo')) {\r\n return { url: '//player.vimeo.com/video/' + value.split('/')[4] };\r\n } else if (value.includes('youtube')) {\r\n return { url: '//www.youtube.com/embed/' + value.split('=')[1] };\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n publish(data: FeedModel) {\r\n let image;\r\n\r\n console.log('Publish()', 1, data);\r\n this.uploading = true;\r\n this.progress = 0;\r\n\r\n\r\n let count = 0;\r\n data.user_info = {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture,\r\n updated_at: Date.now()\r\n }\r\n\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n console.log('this.tmpFileArray', this.getTypeByMimeType(this.tmpFileArray[0].type));\r\n console.log('Publish()', 2);\r\n const imagesFiles = this.tmpFileArray.filter(\r\n (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n );\r\n\r\n\r\n const step = 98 / imagesFiles.length;\r\n\r\n if (imagesFiles.length > 0) {\r\n console.log('Publish()', 3, imagesFiles)\r\n for (const file of imagesFiles) {\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${file.name}`, file.url);\r\n this.utilsService.percentage.subscribe(percent => {\r\n console.log('TO RODANDO EIM', percent);\r\n file.status = percent;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n console.log('PROGRESS', this.progress);\r\n const index = data.files.findIndex(item => item.name === file.name);\r\n if ((!image) && (data.files[index])) {\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n image = imageURL;\r\n });\r\n\r\n }\r\n delete data.files[index].url;\r\n\r\n\r\n\r\n if (count == imagesFiles.length) {\r\n console.log('Criando Feed');\r\n\r\n const collection = this.db.collection(path().feed)\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n\r\n console.log('Publish()', 4)\r\n console.log('Data ->', data);\r\n\r\n });\r\n }\r\n }\r\n },\r\n error => {\r\n console.error('Error', error);\r\n })\r\n });\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5)\r\n console.log(data, this.tmpFileArray)\r\n\r\n const collection = this.db.collection(path().feed)\r\n console.log('Data ->', data);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n })\r\n\r\n\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n console.log('Data ->', data);\r\n const collection = this.db.collection(path().feed)\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n })\r\n }\r\n\r\n\r\n console.log('Publish()', 0, path().feed);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.dialogRef.close();\r\n this.global.toastService.show({\r\n title: 'Feito!',\r\n message: 'Seu post foi criado com sucesso',\r\n layout: 2\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Global } from 'asap-crud';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { StreamService } from '../services/stream.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FilesModel, FeedModel } from '../models/feed.model';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalAnnounceComponent } from './modal-announce/modal-announce.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'feed-publication',\r\n templateUrl: './feed-publication.component.html',\r\n styleUrls: ['./feed-publication.component.scss', '../asap-feed.beta.componente.scss'],\r\n providers: [StreamService]\r\n})\r\nexport class FeedPublicationComponent implements OnInit {\r\n\r\n @Input() announce = false;\r\n @Output() feedCreated = new EventEmitter();\r\n\r\n\r\n public tmpFileArray: Array<FilesModel>;\r\n public uploading;\r\n public title = null;\r\n public progress;\r\n public notAnnounce;\r\n public newProduct;\r\n public ExpandImg;\r\n public type = 'post';\r\n public embedFile;\r\n public tmpEmbedFile;\r\n public videoSendedID;\r\n public disabled = false;\r\n\r\n constructor(\r\n public global: Global,\r\n public feedService: AsapFeedService,\r\n public sanitizer: DomSanitizer,\r\n public streamService: StreamService,\r\n public utilsService: UtilsService,\r\n public db: AngularFirestore,\r\n public http: HttpClient,\r\n public dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tmpFileArray = [];\r\n console.log('Prefix Publication ->', path().feed);\r\n }\r\n\r\n async uploadFile(event: any) {\r\n for (const file of event.target.files) {\r\n\r\n const tmpFile: FilesModel = new FilesModel();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n // tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n if (this.getTypeByMimeType(file.type) === 'video' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você só pode enviar um vídeo por Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 4) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você pode utilizar até no máximo 5 imagens no seu Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n // this.uploading = true;\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image') {\r\n if (file.type == 'image/gif') {\r\n tmpFile.name = `${this.streamService.uid()}.gif`;\r\n tmpFile.url = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = await this.resizeImages(file, 800);\r\n tmpFile.name = `${this.streamService.uid()}.${extname}`;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n\r\n else if (this.getTypeByMimeType(file.type) === 'video') {\r\n this.uploading = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n const reader = file;\r\n if (reader) {\r\n const blobURL = URL.createObjectURL(reader);\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n console.log('[uploadFile] if reader', blobURL);\r\n }\r\n\r\n this.uploading = true;\r\n await this.streamService.uploadFile(file).subscribe(\r\n response => {\r\n console.log('[uploadFile] Response', tmpFile);\r\n if (!response.body) {\r\n if (response['total']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n }\r\n this.progress = tmpFile.status;\r\n }\r\n\r\n if (response.body && response.body.file) {\r\n console.log('[uploadFile] Response Uploaded', response);\r\n tmpFile.status = 101;\r\n tmpFile.url = response.body.file.secure_url;\r\n this.videoSendedID = tmpFile.url;\r\n this.uploading = false;\r\n this.progress = null;\r\n\r\n }\r\n }\r\n );\r\n console.log('tmpFile', tmpFile);\r\n }\r\n }\r\n }\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n const MAX_HEIGHT: any = 1334;\r\n\r\n const reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement('canvas');\r\n canvas.height = scale * img.height;\r\n\r\n canvas.width = MAX_WIDTH;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n const dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n };\r\n };\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n const reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n };\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n share(): any {\r\n const data: FeedModel = new FeedModel();\r\n data.updated_at = Date.now();\r\n data.title = this.title;\r\n data.type = this.type;\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n data.files = this.tmpFileArray;\r\n // const videoFilter = data.files.filter(tmp => this.getTypeByMimeType(tmp.type) === 'video');\r\n // if (videoFilter.length > 0) {\r\n // }\r\n data.files.map(item => {\r\n if (item.type === 'video') {\r\n console.log('Existe um video no Feed', item);\r\n if (!item.isCloudinary) {\r\n item.video_rendering = false;\r\n item.video_low_rendering = false;\r\n item.thumb_rendering = false;\r\n\r\n // Setando o ID do Feed igual ao ID do vídeo\r\n data.ref = item.url;\r\n data.status = false;\r\n this.streamService.status(item.url).subscribe((res: any) => {\r\n item.video_rendering = !res.p480;\r\n item.video_low_rendering = !res.p480_low;\r\n item.thumb_rendering = !res.thumb;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.publish(data);\r\n\r\n }\r\n\r\n publish(data: FeedModel) {\r\n let image;\r\n\r\n console.log('Publish()', 1, data);\r\n\r\n if (!data.title || data.title === '') {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você precisa adicionar um texto à sua imagem/vídeo.',\r\n });\r\n return;\r\n }\r\n this.uploading = true;\r\n this.progress = 0;\r\n\r\n\r\n let count = 0;\r\n data.user_info = {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture,\r\n updated_at: Date.now()\r\n };\r\n\r\n if (this.type == 'embed') {\r\n const fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n };\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n\r\n if (this.type != 'embed') {\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n console.log('this.tmpFileArray', this.getTypeByMimeType(this.tmpFileArray[0].type));\r\n console.log('Publish()', 2);\r\n const imagesFiles = this.tmpFileArray.filter(\r\n (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n );\r\n\r\n\r\n const step = 98 / imagesFiles.length;\r\n\r\n if ((imagesFiles.length && data.title === '')) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você precisa adicionar um texto junto à sua imagem/vídeo.',\r\n });\r\n return;\r\n }\r\n\r\n if (imagesFiles.length > 0) {\r\n for (const file of imagesFiles) {\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${file.name}`, file.url);\r\n this.utilsService.percentage.subscribe(percent => {\r\n file.status = percent;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n console.log('PROGRESS', this.progress);\r\n const index = data.files.findIndex(item => item.name === file.name);\r\n if ((!image) && (data.files[index])) {\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n image = imageURL;\r\n });\r\n\r\n }\r\n delete data.files[index].url;\r\n\r\n\r\n\r\n if (count == imagesFiles.length) {\r\n console.log('Criando Feed');\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n\r\n console.log('Publish()', 4);\r\n }\r\n }\r\n },\r\n error => {\r\n console.error('Error', error);\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n });\r\n\r\n\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n });\r\n }\r\n }\r\n\r\n else {\r\n data.files = this.tmpFileArray;\r\n console.log('Publish(Embed)', 6);\r\n console.log(data, this.tmpFileArray);\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n const doc = this.db.collection(path().feed).doc(response.id);\r\n doc.update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.embedFile = null;\r\n this.type = 'post';\r\n });\r\n }\r\n\r\n\r\n console.log('Publish()', 0, path().feed);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.global.toastService.show({\r\n title: 'Feito!',\r\n message: 'Seu post foi criado com sucesso',\r\n layout: 2\r\n });\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkPublicationType(title) {\r\n console.log('Event ->', event);\r\n if (title.length > 35) {\r\n if (this.isValidUrl(title)) {\r\n console.log('checkPublicationType', title);\r\n if (title.includes('youtu') || title.includes('youtube')) {\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.uploading = false;\r\n this.embedFile = title.replace('watch?v=', 'embed/');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n }\r\n else if (title.includes('spotify')) {\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.embedFile = title.replace('/episode', '/embed-podcast/episode');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n this.uploading = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeEmbedFiles() {\r\n this.title = '';\r\n this.embedFile = '';\r\n this.type = 'post';\r\n }\r\n\r\n isValidUrl(str) {\r\n const pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\r\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\r\n return !!pattern.test(str);\r\n }\r\n\r\n openAnnounceModal() {\r\n const dialogRef = this.dialog.open(ModalAnnounceComponent, {\r\n width: '55%',\r\n minHeight: '95%',\r\n maxHeight: '100%',\r\n closeOnNavigation: false,\r\n disableClose: true,\r\n data: { owner: this, tmpFileArray: this.tmpFileArray }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Global, AsapBaseService } from 'asap-crud';\r\n\r\n@Injectable()\r\nexport class ChannelService extends AsapBaseService {\r\n\r\n public isSubscriber = false;\r\n\r\n constructor(\r\n public http: HttpClient,\r\n public global: Global\r\n ) {\r\n super(http);\r\n this.basePath = \"api/v2/admin\";\r\n this.entityName = \"channel\";\r\n this.isSubscriber = false;\r\n };\r\n\r\n public channelLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"videos\",query:\"page=\" + page});\r\n }\r\n\r\n public channeGrouplLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"videos\",query:\"page=\" + page +'&group'});\r\n }\r\n\r\n public fileLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"files\",query:\"page=\" + page});\r\n }\r\n\r\n public fileGroupLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"files\",query:\"page=\" + page+'&group'});\r\n }\r\n\r\n public subscribe(channel_id, callback = null) {\r\n this.createResource({},{router:\"subscribe/\" + channel_id}).subscribe(() => {\r\n this.global.notification.success('Pronto', 'Inscrição efetuada com sucesso!')\r\n this.isSubscriber = true;\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n public like(video_id, like = true, type = 'video') {\r\n let data:any;\r\n\r\n data = (like) ? {like: 1} : {unlike: 1};\r\n data.type = type;\r\n\r\n return this.createResource(data,{router: 'like/' + video_id});\r\n }\r\n\r\n public likev2(video_id, dados, type = 'video') {\r\n dados.type = type;\r\n return this.createResource(dados,{router: 'like/' + video_id});\r\n }\r\n \r\n\r\n public unsubscribe(channel_id, callback = null) {\r\n this.global.alert({\r\n type: \"warning\",\r\n text:\"Você realmente deseja cancelar sua inscrição?\",\r\n position: 'top-right',\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(\r\n confirm => {\r\n if (confirm) {\r\n this.createResource({},{router:\"subscribe/\" + channel_id}).subscribe(() => {\r\n this.global.notification.info('Pronto', 'Você não está mais inscrito no Canal!')\r\n this.isSubscriber = false;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n },\r\n cancel => {}\r\n );\r\n \r\n }\r\n\r\n public getPlaylists(user_id = null, type='home') {\r\n return this.getResources({router: 'playlist/' + user_id + '?type=' + type});\r\n }\r\n\r\n public getPlaylist(playlist_id, user_id) {\r\n return this.getResources({router: 'playlist/' + playlist_id + '/' + user_id});\r\n }\r\n\r\n public createPlaylist(playlist_name) {\r\n let data:any;\r\n data = {name:playlist_name}\r\n return this.createResource(data, {router: 'playlist'});\r\n }\r\n\r\n public deletePlaylist(playlist_id) {\r\n return this.deleteResource(playlist_id);\r\n }\r\n\r\n public addVideoPlaylist(video_id, playlist_id) {\r\n let data: any;\r\n data = {video_id: video_id};\r\n console.log('VideoID ->', data.video_id);\r\n console.log('playlist_id ->', playlist_id);\r\n return this.createResource(data, {router: 'playlist/'+playlist_id});\r\n }\r\n\r\n public updateChannel(data) {\r\n return this.updateResource(data);\r\n }\r\n}","import { Component, ViewChild, OnInit } from '@angular/core';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { Global } from 'asap-crud';\r\nimport { ChannelService } from '../services/channel.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\n\r\nimport SwiperCore, { Pagination, SwiperOptions } from 'swiper';\r\n\r\nSwiperCore.use([Pagination]);\r\n\r\n@Component({\r\n selector: 'app-stories',\r\n templateUrl: './stories.component.html',\r\n styleUrls: ['../asap-feed.beta.componente.scss', './stories.component.scss'],\r\n providers: [ChannelService]\r\n})\r\n\r\nexport class StoriesComponent implements OnInit {\r\n\r\n constructor(\r\n public _channelService: ChannelService,\r\n public global: Global,\r\n public db: AngularFirestore\r\n ) {\r\n\r\n }\r\n\r\n public channelArray: any;\r\n public loading = true;\r\n\r\n storiesOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n nav: true,\r\n responsive: {\r\n 0: {\r\n items: 2.4,\r\n },\r\n 500: {\r\n items: 3.5,\r\n }\r\n }\r\n }\r\n\r\n config: SwiperOptions = {\r\n navigation: true,\r\n autoHeight: false,\r\n breakpoints: {\r\n '640': {\r\n slidesPerView: 2.4,\r\n slidesPerGroup: 2.4,\r\n spaceBetween: 10\r\n },\r\n '768': {\r\n slidesPerView: 3,\r\n slidesPerGroup: 3,\r\n spaceBetween: 10\r\n },\r\n '1024': {\r\n slidesPerView: 3.5,\r\n slidesPerGroup: 3.5,\r\n spaceBetween: 10\r\n }\r\n }\r\n };\r\n\r\n\r\n ngOnInit() {\r\n this.getChannels();\r\n }\r\n\r\n getChannels() {\r\n this._channelService.getResources({ query: 'type=recommended' }).subscribe((res: any) => {\r\n console.log('getChannels', res.data);\r\n this.channelArray = [];\r\n\r\n if (res.data.length) {\r\n do {\r\n this.channelArray = [\r\n ... this.channelArray,\r\n ...res.data\r\n ];\r\n } while (this.channelArray.length < 10)\r\n\r\n }\r\n\r\n this.channelArray.map(item => {\r\n this.getNotificationForChannels(item);\r\n });\r\n\r\n this.loading = false;\r\n // console.log('channelArray', this.channelArray);\r\n });\r\n }\r\n\r\n getNotificationForChannels(item) {\r\n let notification;\r\n if (this.global.loggedUser()) {\r\n\r\n const collection = this.db.collection('notifications', (ref: any) => {\r\n let query = ref.orderBy('viewed', 'asc')\r\n .orderBy('create_at', 'desc')\r\n .where('receiver_id', '==', this.global.loggedUser().id)\r\n .where('channel_id', '==', item.id.toString())\r\n .where('read', '==', false);\r\n return query;\r\n });\r\n\r\n collection.snapshotChanges().subscribe((notificationDoc) => {\r\n console.log('Notifications for Channels ->', notificationDoc);\r\n item.notifications = [];\r\n notificationDoc.map(data => {\r\n let notificationData: any = data.payload.doc.data();\r\n item.notifications.push(notificationData);\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AsapFeedBetaComponent } from './asap-feed-beta.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FeedItemComponent } from './feed-item/feed-item.component';\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { AsapSkeletonModule } from 'asap-skeleton';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgxHmCarouselModule } from 'ngx-hm-carousel';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FeedCommentsComponent } from './feed-comments/feed-comments.component';\r\nimport { FeedActionsComponent } from './feed-actions/feed-actions.component';\r\nimport { FeedPublicationComponent } from './feed-publication/feed-publication.component';\r\nimport { FeedModalItemEditComponent } from './feed-publication/feed-modal-item-edit/feed-modal-item-edit.component';\r\nimport { UtilsService } from './services/utils.service';\r\nimport { StoriesComponent } from './stories/stories.component';\r\nimport { OwlModule } from 'ngx-owl-carousel';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ModalAnnounceComponent } from './feed-publication/modal-announce/modal-announce.component';\r\nimport { PopoverModule } from 'ngx-smart-popover';\r\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\r\nimport { Global } from 'asap-crud';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { SwiperModule } from 'ngx-swiper-wrapper';\r\n\r\n// import { NgAisModule } from 'angular-instantsearch';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatCardModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatStepperModule,\r\n MomentModule,\r\n TranslateModule,\r\n InfiniteScrollModule,\r\n AsapSkeletonModule,\r\n PipesModule,\r\n NgxHmCarouselModule,\r\n OwlModule,\r\n CarouselModule,\r\n NgxSkeletonLoaderModule,\r\n PopoverModule,\r\n SwiperModule\r\n ],\r\n declarations: [\r\n AsapFeedBetaComponent,\r\n FeedItemComponent,\r\n FeedCommentsComponent,\r\n FeedActionsComponent,\r\n FeedPublicationComponent,\r\n FeedModalItemEditComponent,\r\n StoriesComponent,\r\n ModalAnnounceComponent\r\n ],\r\n exports: [\r\n AsapFeedBetaComponent,\r\n FeedItemComponent,\r\n TranslateModule\r\n ],\r\n entryComponents: [\r\n AsapFeedBetaComponent,\r\n FeedModalItemEditComponent,\r\n ModalAnnounceComponent\r\n ],\r\n providers: [\r\n UtilsService\r\n ]\r\n})\r\nexport class AsapFeedBetaModule {\r\n\r\n constructor(public global: Global) {\r\n console.log('[AsapFeedBetaModule]', new Date());\r\n this.global.getOrCreateSessionData('AsapMyPageModule.tabs',[]).push({\r\n label: 'Meus Posts',\r\n component: AsapFeedBetaComponent,\r\n condition: (component,type) => (this.global.loggedUser() && this.global.hasPermission('my-posts',type) && component.hasFeed),\r\n loading: (component) => component.loading\r\n });\r\n }\r\n}\r\n","import { Routes } from '@angular/router';\r\nimport { AsapFeedBetaComponent } from './asap-feed-beta.component';\r\n\r\nexport const AsapFeedBetaRoting: Routes = [\r\n {\r\n path: '',\r\n component: AsapFeedBetaComponent\r\n },\r\n {\r\n path: ':feed_id',\r\n component: AsapFeedBetaComponent\r\n }\r\n]"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asap-feed-beta.js","sources":["ng://asap-feed-beta/lib/asap-feed-beta.service.ts","ng://asap-feed-beta/lib/constants/constants.ts","ng://asap-feed-beta/lib/services/asap-feed.service.ts","ng://asap-feed-beta/lib/asap-feed-beta.component.ts","ng://asap-feed-beta/lib/services/stream.service.ts","ng://asap-feed-beta/lib/models/feed.model.ts","ng://asap-feed-beta/lib/services/utils.service.ts","ng://asap-feed-beta/lib/feed-publication/feed-modal-item-edit/feed-modal-item-edit.component.ts","ng://asap-feed-beta/lib/feed-item/feed-item.component.ts","ng://asap-feed-beta/lib/pipes/stream.pipe.ts","ng://asap-feed-beta/lib/pipes/safe.pipe.ts","ng://asap-feed-beta/lib/pipes/currency.pipe.ts","ng://asap-feed-beta/lib/pipes/pipes.module.ts","ng://asap-feed-beta/lib/feed-comments/feed-comments.component.ts","ng://asap-feed-beta/lib/feed-actions/feed-actions.component.ts","ng://asap-feed-beta/lib/services/product.service.ts","ng://asap-feed-beta/lib/feed-publication/modal-announce/modal-announce.component.ts","ng://asap-feed-beta/lib/feed-publication/feed-publication.component.ts","ng://asap-feed-beta/lib/services/channel.service.ts","ng://asap-feed-beta/lib/stories/stories.component.ts","ng://asap-feed-beta/lib/asap-feed-beta.module.ts","ng://asap-feed-beta/lib/asap-feed-beta.routing.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AsapFeedBetaService {\r\n public announce = false;\r\n public publication = true;\r\n public stories = true;\r\n public query = null;\r\n public options = {};\r\n constructor() {\r\n console.log('[AsapFeedBetaService] ->', this);\r\n }\r\n}\r\n","const prefix = (localStorage.getItem('feed_prefix')) ? localStorage.getItem('feed_prefix') : '';\r\n\r\nexport function path() {\r\n return {\r\n images: `${prefix}images`,\r\n feed: `${prefix}feed`,\r\n likes: `${prefix}likes`,\r\n shareds: `${prefix}shareds`\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { path } from '../constants/constants';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AsapFeedService {\r\n public clientFirebaseServer = localStorage.getItem('firebase_server_id');\r\n private baseUrlAPI;\r\n private client_id;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.baseUrlAPI = `https://us-central1-${this.clientFirebaseServer}.cloudfunctions.net/api`;\r\n this.client_id = localStorage.getItem('client');\r\n }\r\n\r\n public getFeed(feed_id, user=null, query = null) {\r\n let limit = 6;\r\n let url;\r\n\r\n if (!query) {\r\n console.log('Not Query');\r\n url = `${this.baseUrlAPI}/mobile/feed/${feed_id}?limit=${limit}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n else if (query && query.searchBy && query.searchValue) {\r\n console.log('Query');\r\n url = `${this.baseUrlAPI}/mobile/feed/${feed_id}?limit=${limit}&searchBy=${query.searchBy}&searchValue=${query.searchValue}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n\r\n return this.http.post(url,{user: user});\r\n }\r\n\r\n public createFeed(data) {\r\n return this.http.post(`${this.baseUrlAPI}/feed?feed_path=${path().feed}&client_id=${this.client_id}`, data);\r\n }\r\n\r\n public getMoreFeed(limit, last_documment, user=null, query = null) {\r\n let url\r\n\r\n if (!query) {\r\n url = this.baseUrlAPI + `/mobile/feed?limit=${limit}&last_doc=${last_documment}&feed_path=${path().feed}&client_id=${this.client_id}`;\r\n }\r\n else if (query && query.searchBy && query.searchValue) {\r\n url = `${this.baseUrlAPI}/mobile/feed?limit=${limit}&last_doc=${last_documment}&searchBy=${query.searchBy}&searchValue=${query.searchValue}&feed_path=${path().feed}&client_id=${this.client_id}`\r\n }\r\n\r\n return this.http.post(url,{user: user});\r\n }\r\n\r\n public sendComment(feed_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/${feed_id}`, data);\r\n }\r\n\r\n public deleteComment(feed_id, comment_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/${feed_id}/${comment_id}`);\r\n }\r\n\r\n public sendReplyComment(feed_id, comment_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/reply/${feed_id}/${comment_id}`, data);\r\n }\r\n\r\n public deleteReplyComment(feed_id, comment_id, reply_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/reply/${feed_id}/${comment_id}/${reply_id}`);\r\n }\r\n\r\n public likeComment(feed_id, comment_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/comment/like/${feed_id}/${comment_id}`, data);\r\n }\r\n\r\n public likePost(feed_id, data) {\r\n return this.http.post(`${this.baseUrlAPI}/like/${feed_id}`, data);\r\n }\r\n\r\n public deleteLikeComment(feed_id, comment_id, like_id) {\r\n return this.http.delete(`${this.baseUrlAPI}/comment/like/${feed_id}/${comment_id}/${like_id}`);\r\n }\r\n\r\n public sendNotification(user_id, type, data) {\r\n console.log('[SendNotification] ->', user_id, type, data);\r\n return this.http.post(`${this.baseUrlAPI}/notification/${user_id}/${type}`, data);\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, HostListener, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { AsapFeedService } from './services/asap-feed.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AsapFeedBetaService } from './asap-feed-beta.service';\r\nimport { Global } from 'asap-crud';\r\n\r\n@Component({\r\n selector: 'asap-feed-beta',\r\n templateUrl: './asap-feed-beta.component.html',\r\n styles: ['./asap-feed.beta.componente.scss']\r\n})\r\nexport class AsapFeedBetaComponent implements OnInit, OnChanges {\r\n\r\n public hasFeed = true;\r\n public loading = true;\r\n\r\n @Input() id;\r\n @Input() ignoreControl = false;\r\n\r\n public hasID = false;\r\n\r\n public stories = true;\r\n public announce = false;\r\n public publication = true;\r\n public query = null;\r\n public feedID;\r\n public feeds;\r\n public paginate;\r\n public topPosToStartShowing = 400;\r\n public showToTopButton = false;\r\n public isSinglePost = false;\r\n\r\n constructor(\r\n private feedService: AsapFeedService,\r\n public db: AngularFirestore,\r\n public route: ActivatedRoute,\r\n public controlService: AsapFeedBetaService,\r\n public global: Global,\r\n ) {\r\n this.loading = true;\r\n this.query = null;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n \r\n if (!this.ignoreControl) {\r\n this.announce = this.controlService.announce;\r\n this.stories = this.controlService.stories;\r\n this.publication = this.controlService.publication;\r\n this.query = this.controlService.query;\r\n }\r\n\r\n console.log('Query ->', this.query);\r\n\r\n this.route.params.subscribe(param => {\r\n console.log('Params ->', param);\r\n if (param) {\r\n if (param.feed_id) {\r\n this.feedID = param.feed_id;\r\n this.isSinglePost = true;\r\n\r\n setTimeout(() => {\r\n this.getFeed(this.feedID);\r\n }, 600);\r\n }\r\n else {\r\n this.getFeed();\r\n }\r\n }\r\n });\r\n this.checkFeedChange();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log('HasChanges ->', changes);\r\n\r\n if (changes.feedID) {\r\n console.log('HasChanges [feedID]->', changes.feedID);\r\n setTimeout(() => {\r\n this.getFeed(this.feedID);\r\n }, 600);\r\n }\r\n\r\n if (changes.id) {\r\n if (this.id) {\r\n this.hasID = true;\r\n if (!this.controlService.query) this.controlService.query = {};\r\n this.controlService.query.searchBy = 'user_info.id';\r\n this.controlService.query.searchValue = this.id + '&typeValue=number';\r\n }\r\n }\r\n }\r\n\r\n public getFeed(feed_id = '') {\r\n console.log('[getFeed] Query', this.query);\r\n this.feedService.getFeed(feed_id, this.global.loggedUser(), this.query).subscribe((response: any) => {\r\n this.feeds = response.data;\r\n console.log('Feeds', this.feeds);\r\n this.paginate = response.pagination;\r\n this.loading = false;\r\n this.hasFeed = (this.feeds.length > 0);\r\n });\r\n }\r\n\r\n public getMore() {\r\n console.log('[getMore]', this.paginate.next_document);\r\n if (this.paginate.next_document) {\r\n this.loading = true;\r\n this.feedService.getMoreFeed(5, this.paginate.next_document, this.global.loggedUser(), this.query).subscribe((response: any) => {\r\n response.data.map(item => {\r\n if (this.permitted(item)) {\r\n this.feeds.push(item);\r\n }\r\n });\r\n\r\n this.paginate = response.pagination;\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n\r\n public checkFeedChange() {\r\n // const collection = this.db.collection(path().feed, ref => {\r\n // return ref.orderBy('updated_at', 'desc');\r\n // });\r\n\r\n // collection.snapshotChanges().subscribe(response => {\r\n // console.log(\"[checkFeedChange]\",response);\r\n // if (response) {\r\n // setTimeout(() => {\r\n // console.log(\"[checkFeedChange]\")\r\n // this.getFeed(this.feedID);\r\n // }, 600);\r\n // }\r\n // })\r\n }\r\n\r\n @HostListener('window:scroll')\r\n checkScroll() {\r\n const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\r\n if (scrollPosition >= this.topPosToStartShowing) {\r\n this.showToTopButton = true;\r\n } else {\r\n this.showToTopButton = false;\r\n }\r\n }\r\n\r\n gotoTop() {\r\n window.scroll({\r\n top: 0,\r\n left: 0,\r\n behavior: 'smooth'\r\n });\r\n }\r\n\r\n permitted(post) {\r\n if (post.permission) {\r\n if (post.permission.length > 0) {\r\n let result = false;\r\n const user = this.global.loggedUser();\r\n if (user) {\r\n if (post.user_info && post.user_info.id == user.id) {\r\n result = true;\r\n }\r\n else if (user.extras) {\r\n const extras = user.extras[0];\r\n for (const perm of post.permission) {\r\n if ((perm.field == 'multi-conta') && (perm.value == user.client_id)) {\r\n result = true;\r\n break;\r\n }\r\n else if (extras[perm.field] == perm.value) {\r\n result = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public onNewFeed(id) {\r\n console.log('[onNewFeed]', id);\r\n this.feedService.getFeed(id).subscribe((response: any) => {\r\n let index = this.feeds.length;\r\n\r\n for (const feed of response.data) {\r\n feed.focus = true;\r\n }\r\n\r\n for (const feed of this.feeds) {\r\n feed.focus = false;\r\n }\r\n\r\n for (let i = 0; i < this.feeds.length; i++) {\r\n console.log('[onNewFeed] Feed', this.feeds[i]);\r\n if (!this.feeds[i].isHighlighted) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n this.feeds = [\r\n ... this.feeds.slice(0, index),\r\n ... response.data,\r\n ... this.feeds.slice(index)\r\n ];\r\n\r\n setTimeout(() => {\r\n const el = document.getElementsByClassName('focus-on-me')[0];\r\n el.scrollIntoView({ behavior: 'smooth' });\r\n }, 500);\r\n\r\n });\r\n }\r\n\r\n public sendVisible(item) {\r\n console.log(\"[sendVisible] marcando como visualizado\", item);\r\n const user = this.global.loggedUser();\r\n\r\n let postData = {\r\n post_id: item.id,\r\n title: item.title,\r\n created_at: item.updated_at\r\n };\r\n\r\n let data = {\r\n post_id: item.id,\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: user.id,\r\n updated_at: Date.now(),\r\n name: user.name,\r\n picture: user.picture\r\n }\r\n };\r\n\r\n const documentID = `feed-view/${item.id}`;\r\n const document = this.db.doc(documentID);\r\n document.set(postData).then((response) => {\r\n const documentID = `feed-view/${item.id}/views/${user.id}`;\r\n const document = this.db.doc(documentID);\r\n document.get().subscribe((doc) => {\r\n if (!doc.exists) {\r\n doc.ref.set(data).then((response) => {\r\n console.log(\"[sendVisible] marcado como visualizado\", response);\r\n });\r\n }\r\n else {\r\n console.log(\"[sendVisible] já foi marcado como visualizado\", doc);\r\n }\r\n });\r\n this.db.collection(`${documentID}/history`).add(data);\r\n });\r\n }\r\n\r\n}\r\n","import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class StreamService {\r\n\r\n public streamVideoPath: string;\r\n\r\n constructor(public http: HttpClient) {\r\n if (localStorage.getItem('loggedUser')) {\r\n const session = JSON.parse(localStorage.getItem('loggedUser'));\r\n this.streamVideoPath = (session.data.link_company) ? session.data.link_company : session.data.link;\r\n console.log('streamVideoPath', this.streamVideoPath);\r\n }\r\n }\r\n\r\n private getHeaders() {\r\n let headers = {\r\n 'Accept': 'application/json'\r\n };\r\n if (localStorage.getItem('token')) {\r\n headers['Authorization'] = localStorage.getItem('token');\r\n }\r\n return headers;\r\n }\r\n\r\n public status(id: string): any {\r\n return this.http.get(this.streamVideoPath + 'videos/' + id, { headers: this.getHeaders() });\r\n }\r\n\r\n public uploadFile(data: any): any {\r\n const formData: FormData = new FormData();\r\n formData.append('file', data);\r\n\r\n const req = new HttpRequest('POST', 'http://api.tecnologiaasap.com.br/api/cloudinary/upload', formData, {\r\n reportProgress: true,\r\n responseType: 'json',\r\n headers: new HttpHeaders(this.getHeaders())\r\n });\r\n\r\n console.log('RESPONSE UPLOAD', req);\r\n return this.http.request(req);\r\n }\r\n\r\n uid() {\r\n return this.s4() + this.s4() + '-' + this.s4() + '-' + this.s4() + '-' +\r\n this.s4() + '-' + this.s4() + this.s4() + this.s4();\r\n }\r\n\r\n s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n}\r\n","export class UserInfo {\r\n id: number = null;\r\n name: string = null;\r\n updated_at: any = null;\r\n picture: string = null;\r\n}\r\n\r\nexport class ProductModel {\r\n cod: number = null;\r\n descr: string = null;\r\n hashtag: string = null;\r\n id: number = null;\r\n produto: string = null;\r\n parcela: string = null;\r\n qtdMinimo: number = null;\r\n valorAte: number = null;\r\n valorDe: number = null;\r\n adaptation: string = null;\r\n desconto: number = null;\r\n fotos = [];\r\n}\r\n\r\nexport class FilesModel {\r\n url: string = null;\r\n type: string = null;\r\n status: number = 1;\r\n thumb_rendering = false;\r\n video_rendering = false;\r\n video_low_rendering = false;\r\n name: string = null;\r\n isCloudinary:boolean = false;\r\n}\r\n\r\nexport class FilesModelEdit {\r\n url: string = null;\r\n type: string = null;\r\n status: number = null;\r\n thumb_rendering = false;\r\n video_rendering = false;\r\n video_low_rendering = false;\r\n name: string = null;\r\n new:boolean = true\r\n}\r\n\r\nexport class FeedModel {\r\n id: string = null;\r\n ref: string = null;\r\n status: boolean = true;\r\n product: ProductModel = new ProductModel();\r\n type: string = 'post';\r\n source: string = 'web';\r\n likes = 0;\r\n shareds = 0;\r\n user_info: UserInfo = new UserInfo();\r\n updated_at: any = null;\r\n title: string = null;\r\n files: Array<FilesModel> = [];\r\n}","import { Injectable } from '@angular/core';\r\nimport { AngularFireStorage, AngularFireUploadTask } from '@angular/fire/storage';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { FirebaseApp } from '@angular/fire';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { AsapFeedService } from './asap-feed.service';\r\nimport { Global } from 'asap-crud';\r\n\r\n@Injectable()\r\n\r\nexport class UtilsService {\r\n\r\n public percentage: Observable<number>;\r\n public task: AngularFireUploadTask;\r\n public snapshot: Observable<any>;\r\n public lastDoc;\r\n\r\n constructor(\r\n public firebaseStorage: AngularFireStorage,\r\n public db: AngularFirestore,\r\n public firebase: FirebaseApp,\r\n public feedService:AsapFeedService,\r\n public global: Global\r\n ) { }\r\n\r\n public uploadFile(fileName: string, base64: string) {\r\n console.log('TO SUBINDO', fileName);\r\n try {\r\n let correctBase64 = base64;\r\n const ref = this.firebaseStorage.ref(fileName);\r\n this.task = ref.putString(correctBase64, 'data_url');\r\n this.percentage = this.task.percentageChanges();\r\n this.snapshot = this.task.snapshotChanges();\r\n } catch (error) {\r\n console.log(`ERRO DO SUBINDO`, error);\r\n }\r\n }\r\n\r\n getFireStorageURL(id: string) {\r\n return this.firebaseStorage.ref(id).getDownloadURL();\r\n }\r\n\r\n async deleteFireStorage(id: string) {\r\n return await this.firebaseStorage.ref(id).delete().toPromise();\r\n }\r\n\r\n uid() {\r\n return this.s4() + this.s4() + '-' + this.s4() + '-' + this.s4() + '-' +\r\n this.s4() + '-' + this.s4() + this.s4() + this.s4();\r\n }\r\n\r\n s4() {\r\n return Math.floor((1 + Math.random()) * 0x10000)\r\n .toString(16)\r\n .substring(1);\r\n }\r\n\r\n isUrl(s: string): boolean {\r\n const regexp = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n return regexp.test(s);\r\n }\r\n\r\n public sendNotification(data, user_destination, type) {\r\n\r\n console.log('Destinatario', user_destination);\r\n console.log('Remetente', this.global.loggedUser());\r\n\r\n if (user_destination.id != this.global.loggedUser().id) {\r\n this.feedService.sendNotification(user_destination.id,type, data).subscribe( response => {\r\n console.log('Retorno Notificacao', response);\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { Global } from 'asap-crud';\r\nimport { FilesModel, FeedModel, FilesModelEdit } from '../../models/feed.model';\r\nimport { StreamService } from '../../services/stream.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { path } from '../../constants/constants';\r\nimport { UtilsService } from '../../services/utils.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'lib-feed-modal-item-edit',\r\n templateUrl: './feed-modal-item-edit.component.html',\r\n styleUrls: ['../../asap-feed.beta.componente.scss','./feed-modal-item-edit.component.scss',],\r\n providers: [StreamService]\r\n})\r\nexport class FeedModalItemEditComponent implements OnInit {\r\n\r\n public showAnnouncePublication = false;\r\n public notAnnounce;\r\n public openAnnounceModal;\r\n public newProduct;\r\n public ExpandImg;\r\n // \r\n public title;\r\n public tmpFileArray: Array<FilesModelEdit>;\r\n public progress;\r\n public uploading;\r\n public type;\r\n public videoSendedID;\r\n public embedFile;\r\n public tmpEmbedFile;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<FeedModalItemEditComponent>,\r\n @Inject(MAT_DIALOG_DATA) public item,\r\n public global: Global,\r\n public streamService: StreamService,\r\n public sanitizer: DomSanitizer,\r\n public utilsService: UtilsService,\r\n public db: AngularFirestore\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.item) {\r\n this.title = this.item.title;\r\n this.type = this.item.type;\r\n this.tmpFileArray = this.item.files;\r\n console.log('Feed Modal ->', this.item);\r\n }\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n async uploadFile(event: any) {\r\n for (const file of event.target.files) {\r\n\r\n const tmpFile: FilesModelEdit = new FilesModelEdit();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n if (this.getTypeByMimeType(file.type) === 'video' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você só pode enviar um vídeo por Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 4) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você pode utilizar até no máximo 5 imagens no seu Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n console.log('File Sended',file);\r\n // **********************************************\r\n // !file.name.includes('firebasestorage')\r\n // Este trecho de código, verifica se o arquivo que está no tmpFileArray já foi enviado para evitar\r\n // o reenvio\r\n // ***********************************************\r\n if (this.getTypeByMimeType(file.type) === 'image' && !file.new) {\r\n console.log('File do Upload ->', file);\r\n if (file.type == 'image/gif') {\r\n tmpFile.url = `${this.streamService.uid()}.gif`;\r\n tmpFile.name = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = `${this.streamService.uid()}.${extname}`;\r\n tmpFile.name = await this.resizeImages(file, 800);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n\r\n else if (this.getTypeByMimeType(file.type) === 'video' && !file.new) {\r\n this.uploading = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n let reader = file\r\n if (reader) {\r\n let blobURL = URL.createObjectURL(reader);\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n this.uploading = true;\r\n await this.streamService.uploadFile(file).subscribe(\r\n response => {\r\n if (response['loaded']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n this.progress = tmpFile.status;\r\n console.log('Response', tmpFile);\r\n }\r\n\r\n if (response['body']) {\r\n tmpFile.url = response['body']['uuidVideo'];\r\n this.videoSendedID = tmpFile.url;\r\n this.uploading = false;\r\n this.progress = null;\r\n\r\n }\r\n }\r\n )\r\n console.log('tmpFile', tmpFile);\r\n }\r\n }\r\n }\r\n }\r\n\r\n share(): any {\r\n let data = null;\r\n data = this.item;\r\n delete data.likes;\r\n delete data.comments;\r\n data.title = this.title;\r\n\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n data.files = this.tmpFileArray;\r\n data.files.map(item => {\r\n if (item.type === 'video' && !item.video_rendering) {\r\n console.log('Existe um video no Feed', item);\r\n item.video_rendering = false;\r\n item.video_low_rendering = false;\r\n item.thumb_rendering = false;\r\n\r\n // Setando o ID do Feed igual ao ID do vídeo\r\n data.ref = item.url;\r\n data.status = false;\r\n this.streamService.status(item.url).subscribe((res: any) => {\r\n item.video_rendering = !res.p480;\r\n item.video_low_rendering = !res.p480_low;\r\n item.thumb_rendering = !res.thumb;\r\n });\r\n }\r\n })\r\n }\r\n\r\n this.publish(data);\r\n\r\n }\r\n\r\n public publish(data: FeedModel) {\r\n let count = 0;\r\n if (this.type == 'embed') {\r\n let fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n }\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n const images = this.tmpFileArray.filter(\r\n (image: any) => this.getTypeByMimeType(image.type) === 'image' && image.new\r\n );\r\n\r\n const step = 98 / images.length;\r\n\r\n if (images && images.length > 0) {\r\n console.log('Imagens para Publicar ->', images);\r\n\r\n for (const image of images) {\r\n console.log('Imagem ->', image);\r\n\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${image.url}`, image.name);\r\n\r\n this.utilsService.percentage.subscribe(percent => {\r\n image.status = percent;\r\n image.name = image.url;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n const index = data.files.findIndex(item => item.name === image.name);\r\n\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n console.log('Image File Url ->', imageURL);\r\n data.files[index].name = imageURL;\r\n });\r\n\r\n delete data.files[index].url;\r\n\r\n if (count == images.length) {\r\n console.log('Imagens Pos Processaento ->', data.files);\r\n const collection = this.db.collection(path().feed).doc(this.item.id)\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n });\r\n })\r\n }\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed).doc(this.item.id);\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed).doc(this.item.id);\r\n collection.update(classToPlain(data)).then( response => {\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.close();\r\n });\r\n }\r\n }\r\n\r\n // publish(data: FeedModel) {\r\n // let image;\r\n\r\n // console.log('Publish()', 1, data);\r\n // this.uploading = true;\r\n // this.progress = 0;\r\n\r\n\r\n // let count = 0;\r\n\r\n // if (this.type == 'embed') {\r\n // let fileEmbed: any = {\r\n // name: this.embedFile,\r\n // url: this.embedFile,\r\n // type: 'embed'\r\n // }\r\n\r\n // this.tmpFileArray.push(fileEmbed);\r\n // }\r\n\r\n // if (this.type != 'embed') {\r\n // if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n\r\n // const imagesFiles = this.tmpFileArray.filter(\r\n // (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n // );\r\n\r\n\r\n // const step = 98 / imagesFiles.length;\r\n\r\n // if (imagesFiles.length > 0) {\r\n // console.log('Publish()', 3, imagesFiles)\r\n // for (const file of imagesFiles) {\r\n // if (file.new) {\r\n // setTimeout(() => {\r\n // this.utilsService.uploadFile(`images/${file.url}`, file.name);\r\n // this.utilsService.percentage.subscribe(percent => {\r\n // file.status = percent;\r\n // // file.name = file.url;\r\n // delete file.new;\r\n // console.log(\"File\", file);\r\n // });\r\n\r\n // this.utilsService.task.snapshotChanges().subscribe(\r\n // async snap => {\r\n // if (snap.bytesTransferred === snap.totalBytes) {\r\n // count++;\r\n // this.progress += step;\r\n // console.log('PROGRESS', this.progress);\r\n // const index = data.files.findIndex(item => item.url === file.url);\r\n\r\n // if ((!image) && (data.files[index])) {\r\n // this.utilsService.getFireStorageURL(`images/${data.files[index].url}`).subscribe((imageURL) => {\r\n // image = imageURL;\r\n // });\r\n\r\n // }\r\n\r\n // data.files[index].name = data.files[index].url;\r\n\r\n\r\n // console.log('Data Files ->',data.files);\r\n // if (count == imagesFiles.length) {\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id)\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n\r\n // console.log('Publish()', 4)\r\n // }\r\n // }\r\n // },\r\n // error => {\r\n // console.error('Error', error);\r\n // })\r\n // });\r\n // }\r\n // }\r\n // }\r\n // else {\r\n // console.log('Publish()', 5)\r\n // console.log(data)\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n\r\n\r\n\r\n // }\r\n // }\r\n // else {\r\n // console.log('Publish()', 5);\r\n // console.log(data);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // }\r\n // }\r\n\r\n // else {\r\n // data.files = this.tmpFileArray;\r\n\r\n // console.log('Publish(Embed)', 6);\r\n // console.log(data);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id);\r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // }\r\n\r\n\r\n // console.log('Publish()', 0, path().feed);\r\n\r\n // const collection = this.db.collection(path().feed).doc(this.item.id); \r\n // collection.update(classToPlain(data));\r\n\r\n // this.title = '';\r\n // this.progress = null;\r\n // this.uploading = null;\r\n // this.tmpFileArray = [];\r\n // this.global.toast('Publicação criada com sucesso.')\r\n // this.close();\r\n // }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n const MAX_HEIGHT: any = 1334;\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.height = scale * img.height;\r\n\r\n canvas.width = MAX_WIDTH;\r\n let ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n let dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n }\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkPublicationType(title) {\r\n console.log('Event ->', event);\r\n if (title.length > 35) {\r\n if (this.isValidUrl(title)) {\r\n console.log('checkPublicationType', title);\r\n if (title.includes('youtube')) {\r\n this.tmpFileArray = [];\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.uploading = false;\r\n this.embedFile = title.replace('watch?v=', 'embed/');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n }\r\n else if (title.includes('spotify')) {\r\n this.tmpFileArray = [];\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.embedFile = title.replace('/episode', '/embed-podcast/episode');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n this.uploading = false;\r\n }\r\n\r\n let fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n }\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n }\r\n }\r\n\r\n removeEmbedFiles() {\r\n this.title = \"\";\r\n this.embedFile = \"\";\r\n this.type = \"post\";\r\n this.tmpFileArray = [] \r\n }\r\n\r\n isValidUrl(str) {\r\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\r\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\r\n return !!pattern.test(str);\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy, AfterViewInit, Output, EventEmitter } from '@angular/core';\r\nimport { StreamService } from '../services/stream.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { Global } from 'asap-crud';\r\nimport { FeedModalItemEditComponent } from '../feed-publication/feed-modal-item-edit/feed-modal-item-edit.component';\r\nimport { path } from '../constants/constants';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport SwiperCore, { Navigation, Pagination } from 'swiper';\r\nSwiperCore.use([Navigation, Pagination]);\r\n\r\n@Component({\r\n selector: 'app-feed-item',\r\n templateUrl: './feed-item.component.html',\r\n styleUrls: ['../asap-feed.beta.componente.scss', './feed-item.component.scss'],\r\n providers: [StreamService]\r\n})\r\nexport class FeedItemComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @Input() item;\r\n @Input() owner;\r\n\r\n @Output() isVisible = new EventEmitter();\r\n\r\n @ViewChild('videoPlayer', { static: true }) videoplayer: ElementRef\r\n @ViewChild('visibleControl', { static: false, read: ElementRef }) visibleControl;\r\n\r\n public currentIndex;\r\n public imageLoaded = false;\r\n public imageDataLoaded = false;\r\n public currentCarrouselIndex;\r\n public blurBackgroundIndex = Math.floor((Math.random() * 5) + 1);\r\n\r\n public observer;\r\n public visibleTimer;\r\n public shotTimer;\r\n\r\n constructor(\r\n public streamService: StreamService,\r\n public db: AngularFirestore,\r\n public global: Global,\r\n public dialog: MatDialog,\r\n public service: UtilsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loadVisibilityControls();\r\n\r\n if (this.item.files && this.item.files.length > 0) {\r\n this.item.files.map(feed => {\r\n if (feed.url && feed.url.includes('youtube')) {\r\n feed.isYoutube = true;\r\n let youtubeID = this.getYoutubeID(feed.url);\r\n feed.url = `https://www.youtube.com/embed/${youtubeID}`;\r\n }\r\n })\r\n }\r\n\r\n // console.log('ITEM ->', this.item);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.observer.observe(this.visibleControl.nativeElement);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.observer.disconnect();\r\n clearInterval(this.visibleTimer);\r\n }\r\n\r\n public loadVisibilityControls() {\r\n this.visibleTimer = setInterval(() => {\r\n this.shotTimer--;\r\n if (this.shotTimer == 0) {\r\n this.isVisible.emit(this.item);\r\n clearInterval(this.visibleTimer);\r\n this.observer.disconnect();\r\n }\r\n }, 1000);\r\n\r\n const options = {\r\n rootMargin: '0px',\r\n threshold: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]\r\n };\r\n\r\n this.observer = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(entry => {\r\n this.shotTimer = -1;\r\n this.item.active = false;\r\n if (entry.intersectionRatio == 1) {\r\n this.shotTimer = 5;\r\n }\r\n });\r\n }, options);\r\n }\r\n\r\n public onloadImage(event) {\r\n // console.log('Event onloadImage ->', event);\r\n this.imageLoaded = true;\r\n this.imageDataLoaded = true;\r\n }\r\n\r\n public onErrorImage(event) {\r\n // console.log('Event onErrorImage ->', event);\r\n }\r\n\r\n public playVideo(event) {\r\n // console.log('Event ->', event);\r\n if (this.videoplayer) {\r\n this.videoplayer.nativeElement.play();\r\n }\r\n }\r\n\r\n public linkify(str) {\r\n var re: any;\r\n re = [\r\n \"\\\\b((?:https?|ftp)://[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(www\\\\.[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(\\\\w[\\\\w.+-]*@[\\\\w.-]+\\\\.[a-z]{2,6})\\\\b\",\r\n \"#([a-z0-9]+)\"];\r\n re = new RegExp(re.join('|'), \"gi\");\r\n\r\n if (str) {\r\n return str.replace(re, function (match, url, www, mail, twitler) {\r\n if (url)\r\n return \"<a class='text-primary' target='_blank' (click)='redirectNewLink(url)' href=\\\"\" + url + \"\\\">\" + url + \"</a>\";\r\n if (www)\r\n return \"<a class='text-primary' href=\\\"http://\" + www + \"\\\">\" + www + \"</a>\";\r\n if (mail)\r\n return \"<a class='text-primary' href=\\\"#</a>\";\r\n if (twitler)\r\n return \"<a class='text-primary' href=\\\"portal/search/\" + encodeURIComponent('#' + twitler) + \"\\\">#\" + twitler + \"</a>\";\r\n // return \"<a class='text-primary' href=\\\"#\\\">#\" + twitler + \"</a>\";\r\n\r\n // shouldnt get here, but just in case\r\n return match;\r\n });\r\n }\r\n }\r\n\r\n public checkVideoRender(item) {\r\n\r\n console.log('videoRender ->', item);\r\n this.streamService.status(item).subscribe((res: any) => {\r\n console.log('checkVideoRender', res);\r\n })\r\n }\r\n\r\n public onEditItem() {\r\n // Preparar feed para editar\r\n let feed;\r\n feed = this.item;\r\n delete feed.comments;\r\n delete feed.likes;\r\n\r\n feed.files.map(file => {\r\n file.new = false;\r\n });\r\n\r\n this.dialog.open(FeedModalItemEditComponent, {\r\n width: '600px',\r\n data: feed,\r\n panelClass: 'modal-feed-publication'\r\n })\r\n }\r\n\r\n preConvertNumber(value) {\r\n return parseFloat(value);\r\n }\r\n\r\n public onRemoveItem(item) {\r\n this.global.swal({\r\n title: 'Você realmente deseja remover este Post?',\r\n text: 'Você não poderá reverter essa ação depois de confirmado',\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(async confirm => {\r\n if (confirm.value) {\r\n const collection = this.db.collection(path().feed).doc(item.id);\r\n\r\n if (item.files && item.files.length > 0) {\r\n for (const file of item.files) {\r\n if (file.type === 'image') {\r\n if (file.name) {\r\n try {\r\n await this.service.deleteFireStorage(`${path().images}/${file.name}`);\r\n } catch (error) {\r\n console.log('Removendo um post com imagem não referenciada', error);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n collection.delete();\r\n item.deleted = true;\r\n this.global.toast('Post removido com Sucesso');\r\n }\r\n });\r\n }\r\n\r\n checkFileOrigin(file) {\r\n\r\n }\r\n\r\n isYoutube(file) {\r\n console.log('IsYoutube ->', file);\r\n if (file.includes('youtube')) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getYoutubeID(url) {\r\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\r\n var match = url.match(regExp);\r\n return (match && match[7].length == 11) ? match[7] : false;\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeResourceUrl, SafeUrl, SafeStyle } from '@angular/platform-browser';\r\n\r\n@Pipe({name: 'stream'})\r\nexport class StreamPipe implements PipeTransform {\r\n\r\n public url: string;\r\n\r\n constructor(private domSanitizer: DomSanitizer) {\r\n if (localStorage.getItem('loggedUser')) {\r\n const session = JSON.parse(localStorage.getItem('loggedUser')).data;\r\n this.url = (session.link_company) ? session.link_company : session.link;\r\n }\r\n else {\r\n // Carregar vídeos no Feed caso o usuário não esteja logado\r\n let link = localStorage.getItem('streamURL');\r\n this.url = link;\r\n }\r\n\r\n }\r\n\r\n transform(param: string, arg?: string): SafeResourceUrl | string {\r\n if (arg === 'link') {\r\n return this.getVideoUri(param);\r\n }\r\n if (arg === 'thumb') {\r\n return this.getVideoThumb(param);\r\n }\r\n if (arg === 'id') {\r\n return this.getVideoId(param);\r\n }\r\n if (arg === 'fire') {\r\n return this.getFireStorageURL(param);\r\n }\r\n if (arg === 'styleThumbUrl') {\r\n return this.domSanitizer.bypassSecurityTrustStyle(`url(${this.getVideoThumb(param)})`);\r\n }\r\n if (arg === 'backgroundImage') {\r\n return this.domSanitizer.bypassSecurityTrustStyle(`url(${param}`);\r\n }\r\n \r\n return param;\r\n }\r\n\r\n getVideoThumb(url: string): SafeResourceUrl {\r\n return this.url + 'videos/thumb/' + this.getVideoId(url);\r\n }\r\n\r\n getVideoUri(url: string): SafeResourceUrl {\r\n return this.domSanitizer.bypassSecurityTrustResourceUrl(this.url + 'videos/' + this.getVideoId(url) + '/480_low');\r\n }\r\n\r\n getFireStorageURL(url:string): SafeUrl {\r\n console.log('URL', url);\r\n return this.domSanitizer.bypassSecurityTrustUrl(url);\r\n }\r\n\r\n getVideoId(url: string): string {\r\n if (this.isUrl(url)) {\r\n const split = url.split('/');\r\n return split[4];\r\n }\r\n return url;\r\n }\r\n\r\n isUrl(s: string): boolean {\r\n const regexp = /[-a-zA-Z0-9@:%._\\+~#=]{2,256}\\.[a-z]{2,6}\\b([-a-zA-Z0-9@:%_\\+.~#?&//=]*)/;\r\n return regexp.test(s);\r\n }\r\n\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe'\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n\r\n constructor(protected sanitizer: DomSanitizer) {}\r\n \r\n public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n if (value) {\r\n switch (type) {\r\n case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script': return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default: throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\nconst _NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\r\n\r\n@Pipe({name: 'looseCurrency'})\r\nexport class LooseCurrencyPipe implements PipeTransform {\r\n constructor(private _currencyPipe: CurrencyPipe) {}\r\n\r\n transform(value: any, currencyCode: string, symbolDisplay: boolean, digits: string): string {\r\n if (typeof value === 'number' || _NUMBER_FORMAT_REGEXP.test(value)) {\r\n return this._currencyPipe.transform(value, currencyCode, symbolDisplay, digits);\r\n } else {\r\n return value;\r\n }\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { StreamPipe } from './stream.pipe';\r\nimport { SafePipe } from './safe.pipe';\r\nimport { LooseCurrencyPipe } from './currency.pipe';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@NgModule({\r\n declarations: [\r\n SafePipe,\r\n StreamPipe,\r\n LooseCurrencyPipe\r\n ],\r\n imports: [\r\n\r\n ],\r\n exports: [\r\n SafePipe,\r\n StreamPipe,\r\n LooseCurrencyPipe\r\n ],\r\n providers:[\r\n CurrencyPipe\r\n ]\r\n})\r\nexport class PipesModule { }\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { Global, AsapService } from 'asap-crud';\r\n\r\n@Component({\r\n selector: 'feed-comments',\r\n templateUrl: './feed-comments.component.html',\r\n styleUrls: ['./feed-comments.component.scss', '../asap-feed.beta.componente.scss']\r\n})\r\nexport class FeedCommentsComponent implements OnInit {\r\n\r\n @Input() feed_id;\r\n @Input() user;\r\n public comments = [];\r\n public replyingComment = [];\r\n public mentionsList;\r\n public limitCommentsTo = 3;\r\n public limitReplysTo = 1;\r\n public comment;ng \r\n public reply;\r\n public editedComment;\r\n public editedReply;\r\n public onLoadingLike = false;\r\n public onLoadingReply = false;\r\n public onLoadingComment = false;\r\n\r\n constructor(\r\n public global: Global,\r\n public db: AngularFirestore,\r\n public feedService: AsapFeedService,\r\n public service: UtilsService,\r\n public asapService: AsapService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getComments(this.feed_id);\r\n }\r\n\r\n public getComments(feed_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments', (ref: any) => {\r\n let query = ref.orderBy(\"updated_at\", \"desc\");\r\n return query;\r\n });\r\n\r\n\r\n collection.snapshotChanges().subscribe((comment: any) => {\r\n this.comments = [];\r\n comment.map(item => {\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n data.likeForMe = false;\r\n data.limitReplysTo = 1;\r\n\r\n const likesCollection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments')\r\n .doc(data.id)\r\n .collection('like');\r\n\r\n\r\n likesCollection.snapshotChanges().subscribe(like => {\r\n data.likes = [];\r\n like.map(subItemLike => {\r\n let likeData = subItemLike.payload.doc.data();\r\n likeData.id = subItemLike.payload.doc['id'];\r\n\r\n if (this.global.loggedUser()) {\r\n if (likeData.user_info && likeData.user_info.id === this.global.loggedUser().id) {\r\n data.likeForMe = true;\r\n data.likeForMeID = likeData.id;\r\n }\r\n }\r\n \r\n data.likes.push(likeData);\r\n\r\n });\r\n });\r\n\r\n const replyCollection = this.db.collection(path().feed)\r\n .doc(feed_id)\r\n .collection('comments')\r\n .doc(data.id)\r\n .collection('reply', ref => {\r\n return ref.orderBy('updated_at', 'desc');\r\n });\r\n\r\n replyCollection.snapshotChanges().subscribe(reply => {\r\n data.replys = [];\r\n reply.map(subItem => {\r\n let replyData = subItem.payload.doc.data();\r\n replyData.id = subItem.payload.doc['id'];\r\n\r\n data.replys.push(replyData);\r\n });\r\n\r\n });\r\n\r\n this.comments.push(data);\r\n });\r\n });\r\n }\r\n\r\n public onReplyComment(i) {\r\n if (!this.replyingComment[i]) {\r\n this.replyingComment[i] = true;\r\n }\r\n else {\r\n this.replyingComment[i] = false;\r\n }\r\n }\r\n\r\n public sendComment(comment) {\r\n let data = {\r\n comment: comment,\r\n updated_at: Date.now(),\r\n created_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments');\r\n\r\n if (comment.length > 0) {\r\n this.onLoadingComment = true;\r\n collection.add(data);\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Novo comentário`,\r\n description: `${this.global.loggedUser().name}: ${comment}`,\r\n user: this.global.loggedUser(),\r\n client_id:this.global.loggedUser().client_id,\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, this.user, 'feed');\r\n\r\n this.comment = \"\";\r\n this.onLoadingComment = false;\r\n }\r\n }\r\n\r\n public replyComment(comment_id, comment, user_info, i) {\r\n let data = {\r\n comment: comment,\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n if (comment.length > 0) {\r\n this.onLoadingReply = true;\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply');\r\n\r\n collection.add(data);\r\n\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Nova Resposta`,\r\n description: `${this.global.loggedUser().name} respondeu: ${comment}`,\r\n client_id:this.global.loggedUser().client_id,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, user_info, 'feed');\r\n\r\n this.reply = \"\";\r\n this.onLoadingReply = false;\r\n this.replyingComment[i] = false;\r\n }\r\n }\r\n\r\n public deleteReply(comment_id, reply_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply')\r\n .doc(reply_id);\r\n\r\n collection.delete();\r\n }\r\n\r\n public deleteComment(comment_id) {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id);\r\n\r\n collection.delete();\r\n }\r\n\r\n public sendLikeComment(comment_id, like_id = null, item) {\r\n this.onLoadingLike = true;\r\n if (!item.likeForMe) {\r\n let data = {\r\n created_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('like');\r\n\r\n collection.add(data);\r\n\r\n\r\n const notification = {\r\n source:'web',\r\n title: `Nova Curtida`,\r\n description: `${this.global.loggedUser().name} curtiu seu comentário: ${item.comment}`,\r\n client_id:this.global.loggedUser().client_id,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.feed_id}`\r\n }\r\n\r\n this.service.sendNotification(notification, item.user_info, 'feed');\r\n\r\n item.likeForMe = true;\r\n this.onLoadingLike = false;\r\n }\r\n else {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('like')\r\n .doc(like_id);\r\n\r\n collection.delete();\r\n item.likeForMe = false;\r\n this.onLoadingLike = false;\r\n }\r\n }\r\n\r\n public loadMoreComments() {\r\n this.limitCommentsTo = this.limitCommentsTo + 3;\r\n }\r\n\r\n public loadMoreReplys(item) {\r\n item.limitReplysTo = item.limitReplysTo + 3;\r\n }\r\n\r\n public linkify(str) {\r\n var re: any;\r\n re = [\r\n \"\\\\b((?:https?|ftp)://[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(www\\\\.[^\\\\s\\\"'<>]+)\\\\b\",\r\n \"\\\\b(\\\\w[\\\\w.+-]*@[\\\\w.-]+\\\\.[a-z]{2,6})\\\\b\",\r\n \"#([a-z0-9]+)\"];\r\n re = new RegExp(re.join('|'), \"gi\");\r\n\r\n if (str) {\r\n return str.replace(re, function (match, url, www, mail, twitler) {\r\n if (url)\r\n return \"<a class='text-primary' target='_blank' (click)='redirectNewLink(url)' href=\\\"\" + url + \"\\\">\" + url + \"</a>\";\r\n if (www)\r\n return \"<a class='text-primary' href=\\\"http://\" + www + \"\\\">\" + www + \"</a>\";\r\n if (mail)\r\n return \"<a class='text-primary' href=\\\"#</a>\";\r\n if (twitler)\r\n return \"<a class='text-primary' href=\\\"portal/search/\" + encodeURIComponent('#' + twitler) + \"\\\">#\" + twitler + \"</a>\";\r\n // return \"<a class='text-primary' href=\\\"#\\\">#\" + twitler + \"</a>\";\r\n\r\n // shouldnt get here, but just in case\r\n return match;\r\n });\r\n }\r\n }\r\n\r\n public onEditReply(reply) {\r\n this.editedReply = reply.comment;\r\n if (reply.onEdit) {\r\n reply.onEdit = false;\r\n }\r\n else {\r\n reply.onEdit = true;\r\n }\r\n }\r\n\r\n public onEditComment(comment) {\r\n this.editedComment = comment.comment;\r\n\r\n if (comment.onEdit) {\r\n comment.onEdit = false;\r\n }\r\n else {\r\n comment.onEdit = true;\r\n }\r\n }\r\n\r\n public updateComment(id, comment) {\r\n this.onLoadingComment = true;\r\n let data = {\r\n comment: this.editedComment,\r\n edited: true,\r\n updated_at: Date.now()\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(id);\r\n\r\n if (comment.length > 0) {\r\n collection.update(data);\r\n this.editedComment = \"\";\r\n this.onLoadingComment = false;\r\n }\r\n }\r\n\r\n public updateReply(comment_id, old_reply, reply) {\r\n this.onLoadingReply = true;\r\n let data = {\r\n comment: reply,\r\n updated_at: Date.now(),\r\n }\r\n\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.feed_id)\r\n .collection('comments')\r\n .doc(comment_id)\r\n .collection('reply')\r\n .doc(old_reply.id);\r\n collection.update(data);\r\n this.editedComment = \"\";\r\n this.onLoadingReply = false;\r\n old_reply.onEdit = false;\r\n }\r\n\r\n public searchMetionUsers(event) {\r\n\r\n }\r\n\r\n public loadUsers() {\r\n this.asapService.entityName = 'asap-user';\r\n this.asapService.getResources().subscribe((response: any) => {\r\n this.mentionsList = {\r\n items: response.data.map((item: any) => item.name),\r\n triggerChar: '@'\r\n };\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Input, isDevMode } from '@angular/core';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { Global } from 'asap-crud';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n\r\n@Component({\r\n selector: 'feed-actions',\r\n templateUrl: './feed-actions.component.html',\r\n styleUrls: ['./feed-actions.component.scss', '../asap-feed.beta.componente.scss']\r\n})\r\nexport class FeedActionsComponent implements OnInit {\r\n\r\n @Input() item;\r\n @Input() portalName;\r\n\r\n public likes = [];\r\n public listUsersLikes;\r\n public comments = [];\r\n public shareds = [];\r\n public likeForMe = false;\r\n public sharedForMe = false;\r\n public likeForMeID;\r\n public sharedForMeID;\r\n public disabledLike;\r\n public onSendLike = false;\r\n public onSendShared = false;\r\n public deviceInfo = null;\r\n\r\n constructor(\r\n public global: Global,\r\n public db: AngularFirestore,\r\n public feedService: AsapFeedService,\r\n public service: UtilsService,\r\n public translate: TranslateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getLikes();\r\n this.getComments();\r\n this.getShareds();\r\n }\r\n\r\n public getLikes() {\r\n const collection = this.db.collection('likes', ref => {\r\n return ref.where('post_id', '==', this.item.id);\r\n });\r\n\r\n collection.snapshotChanges().subscribe(likes => {\r\n this.likes = [];\r\n // this.listUsersLikes = likes.map( (item:any) => item.user_info.name);\r\n // this.listUsersLikes = this.listUsersLikes.toString();\r\n likes.map((item: any) => {\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n\r\n if (this.global.loggedUser()) {\r\n // Este condição é para a versão antiga da Collection Likes\r\n if (data.uid && data.uid == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n\r\n // Este condição é para a versão nova da Collection Likes\r\n if (data.user_info && data.user_info.id == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n }\r\n\r\n this.likes.push(data);\r\n })\r\n });\r\n }\r\n\r\n public getComments() {\r\n const collection = this.db.collection(path().feed)\r\n .doc(this.item.id)\r\n .collection('comments');\r\n\r\n collection.valueChanges().subscribe(response => {\r\n this.comments = response;\r\n })\r\n }\r\n\r\n public getShareds() {\r\n const collection = this.db.collection('shareds', ref => {\r\n return ref.where('post_id', '==', this.item.id);\r\n });\r\n\r\n collection.snapshotChanges().subscribe(shareds => {\r\n this.shareds = [];\r\n shareds.map((item: any) => {\r\n console.log('Shareds ->', item);\r\n let data = item.payload.doc.data();\r\n data.id = item.payload.doc.id;\r\n\r\n if (this.global.loggedUser()) {\r\n // Este condição é para a versão antiga da Collection Shareds\r\n if (data.uid && data.uid == this.global.loggedUser().id) {\r\n this.sharedForMe = true;\r\n this.sharedForMeID = data.id;\r\n }\r\n\r\n // Este condição é para a versão nova da Collection Shareds\r\n if (data.user_info && data.user_info.id == this.global.loggedUser().id) {\r\n this.likeForMe = true;\r\n this.likeForMeID = data.id;\r\n }\r\n }\r\n\r\n this.shareds.push(data);\r\n })\r\n });\r\n }\r\n\r\n public sendLike() {\r\n if (this.onSendLike) {\r\n console.log(\"[sendLike] bloqueio...\")\r\n }\r\n else {\r\n this.onSendLike = true;\r\n setTimeout(() => {\r\n console.log(\"[sendLike] enviando like...\")\r\n let data = {\r\n post_id: this.item.id,\r\n create_at: Date.now(),\r\n updated_at: Date.now(),\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n updated_at: Date.now(),\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n \r\n if (!this.likeForMe) {\r\n \r\n const notification = {\r\n title: `Nova curtida`,\r\n description: `${this.global.loggedUser().name} curtiu seu post`,\r\n user: this.global.loggedUser(),\r\n redirect: `/portal/${this.item.id}`,\r\n client_id: this.global.loggedUser().client_id,\r\n }\r\n \r\n this.service.sendNotification(notification, this.item.user_info, 'feed');\r\n \r\n const collection = this.db.collection('likes');\r\n const commentData = collection.add(data);\r\n console.log(commentData);\r\n // const \r\n // const feedDataCollection = await db.collection('feed').doc(feed_id).collection('comments').doc(comment_id);\r\n // await feedDataCollection.update({ reply_count: admin.firestore.FieldValue.increment(1) });\r\n setTimeout(() => {\r\n this.onSendLike = false;\r\n }, 1000);\r\n }\r\n else {\r\n const collection = this.db.collection('likes').doc(this.likeForMeID);\r\n collection.delete();\r\n setTimeout(() => {\r\n this.onSendLike = false;\r\n }, 1000);\r\n this.likeForMe = false;\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n public copyToClipBoard(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n //alert(\"Link copiado para a área de transferencia\")\r\n this.global.notification.success('Pronto!', 'Link copiado para a área de transferencia');\r\n }\r\n\r\n sharePost(type = 'link') {\r\n this.onSendShared = false;\r\n\r\n let data = {\r\n post_id: this.item.id,\r\n create_at: Date.now(),\r\n updated_at: Date.now(),\r\n uid: this.global.loggedUser().id,\r\n user_info: {\r\n id: this.global.loggedUser().id,\r\n updated_at: Date.now(),\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture\r\n }\r\n }\r\n\r\n if (!this.sharedForMe) {\r\n\r\n\r\n\r\n const notification = {\r\n title: `Novo Compartilhamento`,\r\n description: `${this.global.loggedUser().name} compartilhou seu post através do ${type}`,\r\n meta_data: this.global.loggedUser(),\r\n redirect: `/portal/${this.item.id}`,\r\n client_id: this.global.loggedUser().client_id,\r\n }\r\n\r\n\r\n\r\n this.service.sendNotification(notification, this.item.user_info, 'feed');\r\n\r\n\r\n const collection = this.db.collection('shareds');\r\n collection.add(data);\r\n }\r\n\r\n this.onSendShared = false;\r\n var base_url = window.location.origin;\r\n let urlShare = base_url + `/post/${this.item.id}`;\r\n\r\n // this.deviceInfo = this.deviceService.getDeviceInfo();\r\n const isMobile = false;//this.deviceService.isMobile();\r\n //const canShare = window.navigator.canShare(data);\r\n //console.log(\"canShare\",canShare)\r\n\r\n if (isMobile) {\r\n let myNavigator: any;\r\n myNavigator = window.navigator;\r\n\r\n\r\n if (myNavigator.share) {\r\n myNavigator.share({\r\n title: 'Gostei deste post',\r\n text: 'Veja esse poste de *' + this.item.user_info.name + '* que gostei ' + '\\n\\n' + urlShare,\r\n url: urlShare,\r\n })\r\n .then(() => console.log('Successful share'))\r\n .catch((error) => console.log('Error sharing', error));\r\n }\r\n\r\n } else {\r\n let url = '';\r\n if (type == 'whatsapp') {\r\n let original = this.translate.instant('LookThisPostThatIFound');\r\n url = `${original.split(\"{{user_name}}\").join(this.item.user_info.name)}\\n\\n${urlShare}`;\r\n url = `https://wa.me/?text=${encodeURIComponent(url)}`;\r\n window.open(url);\r\n }\r\n else if (type == 'linkedin') {\r\n url = `https://www.linkedin.com/shareArticle?mini=true&url=${urlShare}&title=${encodeURIComponent('Gostei deste post do *' + this.item.user_info.name + '* que encontrei no ' + 'Portal ' + '\\n\\n' + urlShare)}`\r\n window.open(url);\r\n }\r\n else if (type == 'telegram') {\r\n url = `https://telegram.me/share/url?url=${urlShare}`;\r\n window.open(url);\r\n }\r\n else if (type == 'link') {\r\n this.copyToClipBoard(urlShare);\r\n }\r\n else if (type == 'facebook') {\r\n url = `https://www.facebook.com/sharer/sharer.php?u=${urlShare}`;\r\n window.open(url);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Global, AsapBaseService } from 'asap-crud';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class ProductService extends AsapBaseService {\r\n\r\n constructor(\r\n public http: HttpClient,\r\n public global: Global,\r\n public router: Router\r\n ) {\r\n super(http);\r\n this.entityName = \"\";\r\n this.basePath = \"api/v2\";\r\n }\r\n\r\n public product(id):any {\r\n return this.getResources({router:'client/produto/' + id});\r\n }\r\n \r\n public createProduct(data):any {\r\n return this.createResource(data, {router:'loja/produto'});\r\n } \r\n\r\n public categories():any {\r\n return this.getResources({router:'client/categoria/' + this.global.clientID()});\r\n }\r\n\r\n public subCategories(category):any {\r\n return this.getResources({router:'client/subcategoria/' + this.global.clientID() + \"/\" + category});\r\n }\r\n\r\n public subCategoryProducts(id,page=null):any {\r\n let qryPage = null;\r\n if (page) {\r\n qryPage = \"page=\" + page;\r\n }\r\n return this.getResources({router:'client/showcasefilter/' + id, query: qryPage});\r\n } \r\n\r\n public mainProducts():any {\r\n return this.getResources({router:'client/produto/mais/vendidos/' + this.global.clientID()});\r\n }\r\n\r\n public getMyProducts():any {\r\n return this.getResources({router:'client/seller/' +this.global.loggedUser().id});\r\n }\r\n \r\n public spotlightProducts(page=null,search=\"\"):any {\r\n let qryPage = \"\";\r\n if (page) {\r\n qryPage = \"page=\" + page;\r\n }\r\n if (search != \"\") {\r\n if (qryPage != \"\") qryPage += \"&busca=\" + search;\r\n }\r\n return this.getResources({router:'client/showcase/' + this.global.clientID(), query: qryPage});\r\n }\r\n\r\n public order(id,orderData):any {\r\n return this.createResource(orderData,{router:'loja/pedido/' + id});\r\n }\r\n\r\n public searchCep(cep):any {\r\n return this.http.get('https://viacep.com.br/ws/'+cep+'/json/');\r\n }\r\n\r\n public checkUserExists(email):any{\r\n return this.getResources({router:'admin/verify/user?search='+email + '&client_id=' +this.global.clientID()});\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject, Input, ViewChild, Output, EventEmitter, ElementRef } from '@angular/core';\r\nimport { Global, AsapService } from 'asap-crud';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { CdkStepper } from '@angular/cdk/stepper';\r\nimport { StreamService } from '../../services/stream.service';\r\nimport { ProductService } from '../../services/product.service';\r\nimport { ProductModel, FilesModel, FeedModel } from '../../models/feed.model';\r\nimport { UtilsService } from '../../services/utils.service';\r\nimport { path } from '../../constants/constants';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\ndeclare var swal: any;\r\n\r\n@Component({\r\n selector: 'modal-announce',\r\n templateUrl: './modal-announce.component.html',\r\n styleUrls: ['./modal-announce.component.scss', '../../asap-feed.beta.componente.scss'],\r\n providers: [AsapService, Global, StreamService, ProductService]\r\n})\r\nexport class ModalAnnounceComponent implements OnInit {\r\n @Input() images;\r\n @ViewChild('file', { static: false }) file: ElementRef;\r\n @Output() published = new EventEmitter<boolean>(false);\r\n\r\n public category: any;\r\n public subCategory: any;\r\n public error = false;\r\n public entity: any = {}\r\n public newProduct: boolean = true;\r\n public newAdversing: any;\r\n public myProducts: any;\r\n public selectedProduct: any = {};\r\n public tempProductData: ProductModel;\r\n public tmpFileArray: Array<FilesModel>;\r\n public uploading: boolean;\r\n public uploadingVideo: boolean;\r\n public progress;\r\n public title;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef<ModalAnnounceComponent>,\r\n public global: Global,\r\n public asapService: AsapService,\r\n public utilsService: UtilsService,\r\n public sanitizer: DomSanitizer,\r\n public streamService: StreamService,\r\n public productService: ProductService,\r\n public route: ActivatedRoute,\r\n public db: AngularFirestore,\r\n @Inject(MAT_DIALOG_DATA) public feed,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tmpFileArray = [];\r\n this.progress = 0;\r\n this.newProduct = true;\r\n this.loadCategory();\r\n this.loadMyProducts();\r\n }\r\n\r\n close() {\r\n this.global.alert({\r\n title: 'Você quer mesmo fechar anúncio?',\r\n text: 'Você perderá todas as informações se confirmar...',\r\n type: \"warning\",\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(async confirm => {\r\n if (confirm.value) {\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n public defaults() {\r\n return {\r\n fotos: []\r\n }\r\n }\r\n\r\n public loadSubCategory(event) {\r\n this.productService.subCategories(this.entity.categoria_id).subscribe((response: any) => {\r\n this.subCategory = response;\r\n });\r\n }\r\n\r\n public addPicture(image) {\r\n this.entity.fotos.push({ img: image.path });\r\n }\r\n\r\n public delPicture(index) {\r\n // this.global.swal({\r\n // title: 'Remover imagem...',\r\n // text: \"Você deseja remover essa imagem!\",\r\n // type: 'warning',\r\n // showCancelButton: true,\r\n // confirmButtonText: 'Sim',\r\n // cancelButtonText: 'Não',\r\n // reverseButtons: true\r\n // }).then((result) => {\r\n // if (result.value) {\r\n // this.entity.fotos.splice(index,1);\r\n // }\r\n // })\r\n }\r\n\r\n public categoryName(id) {\r\n if (this.category) {\r\n let cat = this.category.find(item => item.id == id);\r\n if (cat) {\r\n return cat.name;\r\n }\r\n }\r\n return \"NÃO SELECIONADO\";\r\n }\r\n\r\n public subCategoryName(id) {\r\n if (this.subCategory) {\r\n let cat = this.subCategory.find(item => item.id == id);\r\n if (cat) {\r\n return cat.subCategory;\r\n }\r\n }\r\n return \"NÃO SELECIONADO\";\r\n }\r\n\r\n public onSave() {\r\n this.uploading = true;\r\n this.progress = 1;\r\n this.images = this.tmpFileArray;\r\n if (!this.newProduct) {\r\n this.addPostOnFeed();\r\n this.global.notification.success('Seu produto foi anunciado com Sucesso!');\r\n\r\n }\r\n else if (this.newProduct) {\r\n this.tempProductData = this.entity;\r\n this.entity.fotos = [];\r\n\r\n for (let index = 0; index < this.images.length; index++) {\r\n this.entity.fotos[index] = {\r\n img: this.images[index].url\r\n };\r\n\r\n }\r\n\r\n this.productService.createProduct(this.entity).subscribe((response: any) => {\r\n console.log('ResponseFeed');\r\n this.tempProductData.id = response.produto.data.id;\r\n this.addPostOnFeed();\r\n this.global.notification.success('Produto, cadastrado e anunciado com Sucesso');\r\n },\r\n\r\n (error: any) => {\r\n console.error('Erro', error);\r\n });\r\n }\r\n }\r\n\r\n public loadCategory() {\r\n this.productService.categories().subscribe((response: any) => {\r\n console.log('loadSubCategories', response);\r\n this.category = response.data;\r\n\r\n })\r\n }\r\n\r\n public loadSubCategories(id_categorie) {\r\n console.log('loadSubCategories', id_categorie);\r\n this.productService.subCategories(id_categorie).subscribe((response: any) => {\r\n this.subCategory = response;\r\n\r\n });\r\n }\r\n\r\n public loadMyProducts() {\r\n this.productService.getMyProducts().subscribe((response: any) => {\r\n console.log('MyPrid', response);\r\n this.myProducts = response.data.produtos.data;\r\n },\r\n (error: any) => {\r\n this.global.notification.error('Ocorreu um problema ao processar sua requisição, entre em contato com o Administrador do Sistema')\r\n })\r\n }\r\n\r\n public addPostOnFeed() {\r\n console.log('Owner', this);\r\n console.log('Data Feed', this.tempProductData);\r\n this.share();\r\n // const feedCollection = this.db.collection(path().feed);\r\n // const images = []; \r\n\r\n // for (let index = 0; index < this.images.length; index++) {\r\n // images[index] = {\r\n // type:'image',\r\n // url:this.images[index].url || this.images[index].img\r\n // };\r\n // }\r\n\r\n // const post = {\r\n // likes: 0,\r\n // isLiked: false,\r\n // user_info: this.global.loggedUser(),\r\n // updated_at: Date.now(),\r\n // title: data.produto,\r\n // product:{\r\n // data\r\n // },\r\n // type: 'announce',\r\n // files: images,\r\n // };\r\n\r\n // console.log('DATA', post);\r\n\r\n // feedCollection.add(post).then(res => {\r\n // this.db.doc(`feed/${res.id}`).update({ id: res.id });\r\n // });\r\n }\r\n\r\n share(): any {\r\n console.log('New Prodct 1', this.newProduct);\r\n const data: FeedModel = new FeedModel();\r\n data.product = (this.newProduct) ? this.tempProductData : this.selectedProduct;\r\n data.updated_at = Date.now();\r\n data.type = 'announce';\r\n console.log('Post Data', data);\r\n console.log('New Prodct', this.newProduct);\r\n\r\n if (this.newProduct) {\r\n\r\n data.title = '<b>' + data.product.produto + '</b>' + '<br><br>' + data.product.descr;\r\n data.product = this.tempProductData;\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n console.log(2);\r\n data.files = this.tmpFileArray;\r\n console.log('FILES ------------>', data.files);\r\n const videoFilter = data.files.filter(tmp => this.getTypeByMimeType(tmp.type) === 'video');\r\n\r\n if (videoFilter.length > 0) {\r\n console.log(3);\r\n data.files[0].video_rendering = true;\r\n data.files[0].video_low_rendering = true;\r\n data.files[0].thumb_rendering = true;\r\n\r\n this.streamService.status(videoFilter[0].url).subscribe((res: any) => {\r\n data.files[0].video_rendering = !res.p480;\r\n data.files[0].video_low_rendering = !res.p480_low;\r\n data.files[0].thumb_rendering = !res.thumb;\r\n });\r\n }\r\n }\r\n }\r\n\r\n\r\n else if (!this.newProduct) {\r\n data.title = '<b>' + data.product.produto + '</b>' + '<br><br>' + data.product.descr;\r\n if (data.product.fotos.length > 0) {\r\n for (let index = 0; index < data.product.fotos.length; index++) {\r\n console.log('Fotos ->', data.product.fotos[index]);\r\n data.product.fotos[index].url = data.product.fotos[index].img;\r\n data.product.fotos[index].type = 'image';\r\n delete data.product.fotos[index].img;\r\n data.files[index] = data.product.fotos[index];\r\n }\r\n\r\n if (data.files.length == data.product.fotos.length) {\r\n console.log('Fotos', data);\r\n }\r\n }\r\n\r\n }\r\n\r\n console.log('SHARE', data);\r\n this.publish(data);\r\n this.feed.owner.published.emit(true);\r\n\r\n }\r\n\r\n\r\n async uploadFile(event: any) {\r\n console.log('uploadFile(event)', event);\r\n for (const file of event.target.files) {\r\n console.log('Target Files', file);\r\n const fileGenerated = window.URL.createObjectURL(file);\r\n const fileSanitized = this.sanitizer.bypassSecurityTrustUrl(\r\n fileGenerated\r\n );\r\n\r\n const tmpFile: FilesModel = new FilesModel();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n\r\n if (\r\n this.getTypeByMimeType(file.type) === 'video' &&\r\n this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0\r\n ) {\r\n swal.fire('Ops...', 'Você só pode enviar 1 vídeo por postagem', 'error');\r\n error = true;\r\n }\r\n\r\n if (\r\n this.getTypeByMimeType(file.type) === 'image' &&\r\n this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 8\r\n ) {\r\n swal.fire(\r\n 'Ops...',\r\n 'Você só pode enviar até 9 imagens por postagem',\r\n 'error'\r\n );\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n // this.uploading = true;\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image') {\r\n if (file.type == 'image/gif') {\r\n tmpFile.name = `${this.utilsService.uid()}.gif`;\r\n tmpFile.url = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = await this.resizeImages(file, 800);\r\n tmpFile.name = `${this.utilsService.uid()}.${extname}`;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n else if (this.getTypeByMimeType(file.type) === 'video') {\r\n this.uploadingVideo = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n let reader = event.target.files[0];\r\n if (reader) {\r\n let blobURL = this.sanitizer.bypassSecurityTrustResourceUrl(URL.createObjectURL(reader));\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n console.log('Result', blobURL);\r\n }\r\n this.streamService.uploadFile(file).subscribe(\r\n async response => {\r\n if (response['loaded']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n }\r\n\r\n if (response['body']) {\r\n tmpFile.url = await response['body']['uuidVideo'];\r\n this.uploadingVideo = false;\r\n console.log('Pronto!', response);\r\n\r\n }\r\n }\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.height = scale * img.height;\r\n canvas.width = MAX_WIDTH;\r\n let ctx = canvas.getContext(\"2d\");\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n let dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n }\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n let reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n }\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n checkUploading(): boolean {\r\n const tmpFileUploading = this.tmpFileArray.filter((tmp: any) => tmp.url === '');\r\n return (tmpFileUploading.length > 0) ? true : false;\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkIfHasEmbededVideo(value: string): any {\r\n if (value) {\r\n if (value.includes('vimeo')) {\r\n return { url: '//player.vimeo.com/video/' + value.split('/')[4] };\r\n } else if (value.includes('youtube')) {\r\n return { url: '//www.youtube.com/embed/' + value.split('=')[1] };\r\n } else {\r\n return value;\r\n }\r\n }\r\n }\r\n\r\n publish(data: FeedModel) {\r\n let image;\r\n\r\n console.log('Publish()', 1, data);\r\n this.uploading = true;\r\n this.progress = 0;\r\n\r\n\r\n let count = 0;\r\n data.user_info = {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture,\r\n updated_at: Date.now()\r\n }\r\n\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n console.log('this.tmpFileArray', this.getTypeByMimeType(this.tmpFileArray[0].type));\r\n console.log('Publish()', 2);\r\n const imagesFiles = this.tmpFileArray.filter(\r\n (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n );\r\n\r\n\r\n const step = 98 / imagesFiles.length;\r\n\r\n if (imagesFiles.length > 0) {\r\n console.log('Publish()', 3, imagesFiles)\r\n for (const file of imagesFiles) {\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${file.name}`, file.url);\r\n this.utilsService.percentage.subscribe(percent => {\r\n console.log('TO RODANDO EIM', percent);\r\n file.status = percent;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n console.log('PROGRESS', this.progress);\r\n const index = data.files.findIndex(item => item.name === file.name);\r\n if ((!image) && (data.files[index])) {\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n image = imageURL;\r\n });\r\n\r\n }\r\n delete data.files[index].url;\r\n\r\n\r\n\r\n if (count == imagesFiles.length) {\r\n console.log('Criando Feed');\r\n\r\n const collection = this.db.collection(path().feed)\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n\r\n console.log('Publish()', 4)\r\n console.log('Data ->', data);\r\n\r\n });\r\n }\r\n }\r\n },\r\n error => {\r\n console.error('Error', error);\r\n })\r\n });\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5)\r\n console.log(data, this.tmpFileArray)\r\n\r\n const collection = this.db.collection(path().feed)\r\n console.log('Data ->', data);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n })\r\n\r\n\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n console.log('Data ->', data);\r\n const collection = this.db.collection(path().feed)\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n })\r\n }\r\n\r\n\r\n console.log('Publish()', 0, path().feed);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.dialogRef.close();\r\n this.global.toastService.show({\r\n title: 'Feito!',\r\n message: 'Seu post foi criado com sucesso',\r\n layout: 2\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Global } from 'asap-crud';\r\nimport { AsapFeedService } from '../services/asap-feed.service';\r\nimport { StreamService } from '../services/stream.service';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { FilesModel, FeedModel } from '../models/feed.model';\r\nimport { UtilsService } from '../services/utils.service';\r\nimport { path } from '../constants/constants';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\nimport { classToPlain } from 'class-transformer';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ModalAnnounceComponent } from './modal-announce/modal-announce.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'feed-publication',\r\n templateUrl: './feed-publication.component.html',\r\n styleUrls: ['./feed-publication.component.scss', '../asap-feed.beta.componente.scss'],\r\n providers: [StreamService]\r\n})\r\nexport class FeedPublicationComponent implements OnInit {\r\n\r\n @Input() announce = false;\r\n @Output() feedCreated = new EventEmitter();\r\n\r\n\r\n public tmpFileArray: Array<FilesModel>;\r\n public uploading;\r\n public title = null;\r\n public progress;\r\n public notAnnounce;\r\n public newProduct;\r\n public ExpandImg;\r\n public type = 'post';\r\n public embedFile;\r\n public tmpEmbedFile;\r\n public videoSendedID;\r\n public disabled = false;\r\n\r\n constructor(\r\n public global: Global,\r\n public feedService: AsapFeedService,\r\n public sanitizer: DomSanitizer,\r\n public streamService: StreamService,\r\n public utilsService: UtilsService,\r\n public db: AngularFirestore,\r\n public http: HttpClient,\r\n public dialog: MatDialog,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.tmpFileArray = [];\r\n console.log('Prefix Publication ->', path().feed);\r\n }\r\n\r\n async uploadFile(event: any) {\r\n for (const file of event.target.files) {\r\n\r\n const tmpFile: FilesModel = new FilesModel();\r\n tmpFile.type = this.getTypeByMimeType(file.type);\r\n // tmpFile.status = 0;\r\n tmpFile.thumb_rendering = false;\r\n tmpFile.video_rendering = false;\r\n tmpFile.video_low_rendering = false;\r\n\r\n let error = false;\r\n if (this.getTypeByMimeType(file.type) === 'video' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'video').length > 0) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você só pode enviar um vídeo por Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image' && this.tmpFileArray.filter((tmp: any) => this.getTypeByMimeType(tmp.type) === 'image').length > 4) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você pode utilizar até no máximo 5 imagens no seu Post'\r\n });\r\n error = true;\r\n }\r\n\r\n if (!error) {\r\n // this.uploading = true;\r\n\r\n if (this.getTypeByMimeType(file.type) === 'image') {\r\n if (file.type == 'image/gif') {\r\n tmpFile.name = `${this.streamService.uid()}.gif`;\r\n tmpFile.url = await this.readGIF(file);\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n\r\n else {\r\n const getExtname = file.name.split('.');\r\n const extname = getExtname[getExtname.length - 1];\r\n\r\n tmpFile.url = await this.resizeImages(file, 800);\r\n tmpFile.name = `${this.streamService.uid()}.${extname}`;\r\n this.tmpFileArray.push(tmpFile);\r\n }\r\n }\r\n\r\n else if (this.getTypeByMimeType(file.type) === 'video') {\r\n this.uploading = true;\r\n console.log('Realizar Upload de Video', tmpFile);\r\n const reader = file;\r\n if (reader) {\r\n const blobURL = URL.createObjectURL(reader);\r\n tmpFile.name = blobURL as any;\r\n this.tmpFileArray.push(tmpFile);\r\n console.log('[uploadFile] if reader', blobURL);\r\n }\r\n\r\n this.uploading = true;\r\n await this.streamService.uploadFile(file).subscribe(\r\n response => {\r\n console.log('[uploadFile] Response', tmpFile);\r\n if (!response.body) {\r\n if (response['total']) {\r\n tmpFile.status = ((response['loaded'] * 100) / response['total']).toFixed(0) as any;\r\n }\r\n this.progress = tmpFile.status;\r\n }\r\n\r\n if (response.body && response.body.file) {\r\n console.log('[uploadFile] Response Uploaded', response);\r\n tmpFile.status = 101;\r\n tmpFile.url = response.body.file.secure_url;\r\n this.videoSendedID = tmpFile.url;\r\n this.uploading = false;\r\n this.progress = null;\r\n\r\n }\r\n }\r\n );\r\n console.log('tmpFile', tmpFile);\r\n }\r\n }\r\n }\r\n }\r\n\r\n resizeImages(file: any, width: number): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image();\r\n const MAX_WIDTH = width;\r\n const MAX_HEIGHT: any = 1334;\r\n\r\n const reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n img.src = e.target.result;\r\n img.onload = () => {\r\n const scale = MAX_WIDTH / img.width;\r\n const canvas = document.createElement('canvas');\r\n canvas.height = scale * img.height;\r\n\r\n canvas.width = MAX_WIDTH;\r\n const ctx = canvas.getContext('2d');\r\n ctx.drawImage(img, 0, 0);\r\n\r\n console.log('IMG', img.width, img.height);\r\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\r\n\r\n const dataurl = canvas.toDataURL(file.type, 0.65);\r\n console.log('CANVAS ->', canvas.width, canvas.height);\r\n return resolve(dataurl);\r\n };\r\n };\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n readGIF(file: any): Promise<any> {\r\n return new Promise((resolve, reject) => {\r\n\r\n const reader = new FileReader();\r\n\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = (e: any) => {\r\n return resolve(reader.result);\r\n };\r\n\r\n reader.onerror = reject;\r\n });\r\n\r\n }\r\n\r\n getTypeByMimeType(mime: string): string {\r\n const split = mime.split('/');\r\n return split[0];\r\n }\r\n\r\n share(): any {\r\n const data: FeedModel = new FeedModel();\r\n data.updated_at = Date.now();\r\n data.title = this.title;\r\n data.type = this.type;\r\n\r\n if (this.tmpFileArray || this.tmpFileArray.length > 0) {\r\n data.files = this.tmpFileArray;\r\n // const videoFilter = data.files.filter(tmp => this.getTypeByMimeType(tmp.type) === 'video');\r\n // if (videoFilter.length > 0) {\r\n // }\r\n data.files.map(item => {\r\n if (item.type === 'video') {\r\n console.log('Existe um video no Feed', item);\r\n if (!item.isCloudinary) {\r\n item.video_rendering = false;\r\n item.video_low_rendering = false;\r\n item.thumb_rendering = false;\r\n\r\n // Setando o ID do Feed igual ao ID do vídeo\r\n data.ref = item.url;\r\n data.status = false;\r\n this.streamService.status(item.url).subscribe((res: any) => {\r\n item.video_rendering = !res.p480;\r\n item.video_low_rendering = !res.p480_low;\r\n item.thumb_rendering = !res.thumb;\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n this.publish(data);\r\n\r\n }\r\n\r\n publish(data: FeedModel) {\r\n let image;\r\n\r\n console.log('Publish()', 1, data);\r\n\r\n if (!data.title || data.title === '') {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você precisa adicionar um texto à sua imagem/vídeo.',\r\n });\r\n return;\r\n }\r\n this.uploading = true;\r\n this.progress = 0;\r\n\r\n\r\n let count = 0;\r\n data.user_info = {\r\n id: this.global.loggedUser().id,\r\n name: this.global.loggedUser().name,\r\n picture: this.global.loggedUser().picture,\r\n updated_at: Date.now()\r\n };\r\n\r\n if (this.type == 'embed') {\r\n const fileEmbed: any = {\r\n name: this.embedFile,\r\n url: this.embedFile,\r\n type: 'embed'\r\n };\r\n\r\n this.tmpFileArray.push(fileEmbed);\r\n }\r\n\r\n if (this.type != 'embed') {\r\n if (this.tmpFileArray && this.tmpFileArray.length > 0) {\r\n console.log('this.tmpFileArray', this.getTypeByMimeType(this.tmpFileArray[0].type));\r\n console.log('Publish()', 2);\r\n const imagesFiles = this.tmpFileArray.filter(\r\n (tmp: any) => this.getTypeByMimeType(tmp.type) === 'image'\r\n );\r\n\r\n\r\n const step = 98 / imagesFiles.length;\r\n\r\n if ((imagesFiles.length && data.title === '')) {\r\n this.global.toastService.error({\r\n title: 'Ops',\r\n message: 'Você precisa adicionar um texto junto à sua imagem/vídeo.',\r\n });\r\n return;\r\n }\r\n\r\n if (imagesFiles.length > 0) {\r\n for (const file of imagesFiles) {\r\n setTimeout(() => {\r\n this.utilsService.uploadFile(`images/${file.name}`, file.url);\r\n this.utilsService.percentage.subscribe(percent => {\r\n file.status = percent;\r\n });\r\n\r\n this.utilsService.task.snapshotChanges().subscribe(\r\n async snap => {\r\n if (snap.bytesTransferred === snap.totalBytes) {\r\n count++;\r\n this.progress += step;\r\n console.log('PROGRESS', this.progress);\r\n const index = data.files.findIndex(item => item.name === file.name);\r\n if ((!image) && (data.files[index])) {\r\n this.utilsService.getFireStorageURL(`images/${data.files[index].name}`).subscribe((imageURL) => {\r\n image = imageURL;\r\n });\r\n\r\n }\r\n delete data.files[index].url;\r\n\r\n\r\n\r\n if (count == imagesFiles.length) {\r\n console.log('Criando Feed');\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n });\r\n\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n\r\n console.log('Publish()', 4);\r\n }\r\n }\r\n },\r\n error => {\r\n console.error('Error', error);\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n });\r\n\r\n\r\n }\r\n }\r\n else {\r\n console.log('Publish()', 5);\r\n console.log(data, this.tmpFileArray);\r\n\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n this.db.collection(path().feed).doc(response.id).update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n });\r\n }\r\n }\r\n\r\n else {\r\n data.files = this.tmpFileArray;\r\n console.log('Publish(Embed)', 6);\r\n console.log(data, this.tmpFileArray);\r\n const collection = this.db.collection(path().feed);\r\n collection.add(classToPlain(data)).then(response => {\r\n const doc = this.db.collection(path().feed).doc(response.id);\r\n doc.update({ id: response.id });\r\n this.feedCreated.emit(response.id);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.embedFile = null;\r\n this.type = 'post';\r\n });\r\n }\r\n\r\n\r\n console.log('Publish()', 0, path().feed);\r\n this.title = '';\r\n this.progress = null;\r\n this.uploading = null;\r\n this.tmpFileArray = [];\r\n this.global.toastService.show({\r\n title: 'Feito!',\r\n message: 'Seu post foi criado com sucesso',\r\n layout: 2\r\n });\r\n }\r\n\r\n removeTmpFile(tmpFile: any): void {\r\n const index = this.tmpFileArray.indexOf(tmpFile);\r\n this.tmpFileArray.splice(index, 1);\r\n }\r\n\r\n checkPublicationType(title) {\r\n console.log('Event ->', event);\r\n if (title.length > 35) {\r\n if (this.isValidUrl(title)) {\r\n console.log('checkPublicationType', title);\r\n if (title.includes('youtu') || title.includes('youtube')) {\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.uploading = false;\r\n this.embedFile = title.replace('watch?v=', 'embed/');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n }\r\n else if (title.includes('spotify')) {\r\n this.uploading = true;\r\n this.type = 'embed';\r\n this.embedFile = title.replace('/episode', '/embed-podcast/episode');\r\n this.tmpEmbedFile = this.sanitizer.bypassSecurityTrustResourceUrl(this.embedFile);\r\n this.uploading = false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n removeEmbedFiles() {\r\n this.title = '';\r\n this.embedFile = '';\r\n this.type = 'post';\r\n }\r\n\r\n isValidUrl(str) {\r\n const pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\r\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\r\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\r\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\r\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\r\n '(\\\\#[-a-z\\\\d_]*)?$', 'i'); // fragment locator\r\n return !!pattern.test(str);\r\n }\r\n\r\n openAnnounceModal() {\r\n const dialogRef = this.dialog.open(ModalAnnounceComponent, {\r\n width: '55%',\r\n minHeight: '95%',\r\n maxHeight: '100%',\r\n closeOnNavigation: false,\r\n disableClose: true,\r\n data: { owner: this, tmpFileArray: this.tmpFileArray }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Global, AsapBaseService } from 'asap-crud';\r\n\r\n@Injectable()\r\nexport class ChannelService extends AsapBaseService {\r\n\r\n public isSubscriber = false;\r\n\r\n constructor(\r\n public http: HttpClient,\r\n public global: Global\r\n ) {\r\n super(http);\r\n this.basePath = \"api/v2/admin\";\r\n this.entityName = \"channel\";\r\n this.isSubscriber = false;\r\n };\r\n\r\n public channelLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"videos\",query:\"page=\" + page});\r\n }\r\n\r\n public channeGrouplLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"videos\",query:\"page=\" + page +'&group'});\r\n }\r\n\r\n public fileLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"files\",query:\"page=\" + page});\r\n }\r\n\r\n public fileGroupLibrary(search,page) {\r\n if (page == null) page = 1;\r\n return this.createResource({search:search},{router:\"files\",query:\"page=\" + page+'&group'});\r\n }\r\n\r\n public subscribe(channel_id, callback = null) {\r\n this.createResource({},{router:\"subscribe/\" + channel_id}).subscribe(() => {\r\n this.global.notification.success('Pronto', 'Inscrição efetuada com sucesso!')\r\n this.isSubscriber = true;\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n\r\n public like(video_id, like = true, type = 'video') {\r\n let data:any;\r\n\r\n data = (like) ? {like: 1} : {unlike: 1};\r\n data.type = type;\r\n\r\n return this.createResource(data,{router: 'like/' + video_id});\r\n }\r\n\r\n public likev2(video_id, dados, type = 'video') {\r\n dados.type = type;\r\n return this.createResource(dados,{router: 'like/' + video_id});\r\n }\r\n \r\n\r\n public unsubscribe(channel_id, callback = null) {\r\n this.global.alert({\r\n type: \"warning\",\r\n text:\"Você realmente deseja cancelar sua inscrição?\",\r\n position: 'top-right',\r\n showCancelButton: true,\r\n confirmButtonText: \"Sim\",\r\n cancelButtonText: \"Não\"\r\n }).then(\r\n confirm => {\r\n if (confirm) {\r\n this.createResource({},{router:\"subscribe/\" + channel_id}).subscribe(() => {\r\n this.global.notification.info('Pronto', 'Você não está mais inscrito no Canal!')\r\n this.isSubscriber = false;\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n }\r\n },\r\n cancel => {}\r\n );\r\n \r\n }\r\n\r\n public getPlaylists(user_id = null, type='home') {\r\n return this.getResources({router: 'playlist/' + user_id + '?type=' + type});\r\n }\r\n\r\n public getPlaylist(playlist_id, user_id) {\r\n return this.getResources({router: 'playlist/' + playlist_id + '/' + user_id});\r\n }\r\n\r\n public createPlaylist(playlist_name) {\r\n let data:any;\r\n data = {name:playlist_name}\r\n return this.createResource(data, {router: 'playlist'});\r\n }\r\n\r\n public deletePlaylist(playlist_id) {\r\n return this.deleteResource(playlist_id);\r\n }\r\n\r\n public addVideoPlaylist(video_id, playlist_id) {\r\n let data: any;\r\n data = {video_id: video_id};\r\n console.log('VideoID ->', data.video_id);\r\n console.log('playlist_id ->', playlist_id);\r\n return this.createResource(data, {router: 'playlist/'+playlist_id});\r\n }\r\n\r\n public updateChannel(data) {\r\n return this.updateResource(data);\r\n }\r\n}","import { Component, ViewChild, OnInit } from '@angular/core';\r\nimport { OwlOptions } from 'ngx-owl-carousel-o';\r\nimport { Global } from 'asap-crud';\r\nimport { ChannelService } from '../services/channel.service';\r\nimport { AngularFirestore } from '@angular/fire/firestore';\r\n\r\nimport SwiperCore, { Pagination, SwiperOptions } from 'swiper';\r\n\r\nSwiperCore.use([Pagination]);\r\n\r\n@Component({\r\n selector: 'app-stories',\r\n templateUrl: './stories.component.html',\r\n styleUrls: ['../asap-feed.beta.componente.scss', './stories.component.scss'],\r\n providers: [ChannelService]\r\n})\r\n\r\nexport class StoriesComponent implements OnInit {\r\n\r\n constructor(\r\n public _channelService: ChannelService,\r\n public global: Global,\r\n public db: AngularFirestore\r\n ) {\r\n\r\n }\r\n\r\n public channelArray: any;\r\n public loading = true;\r\n\r\n storiesOptions: OwlOptions = {\r\n loop: true,\r\n mouseDrag: true,\r\n touchDrag: true,\r\n pullDrag: false,\r\n dots: false,\r\n navSpeed: 700,\r\n navText: ['', ''],\r\n nav: true,\r\n responsive: {\r\n 0: {\r\n items: 2.4,\r\n },\r\n 500: {\r\n items: 3.5,\r\n }\r\n }\r\n }\r\n\r\n config: SwiperOptions = {\r\n navigation: true,\r\n autoHeight: false,\r\n breakpoints: {\r\n '640': {\r\n slidesPerView: 2.4,\r\n slidesPerGroup: 2.4,\r\n spaceBetween: 10\r\n },\r\n '768': {\r\n slidesPerView: 3,\r\n slidesPerGroup: 3,\r\n spaceBetween: 10\r\n },\r\n '1024': {\r\n slidesPerView: 3.5,\r\n slidesPerGroup: 3.5,\r\n spaceBetween: 10\r\n }\r\n }\r\n };\r\n\r\n\r\n ngOnInit() {\r\n this.getChannels();\r\n }\r\n\r\n getChannels() {\r\n this._channelService.getResources({ query: 'type=recommended' }).subscribe((res: any) => {\r\n console.log('getChannels', res.data);\r\n this.channelArray = [];\r\n\r\n if (res.data.length) {\r\n do {\r\n this.channelArray = [\r\n ... this.channelArray,\r\n ...res.data\r\n ];\r\n } while (this.channelArray.length < 10)\r\n\r\n }\r\n\r\n this.channelArray.map(item => {\r\n this.getNotificationForChannels(item);\r\n });\r\n\r\n this.loading = false;\r\n // console.log('channelArray', this.channelArray);\r\n });\r\n }\r\n\r\n getNotificationForChannels(item) {\r\n let notification;\r\n if (this.global.loggedUser()) {\r\n\r\n const collection = this.db.collection('notifications', (ref: any) => {\r\n let query = ref.orderBy('viewed', 'asc')\r\n .orderBy('create_at', 'desc')\r\n .where('receiver_id', '==', this.global.loggedUser().id)\r\n .where('channel_id', '==', item.id.toString())\r\n .where('read', '==', false);\r\n return query;\r\n });\r\n\r\n collection.snapshotChanges().subscribe((notificationDoc) => {\r\n console.log('Notifications for Channels ->', notificationDoc);\r\n item.notifications = [];\r\n notificationDoc.map(data => {\r\n let notificationData: any = data.payload.doc.data();\r\n item.notifications.push(notificationData);\r\n });\r\n });\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { AsapFeedBetaComponent } from './asap-feed-beta.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FeedItemComponent } from './feed-item/feed-item.component';\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\r\nimport { AsapSkeletonModule } from 'asap-skeleton';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgxHmCarouselModule } from 'ngx-hm-carousel';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { FeedCommentsComponent } from './feed-comments/feed-comments.component';\r\nimport { FeedActionsComponent } from './feed-actions/feed-actions.component';\r\nimport { FeedPublicationComponent } from './feed-publication/feed-publication.component';\r\nimport { FeedModalItemEditComponent } from './feed-publication/feed-modal-item-edit/feed-modal-item-edit.component';\r\nimport { UtilsService } from './services/utils.service';\r\nimport { StoriesComponent } from './stories/stories.component';\r\nimport { OwlModule } from 'ngx-owl-carousel';\r\nimport { CarouselModule } from 'ngx-owl-carousel-o';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ModalAnnounceComponent } from './feed-publication/modal-announce/modal-announce.component';\r\nimport { PopoverModule } from 'ngx-smart-popover';\r\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\r\nimport { Global } from 'asap-crud';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { SwiperModule } from 'ngx-swiper-wrapper';\r\nimport 'moment/locale/pt-br';\r\n\r\n// import { NgAisModule } from 'angular-instantsearch';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatCardModule,\r\n MatDialogModule,\r\n MatSelectModule,\r\n MatRadioModule,\r\n MatInputModule,\r\n MatTooltipModule,\r\n MatProgressBarModule,\r\n MatStepperModule,\r\n MomentModule,\r\n TranslateModule,\r\n InfiniteScrollModule,\r\n AsapSkeletonModule,\r\n PipesModule,\r\n NgxHmCarouselModule,\r\n OwlModule,\r\n CarouselModule,\r\n NgxSkeletonLoaderModule,\r\n PopoverModule,\r\n SwiperModule\r\n ],\r\n declarations: [\r\n AsapFeedBetaComponent,\r\n FeedItemComponent,\r\n FeedCommentsComponent,\r\n FeedActionsComponent,\r\n FeedPublicationComponent,\r\n FeedModalItemEditComponent,\r\n StoriesComponent,\r\n ModalAnnounceComponent\r\n ],\r\n exports: [\r\n AsapFeedBetaComponent,\r\n FeedItemComponent,\r\n TranslateModule\r\n ],\r\n entryComponents: [\r\n AsapFeedBetaComponent,\r\n FeedModalItemEditComponent,\r\n ModalAnnounceComponent\r\n ],\r\n providers: [\r\n UtilsService\r\n ]\r\n})\r\nexport class AsapFeedBetaModule {\r\n\r\n constructor(public global: Global) {\r\n console.log('[AsapFeedBetaModule]', new Date());\r\n this.global.getOrCreateSessionData('AsapMyPageModule.tabs',[]).push({\r\n label: 'Meus Posts',\r\n component: AsapFeedBetaComponent,\r\n condition: (component,type) => (this.global.loggedUser() && this.global.hasPermission('my-posts',type) && component.hasFeed),\r\n loading: (component) => component.loading\r\n });\r\n }\r\n}\r\n","import { Routes } from '@angular/router';\r\nimport { AsapFeedBetaComponent } from './asap-feed-beta.component';\r\n\r\nexport const AsapFeedBetaRoting: Routes = [\r\n {\r\n path: '',\r\n component: AsapFeedBetaComponent\r\n },\r\n {\r\n path: ':feed_id',\r\n component: AsapFeedBetaComponent\r\n }\r\n]"],"names":[],"mappings":"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"}