@rolatech/angular-community 20.3.2-beta.3 → 20.3.3-beta.0
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.
- package/fesm2022/{rolatech-angular-community-community-details.component-B4kDYAna.mjs → rolatech-angular-community-community-details.component-q5BBjuKJ.mjs} +8 -8
- package/fesm2022/{rolatech-angular-community-community-details.component-B4kDYAna.mjs.map → rolatech-angular-community-community-details.component-q5BBjuKJ.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-community-community-index.component-CJ_ddZSo.mjs → rolatech-angular-community-community-index.component-BNGz0UYa.mjs} +12 -12
- package/fesm2022/{rolatech-angular-community-community-index.component-CJ_ddZSo.mjs.map → rolatech-angular-community-community-index.component-BNGz0UYa.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-community-community-manage-index.component-CQYy_iI7.mjs → rolatech-angular-community-community-manage-index.component-BPBXoVAh.mjs} +12 -12
- package/fesm2022/{rolatech-angular-community-community-manage-index.component-CQYy_iI7.mjs.map → rolatech-angular-community-community-manage-index.component-BPBXoVAh.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-community-community-manage-post-details.component-B70ewcPc.mjs → rolatech-angular-community-community-manage-post-details.component-BAo4VObj.mjs} +8 -8
- package/fesm2022/{rolatech-angular-community-community-manage-post-details.component-B70ewcPc.mjs.map → rolatech-angular-community-community-manage-post-details.component-BAo4VObj.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-community-community-manage-post.component-DVRDQzXA.mjs → rolatech-angular-community-community-manage-post.component-CtS6PHFY.mjs} +12 -12
- package/fesm2022/{rolatech-angular-community-community-manage-post.component-DVRDQzXA.mjs.map → rolatech-angular-community-community-manage-post.component-CtS6PHFY.mjs.map} +1 -1
- package/fesm2022/{rolatech-angular-community-rolatech-angular-community-40yr8v0S.mjs → rolatech-angular-community-rolatech-angular-community-CJ1wpGp3.mjs} +28 -28
- package/fesm2022/rolatech-angular-community-rolatech-angular-community-CJ1wpGp3.mjs.map +1 -0
- package/fesm2022/rolatech-angular-community.mjs +1 -1
- package/package.json +4 -4
- package/types/rolatech-angular-community.d.ts +1 -1
- package/fesm2022/rolatech-angular-community-rolatech-angular-community-40yr8v0S.mjs.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rolatech-angular-community-rolatech-angular-community-40yr8v0S.mjs","sources":["../../../../packages/angular-community/src/lib/pages/community/community-layout/community-layout.component.ts","../../../../packages/angular-community/src/lib/pages/community/community-layout/community-layout.component.html","../../../../packages/angular-community/src/lib/community-app.routes.ts","../../../../packages/angular-community/src/lib/pages/community/community.routes.ts","../../../../packages/angular-community/src/lib/pages/community-manage/community-manage.routes.ts","../../../../packages/angular-community/src/lib/services/community.service.ts","../../../../packages/angular-community/src/lib/data/community-posts.seed.ts","../../../../packages/angular-community/src/lib/utils/post-view.util.ts","../../../../packages/angular-community/src/lib/services/community-post-store.service.ts","../../../../packages/angular-community/src/rolatech-angular-community.ts"],"sourcesContent":["import { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { Component, DestroyRef, PLATFORM_ID, inject, model, signal } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NavigationEnd, Router, RouterLink, RouterOutlet } from '@angular/router';\nimport { TabComponent, TabsComponent } from '@rolatech/angular-components';\nimport { ThemeService, TitleService } from '@rolatech/angular-services';\nimport { filter, take } from 'rxjs';\n\n@Component({\n selector: 'rolatech-community-layout',\n imports: [CommonModule, RouterLink, RouterOutlet, TabsComponent, TabComponent, MatButtonModule, MatIconModule],\n templateUrl: './community-layout.component.html',\n styleUrl: './community-layout.component.scss',\n})\nexport class CommunityLayoutComponent {\n private readonly router = inject(Router);\n private readonly destroyRef = inject(DestroyRef);\n private readonly platformId = inject(PLATFORM_ID);\n private readonly themeService = inject(ThemeService);\n private readonly titleService = inject(TitleService);\n private readonly themeStorageKey = 'rolatech-community-theme';\n\n readonly navIndex = model(0);\n readonly theme = signal<'light' | 'dark'>('light');\n\n constructor() {\n this.titleService.setTitle('Community');\n this.syncTheme();\n this.updateNavIndex(this.router.url);\n\n const sub = this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe((event) => {\n this.updateNavIndex((event as NavigationEnd).urlAfterRedirects);\n });\n\n this.destroyRef.onDestroy(() => sub.unsubscribe());\n }\n\n toggleTheme() {\n const nextTheme = this.theme() === 'dark' ? 'light' : 'dark';\n this.theme.set(nextTheme);\n this.themeService.setDarkTheme(nextTheme === 'dark');\n\n if (isPlatformBrowser(this.platformId)) {\n localStorage.setItem(this.themeStorageKey, nextTheme);\n }\n }\n\n private syncTheme() {\n if (isPlatformBrowser(this.platformId)) {\n const saved = localStorage.getItem(this.themeStorageKey);\n if (saved === 'light' || saved === 'dark') {\n this.theme.set(saved);\n this.themeService.setDarkTheme(saved === 'dark');\n return;\n }\n }\n\n this.themeService.isDarkTheme.pipe(take(1)).subscribe((isDark) => {\n this.theme.set(isDark ? 'dark' : 'light');\n });\n }\n\n private updateNavIndex(url: string) {\n if (url.includes('/manage/create')) {\n this.navIndex.set(2);\n return;\n }\n\n if (url.includes('/manage')) {\n this.navIndex.set(1);\n return;\n }\n\n this.navIndex.set(0);\n }\n}\n","<div class=\"community-shell\" [attr.data-theme]=\"theme()\">\n <div class=\"community-shell__orb community-shell__orb--primary\"></div>\n <div class=\"community-shell__orb community-shell__orb--secondary\"></div>\n\n <header class=\"community-shell__header\">\n <div class=\"community-shell__brand\">\n <div class=\"community-shell__eyebrow\">RolaTech Community</div>\n <h1>Shipping notes, drafts, and previews in one place.</h1>\n <p>\n Explore published posts, keep draft work moving, and switch between editor and preview without leaving the route\n tree.\n </p>\n </div>\n\n <button mat-stroked-button type=\"button\" class=\"community-shell__theme-button\" (click)=\"toggleTheme()\">\n <mat-icon>{{ theme() === 'dark' ? 'light_mode' : 'dark_mode' }}</mat-icon>\n <span>{{ theme() === 'dark' ? 'Light theme' : 'Dark theme' }}</span>\n </button>\n </header>\n\n <section class=\"community-shell__hero\">\n <div class=\"community-shell__hero-copy\">\n <span class=\"community-shell__pill\">Automatic routes</span>\n <span class=\"community-shell__pill\">Draft-safe workflow</span>\n <span class=\"community-shell__pill\">Markdown preview</span>\n </div>\n\n <div class=\"community-shell__hero-card\">\n <div class=\"community-shell__metric\">\n <span class=\"community-shell__metric-value\">3</span>\n <span class=\"community-shell__metric-label\">Primary routes wired in-package</span>\n </div>\n <div class=\"community-shell__metric\">\n <span class=\"community-shell__metric-value\">2</span>\n <span class=\"community-shell__metric-label\">Tab appearances from `angular-components`</span>\n </div>\n </div>\n </section>\n\n <rolatech-tabs mode=\"background\" [(select)]=\"navIndex\">\n <rolatech-tab class=\"cursor-pointer\" label=\"Explore\" [routerLink]=\"['./']\"></rolatech-tab>\n <rolatech-tab class=\"cursor-pointer\" label=\"Manage\" [routerLink]=\"['./manage']\"></rolatech-tab>\n <rolatech-tab class=\"cursor-pointer\" label=\"Write\" [routerLink]=\"['./manage/create']\"></rolatech-tab>\n </rolatech-tabs>\n\n <section class=\"community-shell__content\">\n <router-outlet></router-outlet>\n </section>\n</div>\n","import { Routes } from '@angular/router';\nimport { CommunityLayoutComponent } from './pages/community/community-layout/community-layout.component';\n\nexport const communityAppRoutes: Routes = [\n {\n path: '',\n component: CommunityLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./pages/community/community-index/community-index.component').then((x) => x.CommunityIndexComponent),\n data: { title: 'Community' },\n },\n {\n path: 'manage',\n loadComponent: () =>\n import('./pages/community-manage/community-manage-index/community-manage-index.component').then(\n (x) => x.CommunityManageIndexComponent,\n ),\n data: { title: 'Manage Posts' },\n },\n {\n path: 'manage/create',\n loadComponent: () =>\n import('./pages/community-manage/community-manage-post/community-manage-post.component').then(\n (x) => x.CommunityManagePostComponent,\n ),\n data: { title: 'Write Post' },\n },\n {\n path: 'manage/:id',\n loadComponent: () =>\n import('./pages/community-manage/community-manage-post-details/community-manage-post-details.component').then(\n (x) => x.CommunityManagePostDetailsComponent,\n ),\n data: { title: 'Post Overview' },\n },\n {\n path: 'manage/:id/edit',\n loadComponent: () =>\n import('./pages/community-manage/community-manage-post/community-manage-post.component').then(\n (x) => x.CommunityManagePostComponent,\n ),\n data: { title: 'Edit Post' },\n },\n {\n path: ':id',\n loadComponent: () => import('./pages/community/community-details/community-details.component').then((x) => x.CommunityDetailsComponent),\n data: { title: 'Post' },\n },\n ],\n },\n];\n","import { Routes } from '@angular/router';\nimport { CommunityLayoutComponent } from './community-layout/community-layout.component';\nexport const communityRoutes: Routes = [\n {\n path: '',\n component: CommunityLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () => import('./community-index/community-index.component').then((x) => x.CommunityIndexComponent),\n },\n {\n path: ':id',\n loadComponent: () => import('./community-details/community-details.component').then((x) => x.CommunityDetailsComponent),\n },\n ],\n },\n];\n","import { Routes } from '@angular/router';\n\nexport const communityManageRoutes: Routes = [\n {\n path: '',\n loadComponent: () =>\n import('./community-manage-index/community-manage-index.component').then((x) => x.CommunityManageIndexComponent),\n },\n {\n path: 'create',\n loadComponent: () =>\n import('./community-manage-post/community-manage-post.component').then((x) => x.CommunityManagePostComponent),\n },\n {\n path: ':id',\n loadComponent: () =>\n import('./community-manage-post-details/community-manage-post-details.component').then(\n (x) => x.CommunityManagePostDetailsComponent,\n ),\n },\n {\n path: ':id/edit',\n loadComponent: () =>\n import('./community-manage-post/community-manage-post.component').then((x) => x.CommunityManagePostComponent),\n },\n];\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { BaseService } from '@rolatech/angular-services';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunityService extends BaseService {\n override init() {\n this.endpoint = 'community';\n super.init();\n }\n uploadMedia(id: string, data: FormData): Observable<any> {\n return this.http.post<any>(`${this.actionUrl}/${id}/media`, data, {\n withCredentials: true,\n });\n }\n deleteMedia(id: string, mediaId: string): Observable<any> {\n return this.http.delete<any>(`${this.actionUrl}/${id}/media/${mediaId}`, {\n withCredentials: true,\n });\n }\n}\n","import { PostRecord } from '@rolatech/angular-services';\n\nconst now = new Date('2026-03-11T09:00:00.000Z').toISOString();\n\nexport const COMMUNITY_POST_SEED: PostRecord[] = [\n {\n id: 'seed-angular-signals-at-scale',\n slug: 'angular-signals-at-scale',\n title: 'Angular signals at product scale',\n summary: 'A practical checklist for keeping signal-driven screens predictable as feature count and team size grow.',\n content: `# Angular signals at product scale\n\nShipping signal-heavy Angular apps gets harder once the feature surface expands. The UI stays fast, but the mental model starts to drift unless the team is strict about ownership.\n\n## What breaks first\n\n- derived state gets duplicated in components and services\n- route params become hidden dependencies\n- optimistic updates and server refreshes stop agreeing\n\n## What scales better\n\n1. Keep server state boundaries obvious.\n2. Prefer one write path for each user action.\n3. Render markdown, counters, and labels from computed state instead of mutating component fields.\n\n## Review rule\n\nIf a screen needs more than one place to understand why a button is enabled, the state graph is already too wide.`,\n tags: ['angular', 'signals', 'architecture'],\n status: 'PUBLISHED',\n authorName: 'RolaTech Editorial',\n createdAt: now,\n updatedAt: now,\n publishedAt: now,\n },\n {\n id: 'seed-designing-admin-workflows',\n slug: 'designing-admin-workflows',\n title: 'Designing admin workflows that do not collapse under edge cases',\n summary: 'Treat empty states, retries, and draft saves as first-class flows or the interface will punish operations teams.',\n content: `# Designing admin workflows that do not collapse under edge cases\n\nGood admin software is less about the happy path and more about preserving momentum when data is partial, stale, or late.\n\n## Baseline expectations\n\n- drafts survive refreshes\n- previews reflect the exact payload you are about to send\n- table filters map cleanly to route state\n\n## Implementation notes\n\nUse route-level shells for navigation and theme state. Keep editor state local to the page. Push only durable data into shared services.`,\n tags: ['design-system', 'operations', 'ux'],\n status: 'PUBLISHED',\n authorName: 'RolaTech Editorial',\n createdAt: now,\n updatedAt: now,\n publishedAt: now,\n },\n];\n","import { marked } from 'marked';\n\nexport interface PostPreviewMeta {\n html: string;\n plainText: string;\n wordCount: number;\n readingTimeMinutes: number;\n}\n\nexport function renderMarkdown(content: string | null | undefined): string {\n return String(marked.parse(content ?? ''));\n}\n\nexport function stripMarkdown(content: string | null | undefined): string {\n return (content ?? '')\n .replace(/```[\\s\\S]*?```/g, ' ')\n .replace(/`([^`]+)`/g, '$1')\n .replace(/!\\[([^\\]]*)\\]\\([^)]+\\)/g, '$1')\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n .replace(/^#+\\s+/gm, '')\n .replace(/[*_>~-]/g, ' ')\n .replace(/\\s+/g, ' ')\n .trim();\n}\n\nexport function countWords(content: string | null | undefined): number {\n const matches = stripMarkdown(content).match(/[A-Za-z0-9'-]+/g);\n return matches?.length ?? 0;\n}\n\nexport function estimateReadingTime(content: string | null | undefined): number {\n return Math.max(1, Math.ceil(countWords(content) / 180));\n}\n\nexport function createPostPreview(content: string | null | undefined): PostPreviewMeta {\n const plainText = stripMarkdown(content);\n return {\n html: renderMarkdown(content),\n plainText,\n wordCount: countWords(content),\n readingTimeMinutes: estimateReadingTime(content),\n };\n}\n\nexport function normalizeTags(tags: string[] | string | null | undefined): string[] {\n if (Array.isArray(tags)) {\n return tags.map((tag) => tag.trim()).filter(Boolean);\n }\n\n if (typeof tags === 'string') {\n return tags\n .split(',')\n .map((tag) => tag.trim())\n .filter(Boolean);\n }\n\n return [];\n}\n\nexport function toTagInput(tags: string[] | string | null | undefined): string {\n return normalizeTags(tags).join(', ');\n}\n\nexport function createSlug(value: string | null | undefined): string {\n return (value ?? '')\n .toLowerCase()\n .trim()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nexport function resolveSummary(post: {\n content?: string | null;\n summary?: string | null;\n excerpt?: string | null;\n}): string {\n if (post.summary?.trim()) {\n return post.summary.trim();\n }\n\n if (post.excerpt?.trim()) {\n return post.excerpt.trim();\n }\n\n return stripMarkdown(post.content).slice(0, 180).trim();\n}\n","import { isPlatformBrowser } from '@angular/common';\nimport { Injectable, PLATFORM_ID, inject } from '@angular/core';\nimport { PostQuery, PostRecord, PostService, SavePostRequest } from '@rolatech/angular-services';\nimport { catchError, map, Observable, of } from 'rxjs';\nimport { COMMUNITY_POST_SEED } from '../data/community-posts.seed';\nimport { createSlug, normalizeTags, resolveSummary } from '../utils/post-view.util';\n\ntype EditablePostPayload = {\n id?: string;\n title?: string | null;\n content?: string | null;\n summary?: string | null;\n excerpt?: string | null;\n slug?: string | null;\n coverImage?: string | null;\n cover?: string | null;\n tags?: string[] | string | null;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CommunityPostStoreService {\n private readonly platformId = inject(PLATFORM_ID);\n private readonly postService = inject(PostService);\n private readonly isBrowser = isPlatformBrowser(this.platformId);\n private readonly storageKey = 'rolatech-community-posts';\n\n listPublished(options?: PostQuery): Observable<PostRecord[]> {\n return this.postService.listPublished({ ...options, sort: options?.sort ?? 'publishedAt desc' }).pipe(\n map((response) => this.mergePublishedPosts(this.normalizeListResponse(response), options)),\n catchError(() => of(this.mergePublishedPosts([], options))),\n );\n }\n\n getPublishedPost(idOrSlug: string): Observable<PostRecord | null> {\n return this.postService.getByIdOrSlug(idOrSlug).pipe(\n map((response) => this.normalizeSingleResponse(response) ?? this.findFallbackPublishedPost(idOrSlug)),\n catchError(() => of(this.findFallbackPublishedPost(idOrSlug))),\n );\n }\n\n listMyPosts(options?: PostQuery): Observable<PostRecord[]> {\n return this.postService.me({ ...options, sort: options?.sort ?? 'updatedAt desc' }).pipe(\n map((response) => this.filterPosts(this.mergePosts(this.normalizeListResponse(response), this.getLocalPosts()), options)),\n catchError(() => of(this.filterPosts(this.getLocalPosts(), options))),\n );\n }\n\n getManagePost(idOrSlug: string): Observable<PostRecord | null> {\n const local = this.findLocalPost(idOrSlug);\n if (local) {\n return of(local);\n }\n\n return this.postService.getByIdOrSlug(idOrSlug, true).pipe(\n map((response) => this.normalizeSingleResponse(response)),\n catchError(() => of(null)),\n );\n }\n\n saveDraft(payload: EditablePostPayload): Observable<PostRecord> {\n const normalizedPayload = this.normalizePayload(payload, 'DRAFT');\n const localFallback = () => of(this.persistLocalPost(this.buildLocalPost(payload, normalizedPayload, 'DRAFT')));\n\n if (!payload.id) {\n return this.postService.createPost({ ...normalizedPayload, status: 'DRAFT' }).pipe(\n map((response) => this.persistLocalPost(this.normalizeSingleResponse(response) ?? this.buildLocalPost(payload, normalizedPayload, 'DRAFT'))),\n catchError(() => localFallback()),\n );\n }\n\n if (payload.id.startsWith('local-')) {\n return localFallback();\n }\n\n return this.postService.saveDraft(payload.id, normalizedPayload).pipe(\n map((response) => this.persistLocalPost(this.normalizeSingleResponse(response) ?? this.buildLocalPost(payload, normalizedPayload, 'DRAFT'))),\n catchError(() => localFallback()),\n );\n }\n\n publish(payload: EditablePostPayload): Observable<PostRecord> {\n const normalizedPayload = this.normalizePayload(payload, 'PUBLISHED');\n const localFallback = () => of(this.persistLocalPost(this.buildLocalPost(payload, normalizedPayload, 'PUBLISHED')));\n\n if (!payload.id) {\n return this.postService.createPost({ ...normalizedPayload, status: 'PUBLISHED' }).pipe(\n map((response) =>\n this.persistLocalPost(this.normalizeSingleResponse(response) ?? this.buildLocalPost(payload, normalizedPayload, 'PUBLISHED')),\n ),\n catchError(() => localFallback()),\n );\n }\n\n if (payload.id.startsWith('local-')) {\n return localFallback();\n }\n\n return this.postService.publish(payload.id, normalizedPayload).pipe(\n map((response) =>\n this.persistLocalPost(this.normalizeSingleResponse(response) ?? this.buildLocalPost(payload, normalizedPayload, 'PUBLISHED')),\n ),\n catchError(() => localFallback()),\n );\n }\n\n private mergePublishedPosts(remotePosts: PostRecord[], options?: PostQuery): PostRecord[] {\n const localPublished = this.getLocalPosts().filter((post) => this.toStatus(post.status) === 'PUBLISHED');\n const combined = this.mergePosts(remotePosts, localPublished, remotePosts.length || localPublished.length ? [] : COMMUNITY_POST_SEED);\n return this.filterPosts(combined, { ...options, status: 'PUBLISHED' });\n }\n\n private mergePosts(...groups: PostRecord[][]): PostRecord[] {\n const registry = new Map<string, PostRecord>();\n\n groups.flat().forEach((post) => {\n const normalized = this.normalizePost(post);\n registry.set(normalized.id, normalized);\n });\n\n return Array.from(registry.values()).sort((a, b) => {\n const aDate = new Date(a.updatedAt ?? a.publishedAt ?? a.createdAt ?? 0).getTime();\n const bDate = new Date(b.updatedAt ?? b.publishedAt ?? b.createdAt ?? 0).getTime();\n return bDate - aDate;\n });\n }\n\n private normalizeListResponse(response: any): PostRecord[] {\n const candidates = response?.data?.items ?? response?.data ?? response?.items ?? response;\n if (Array.isArray(candidates)) {\n return candidates.map((item) => this.normalizePost(item));\n }\n\n if (Array.isArray(candidates?.items)) {\n return candidates.items.map((item: unknown) => this.normalizePost(item));\n }\n\n return [];\n }\n\n private normalizeSingleResponse(response: any): PostRecord | null {\n const candidate = response?.data ?? response;\n if (!candidate || Array.isArray(candidate)) {\n return null;\n }\n\n return this.normalizePost(candidate);\n }\n\n private normalizePost(post: any): PostRecord {\n const id = String(post?.id ?? post?.slug ?? this.generateLocalId());\n const status = this.toStatus(post?.status);\n const createdAt = post?.createdAt ?? post?.publishedAt ?? new Date().toISOString();\n const updatedAt = post?.updatedAt ?? createdAt;\n const publishedAt = status === 'PUBLISHED' ? post?.publishedAt ?? updatedAt : null;\n\n return {\n id,\n title: post?.title ?? 'Untitled post',\n content: post?.content ?? post?.body ?? '',\n summary: post?.summary ?? null,\n excerpt: post?.excerpt ?? null,\n slug: post?.slug ?? createSlug(post?.title ?? id),\n coverImage: post?.coverImage ?? post?.cover ?? null,\n cover: post?.cover ?? post?.coverImage ?? null,\n tags: normalizeTags(post?.tags),\n status,\n author: post?.author\n ? {\n id: post.author.id ?? null,\n name: post.author.name ?? null,\n username: post.author.username ?? null,\n avatar: post.author.avatar ?? null,\n }\n : null,\n authorName: post?.authorName ?? post?.author?.name ?? 'RolaTech',\n createdAt,\n updatedAt,\n publishedAt,\n };\n }\n\n private normalizePayload(payload: EditablePostPayload, status: 'DRAFT' | 'PUBLISHED'): SavePostRequest {\n return {\n title: (payload.title ?? 'Untitled post').trim(),\n content: payload.content ?? '',\n summary: resolveSummary(payload),\n excerpt: payload.excerpt ?? resolveSummary(payload),\n slug: createSlug(payload.slug || payload.title || 'untitled-post'),\n coverImage: payload.coverImage ?? payload.cover ?? null,\n cover: payload.cover ?? payload.coverImage ?? null,\n tags: normalizeTags(payload.tags),\n status,\n };\n }\n\n private buildLocalPost(source: EditablePostPayload, payload: SavePostRequest, status: 'DRAFT' | 'PUBLISHED'): PostRecord {\n const existing = source.id ? this.findLocalPost(source.id) : null;\n const now = new Date().toISOString();\n\n return {\n id: source.id ?? existing?.id ?? this.generateLocalId(),\n title: payload.title,\n content: payload.content,\n summary: payload.summary ?? null,\n excerpt: payload.excerpt ?? null,\n slug: payload.slug ?? createSlug(payload.title),\n coverImage: payload.coverImage ?? null,\n cover: payload.cover ?? null,\n tags: payload.tags ?? [],\n status,\n authorName: existing?.authorName ?? 'You',\n createdAt: existing?.createdAt ?? now,\n updatedAt: now,\n publishedAt: status === 'PUBLISHED' ? now : existing?.publishedAt ?? null,\n };\n }\n\n private filterPosts(posts: PostRecord[], options?: PostQuery): PostRecord[] {\n const search = options?.search?.trim().toLowerCase();\n const status = options?.status?.trim().toUpperCase();\n\n return posts.filter((post) => {\n const matchesStatus = !status || this.toStatus(post.status) === status;\n const haystack = [post.title, post.summary, post.authorName, ...(post.tags ?? [])].join(' ').toLowerCase();\n const matchesSearch = !search || haystack.includes(search);\n\n return matchesStatus && matchesSearch;\n });\n }\n\n private findFallbackPublishedPost(idOrSlug: string): PostRecord | null {\n return this.mergePublishedPosts([]).find((post) => post.id === idOrSlug || post.slug === idOrSlug) ?? null;\n }\n\n private findLocalPost(idOrSlug: string): PostRecord | null {\n return this.getLocalPosts().find((post) => post.id === idOrSlug || post.slug === idOrSlug) ?? null;\n }\n\n private persistLocalPost(post: PostRecord): PostRecord {\n if (!this.isBrowser) {\n return post;\n }\n\n const posts = this.getLocalPosts();\n const next = posts.filter((item) => item.id !== post.id);\n next.unshift(post);\n localStorage.setItem(this.storageKey, JSON.stringify(next));\n return post;\n }\n\n private getLocalPosts(): PostRecord[] {\n if (!this.isBrowser) {\n return [];\n }\n\n const raw = localStorage.getItem(this.storageKey);\n if (!raw) {\n return [];\n }\n\n try {\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed.map((item) => this.normalizePost(item)) : [];\n } catch {\n return [];\n }\n }\n\n private generateLocalId(): string {\n return `local-${Math.random().toString(36).slice(2, 10)}`;\n }\n\n private toStatus(status: string | null | undefined): string {\n return (status ?? 'DRAFT').toString().trim().toUpperCase();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2"],"mappings":"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"}
|