@franzzemen/brokenstock-shell 0.0.33 → 0.0.35
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,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, makeEnvironmentProviders, signal, computed, Injectable, inject, input, Directive, isDevMode, effect, untracked, HostListener, ViewChild, ViewEncapsulation, ChangeDetectionStrategy, Component, NgZone, viewChild, afterNextRender } from '@angular/core';
|
|
3
3
|
import * as i2$1 from '@angular/router';
|
|
4
|
-
import { Router, RouterLink,
|
|
4
|
+
import { Router, RouterLink, RouterLinkActive, ActivatedRoute, RouterOutlet } from '@angular/router';
|
|
5
5
|
import { HttpHeader, BEARER_TOKEN_REGEX, USERNAME_REGEX, PASSWORD_REGEX } from '@franzzemen/utility';
|
|
6
6
|
import { validateCredentials } from '@franzzemen/identity';
|
|
7
7
|
import { HttpClient } from '@angular/common/http';
|
|
@@ -637,6 +637,7 @@ class FaqService {
|
|
|
637
637
|
this.loader = inject(FAQ_CONTENT_LOADER);
|
|
638
638
|
this.history = inject(FaqHistoryService);
|
|
639
639
|
this.auth = inject(AuthenticationService);
|
|
640
|
+
this.router = inject(Router);
|
|
640
641
|
this._currentFaqKey = signal(null, ...(ngDevMode ? [{ debugName: "_currentFaqKey" }] : /* istanbul ignore next */ []));
|
|
641
642
|
/** Component-set current key. Bare `faq` opens at this key. */
|
|
642
643
|
this.currentFaqKey = this._currentFaqKey.asReadonly();
|
|
@@ -730,6 +731,27 @@ class FaqService {
|
|
|
730
731
|
* `history.pushState`.
|
|
731
732
|
*/
|
|
732
733
|
async openModal(initialKey, opts) {
|
|
734
|
+
// Unauthenticated visitors get routed to the public /help SSR surface
|
|
735
|
+
// instead of the in-app modal. The modal is an authenticated experience;
|
|
736
|
+
// /help/* is the SEO/marketing-funnel surface.
|
|
737
|
+
if (!this.auth.authenticated()) {
|
|
738
|
+
await this.ensureManifest();
|
|
739
|
+
const entries = this.entries();
|
|
740
|
+
const target = initialKey ?? this._currentFaqKey() ?? null;
|
|
741
|
+
let route = '/help';
|
|
742
|
+
if (target) {
|
|
743
|
+
const chain = buildFallbackChain(target);
|
|
744
|
+
for (const candidate of chain) {
|
|
745
|
+
const entry = entries.find((e) => e.key === candidate);
|
|
746
|
+
if (entry && entry.audience === 'public' && entry.seoReady) {
|
|
747
|
+
route = `/help/${entry.file}`;
|
|
748
|
+
break;
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
await this.router.navigateByUrl(route);
|
|
753
|
+
return;
|
|
754
|
+
}
|
|
733
755
|
const searchTerm = opts?.searchTerm?.trim();
|
|
734
756
|
this._initialSearchTerm.set(searchTerm && searchTerm.length > 0 ? searchTerm : null);
|
|
735
757
|
if (this._modalOpen()) {
|
|
@@ -1238,6 +1260,98 @@ var faqAuthoringPanel = /*#__PURE__*/Object.freeze({
|
|
|
1238
1260
|
FaqAuthoringPanel: FaqAuthoringPanel
|
|
1239
1261
|
});
|
|
1240
1262
|
|
|
1263
|
+
/**
|
|
1264
|
+
* Shared TOC sidebar for the public /help pages. Lists every
|
|
1265
|
+
* `audience: 'public' && seoReady: true` entry grouped by category.
|
|
1266
|
+
*
|
|
1267
|
+
* Pass `activeFile` from the parent page so the matching link gets
|
|
1268
|
+
* the `active` style. RouterLinkActive isn't sufficient on its own
|
|
1269
|
+
* because the index page (`/help`) and entry pages
|
|
1270
|
+
* (`/help/<file>`) all share this sidebar.
|
|
1271
|
+
*/
|
|
1272
|
+
class PublicFaqToc {
|
|
1273
|
+
constructor() {
|
|
1274
|
+
this.loader = inject(FAQ_CONTENT_LOADER);
|
|
1275
|
+
/** Currently-active entry file path (e.g. `landing`). Empty/undefined on the index. */
|
|
1276
|
+
this.activeFile = input(undefined, ...(ngDevMode ? [{ debugName: "activeFile" }] : /* istanbul ignore next */ []));
|
|
1277
|
+
this._entries = signal([], ...(ngDevMode ? [{ debugName: "_entries" }] : /* istanbul ignore next */ []));
|
|
1278
|
+
this.groups = computed(() => {
|
|
1279
|
+
const visible = this._entries().filter((e) => e.audience === 'public' && e.seoReady);
|
|
1280
|
+
const byCategory = new Map();
|
|
1281
|
+
for (const entry of visible) {
|
|
1282
|
+
const list = byCategory.get(entry.category) ?? [];
|
|
1283
|
+
list.push(entry);
|
|
1284
|
+
byCategory.set(entry.category, list);
|
|
1285
|
+
}
|
|
1286
|
+
const groups = [];
|
|
1287
|
+
for (const [category, entries] of byCategory) {
|
|
1288
|
+
entries.sort((a, b) => a.order - b.order || a.title.localeCompare(b.title));
|
|
1289
|
+
groups.push({ category, entries });
|
|
1290
|
+
}
|
|
1291
|
+
groups.sort((a, b) => a.category.localeCompare(b.category));
|
|
1292
|
+
return groups;
|
|
1293
|
+
}, ...(ngDevMode ? [{ debugName: "groups" }] : /* istanbul ignore next */ []));
|
|
1294
|
+
}
|
|
1295
|
+
async ngOnInit() {
|
|
1296
|
+
const manifest = await this.loader.loadManifest();
|
|
1297
|
+
this._entries.set(manifest.entries);
|
|
1298
|
+
}
|
|
1299
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqToc, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1300
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: PublicFaqToc, isStandalone: true, selector: "public-faq-toc", inputs: { activeFile: { classPropertyName: "activeFile", publicName: "activeFile", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
1301
|
+
<nav class="public-faq-toc" aria-label="Help contents">
|
|
1302
|
+
<a
|
|
1303
|
+
class="public-faq-toc__index"
|
|
1304
|
+
routerLink="/help"
|
|
1305
|
+
routerLinkActive="active"
|
|
1306
|
+
[routerLinkActiveOptions]="{ exact: true }"
|
|
1307
|
+
>Brokenstock Help</a>
|
|
1308
|
+
@for (group of groups(); track group.category) {
|
|
1309
|
+
<div class="public-faq-toc__group">
|
|
1310
|
+
<h3 class="public-faq-toc__category">{{ group.category }}</h3>
|
|
1311
|
+
<ul>
|
|
1312
|
+
@for (entry of group.entries; track entry.key) {
|
|
1313
|
+
<li>
|
|
1314
|
+
<a
|
|
1315
|
+
[routerLink]="['/help', entry.file]"
|
|
1316
|
+
[class.active]="activeFile() === entry.file"
|
|
1317
|
+
>{{ entry.title }}</a>
|
|
1318
|
+
</li>
|
|
1319
|
+
}
|
|
1320
|
+
</ul>
|
|
1321
|
+
</div>
|
|
1322
|
+
}
|
|
1323
|
+
</nav>
|
|
1324
|
+
`, isInline: true, styles: [":host{display:block}.public-faq-toc{padding:1.25rem 1rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:.95rem;line-height:1.4}.public-faq-toc__index{display:block;font-weight:600;color:#cfd6e4;text-decoration:none;padding:.4rem .5rem;border-radius:4px;margin-bottom:.75rem}.public-faq-toc__index.active,.public-faq-toc__index:hover{background:#ffffff0f}.public-faq-toc__group{margin-bottom:1rem}.public-faq-toc__category{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a93a3;margin:0 0 .35rem;padding:0 .5rem}.public-faq-toc ul{list-style:none;padding:0;margin:0}.public-faq-toc li a{display:block;padding:.35rem .5rem;border-radius:4px;color:#cfd6e4;text-decoration:none}.public-faq-toc li a:hover{background:#ffffff0d}.public-faq-toc li a.active{background:#6ea8fe2e;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }] }); }
|
|
1325
|
+
}
|
|
1326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqToc, decorators: [{
|
|
1327
|
+
type: Component,
|
|
1328
|
+
args: [{ selector: 'public-faq-toc', standalone: true, imports: [CommonModule, RouterLink, RouterLinkActive], template: `
|
|
1329
|
+
<nav class="public-faq-toc" aria-label="Help contents">
|
|
1330
|
+
<a
|
|
1331
|
+
class="public-faq-toc__index"
|
|
1332
|
+
routerLink="/help"
|
|
1333
|
+
routerLinkActive="active"
|
|
1334
|
+
[routerLinkActiveOptions]="{ exact: true }"
|
|
1335
|
+
>Brokenstock Help</a>
|
|
1336
|
+
@for (group of groups(); track group.category) {
|
|
1337
|
+
<div class="public-faq-toc__group">
|
|
1338
|
+
<h3 class="public-faq-toc__category">{{ group.category }}</h3>
|
|
1339
|
+
<ul>
|
|
1340
|
+
@for (entry of group.entries; track entry.key) {
|
|
1341
|
+
<li>
|
|
1342
|
+
<a
|
|
1343
|
+
[routerLink]="['/help', entry.file]"
|
|
1344
|
+
[class.active]="activeFile() === entry.file"
|
|
1345
|
+
>{{ entry.title }}</a>
|
|
1346
|
+
</li>
|
|
1347
|
+
}
|
|
1348
|
+
</ul>
|
|
1349
|
+
</div>
|
|
1350
|
+
}
|
|
1351
|
+
</nav>
|
|
1352
|
+
`, styles: [":host{display:block}.public-faq-toc{padding:1.25rem 1rem;font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:.95rem;line-height:1.4}.public-faq-toc__index{display:block;font-weight:600;color:#cfd6e4;text-decoration:none;padding:.4rem .5rem;border-radius:4px;margin-bottom:.75rem}.public-faq-toc__index.active,.public-faq-toc__index:hover{background:#ffffff0f}.public-faq-toc__group{margin-bottom:1rem}.public-faq-toc__category{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#8a93a3;margin:0 0 .35rem;padding:0 .5rem}.public-faq-toc ul{list-style:none;padding:0;margin:0}.public-faq-toc li a{display:block;padding:.35rem .5rem;border-radius:4px;color:#cfd6e4;text-decoration:none}.public-faq-toc li a:hover{background:#ffffff0d}.public-faq-toc li a.active{background:#6ea8fe2e;color:#fff}\n"] }]
|
|
1353
|
+
}], propDecorators: { activeFile: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeFile", required: false }] }] } });
|
|
1354
|
+
|
|
1241
1355
|
/**
|
|
1242
1356
|
* Canonical public base URL (no trailing slash) used for OpenGraph,
|
|
1243
1357
|
* Twitter, JSON-LD canonical URLs, and sitemap entries on the
|
|
@@ -1348,72 +1462,82 @@ class PublicFaqIndex {
|
|
|
1348
1462
|
}
|
|
1349
1463
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqIndex, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1350
1464
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: PublicFaqIndex, isStandalone: true, selector: "public-faq-index", ngImport: i0, template: `
|
|
1351
|
-
<
|
|
1352
|
-
<
|
|
1353
|
-
<
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1465
|
+
<div class="public-faq-layout">
|
|
1466
|
+
<aside class="public-faq-sidebar">
|
|
1467
|
+
<public-faq-toc />
|
|
1468
|
+
</aside>
|
|
1469
|
+
<article class="public-faq-index">
|
|
1470
|
+
<header>
|
|
1471
|
+
<h1>Brokenstock Help</h1>
|
|
1472
|
+
<p class="lead">Documentation and walkthroughs for the Brokenstock trade-journal platform.</p>
|
|
1473
|
+
</header>
|
|
1474
|
+
@if (loading()) {
|
|
1475
|
+
<p>Loading…</p>
|
|
1476
|
+
} @else if (groups().length === 0) {
|
|
1477
|
+
<p>No help pages are published yet.</p>
|
|
1478
|
+
} @else {
|
|
1479
|
+
@for (group of groups(); track group.category) {
|
|
1480
|
+
<section>
|
|
1481
|
+
<h2>{{ group.category }}</h2>
|
|
1482
|
+
<ul>
|
|
1483
|
+
@for (entry of group.entries; track entry.key) {
|
|
1484
|
+
<li>
|
|
1485
|
+
<a [routerLink]="['/help', entry.file]">{{ entry.title }}</a>
|
|
1486
|
+
@if (entry.description) {
|
|
1487
|
+
<span class="desc"> — {{ entry.description }}</span>
|
|
1488
|
+
}
|
|
1489
|
+
</li>
|
|
1490
|
+
}
|
|
1491
|
+
</ul>
|
|
1492
|
+
</section>
|
|
1493
|
+
}
|
|
1375
1494
|
}
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
</
|
|
1381
|
-
`, isInline: true, styles: [":host{display:block}.public-faq-
|
|
1495
|
+
@if (jsonLd(); as ld) {
|
|
1496
|
+
<script type="application/ld+json">{{ ld }}</script>
|
|
1497
|
+
}
|
|
1498
|
+
</article>
|
|
1499
|
+
</div>
|
|
1500
|
+
`, isInline: true, styles: [":host{display:block}.public-faq-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.public-faq-sidebar{border-right:1px solid rgba(255,255,255,.08);align-self:start;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.public-faq-index{max-width:860px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}header h1{font-size:2.25rem;margin:0 0 .5rem}.lead{color:#9aa3b3;margin:0 0 2rem;font-size:1.1rem}h2{font-size:1.35rem;margin:1.75rem 0 .5rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.25rem}ul{list-style:none;padding:0;margin:0}li{padding:.4rem 0}.public-faq-index a{color:#6ea8fe;text-decoration:none;font-weight:500}.public-faq-index a:hover{text-decoration:underline}.desc{color:#8a93a3;font-weight:400}@media(max-width:900px){.public-faq-layout{grid-template-columns:1fr}.public-faq-sidebar{position:static;max-height:none;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PublicFaqToc, selector: "public-faq-toc", inputs: ["activeFile"] }] }); }
|
|
1382
1501
|
}
|
|
1383
1502
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqIndex, decorators: [{
|
|
1384
1503
|
type: Component,
|
|
1385
|
-
args: [{ selector: 'public-faq-index', standalone: true, imports: [CommonModule, RouterLink], template: `
|
|
1386
|
-
<
|
|
1387
|
-
<
|
|
1388
|
-
<
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1504
|
+
args: [{ selector: 'public-faq-index', standalone: true, imports: [CommonModule, RouterLink, PublicFaqToc], template: `
|
|
1505
|
+
<div class="public-faq-layout">
|
|
1506
|
+
<aside class="public-faq-sidebar">
|
|
1507
|
+
<public-faq-toc />
|
|
1508
|
+
</aside>
|
|
1509
|
+
<article class="public-faq-index">
|
|
1510
|
+
<header>
|
|
1511
|
+
<h1>Brokenstock Help</h1>
|
|
1512
|
+
<p class="lead">Documentation and walkthroughs for the Brokenstock trade-journal platform.</p>
|
|
1513
|
+
</header>
|
|
1514
|
+
@if (loading()) {
|
|
1515
|
+
<p>Loading…</p>
|
|
1516
|
+
} @else if (groups().length === 0) {
|
|
1517
|
+
<p>No help pages are published yet.</p>
|
|
1518
|
+
} @else {
|
|
1519
|
+
@for (group of groups(); track group.category) {
|
|
1520
|
+
<section>
|
|
1521
|
+
<h2>{{ group.category }}</h2>
|
|
1522
|
+
<ul>
|
|
1523
|
+
@for (entry of group.entries; track entry.key) {
|
|
1524
|
+
<li>
|
|
1525
|
+
<a [routerLink]="['/help', entry.file]">{{ entry.title }}</a>
|
|
1526
|
+
@if (entry.description) {
|
|
1527
|
+
<span class="desc"> — {{ entry.description }}</span>
|
|
1528
|
+
}
|
|
1529
|
+
</li>
|
|
1530
|
+
}
|
|
1531
|
+
</ul>
|
|
1532
|
+
</section>
|
|
1533
|
+
}
|
|
1410
1534
|
}
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
</
|
|
1416
|
-
`, styles: [":host{display:block}.public-faq-
|
|
1535
|
+
@if (jsonLd(); as ld) {
|
|
1536
|
+
<script type="application/ld+json">{{ ld }}</script>
|
|
1537
|
+
}
|
|
1538
|
+
</article>
|
|
1539
|
+
</div>
|
|
1540
|
+
`, styles: [":host{display:block}.public-faq-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.public-faq-sidebar{border-right:1px solid rgba(255,255,255,.08);align-self:start;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.public-faq-index{max-width:860px;font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}header h1{font-size:2.25rem;margin:0 0 .5rem}.lead{color:#9aa3b3;margin:0 0 2rem;font-size:1.1rem}h2{font-size:1.35rem;margin:1.75rem 0 .5rem;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.25rem}ul{list-style:none;padding:0;margin:0}li{padding:.4rem 0}.public-faq-index a{color:#6ea8fe;text-decoration:none;font-weight:500}.public-faq-index a:hover{text-decoration:underline}.desc{color:#8a93a3;font-weight:400}@media(max-width:900px){.public-faq-layout{grid-template-columns:1fr}.public-faq-sidebar{position:static;max-height:none;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}}\n"] }]
|
|
1417
1541
|
}] });
|
|
1418
1542
|
function serializeJsonLd$1(obj) {
|
|
1419
1543
|
return JSON.stringify(obj).replace(/</g, '\\u003c');
|
|
@@ -1445,6 +1569,7 @@ class PublicFaqPage {
|
|
|
1445
1569
|
this.entry = signal(null, ...(ngDevMode ? [{ debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
1446
1570
|
this.body = signal('', ...(ngDevMode ? [{ debugName: "body" }] : /* istanbul ignore next */ []));
|
|
1447
1571
|
this.loading = signal(true, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
|
|
1572
|
+
this.activeFile = computed(() => this.entry()?.file, ...(ngDevMode ? [{ debugName: "activeFile" }] : /* istanbul ignore next */ []));
|
|
1448
1573
|
this.renderedHtml = computed(() => {
|
|
1449
1574
|
const entry = this.entry();
|
|
1450
1575
|
const body = this.body();
|
|
@@ -1541,60 +1666,64 @@ class PublicFaqPage {
|
|
|
1541
1666
|
}
|
|
1542
1667
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqPage, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1543
1668
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: PublicFaqPage, isStandalone: true, selector: "public-faq-page", ngImport: i0, template: `
|
|
1544
|
-
<
|
|
1545
|
-
<
|
|
1546
|
-
<
|
|
1547
|
-
</
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
<
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
<
|
|
1558
|
-
|
|
1559
|
-
|
|
1669
|
+
<div class="public-faq-layout">
|
|
1670
|
+
<aside class="public-faq-sidebar">
|
|
1671
|
+
<public-faq-toc [activeFile]="activeFile()" />
|
|
1672
|
+
</aside>
|
|
1673
|
+
<article class="public-faq-page">
|
|
1674
|
+
@if (loading()) {
|
|
1675
|
+
<p>Loading…</p>
|
|
1676
|
+
} @else if (!entry()) {
|
|
1677
|
+
<header>
|
|
1678
|
+
<h1>Page not found</h1>
|
|
1679
|
+
<p>That help page doesn't exist or isn't published. Try the <a routerLink="/help">help index</a>.</p>
|
|
1680
|
+
</header>
|
|
1681
|
+
} @else {
|
|
1682
|
+
<header>
|
|
1683
|
+
<h1>{{ entry()!.title }}</h1>
|
|
1684
|
+
@if (entry()!.description) {
|
|
1685
|
+
<p class="lead">{{ entry()!.description }}</p>
|
|
1686
|
+
}
|
|
1687
|
+
</header>
|
|
1688
|
+
<div class="body" [innerHTML]="renderedHtml()"></div>
|
|
1689
|
+
@if (jsonLd(); as ld) {
|
|
1690
|
+
<script type="application/ld+json">{{ ld }}</script>
|
|
1560
1691
|
}
|
|
1561
|
-
</header>
|
|
1562
|
-
<div class="body" [innerHTML]="renderedHtml()"></div>
|
|
1563
|
-
@if (jsonLd(); as ld) {
|
|
1564
|
-
<script type="application/ld+json">{{ ld }}</script>
|
|
1565
1692
|
}
|
|
1566
|
-
|
|
1567
|
-
</
|
|
1568
|
-
`, isInline: true, styles: [":host{display:block}.public-faq-
|
|
1693
|
+
</article>
|
|
1694
|
+
</div>
|
|
1695
|
+
`, isInline: true, styles: [":host{display:block}.public-faq-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.public-faq-sidebar{border-right:1px solid rgba(255,255,255,.08);align-self:start;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.public-faq-page{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;max-width:860px}header h1{font-size:2.1rem;margin:0 0 .5rem}.lead{color:#9aa3b3;font-size:1.1rem;margin:0 0 1.5rem}.body :is(h1,h2,h3,h4){margin-top:2rem}.body a{color:#6ea8fe}.body img{max-width:100%;height:auto}.body pre{background:#00000059;padding:.75rem 1rem;border-radius:6px;overflow-x:auto}.body code{background:#ffffff14;padding:.1rem .3rem;border-radius:3px;font-size:.9em}.body pre code{background:transparent;padding:0}@media(max-width:900px){.public-faq-layout{grid-template-columns:1fr}.public-faq-sidebar{position:static;max-height:none;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: PublicFaqToc, selector: "public-faq-toc", inputs: ["activeFile"] }] }); }
|
|
1569
1696
|
}
|
|
1570
1697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PublicFaqPage, decorators: [{
|
|
1571
1698
|
type: Component,
|
|
1572
|
-
args: [{ selector: 'public-faq-page', standalone: true, imports: [CommonModule, RouterLink], template: `
|
|
1573
|
-
<
|
|
1574
|
-
<
|
|
1575
|
-
<
|
|
1576
|
-
</
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
<
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
<
|
|
1587
|
-
|
|
1588
|
-
|
|
1699
|
+
args: [{ selector: 'public-faq-page', standalone: true, imports: [CommonModule, RouterLink, PublicFaqToc], template: `
|
|
1700
|
+
<div class="public-faq-layout">
|
|
1701
|
+
<aside class="public-faq-sidebar">
|
|
1702
|
+
<public-faq-toc [activeFile]="activeFile()" />
|
|
1703
|
+
</aside>
|
|
1704
|
+
<article class="public-faq-page">
|
|
1705
|
+
@if (loading()) {
|
|
1706
|
+
<p>Loading…</p>
|
|
1707
|
+
} @else if (!entry()) {
|
|
1708
|
+
<header>
|
|
1709
|
+
<h1>Page not found</h1>
|
|
1710
|
+
<p>That help page doesn't exist or isn't published. Try the <a routerLink="/help">help index</a>.</p>
|
|
1711
|
+
</header>
|
|
1712
|
+
} @else {
|
|
1713
|
+
<header>
|
|
1714
|
+
<h1>{{ entry()!.title }}</h1>
|
|
1715
|
+
@if (entry()!.description) {
|
|
1716
|
+
<p class="lead">{{ entry()!.description }}</p>
|
|
1717
|
+
}
|
|
1718
|
+
</header>
|
|
1719
|
+
<div class="body" [innerHTML]="renderedHtml()"></div>
|
|
1720
|
+
@if (jsonLd(); as ld) {
|
|
1721
|
+
<script type="application/ld+json">{{ ld }}</script>
|
|
1589
1722
|
}
|
|
1590
|
-
</header>
|
|
1591
|
-
<div class="body" [innerHTML]="renderedHtml()"></div>
|
|
1592
|
-
@if (jsonLd(); as ld) {
|
|
1593
|
-
<script type="application/ld+json">{{ ld }}</script>
|
|
1594
1723
|
}
|
|
1595
|
-
|
|
1596
|
-
</
|
|
1597
|
-
`, styles: [":host{display:block}.public-faq-
|
|
1724
|
+
</article>
|
|
1725
|
+
</div>
|
|
1726
|
+
`, styles: [":host{display:block}.public-faq-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:1.5rem;max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem}.public-faq-sidebar{border-right:1px solid rgba(255,255,255,.08);align-self:start;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow-y:auto}.public-faq-page{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;max-width:860px}header h1{font-size:2.1rem;margin:0 0 .5rem}.lead{color:#9aa3b3;font-size:1.1rem;margin:0 0 1.5rem}.body :is(h1,h2,h3,h4){margin-top:2rem}.body a{color:#6ea8fe}.body img{max-width:100%;height:auto}.body pre{background:#00000059;padding:.75rem 1rem;border-radius:6px;overflow-x:auto}.body code{background:#ffffff14;padding:.1rem .3rem;border-radius:3px;font-size:.9em}.body pre code{background:transparent;padding:0}@media(max-width:900px){.public-faq-layout{grid-template-columns:1fr}.public-faq-sidebar{position:static;max-height:none;border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}}\n"] }]
|
|
1598
1727
|
}] });
|
|
1599
1728
|
/**
|
|
1600
1729
|
* Serializes a JSON-LD object for safe inclusion in a
|
|
@@ -2419,5 +2548,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImpo
|
|
|
2419
2548
|
* Generated bundle index. Do not edit.
|
|
2420
2549
|
*/
|
|
2421
2550
|
|
|
2422
|
-
export { AuthenticationService, CLEAR_USAGE, CommandRegistryService, CommandService, CommandTerminal, ConfirmDialog, FAQ_CONTENT_LOADER, FAQ_DEV_EDITOR, FAQ_DEV_MODE, FAQ_DEV_WORKSPACE_ROOT, FAQ_PUBLIC_PUBLISHER, FAQ_PUBLIC_SITE_BASE_URL, FaqAuthoringPanel, FaqHistoryService, FaqMarkdownRendererService, FaqModal, FaqService, HELP_USAGE, HttpFaqContentLoader, KeyboardShortcutService, Login, MainContent, PublicFaqIndex, PublicFaqPage, RegexValidatorDirective, SHELL_APP_NAME, SHELL_AUTH_URLS, SHELL_COMMANDS, SHELL_MENU_ITEMS, SHELL_POST_LOGIN_ROUTE, Shell, SideMenu, StatusBar, TerminalFocusService, ThemeService, ThinkingService, audienceAllowed, authGuard, authInterceptor, buildFallbackChain, guestGuard, provideShellConfig, tokenize };
|
|
2551
|
+
export { AuthenticationService, CLEAR_USAGE, CommandRegistryService, CommandService, CommandTerminal, ConfirmDialog, FAQ_CONTENT_LOADER, FAQ_DEV_EDITOR, FAQ_DEV_MODE, FAQ_DEV_WORKSPACE_ROOT, FAQ_PUBLIC_PUBLISHER, FAQ_PUBLIC_SITE_BASE_URL, FaqAuthoringPanel, FaqHistoryService, FaqMarkdownRendererService, FaqModal, FaqService, HELP_USAGE, HttpFaqContentLoader, KeyboardShortcutService, Login, MainContent, PublicFaqIndex, PublicFaqPage, PublicFaqToc, RegexValidatorDirective, SHELL_APP_NAME, SHELL_AUTH_URLS, SHELL_COMMANDS, SHELL_MENU_ITEMS, SHELL_POST_LOGIN_ROUTE, Shell, SideMenu, StatusBar, TerminalFocusService, ThemeService, ThinkingService, audienceAllowed, authGuard, authInterceptor, buildFallbackChain, guestGuard, provideShellConfig, tokenize };
|
|
2423
2552
|
//# sourceMappingURL=franzzemen-brokenstock-shell.mjs.map
|