asap-feed-beta 12.7.1 → 12.7.2

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