@posiwise/resource-module 0.0.201 → 0.0.203

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.
Files changed (45) hide show
  1. package/fesm2022/{posiwise-resource-module-base-top-banner.component-CrdBpNSj.mjs → posiwise-resource-module-base-top-banner.component-BwujN_up.mjs} +16 -32
  2. package/fesm2022/posiwise-resource-module-base-top-banner.component-BwujN_up.mjs.map +1 -0
  3. package/fesm2022/{posiwise-resource-module-resource-blogs.module-hxktrj98.mjs → posiwise-resource-module-resource-blogs.module-mSKg7oDE.mjs} +52 -70
  4. package/fesm2022/posiwise-resource-module-resource-blogs.module-mSKg7oDE.mjs.map +1 -0
  5. package/fesm2022/{posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs → posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs} +718 -705
  6. package/fesm2022/posiwise-resource-module-resource-cards.module-BSJpkk9V.mjs.map +1 -0
  7. package/fesm2022/{posiwise-resource-module-resource-case-studies.module-CFcO0CI-.mjs → posiwise-resource-module-resource-case-studies.module-rCEpwQ4J.mjs} +62 -61
  8. package/fesm2022/posiwise-resource-module-resource-case-studies.module-rCEpwQ4J.mjs.map +1 -0
  9. package/fesm2022/{posiwise-resource-module-resource-events.module-0PDppSJ6.mjs → posiwise-resource-module-resource-events.module-Djau8zuG.mjs} +53 -54
  10. package/fesm2022/posiwise-resource-module-resource-events.module-Djau8zuG.mjs.map +1 -0
  11. package/fesm2022/{posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs → posiwise-resource-module-resource-hub.module-CQtyBld2.mjs} +141 -122
  12. package/fesm2022/posiwise-resource-module-resource-hub.module-CQtyBld2.mjs.map +1 -0
  13. package/fesm2022/{posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs → posiwise-resource-module-resource-integrations.module-BXyPZf3W.mjs} +129 -132
  14. package/fesm2022/posiwise-resource-module-resource-integrations.module-BXyPZf3W.mjs.map +1 -0
  15. package/fesm2022/posiwise-resource-module-resource-jobs.module-B53AOs8y.mjs +399 -0
  16. package/fesm2022/posiwise-resource-module-resource-jobs.module-B53AOs8y.mjs.map +1 -0
  17. package/fesm2022/{posiwise-resource-module-resource-post.module-BFuEjqA9.mjs → posiwise-resource-module-resource-post.module-DIaB5kyW.mjs} +206 -212
  18. package/fesm2022/posiwise-resource-module-resource-post.module-DIaB5kyW.mjs.map +1 -0
  19. package/fesm2022/{posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs → posiwise-resource-module-resource-release-notes.module-Btxs8la7.mjs} +59 -71
  20. package/fesm2022/posiwise-resource-module-resource-release-notes.module-Btxs8la7.mjs.map +1 -0
  21. package/fesm2022/{posiwise-resource-module-resource-root.module-C9c17Dhm.mjs → posiwise-resource-module-resource-root.module-BukwL-wp.mjs} +129 -132
  22. package/fesm2022/posiwise-resource-module-resource-root.module-BukwL-wp.mjs.map +1 -0
  23. package/fesm2022/{posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs → posiwise-resource-module-resource-videos.module-CFkPbXn3.mjs} +50 -71
  24. package/fesm2022/posiwise-resource-module-resource-videos.module-CFkPbXn3.mjs.map +1 -0
  25. package/fesm2022/{posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs → posiwise-resource-module-resource-white-papers.module-DBjSfwx4.mjs} +54 -68
  26. package/fesm2022/posiwise-resource-module-resource-white-papers.module-DBjSfwx4.mjs.map +1 -0
  27. package/fesm2022/{posiwise-resource-module-resource.service-IK3r0iUB.mjs → posiwise-resource-module-resource.service-DAXsq-WG.mjs} +7 -8
  28. package/fesm2022/posiwise-resource-module-resource.service-DAXsq-WG.mjs.map +1 -0
  29. package/fesm2022/posiwise-resource-module.mjs +252 -219
  30. package/fesm2022/posiwise-resource-module.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/types/posiwise-resource-module.d.ts +159 -168
  33. package/fesm2022/posiwise-resource-module-base-top-banner.component-CrdBpNSj.mjs.map +0 -1
  34. package/fesm2022/posiwise-resource-module-resource-blogs.module-hxktrj98.mjs.map +0 -1
  35. package/fesm2022/posiwise-resource-module-resource-cards.module-D3yf7FNt.mjs.map +0 -1
  36. package/fesm2022/posiwise-resource-module-resource-case-studies.module-CFcO0CI-.mjs.map +0 -1
  37. package/fesm2022/posiwise-resource-module-resource-events.module-0PDppSJ6.mjs.map +0 -1
  38. package/fesm2022/posiwise-resource-module-resource-hub.module-2qzLV9I1.mjs.map +0 -1
  39. package/fesm2022/posiwise-resource-module-resource-integrations.module-DqDd_1U9.mjs.map +0 -1
  40. package/fesm2022/posiwise-resource-module-resource-post.module-BFuEjqA9.mjs.map +0 -1
  41. package/fesm2022/posiwise-resource-module-resource-release-notes.module-BbofH_0n.mjs.map +0 -1
  42. package/fesm2022/posiwise-resource-module-resource-root.module-C9c17Dhm.mjs.map +0 -1
  43. package/fesm2022/posiwise-resource-module-resource-videos.module-BsnB9vFd.mjs.map +0 -1
  44. package/fesm2022/posiwise-resource-module-resource-white-papers.module-BC-OyhAK.mjs.map +0 -1
  45. package/fesm2022/posiwise-resource-module-resource.service-IK3r0iUB.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"posiwise-resource-module-resource-jobs.module-B53AOs8y.mjs","names":[],"sources":["../../../../libs/resource-module/src/lib/public/components/resource-jobs/job-cards/job-cards.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-jobs/job-cards/job-cards.component.html","../../../../libs/resource-module/src/lib/public/components/resource-jobs/resource-jobs-top-banner/resource-jobs-top-banner.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-jobs/resource-jobs-top-banner/resource-jobs-top-banner.component.html","../../../../libs/resource-module/src/lib/public/components/resource-jobs/resource-jobs.component.ts","../../../../libs/resource-module/src/lib/public/components/resource-jobs/resource-jobs.component.html","../../../../libs/resource-module/src/lib/public/modules/jobs/resource-jobs.module.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostListener,\n inject,\n Input,\n OnChanges,\n OnInit,\n type SimpleChanges\n} from '@angular/core';\n\nimport { AppBaseComponent } from '@posiwise/app-base-component';\nimport { AppLoaderComponent } from '@posiwise/app-loader';\nimport { User } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\nimport { DateFormatPipe } from '@posiwise/pipes';\n\nimport { TranslocoPipe } from '@jsverse/transloco';\n\nimport { ResourceService } from '../../../../resource.service';\nimport { PublicPost, ResourcePager } from '../../../shared/resource-pager';\nimport { ResourceEditCardLazyComponent } from '../../resource-edit-card-lazy/resource-edit-card-lazy.component';\n\nexport type JobPost = PublicPost & { blurb?: string; cta_text?: string; published_at?: string };\n\n/** Open positions for one tag category, paged on scroll. */\n@Component({\n selector: 'pw-resource-job-cards',\n templateUrl: './job-cards.component.html',\n styleUrls: ['./job-cards.component.scss', './job-cards-states.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DateFormatPipe, TranslocoPipe, AppLoaderComponent, ResourceEditCardLazyComponent]\n})\nexport class ResourceJobCardsComponent extends AppBaseComponent implements OnInit, OnChanges {\n private readonly resourceService = inject(ResourceService);\n private readonly cdr = inject(ChangeDetectorRef);\n\n @Input({ required: true }) categoryId!: number;\n @Input() user: User;\n @Input() userLoggedIn: boolean;\n\n pager: ResourcePager<JobPost>;\n subscriptionId: number;\n masterSubscriptionId = this.appConfig.master_subscription.subscription_id;\n canEdit = false;\n\n ngOnInit(): void {\n if (this.userLoggedIn) {\n this.localStorage.getItem$('product').subscribe(res => {\n this.subscriptionId = res ? JSON.parse(res)?.subscriptionId : undefined;\n this.cdr.markForCheck();\n });\n }\n this.loadPosts();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes['user'] || changes['userLoggedIn']) && this.userLoggedIn && this.user) {\n this.canEdit = HelperService.canEditResources(\n this.user,\n this.userLoggedIn,\n this.permissionService\n );\n }\n }\n\n get posts(): JobPost[] {\n return this.pager?.items ?? [];\n }\n\n get isLoaded(): boolean {\n return this.pager?.isLoaded ?? false;\n }\n\n get isLoadingMore(): boolean {\n return this.pager?.isLoadingMore ?? false;\n }\n\n /** The open positions could not be loaded; never shown as \"no open positions\". */\n get hasError(): boolean {\n return !!this.pager?.hasError && this.posts.length === 0;\n }\n\n get total(): number {\n return this.pager?.totalCount ?? 0;\n }\n\n loadPosts(): void {\n this.pager = ResourcePager.forPublicPosts(\n this.resourceService,\n () => ({\n subscriptionId: HelperService.getEffectiveSubscriptionId(\n this.user,\n this.subscriptionId,\n this.masterSubscriptionId\n ),\n tagCategoryIds: String(this.categoryId)\n }),\n () => this.cdr.markForCheck(),\n () => true\n );\n this.pager.reset();\n }\n\n @HostListener('window:scroll')\n onWindowScroll(): void {\n this.pager?.loadMoreIfNearBottom();\n }\n\n /** An off-site apply link when the post has one, otherwise the post's own page. */\n jobLink(post: JobPost): string {\n return post.external_url || `/resources/view/${post.slug}`;\n }\n}\n","<section class=\"jobs-section\">\n <div class=\"container\">\n @if (!isLoaded) {\n <div class=\"jobs-loading\">\n <pw-loader [isVisible]=\"true\" />\n </div>\n } @else if (hasError) {\n <div class=\"jobs-state jobs-error\" role=\"alert\">\n <p class=\"jobs-state__message\">{{ 'Resource.Jobs.LoadError' | transloco }}</p>\n <button type=\"button\" class=\"btn btn-outline-secondary\" (click)=\"loadPosts()\">\n {{ 'Resource.Jobs.Retry' | transloco }}\n </button>\n </div>\n } @else if (posts.length === 0) {\n <div class=\"jobs-state jobs-empty\">\n <span class=\"jobs-state__icon\" aria-hidden=\"true\"><i class=\"fa fa-briefcase\"></i></span>\n <p class=\"jobs-state__message\">{{ 'Resource.Jobs.Empty' | transloco }}</p>\n </div>\n } @else {\n <p class=\"jobs-count\">\n {{ (total === 1 ? 'Resource.Jobs.CountOne' : 'Resource.Jobs.CountMany') | transloco: { count: total } }}\n </p>\n <ul class=\"jobs-grid\">\n @for (post of posts; track post.id) {\n <li class=\"job-card\">\n <pw-resource-edit-card-lazy\n class=\"job-card__edit\"\n [canEdit]=\"canEdit\"\n [id]=\"post.id\"\n [resourceData]=\"post\"\n (updated)=\"loadPosts()\" />\n <span class=\"job-card__icon\" aria-hidden=\"true\"><i class=\"fa fa-briefcase\"></i></span>\n <h2 class=\"job-card__title\">\n <a\n class=\"job-card__link\"\n [href]=\"jobLink(post)\"\n [attr.target]=\"post.external_url ? '_blank' : null\"\n [attr.rel]=\"post.external_url ? 'noopener noreferrer' : null\">\n {{ post.title }}\n @if (post.external_url) {\n <span class=\"visually-hidden\">{{ 'Resource.Jobs.OpensInNewTab' | transloco }}</span>\n }\n </a>\n </h2>\n @if (post.blurb) {\n <p class=\"job-card__blurb\">{{ post.blurb }}</p>\n }\n <div class=\"job-card__footer\">\n @if (post.published_at) {\n <span class=\"job-card__date\">\n {{ 'Resource.Jobs.Posted' | transloco: { date: (post.published_at | dateFormat) } }}\n </span>\n }\n <span class=\"job-card__cta\" aria-hidden=\"true\">\n {{ post.cta_text || ('Resource.Jobs.ViewRole' | transloco) }}\n <i class=\"fa fa-arrow-right\"></i>\n </span>\n </div>\n </li>\n }\n </ul>\n @if (isLoadingMore) {\n <div class=\"jobs-loading jobs-loading--more\">\n <pw-loader [isVisible]=\"true\" />\n </div>\n }\n }\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { TranslocoPipe } from '@jsverse/transloco';\n\nimport { BaseTopBannerComponent } from '../../base/base-top-banner.component';\nimport { ResourceTopBannerEditComponent } from '../../resource-top-banner-edit/resource-top-banner-edit.component';\n\nconst FALLBACK_IMAGE = '/assets/img/resource/careers-team.svg';\nconst FALLBACK_IMAGE_STILL = '/assets/img/resource/careers-team-static.svg';\n\n@Component({\n selector: 'pw-resource-jobs-top-banner',\n templateUrl: './resource-jobs-top-banner.component.html',\n styleUrls: [\n '../../resource-case-studies/resource-case-studies.component.scss',\n '../../resource-blogs/resource-blog-top-banner/resource-blog-top-banner.component.scss',\n '../../resources/resources-shared.component.scss',\n '../../resource-post/related-resources/related-resources.component.scss',\n './resource-jobs-top-banner.component.scss'\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ResourceTopBannerEditComponent, TranslocoPipe]\n})\nexport class ResourceJobsTopBannerComponent extends BaseTopBannerComponent {\n /** The master's uploaded banner, or the default when none was uploaded. */\n get bannerImage(): string {\n return this.hasUploadedImage ? this.blogPostTag.image.url : FALLBACK_IMAGE;\n }\n\n /** The default art animates; this still copy is served when the visitor asks for reduced motion. */\n readonly stillBannerImage = FALLBACK_IMAGE_STILL;\n\n get hasUploadedImage(): boolean {\n const url = this.blogPostTag?.image?.url;\n return !!url && !url.includes('no_image_uploaded_squared');\n }\n\n get hasDescription(): boolean {\n const description = this.blogPostTag?.description;\n return !!description && description !== 'null';\n }\n\n protected getSearchTerm(): string {\n return 'Jobs';\n }\n}\n","<section class=\"bg-white pricing-section\">\n <div class=\"resource-banner\">\n @if (isLoaded) {\n <div class=\"container d-flex flex-column flex-lg-row align-items-center justify-content-between\">\n <div class=\"text-content\">\n <div class=\"resource-heading\">\n <h1 class=\"resource-header-text mb-4\">\n <span class=\"d-inline-flex align-items-center gap-2 flex-wrap\">\n @if (blogPostTag?.title) {\n <span>{{ blogPostTag.title }}</span>\n } @else {\n <span>{{ 'Resource.Jobs.DefaultTitle' | transloco }}</span>\n }\n @if (canEditResourcesValue && blogPostTag) {\n <pw-resource-top-banner-edit\n [blogPostTag]=\"blogPostTag\"\n [user]=\"user\"\n [userLoggedIn]=\"userLoggedIn\"\n (getUpdatedTag)=\"getTags()\"\n ></pw-resource-top-banner-edit>\n }\n </span>\n </h1>\n </div>\n </div>\n <div class=\"text-extension mt-4\">\n @if (hasDescription) {\n <p class=\"intro jobs-banner-intro\">{{ blogPostTag.description }}</p>\n } @else {\n <p class=\"intro\">{{ 'Resource.Jobs.DefaultIntro' | transloco }}</p>\n }\n </div>\n <div class=\"image-content ms-lg-5 mt-5 mt-lg-0\">\n <div class=\"resource-math-img\"></div>\n <picture class=\"jobs-banner-picture\">\n @if (!hasUploadedImage) {\n <source media=\"(prefers-reduced-motion: reduce)\" [srcset]=\"stillBannerImage\" />\n }\n <img class=\"resource-laptop-img dyn-img jobs-banner-art\"\n [src]=\"bannerImage\"\n [alt]=\"'Resource.Jobs.BannerAlt' | transloco\"\n width=\"600\"\n height=\"450\"\n loading=\"eager\"\n fetchpriority=\"high\" />\n </picture>\n </div>\n </div>\n }\n </div>\n</section>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { Trial4ContactUsComponent } from '@posiwise/resource-contact-us';\nimport { ResourceHeaderComponent } from '@posiwise/utils';\n\nimport { BaseResourceComponent } from '../base/base-resource.component';\n\nimport { ResourceJobCardsComponent } from './job-cards/job-cards.component';\nimport { ResourceJobsTopBannerComponent } from './resource-jobs-top-banner/resource-jobs-top-banner.component';\n\n/** `/resources/careers`: every published post tagged Jobs, as job cards. */\n@Component({\n selector: 'pw-resource-jobs',\n templateUrl: './resource-jobs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ResourceHeaderComponent,\n ResourceJobsTopBannerComponent,\n ResourceJobCardsComponent,\n Trial4ContactUsComponent\n ]\n})\nexport class ResourceJobsComponent extends BaseResourceComponent {\n protected getResourceType(): string {\n return 'Jobs';\n }\n\n // The job cards page through the posts themselves; the base class would fetch them a second time.\n protected override getPosts(): void {\n return;\n }\n}\n","<pw-resource-header [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-resource-header>\n\n<pw-resource-jobs-top-banner />\n\n@if (blogPostTag?.tag_category_id) {\n <pw-resource-job-cards [categoryId]=\"blogPostTag.tag_category_id\" [user]=\"user\" [userLoggedIn]=\"userLoggedIn\" />\n}\n\n<pw-trial-4-contact-us [user]=\"user\" [userLoggedIn]=\"userLoggedIn\"></pw-trial-4-contact-us>\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { ResourceJobsComponent } from '../../components/resource-jobs/resource-jobs.component';\nimport { ResourceSharedModule } from '../../shared/resource-shared.module';\n\nconst routes: Routes = [\n {\n path: '',\n component: ResourceJobsComponent,\n data: {\n title: 'Resources - Careers',\n permission: 'Pages.Blog',\n preload: false\n }\n }\n];\n\n@NgModule({\n imports: [ResourceSharedModule, RouterModule.forChild(routes), ResourceJobsComponent]\n})\nexport class ResourceJobsModule {}\n"],"mappings":"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"}