@posiwise/resource-module 0.0.92

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posiwise-resource-module.mjs","sources":["../../../../libs/resource-module/src/lib/resource.service.ts","../../../../libs/resource-module/src/lib/public/components/resources-list/resources-list.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-list/resources-list.component.html","../../../../libs/resource-module/src/lib/shared/models/resource.model.ts","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.ts","../../../../libs/resource-module/src/lib/public/components/resources-read/resources-read.component.html","../../../../libs/resource-module/src/lib/public/resource-public.routing.module.ts","../../../../libs/resource-module/src/lib/public/resource-public.module.ts","../../../../libs/resource-module/src/lib/resource.module.ts","../../../../libs/resource-module/src/posiwise-resource-module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from '@posiwise/common-services';\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\n@Injectable()\nexport class ResourceService {\n private readonly resource = '/posts';\n\n private readonly comments = '/comments';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getPublicPosts(master_subscription_id, page: number, pageSize: number, search: string) {\n return this.api.get(\n `${this.resource}/get_all?master_subscription_id=${master_subscription_id}&page=${page}&page_size=${pageSize}&search=${search}`\n );\n }\n\n getAdminPosts(subscriptionId, paging?: Paging) {\n return this.api.getWithParams(`${this.resource}/admin_get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addPost(post) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.post(this.resource, formData);\n }\n\n getPostBySlug(slug: string) {\n return this.api.get(`${this.resource}/${slug}`);\n }\n\n deletePost(id) {\n return this.api.delete(`${this.resource}/${id}`);\n }\n\n updatePost(post, id) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in post) {\n if (key in post) {\n formData.append(key, post[key]);\n }\n }\n\n return this.api.put(`${this.resource}/${id}`, formData);\n }\n\n private getComments() {\n return this.api.get(`${this.comments}/get_all`);\n }\n\n postComments(post) {\n return this.api.post(this.comments, post);\n }\n\n getResourceInsight(subscription_id, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/posts_analytics?type=views&subscription_id=${subscription_id}`,\n { starting_at, ending_at }\n );\n }\n\n getResourcePostsInsight(id) {\n return this.api.get(`${this.resource}/${id}/insights`);\n }\n}\n","import { Component, Injector, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\n\nimport { Resource, Tag } from '@posiwise/admin-module';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { TagService } from '@posiwise/common-services';\nimport { TOKEN_KEY } from '@posiwise/common-utilities';\n\nimport { forkJoin } from 'rxjs';\n\nimport { ResourceService } from '../../../resource.service';\n\n@Component({\n selector: 'pw-posts-list',\n templateUrl: './resources-list.component.html',\n styleUrls: ['./resources-list.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceListComponent extends AppBaseComponent implements OnInit, OnDestroy {\n private delayTimeout: ReturnType<typeof setTimeout> | null = null;\n\n data = [];\n\n posts: Resource[] = [];\n tags: Tag[] = [];\n\n searchTextItems = '';\n searchInput = false;\n\n readingTime: number;\n\n totalRecords: number;\n\n loading = true;\n loaded = false;\n\n masterSubscriptionId: number;\n subscriptionId;\n userLoggedIn: boolean;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly tagService: TagService,\n injector: Injector\n ) {\n super(injector);\n }\n\n ngOnInit() {\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n const data = res ? JSON.parse(res) : null;\n this.subscriptionId = data?.subscriptionId;\n });\n }\n });\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.getPostsAndTags();\n this.readingTime = 0;\n }\n\n getPostsAndTags() {\n this.loading = true;\n this.loaded = false;\n forkJoin({\n resPosts: this.resourceService.getPublicPosts(\n this.masterSubscriptionId,\n 1,\n 100,\n this.searchTextItems\n ),\n resTags: this.tagService.getTagsByType(\n 'post_categories',\n {},\n this.subscriptionId || this.masterSubscriptionId\n )\n })\n .subscribe(res => {\n // posts\n this.posts = res?.resPosts?.posts;\n this.data = res?.resPosts?.posts;\n this.totalRecords = this.posts?.length;\n // tags\n this.tags = res?.resTags?.tags;\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n getPosts(page: number, pageSize: number) {\n this.loading = true;\n this.loaded = false;\n this.resourceService\n .getPublicPosts(this.masterSubscriptionId, page, pageSize, this.searchTextItems)\n .subscribe(response => {\n this.posts = response.posts;\n this.data = response.posts;\n this.totalRecords = this.posts?.length;\n })\n .add(() => {\n this.loading = false;\n this.loaded = true;\n });\n }\n\n showSearch(close: string) {\n this.searchInput = !this.searchInput;\n if (close) {\n this.searchTextItems = '';\n this.getPosts(1, 100);\n }\n }\n\n onSearch(seconds: number) {\n let delay = 0;\n delay = seconds * 1000;\n clearTimeout(this.delayTimeout);\n // wait for timeout before get posts\n const delayTimeout = setTimeout(() => {\n this.getPosts(1, 100);\n }, delay);\n\n this.delayTimeout = delayTimeout;\n }\n\n tagPost(selectedTag) {\n let filtered;\n this.data = [];\n this.posts.forEach(element => {\n if (element.tags.length > 0) {\n filtered = element.tags.filter(tag => tag.id === selectedTag.id);\n if (filtered.length > 0) {\n this.data.push(element);\n }\n }\n });\n }\n\n thisPostReadingTime(text: string): string {\n if (text) {\n const wordsPerMinute = 200;\n const noOfWords = text.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-header/>\n<div class=\"all-posts py-5\">\n <div class=\"row mt-5 mb-4 px-2\">\n <div class=\"col-md-9\">\n <ul class=\"tags\">\n <li (keydown.enter)=\"getPosts(1, 100)\" (click)=\"getPosts(1, 100)\">All Resources</li>\n <li *ngFor=\"let tag of tags\"\n (keydown.enter)=\"tagPost(tag)\"\n (click)=\"tagPost(tag)\">{{ tag.name }}</li>\n </ul>\n </div>\n <div class=\"col-md-3\">\n <div class=\"search\"\n *ngIf=\"searchInput; else searchIcon\">\n <input type=\"text\"\n class=\"w-100\"\n placeholder=\"search...\"\n [(ngModel)]=\"searchTextItems\"\n (keydown.enter)=\"onSearch(0.5)\" />\n <i class=\"fa fa-times\" (click)=\"showSearch('close')\" (keydown.enter)=\"showSearch('close')\" aria-hidden=\"true\"></i>\n </div>\n <ng-template #searchIcon>\n <i\n class=\"fa fa-search w-100 text-end\"\n (click)=\"showSearch('open')\"\n (keydown.enter)=\"showSearch('open')\"\n aria-hidden=\"true\"\n ></i>\n </ng-template>\n </div>\n </div>\n <ng-container *ngIf=\"loading && !loaded\">\n <div class=\"w-100 text-center mt-3\">\n <p-progressSpinner strokeWidth=\"2\"> </p-progressSpinner>\n </div>\n </ng-container>\n <ng-container *ngIf=\"posts?.length && !loading\">\n <div class=\"blog-list\">\n <div class=\"row mt-4 ms-1 me-1 blog-listing\"\n *ngFor=\"let post of data\">\n <div class=\"col-md-6 col-sm-12 col-xs-12 my-auto\"\n [routerLink]=\"['/resource', post.slug]\">\n <div class=\"list-blog-image\">\n <img [src]=\"post.picture?.url\"\n alt=\"Post List\"\n class=\"img-fluid\" />\n </div>\n </div>\n <div class=\"col-md-6 col-sm-12 col-xs-12 px-4 position-relative\">\n <div class=\"mt-4\">\n <div class=\"author mb-3 d-flex\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post.author?.avatar\"\n [src]=\"post.author?.avatar[0]?.url\"\n alt=\"Author\" />\n <img *ngIf=\"!post.author?.avatar\"\n src=\"/assets/img/icons/male.png\"\n alt=\"Author\"\n class=\"default-user-image\" />\n </a>\n </div>\n\n <div class=\"author-name ps-2\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post.author.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n <ul>\n <li>\n <a href=\"javascript:void(0);\">\n {{ post.published_at | date: 'dd/MM/yyyy' }}\n </a>\n </li>\n <li>.</li>\n <li>\n <a href=\"javascript:void(0);\">{{ thisPostReadingTime(post.body) }}\n </a>\n </li>\n </ul>\n </div>\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n aria-label=\"Post Menu\"\n id=\"dropdownMenuLink\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink\">\n <a class=\"dropdown-item\"\n href=\"http://www.facebook.com/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </div>\n <h4 [routerLink]=\"['/resource', post.slug]\"\n class=\"title my-3\">{{ post.title }}</h4>\n <p [routerLink]=\"['/resource', post.slug]\"\n class=\"body mb-5 pb-3 post-body-text\">\n {{ post.body | removeHtml: 'quill' | textTruncate: 200 }}\n </p>\n <div class=\"blog-view py-3 blog-list-write-view\">\n <ul class=\"d-flex\">\n <li>{{ post.view !== null ? post.view : '0' }} View</li>\n <li><a [routerLink]=\"['/resource', post.slug]\">Write Comment</a></li>\n <li>\n <a [routerLink]=\"['/resource', post.slug]\" aria-label=\"Blog\"><i class=\"far fa-heart\" aria-hidden=\"true\"></i></a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!posts?.length && loaded\">\n <p>No blog posts available</p>\n </ng-container>\n</div>\n","import { UntypedFormBuilder, Validators } from '@angular/forms';\n\nexport class ResourceBlog {\n static getResourcePostsForm() {\n return new UntypedFormBuilder().group({\n related_entity_id: [''],\n related_entity_type: [''],\n comment: [null, Validators.required],\n user_id: ['']\n });\n }\n}\n","import { Component, Injector, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nimport { RecentPost, Resource, ResourceComment } from '@posiwise/admin-module';\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { CustomToastService } from '@posiwise/common-services';\nimport { TOKEN_KEY, User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { ResourceService } from '../../../resource.service';\nimport { ResourceBlog } from '../../../shared/models/resource.model';\n\n@Component({\n selector: 'pw-post-read',\n templateUrl: './resources-read.component.html',\n styleUrls: ['./resources-read.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ResourceReadComponent extends AppBaseComponent implements OnInit, OnDestroy {\n post: Resource;\n user: User;\n recentPosts: RecentPost[] = [];\n postComments: ResourceComment[] = [];\n\n slug: string;\n masterSubscriptionId: number;\n\n commentForm: UntypedFormGroup;\n\n userLoggedIn = false;\n buttonBusy = false;\n\n constructor(\n private readonly resourceService: ResourceService,\n private readonly toastr: CustomToastService,\n injector: Injector,\n private readonly sanitizer: DomSanitizer\n ) {\n super(injector);\n this.commentForm = ResourceBlog.getResourcePostsForm();\n }\n\n ngOnInit() {\n this.masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n this.route.params.subscribe(params => {\n this.slug = params['slug'] || '';\n this.getBlogItem(this.slug);\n });\n this.localStorage.getItem$(TOKEN_KEY).subscribe(res => {\n this.userLoggedIn = !!res;\n if (this.userLoggedIn) {\n this.userService.getUserInfo().subscribe(data => {\n this.user = data;\n });\n }\n });\n }\n\n readingTime(text: string) {\n if (text) {\n const textContent = text.toString();\n const wordsPerMinute = 200;\n const noOfWords = textContent.split(/\\s/g).length;\n const minutes = noOfWords / wordsPerMinute;\n const readTime = Math.ceil(minutes);\n\n return `${readTime} minute read`;\n }\n\n return '';\n }\n\n handleImageError(event: Event, fallbackPath): void {\n HelperService.handleImageFallbackPath(event, fallbackPath);\n }\n\n private getBlogItem(slug: string) {\n this.resourceService.getPostBySlug(slug).subscribe(response => {\n let blogBody;\n if (response?.body) {\n blogBody = HelperService.sanitizeQuillBody(response.body, this.sanitizer);\n }\n this.post = { ...response, body: blogBody };\n this.postComments = response.entity_comments;\n this.getPosts(1, 4);\n });\n }\n\n private getPosts(page: number, pageSize: number) {\n this.resourceService\n .getPublicPosts(this.masterSubscriptionId, page, pageSize, '')\n .subscribe(response => {\n this.recentPosts = response.posts.filter(post => post.slug !== this.post.slug);\n });\n }\n\n onComment() {\n this.buttonBusy = true;\n const data = { ...this.commentForm.value };\n data.related_entity_id = this.post?.id;\n data.related_entity_type = 'Post';\n data.user_id = this.user?.id;\n this.resourceService\n .postComments(data)\n .subscribe(() => {\n this.getBlogItem(this.slug);\n this.commentForm.reset();\n this.toastr.success(this.translation.translate('Resource.Posts.CommentAdded'));\n })\n .add(() => {\n this.buttonBusy = false;\n });\n }\n\n tagPost(selectedTag) {\n this.recentPosts = this.recentPosts.filter(element => {\n let filtered;\n if (element.tags?.length) {\n filtered = element.tags.filter(\n tag => tag.tag_category_id === selectedTag.tag_category_id\n );\n\n return { element, filtered };\n }\n\n return {};\n });\n }\n\n trackByTagId(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByRecentPost(_index: number, item: { id: number }) {\n return item.id;\n }\n\n trackByComment(_index: number, item: { id: number }) {\n return item.id;\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n }\n}\n","<pw-header/>\n<div class=\"read-post mt-5 pt-5\">\n <div class=\"show-blog\">\n <div class=\"row\">\n <!-- content -->\n <div class=\"col-12\">\n <ul class=\"d-flex align-items-center mb-4 position-relative\">\n <li>\n <a href=\"javascript:void(0);\">\n <div class=\"avatar-image\">\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\">\n <img *ngIf=\"post?.author?.avatar\"\n [src]=\"post?.author?.avatar[0].url\"\n alt=\"author\" />\n <img *ngIf=\"!post?.author?.avatar\"\n height=\"45\"\n width=\"45\"\n src=\"/assets/img/icons/male.png\"\n alt=\"author\" /></a>\n </div>\n </a>\n </li>\n <li>\n <a [attr.disabled]=\"!userLoggedIn\"\n [routerLink]=\"['/members', post?.author?.slug]\"\n class=\"name\">\n {{ post?.author?.first_name }}\n <i class=\"fas fa-crown\" aria-hidden=\"true\"></i></a>\n </li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">{{\n post?.author.published_at\n }}</a>\n </li>\n <li>.</li>\n <li>\n <a class=\"text-dark\"\n href=\"javascript:void(0);\">\n {{ readingTime(post?.body) }}\n </a>\n </li>\n <li class=\"social-media\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n id=\"dropdownMenuLink2\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink2\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n </ul>\n <h2 class=\"mb-3\">{{ post?.title }}</h2>\n <div class=\"ql-snow body-quill\"\n >\n <div class=\"ql-editor body post-body-text\"\n [innerHTML]=\"post?.body\">\n </div>\n </div>\n\n <ul class=\"bottom-social-icons d-flex justify-content-between mt-5 border-top border-bottom py-3\">\n <li class=\"social-media-blog-page\">\n <div class=\"share-post\">\n <div class=\"dropdown\">\n <a href=\"#\"\n aria-label=\"Menu\"\n (keydown.enter)=\"$event.preventDefault(); $event.target.click()\"\n (keydown.space)=\"$event.preventDefault(); $event.target.click()\"\n id=\"dropdownMenuLink\"\n data-bs-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\">\n <i class=\"fas fa-ellipsis-v\" aria-hidden=\"true\"></i>\n </a>\n\n <div class=\"dropdown-menu\"\n aria-labelledby=\"dropdownMenuLink\">\n <a data-bs-toggle=\"modal\"\n data-bs-target=\"#exampleModal\"\n class=\"dropdown-item\"\n href=\"javascript:void(0);\">\n <i class=\"fas fa-share\" aria-hidden=\"true\"></i> Share Post\n </a>\n </div>\n </div>\n </div>\n </li>\n <li>\n <ul>\n <li *ngFor=\"let tag of post?.tags; trackBy: trackByTagId\"\n (keydown.enter)=\"tagPost(tag)\"\n (click)=\"tagPost(tag)\">\n {{ tag.name }}\n </li>\n </ul>\n </li>\n </ul>\n <ul class=\"d-flex justify-content-between mt-3 views\">\n <li>\n <span>{{ post?.view || 0 }} views</span>\n </li>\n <li><i class=\"far fa-heart\" aria-hidden=\"true\"></i></li>\n </ul>\n </div>\n <!--content end -->\n </div>\n <!-- modal for share buttons -->\n <div class=\"modal fade\"\n id=\"exampleModal\"\n tabindex=\"-1\"\n aria-labelledby=\"exampleModalLabel\">\n <div class=\"modal-dialog modal-dialog-centered\" >\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h5 class=\"modal-title\"\n id=\"exampleModalLabel\">Share the post</h5>\n <button type=\"button\"\n class=\"btn-close float-end\"\n data-dismiss=\"modal\"\n aria-label=\"Close\">\n <span>&times;</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <share-buttons theme=\"material-dark\"\n show=\"7\"></share-buttons>\n </div>\n <div class=\"modal-footer\">\n <button type=\"button\"\n class=\"btn btn-primary\"\n data-dismiss=\"modal\">\n Close\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n <!-- recent posts -->\n <div class=\"related-posts mt-5\">\n <ul class=\"d-flex justify-content-between\">\n <li>\n <h5>Recent Resources</h5>\n </li>\n <li><a [routerLink]=\"['/resource']\">See All</a></li>\n </ul>\n <div class=\"row mt-4\">\n <div class=\"col-sm-6 col-md-6 col-lg-4 col-xs-12 mb-2\"\n *ngFor=\"let recentPost of recentPosts; trackBy: trackByRecentPost\">\n <div class=\"recent-post\"\n [routerLink]=\"['/resource', recentPost.slug]\">\n <div class=\"blog-image\">\n <img [src]=\"recentPost.picture.url\"\n alt=\"Resource\" />\n </div>\n <h5 class=\"pt-4 blog-title ps-3 pe-3\">{{ recentPost?.title }}</h5>\n <div class=\"blog-view pt-3 ps-3 pe-3\">\n <p>{{ recentPost.view !== null ? recentPost.view : '0' }} View</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row mt-5 mb-4\">\n <div class=\"col-12\">\n <form class=\"comments-sec\"\n [formGroup]=\"commentForm\"\n (ngSubmit)=\"onComment()\"\n *ngIf=\"userLoggedIn; else userLoggedOut\">\n <div class=\"col-12 pt-4\">\n <!-- Comment Massage -->\n <pw-input-container label=\"Write a response\"\n name=\"comment\"\n errorMsg=\"Please enter comment\">\n <textarea type=\"text\"\n class=\"form-control\"\n formControlName=\"comment\"></textarea>\n </pw-input-container>\n\n <div class=\"text-end mt-4\">\n <button type=\"submit\"\n [buttonBusy]=\"buttonBusy\"\n class=\"btn btn-primary\">\n {{ 'Button.Submit' | transloco }}\n </button>\n </div>\n </div>\n </form>\n <ng-template #userLoggedOut>\n <p class=\"text-center pt-3 pb-3 userNotLoggedIn\">\n <a [routerLink]=\"['/login']\">Log in</a>\n to leave a comment!\n </p>\n </ng-template>\n </div>\n </div>\n <div class=\"row mt-5 mb-5\">\n <div class=\"col-12\"\n *ngFor=\"let comment of postComments; trackBy: trackByComment\">\n <div class=\"comment-post mt-2\">\n <img *ngIf=\"comment?.user?.avatar\"\n [src]=\"comment.user?.avatar[0]?.url\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n (error)=\"handleImageError($event, 'assets/img/icons/male.png')\" />\n <img *ngIf=\"!comment?.user?.avatar\"\n alt=\"avatar\"\n width=\"45\"\n height=\"45\"\n class=\"rounded-circle me-3 mb-2\"\n src=\"assets/img/icons/male.png\" />\n <small>{{ comment.user?.first_name ? comment.user?.first_name : '' }}\n {{ comment.user?.last_name ? comment.user?.last_name : '' }}\n </small>\n <p>{{ comment.comment }}</p>\n <p class=\"text-end comment-date\">{{ comment.created_at | date: 'dd/MM/yyyy' }}</p>\n </div>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceListComponent } from './components/resources-list/resources-list.component';\nimport { ResourceReadComponent } from './components/resources-read/resources-read.component';\n\n// These are the private routes. The public routes and modules needs to be defined in public.routes.ts\nconst routes: Routes = [\n {\n path: '',\n component: ResourceListComponent,\n data: {\n title: 'Resource Posts Admin',\n permission: 'Pages.Blog'\n }\n },\n {\n path: ':slug',\n component: ResourceReadComponent,\n data: {\n title: 'Resource Post Admin',\n permission: 'Pages.Blog'\n }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class BlogPublicRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { GoogleAnalyticsService } from '@posiwise/common-services';\nimport { CoreTranslocoModule } from '@posiwise/core-transloco';\nimport { DirectivesModule } from '@posiwise/directives';\nimport { PipesModule } from '@posiwise/pipes';\nimport { PublicModule } from '@posiwise/public-modules';\nimport { SharedComponentsModule } from '@posiwise/shared-components';\n\nimport { QuillModule } from 'ngx-quill';\nimport { ShareButtonsModule } from 'ngx-sharebuttons/buttons';\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\nimport { NgxUploaderModule } from 'ngx-uploader';\n\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { ResourceService } from '../resource.service';\n\nimport { ResourceListComponent } from './components/resources-list/resources-list.component';\nimport { ResourceReadComponent } from './components/resources-read/resources-read.component';\nimport { BlogPublicRoutingModule } from './resource-public.routing.module';\n\n@NgModule({\n declarations: [ResourceListComponent, ResourceReadComponent],\n imports: [\n CommonModule,\n PipesModule,\n SharedComponentsModule,\n NgxUploaderModule,\n BlogPublicRoutingModule,\n ShareButtonsModule,\n ShareIconsModule,\n QuillModule.forRoot(),\n FormsModule,\n PublicModule,\n CoreTranslocoModule,\n TranslocoModule,\n ReactiveFormsModule,\n DirectivesModule\n ],\n providers: [ResourceService, GoogleAnalyticsService],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class ResourcePublicModule {}\n","import { NgModule } from '@angular/core';\n\nimport { ResourcePublicModule } from './public/resource-public.module';\n\n@NgModule({\n imports: [ResourcePublicModule]\n})\nexport class ResourceModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.ResourceService","i7","i8","i9","i3","i4","i5"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export * from './lib/resource.module';
2
+ export * from './lib/public/components/resources-read/resources-read.component';
3
+ export * from './lib/public/components/resources-list/resources-list.component';
4
+ export * from './lib/public/resource-public.module';
@@ -0,0 +1,34 @@
1
+ import { Injector, OnDestroy, OnInit } from '@angular/core';
2
+ import { Resource, Tag } from '@posiwise/admin-module';
3
+ import { AppBaseComponent } from '@posiwise/app-base-component';
4
+ import { TagService } from '@posiwise/common-services';
5
+ import { ResourceService } from '../../../resource.service';
6
+ import * as i0 from "@angular/core";
7
+ export declare class ResourceListComponent extends AppBaseComponent implements OnInit, OnDestroy {
8
+ private readonly resourceService;
9
+ private readonly tagService;
10
+ private delayTimeout;
11
+ data: any[];
12
+ posts: Resource[];
13
+ tags: Tag[];
14
+ searchTextItems: string;
15
+ searchInput: boolean;
16
+ readingTime: number;
17
+ totalRecords: number;
18
+ loading: boolean;
19
+ loaded: boolean;
20
+ masterSubscriptionId: number;
21
+ subscriptionId: any;
22
+ userLoggedIn: boolean;
23
+ constructor(resourceService: ResourceService, tagService: TagService, injector: Injector);
24
+ ngOnInit(): void;
25
+ getPostsAndTags(): void;
26
+ getPosts(page: number, pageSize: number): void;
27
+ showSearch(close: string): void;
28
+ onSearch(seconds: number): void;
29
+ tagPost(selectedTag: any): void;
30
+ thisPostReadingTime(text: string): string;
31
+ ngOnDestroy(): void;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceListComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResourceListComponent, "pw-posts-list", never, {}, {}, never, never, false, never>;
34
+ }
@@ -0,0 +1,43 @@
1
+ import { Injector, OnDestroy, OnInit } from '@angular/core';
2
+ import { UntypedFormGroup } from '@angular/forms';
3
+ import { DomSanitizer } from '@angular/platform-browser';
4
+ import { RecentPost, Resource, ResourceComment } from '@posiwise/admin-module';
5
+ import { AppBaseComponent } from '@posiwise/app-base-component';
6
+ import { CustomToastService } from '@posiwise/common-services';
7
+ import { User } from '@posiwise/common-utilities';
8
+ import { ResourceService } from '../../../resource.service';
9
+ import * as i0 from "@angular/core";
10
+ export declare class ResourceReadComponent extends AppBaseComponent implements OnInit, OnDestroy {
11
+ private readonly resourceService;
12
+ private readonly toastr;
13
+ private readonly sanitizer;
14
+ post: Resource;
15
+ user: User;
16
+ recentPosts: RecentPost[];
17
+ postComments: ResourceComment[];
18
+ slug: string;
19
+ masterSubscriptionId: number;
20
+ commentForm: UntypedFormGroup;
21
+ userLoggedIn: boolean;
22
+ buttonBusy: boolean;
23
+ constructor(resourceService: ResourceService, toastr: CustomToastService, injector: Injector, sanitizer: DomSanitizer);
24
+ ngOnInit(): void;
25
+ readingTime(text: string): string;
26
+ handleImageError(event: Event, fallbackPath: any): void;
27
+ private getBlogItem;
28
+ private getPosts;
29
+ onComment(): void;
30
+ tagPost(selectedTag: any): void;
31
+ trackByTagId(_index: number, item: {
32
+ id: number;
33
+ }): number;
34
+ trackByRecentPost(_index: number, item: {
35
+ id: number;
36
+ }): number;
37
+ trackByComment(_index: number, item: {
38
+ id: number;
39
+ }): number;
40
+ ngOnDestroy(): void;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceReadComponent, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResourceReadComponent, "pw-post-read", never, {}, {}, never, never, false, never>;
43
+ }
@@ -0,0 +1,21 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./components/resources-list/resources-list.component";
3
+ import * as i2 from "./components/resources-read/resources-read.component";
4
+ import * as i3 from "@angular/common";
5
+ import * as i4 from "@posiwise/pipes";
6
+ import * as i5 from "@posiwise/shared-components";
7
+ import * as i6 from "ngx-uploader";
8
+ import * as i7 from "./resource-public.routing.module";
9
+ import * as i8 from "ngx-sharebuttons/buttons";
10
+ import * as i9 from "ngx-sharebuttons/icons";
11
+ import * as i10 from "ngx-quill";
12
+ import * as i11 from "@angular/forms";
13
+ import * as i12 from "@posiwise/public-modules";
14
+ import * as i13 from "@posiwise/core-transloco";
15
+ import * as i14 from "@jsverse/transloco";
16
+ import * as i15 from "@posiwise/directives";
17
+ export declare class ResourcePublicModule {
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourcePublicModule, never>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ResourcePublicModule, [typeof i1.ResourceListComponent, typeof i2.ResourceReadComponent], [typeof i3.CommonModule, typeof i4.PipesModule, typeof i5.SharedComponentsModule, typeof i6.NgxUploaderModule, typeof i7.BlogPublicRoutingModule, typeof i8.ShareButtonsModule, typeof i9.ShareIconsModule, typeof i10.QuillModule, typeof i11.FormsModule, typeof i12.PublicModule, typeof i13.CoreTranslocoModule, typeof i14.TranslocoModule, typeof i11.ReactiveFormsModule, typeof i15.DirectivesModule], never>;
20
+ static ɵinj: i0.ɵɵInjectorDeclaration<ResourcePublicModule>;
21
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "@angular/router";
3
+ export declare class BlogPublicRoutingModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<BlogPublicRoutingModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<BlogPublicRoutingModule, never, [typeof i1.RouterModule], [typeof i1.RouterModule]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<BlogPublicRoutingModule>;
7
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./public/resource-public.module";
3
+ export declare class ResourceModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ResourceModule, never, [typeof i1.ResourcePublicModule], never>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<ResourceModule>;
7
+ }
@@ -0,0 +1,21 @@
1
+ import { MainApiHttpService } from '@posiwise/common-services';
2
+ import { Paging } from '@posiwise/common-utilities';
3
+ import * as i0 from "@angular/core";
4
+ export declare class ResourceService {
5
+ private readonly api;
6
+ private readonly resource;
7
+ private readonly comments;
8
+ constructor(api: MainApiHttpService);
9
+ getPublicPosts(master_subscription_id: any, page: number, pageSize: number, search: string): import("rxjs").Observable<any>;
10
+ getAdminPosts(subscriptionId: any, paging?: Paging): import("rxjs").Observable<any>;
11
+ addPost(post: any): import("rxjs").Observable<any>;
12
+ getPostBySlug(slug: string): import("rxjs").Observable<any>;
13
+ deletePost(id: any): import("rxjs").Observable<any>;
14
+ updatePost(post: any, id: any): import("rxjs").Observable<any>;
15
+ private getComments;
16
+ postComments(post: any): import("rxjs").Observable<any>;
17
+ getResourceInsight(subscription_id: any, starting_at?: string, ending_at?: string): import("rxjs").Observable<any>;
18
+ getResourcePostsInsight(id: any): import("rxjs").Observable<any>;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<ResourceService, never>;
20
+ static ɵprov: i0.ɵɵInjectableDeclaration<ResourceService>;
21
+ }
@@ -0,0 +1,3 @@
1
+ export declare class ResourceBlog {
2
+ static getResourcePostsForm(): import("@angular/forms").UntypedFormGroup;
3
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@posiwise/resource-module",
3
+ "version": "0.0.92",
4
+ "peerDependencies": {
5
+ "@angular/common": "17.3.11",
6
+ "@angular/core": "17.3.11",
7
+ "@angular/cdk": "17.3.6",
8
+ "angular-plotly.js": "^5.2.2",
9
+ "ngx-sharebuttons": "^13.0.0"
10
+ },
11
+ "dependencies": {
12
+ "tslib": "^2.6.2"
13
+ },
14
+ "sideEffects": false,
15
+ "module": "fesm2022/posiwise-resource-module.mjs",
16
+ "typings": "index.d.ts",
17
+ "exports": {
18
+ "./package.json": {
19
+ "default": "./package.json"
20
+ },
21
+ ".": {
22
+ "types": "./index.d.ts",
23
+ "esm2022": "./esm2022/posiwise-resource-module.mjs",
24
+ "esm": "./esm2022/posiwise-resource-module.mjs",
25
+ "default": "./fesm2022/posiwise-resource-module.mjs"
26
+ }
27
+ }
28
+ }