@mxtommy/kip 3.9.0-beta.2 → 3.9.0-beta.21
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/.github/copilot-instructions.md +1 -1
- package/.github/instructions/angular.instructions.md +46 -0
- package/README.md +49 -12
- package/package.json +2 -4
- package/public/3rdpartylicenses.txt +77 -77
- package/public/app-help.component.css.map +7 -0
- package/public/app.component.css.map +7 -0
- package/public/assets/help-docs/configuration.md +4 -4
- package/public/assets/help-docs/dashboards.md +4 -2
- package/public/assets/svg/icons.svg +1 -1
- package/public/boolean-control-config.component.css.map +7 -0
- package/public/boolean-multicontrol-options.component.css.map +7 -0
- package/public/chunk-3EWIS24B.js +5237 -0
- package/public/chunk-3EWIS24B.js.map +1 -0
- package/public/chunk-3VR3EA35.js +1022 -0
- package/public/chunk-3VR3EA35.js.map +1 -0
- package/public/chunk-63ILPRXC.js +2091 -0
- package/public/chunk-63ILPRXC.js.map +1 -0
- package/public/chunk-65ZWQBS6.js +3102 -0
- package/public/chunk-65ZWQBS6.js.map +1 -0
- package/public/chunk-B3LKEWZP.js +4950 -0
- package/public/chunk-B3LKEWZP.js.map +1 -0
- package/public/chunk-BIBIW64D.js +16773 -0
- package/public/chunk-BIBIW64D.js.map +1 -0
- package/public/chunk-BM53SC5N.js +77 -0
- package/public/chunk-BM53SC5N.js.map +7 -0
- package/public/chunk-D7ILNFDM.js +3059 -0
- package/public/chunk-D7ILNFDM.js.map +1 -0
- package/public/chunk-E24UNLSJ.js +2228 -0
- package/public/chunk-E24UNLSJ.js.map +1 -0
- package/public/chunk-J42S2ELC.js +5927 -0
- package/public/chunk-J42S2ELC.js.map +1 -0
- package/public/chunk-KC22A6VH.js +17 -0
- package/public/chunk-KC22A6VH.js.map +7 -0
- package/public/chunk-MCEJWZB2.js +116 -0
- package/public/chunk-MCEJWZB2.js.map +1 -0
- package/public/chunk-NBF6SE6O.js +89 -0
- package/public/chunk-NBF6SE6O.js.map +7 -0
- package/public/chunk-QC7VGVAR.js +343 -0
- package/public/chunk-QC7VGVAR.js.map +7 -0
- package/public/chunk-SDOP6T56.js +42377 -0
- package/public/chunk-SDOP6T56.js.map +1 -0
- package/public/chunk-U2DCSTRY.js +159 -0
- package/public/chunk-U2DCSTRY.js.map +7 -0
- package/public/chunk-UHVNAEXC.js +4752 -0
- package/public/chunk-UHVNAEXC.js.map +1 -0
- package/public/chunk-UQYTD5AC.js +2723 -0
- package/public/chunk-UQYTD5AC.js.map +1 -0
- package/public/chunk-XSABJ5NZ.js +272 -0
- package/public/chunk-XSABJ5NZ.js.map +7 -0
- package/public/chunk-Y6N6O2IP.js +19852 -0
- package/public/chunk-Y6N6O2IP.js.map +1 -0
- package/public/chunk-YGJLBLOX.js +2708 -0
- package/public/chunk-YGJLBLOX.js.map +1 -0
- package/public/chunk-YT33DHC3.js +591 -0
- package/public/chunk-YT33DHC3.js.map +7 -0
- package/public/chunk-YZXYVP72.js +4934 -0
- package/public/chunk-YZXYVP72.js.map +1 -0
- package/public/chunk-ZEHRDSTB.js +13727 -0
- package/public/chunk-ZEHRDSTB.js.map +1 -0
- package/public/config.component.css.map +7 -0
- package/public/dashboard-scroller.component.css.map +7 -0
- package/public/dashboard.component.css.map +7 -0
- package/public/dashboards-editor.component.css.map +7 -0
- package/public/data-inspector-row.component.css.map +7 -0
- package/public/data-inspector.component.css.map +7 -0
- package/public/dataset-chart-options.component.css.map +7 -0
- package/public/datasets.component.css.map +7 -0
- package/public/dialog-confirmation.component.css.map +7 -0
- package/public/dialog-dashboard-page-editor.component.css.map +7 -0
- package/public/dialog-frame.component.css.map +7 -0
- package/public/dialog-name.component.css.map +7 -0
- package/public/display-chart-options.component.css.map +7 -0
- package/public/display.component.css.map +7 -0
- package/public/gauge-steel.component.css.map +7 -0
- package/public/home.component.css.map +7 -0
- package/public/index.html +19 -17
- package/public/main.js +36423 -0
- package/public/main.js.map +1 -0
- package/public/menu-actions.component.css.map +7 -0
- package/public/menu-notifications.component.css.map +7 -0
- package/public/minichart.component.css.map +7 -0
- package/public/modal-user-credential.component.css.map +7 -0
- package/public/modal-widget-config.component.css.map +7 -0
- package/public/notification-badge.component.css.map +7 -0
- package/public/page-header.component.css.map +7 -0
- package/public/path-control-config.component.css.map +7 -0
- package/public/paths-options.component.css.map +7 -0
- package/public/polyfills.js +4422 -0
- package/public/polyfills.js.map +1 -0
- package/public/select-autopilot.component.css.map +7 -0
- package/public/select-icon.component.css.map +7 -0
- package/public/settings.component.css.map +7 -0
- package/public/signalk.component.css.map +7 -0
- package/public/styles.css +1651 -0
- package/public/styles.css.map +7 -0
- package/public/svg-autopilot.component.css.map +7 -0
- package/public/svg-racesteer.component.css.map +7 -0
- package/public/svg-simple-linear-gauge.component.css.map +7 -0
- package/public/svg-windsteer.component.css.map +7 -0
- package/public/tile-large-icon.component.css.map +7 -0
- package/public/units.component.css.map +7 -0
- package/public/upgrade-config.component.css.map +7 -0
- package/public/widget-autopilot.component.css.map +7 -0
- package/public/widget-boolean-switch.component.css.map +7 -0
- package/public/widget-datetime.component.css.map +7 -0
- package/public/widget-freeboardsk.component.css.map +7 -0
- package/public/widget-gauge-ng-compass.component.css.map +7 -0
- package/public/widget-gauge-ng-linear.component.css.map +7 -0
- package/public/widget-gauge-ng-radial.component.css.map +7 -0
- package/public/widget-gauge-steel.component.css.map +7 -0
- package/public/widget-horizon.component.css.map +7 -0
- package/public/widget-host.component.css.map +7 -0
- package/public/widget-iframe.component.css.map +7 -0
- package/public/widget-label.component.css.map +7 -0
- package/public/widget-list-card.component.css.map +7 -0
- package/public/widget-numeric.component.css.map +7 -0
- package/public/widget-position.component.css.map +7 -0
- package/public/widget-race-timer.component.css.map +7 -0
- package/public/widget-racer-line.component.css.map +7 -0
- package/public/widget-racer-timer.component.css.map +7 -0
- package/public/widget-simple-linear.component.css.map +7 -0
- package/public/widget-slider.component.css.map +7 -0
- package/public/widget-text.component.css.map +7 -0
- package/public/widget-title.component.css.map +7 -0
- package/public/widget-tutorial.component.css.map +7 -0
- package/public/widgets-list.component.css.map +7 -0
- package/public/assets/hammer.min.js +0 -7
- package/public/chunk-2YVW3TBK.js +0 -2
- package/public/chunk-35L7BBBD.js +0 -15
- package/public/chunk-3LEMFOCV.js +0 -3
- package/public/chunk-3LJAKLLW.js +0 -1
- package/public/chunk-4JJLPUET.js +0 -60
- package/public/chunk-CBUY7NMR.js +0 -2
- package/public/chunk-CQXWGD3T.js +0 -2
- package/public/chunk-EUFDL4TJ.js +0 -6
- package/public/chunk-FBFTGVZ6.js +0 -1
- package/public/chunk-HCXH72CD.js +0 -5
- package/public/chunk-JY3WVS7C.js +0 -2
- package/public/chunk-KTDDP73O.js +0 -2
- package/public/chunk-NMEZOCU2.js +0 -1
- package/public/chunk-NS2FPVWM.js +0 -4
- package/public/chunk-OSYHJB4F.js +0 -11
- package/public/chunk-PKNLASTF.js +0 -4
- package/public/chunk-Q2Y75POI.js +0 -1
- package/public/chunk-RRTCHHRC.js +0 -3
- package/public/chunk-TA4GACKT.js +0 -4
- package/public/chunk-TXPLRBW5.js +0 -2
- package/public/chunk-VHFBF47T.js +0 -1
- package/public/chunk-VYUMZVH2.js +0 -2
- package/public/chunk-XRGAX4LS.js +0 -2
- package/public/chunk-YNJRIFUM.js +0 -1
- package/public/chunk-ZBCOJLI4.js +0 -6
- package/public/main-XM5EHMUE.js +0 -50
- package/public/polyfills-KH22MU6U.js +0 -2
- package/public/styles-RECKN66R.css +0 -1
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP-ILKS6RVC.woff2 → KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ-MJ3CERJ6.woff2 → KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP-UW3XWY7P.woff2 → KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP-U3JTBV4H.woff2 → KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP-36ULTGLY.woff2 → KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP-5NJLO2HW.woff2 → KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP-2EL65J2O.woff2 → KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP-XWLWMQVU.woff2 → KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ-PWGJWDFE.woff2 → KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP-ITB7NUJC.woff2 → KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP-32PLHKPQ.woff2 → KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP-QPSNQEDD.woff2 → KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP-JKBSJZY3.woff2 → KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP-OG5AHRIX.woff2 → KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz-PPTELUJT.woff2 → KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu4mxKKTU1Kg-SNGEW7FX.woff2 → KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz-DRL4U32S.woff2 → KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu72xKKTU1Kvnz-PRJ7OQMU.woff2 → KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz-HW6RMPJ3.woff2 → KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz-KZD6JQRT.woff2 → KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz-Z72STTMG.woff2 → KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2} +0 -0
- /package/public/media/{flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ-CN2J7AYH.woff2 → flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2} +0 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
import {
|
|
2
|
+
MarkdownComponent,
|
|
3
|
+
MatMenu,
|
|
4
|
+
MatMenuContent,
|
|
5
|
+
MatMenuItem,
|
|
6
|
+
MatMenuModule,
|
|
7
|
+
MatMenuTrigger
|
|
8
|
+
} from "./chunk-YZXYVP72.js";
|
|
9
|
+
import {
|
|
10
|
+
Router
|
|
11
|
+
} from "./chunk-J42S2ELC.js";
|
|
12
|
+
import {
|
|
13
|
+
MatIcon,
|
|
14
|
+
MatIconModule
|
|
15
|
+
} from "./chunk-UQYTD5AC.js";
|
|
16
|
+
import {
|
|
17
|
+
MatDivider,
|
|
18
|
+
MatDividerModule
|
|
19
|
+
} from "./chunk-MCEJWZB2.js";
|
|
20
|
+
import {
|
|
21
|
+
Component,
|
|
22
|
+
MatButton,
|
|
23
|
+
MatButtonModule,
|
|
24
|
+
MatIconButton,
|
|
25
|
+
computed,
|
|
26
|
+
effect,
|
|
27
|
+
httpResource,
|
|
28
|
+
inject,
|
|
29
|
+
setClassMetadata,
|
|
30
|
+
signal,
|
|
31
|
+
ɵsetClassDebugInfo,
|
|
32
|
+
ɵɵadvance,
|
|
33
|
+
ɵɵconditional,
|
|
34
|
+
ɵɵconditionalCreate,
|
|
35
|
+
ɵɵdefineComponent,
|
|
36
|
+
ɵɵelement,
|
|
37
|
+
ɵɵelementEnd,
|
|
38
|
+
ɵɵelementStart,
|
|
39
|
+
ɵɵgetCurrentView,
|
|
40
|
+
ɵɵlistener,
|
|
41
|
+
ɵɵnextContext,
|
|
42
|
+
ɵɵproperty,
|
|
43
|
+
ɵɵreference,
|
|
44
|
+
ɵɵrepeater,
|
|
45
|
+
ɵɵrepeaterCreate,
|
|
46
|
+
ɵɵresetView,
|
|
47
|
+
ɵɵrestoreView,
|
|
48
|
+
ɵɵtemplate,
|
|
49
|
+
ɵɵtext,
|
|
50
|
+
ɵɵtextInterpolate,
|
|
51
|
+
ɵɵtextInterpolate1
|
|
52
|
+
} from "./chunk-SDOP6T56.js";
|
|
53
|
+
|
|
54
|
+
// src/app/core/components/app-help/app-help.component.ts
|
|
55
|
+
var _forTrack0 = ($index, $item) => $item.file;
|
|
56
|
+
function AppHelpComponent_Conditional_4_Template(rf, ctx) {
|
|
57
|
+
if (rf & 1) {
|
|
58
|
+
\u0275\u0275text(0, " Loading... ");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function AppHelpComponent_Conditional_5_Template(rf, ctx) {
|
|
62
|
+
if (rf & 1) {
|
|
63
|
+
\u0275\u0275text(0, " Table of Content ");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function AppHelpComponent_ng_template_8_Conditional_0_Template(rf, ctx) {
|
|
67
|
+
if (rf & 1) {
|
|
68
|
+
\u0275\u0275elementStart(0, "button", 9);
|
|
69
|
+
\u0275\u0275text(1, "Error loading menu");
|
|
70
|
+
\u0275\u0275elementEnd();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function AppHelpComponent_ng_template_8_Conditional_1_Template(rf, ctx) {
|
|
74
|
+
if (rf & 1) {
|
|
75
|
+
\u0275\u0275elementStart(0, "button", 9);
|
|
76
|
+
\u0275\u0275text(1, "No help entries");
|
|
77
|
+
\u0275\u0275elementEnd();
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function AppHelpComponent_ng_template_8_Conditional_2_For_1_Template(rf, ctx) {
|
|
81
|
+
if (rf & 1) {
|
|
82
|
+
const _r2 = \u0275\u0275getCurrentView();
|
|
83
|
+
\u0275\u0275elementStart(0, "button", 11);
|
|
84
|
+
\u0275\u0275listener("click", function AppHelpComponent_ng_template_8_Conditional_2_For_1_Template_button_click_0_listener() {
|
|
85
|
+
const file_r3 = \u0275\u0275restoreView(_r2).$implicit;
|
|
86
|
+
const ctx_r3 = \u0275\u0275nextContext(3);
|
|
87
|
+
return \u0275\u0275resetView(ctx_r3.selectFile(file_r3.file));
|
|
88
|
+
});
|
|
89
|
+
\u0275\u0275text(1);
|
|
90
|
+
\u0275\u0275elementEnd();
|
|
91
|
+
}
|
|
92
|
+
if (rf & 2) {
|
|
93
|
+
const file_r3 = ctx.$implicit;
|
|
94
|
+
const ctx_r3 = \u0275\u0275nextContext(3);
|
|
95
|
+
\u0275\u0275property("disabled", ctx_r3.selectedFile() === file_r3.file);
|
|
96
|
+
\u0275\u0275advance();
|
|
97
|
+
\u0275\u0275textInterpolate1(" ", file_r3.title, " ");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function AppHelpComponent_ng_template_8_Conditional_2_Template(rf, ctx) {
|
|
101
|
+
if (rf & 1) {
|
|
102
|
+
\u0275\u0275repeaterCreate(0, AppHelpComponent_ng_template_8_Conditional_2_For_1_Template, 2, 2, "button", 10, _forTrack0);
|
|
103
|
+
}
|
|
104
|
+
if (rf & 2) {
|
|
105
|
+
const ctx_r3 = \u0275\u0275nextContext(2);
|
|
106
|
+
\u0275\u0275repeater(ctx_r3.helpFiles());
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function AppHelpComponent_ng_template_8_Template(rf, ctx) {
|
|
110
|
+
if (rf & 1) {
|
|
111
|
+
\u0275\u0275conditionalCreate(0, AppHelpComponent_ng_template_8_Conditional_0_Template, 2, 0, "button", 9)(1, AppHelpComponent_ng_template_8_Conditional_1_Template, 2, 0, "button", 9)(2, AppHelpComponent_ng_template_8_Conditional_2_Template, 2, 0);
|
|
112
|
+
}
|
|
113
|
+
if (rf & 2) {
|
|
114
|
+
const ctx_r3 = \u0275\u0275nextContext();
|
|
115
|
+
\u0275\u0275conditional(ctx_r3.hasError() ? 0 : !ctx_r3.isLoading() && ctx_r3.helpFiles().length === 0 ? 1 : 2);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function AppHelpComponent_Conditional_17_Template(rf, ctx) {
|
|
119
|
+
if (rf & 1) {
|
|
120
|
+
\u0275\u0275elementStart(0, "div", 7);
|
|
121
|
+
\u0275\u0275text(1, "Unable to load help content.");
|
|
122
|
+
\u0275\u0275elementEnd();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function AppHelpComponent_Conditional_18_Template(rf, ctx) {
|
|
126
|
+
if (rf & 1) {
|
|
127
|
+
\u0275\u0275elementStart(0, "div", 7);
|
|
128
|
+
\u0275\u0275text(1, "Loading help...");
|
|
129
|
+
\u0275\u0275elementEnd();
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function AppHelpComponent_Conditional_19_Template(rf, ctx) {
|
|
133
|
+
if (rf & 1) {
|
|
134
|
+
\u0275\u0275element(0, "markdown", 8);
|
|
135
|
+
}
|
|
136
|
+
if (rf & 2) {
|
|
137
|
+
const ctx_r3 = \u0275\u0275nextContext();
|
|
138
|
+
\u0275\u0275property("src", "assets/help-docs/" + ctx_r3.selectedFile());
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
var AppHelpComponent = class _AppHelpComponent {
|
|
142
|
+
pageTitle = "Help";
|
|
143
|
+
_router = inject(Router);
|
|
144
|
+
// Resource for the help menu JSON (reactive & eagerly fetched)
|
|
145
|
+
_helpMenuRes = httpResource(() => "assets/help-docs/menu.json");
|
|
146
|
+
// Raw list (filtered) as a signal
|
|
147
|
+
helpFiles = computed(() => {
|
|
148
|
+
if (this._helpMenuRes.hasValue()) {
|
|
149
|
+
return (this._helpMenuRes.value() ?? []).filter((item) => item.file.endsWith(".md"));
|
|
150
|
+
}
|
|
151
|
+
return [];
|
|
152
|
+
}, ...ngDevMode ? [{ debugName: "helpFiles" }] : []);
|
|
153
|
+
// Selected file signal (empty until helpFiles first populated)
|
|
154
|
+
selectedFile = signal("", ...ngDevMode ? [{ debugName: "selectedFile" }] : []);
|
|
155
|
+
// Initialize default selection reactively when data arrives first time
|
|
156
|
+
_initSelectionOnce = signal(false, ...ngDevMode ? [{ debugName: "_initSelectionOnce" }] : []);
|
|
157
|
+
_syncEffect = effect(() => {
|
|
158
|
+
const files = this.helpFiles();
|
|
159
|
+
if (!this._initSelectionOnce() && files.length > 0) {
|
|
160
|
+
this.selectedFile.set(files[0].file);
|
|
161
|
+
this._initSelectionOnce.set(true);
|
|
162
|
+
}
|
|
163
|
+
}, ...ngDevMode ? [{ debugName: "_syncEffect" }] : []);
|
|
164
|
+
hasError = computed(() => this._helpMenuRes.error() != null, ...ngDevMode ? [{ debugName: "hasError" }] : []);
|
|
165
|
+
isLoading = computed(() => this._helpMenuRes.isLoading(), ...ngDevMode ? [{ debugName: "isLoading" }] : []);
|
|
166
|
+
selectFile(file) {
|
|
167
|
+
this.selectedFile.set(file);
|
|
168
|
+
}
|
|
169
|
+
backPage() {
|
|
170
|
+
this._router.navigate(["/home"]);
|
|
171
|
+
}
|
|
172
|
+
closePage() {
|
|
173
|
+
this._router.navigate(["/dashboard"]);
|
|
174
|
+
}
|
|
175
|
+
static \u0275fac = function AppHelpComponent_Factory(__ngFactoryType__) {
|
|
176
|
+
return new (__ngFactoryType__ || _AppHelpComponent)();
|
|
177
|
+
};
|
|
178
|
+
static \u0275cmp = /* @__PURE__ */ \u0275\u0275defineComponent({ type: _AppHelpComponent, selectors: [["app-help"]], decls: 20, vars: 5, consts: [["helpMenu", "matMenu"], [1, "fullpage-header"], [1, "fullpage-header-title"], ["mat-flat-button", "", 3, "matMenuTriggerFor", "disabled"], ["matMenuContent", ""], [1, "dialog-close-icon"], ["mat-icon-button", "", 3, "click"], [1, "markdown-content"], [1, "markdown-content", 3, "src"], ["mat-menu-item", "", "disabled", ""], ["mat-menu-item", "", 3, "disabled"], ["mat-menu-item", "", 3, "click", "disabled"]], template: function AppHelpComponent_Template(rf, ctx) {
|
|
179
|
+
if (rf & 1) {
|
|
180
|
+
const _r1 = \u0275\u0275getCurrentView();
|
|
181
|
+
\u0275\u0275elementStart(0, "div", 1)(1, "h6", 2);
|
|
182
|
+
\u0275\u0275text(2);
|
|
183
|
+
\u0275\u0275elementEnd();
|
|
184
|
+
\u0275\u0275elementStart(3, "button", 3);
|
|
185
|
+
\u0275\u0275conditionalCreate(4, AppHelpComponent_Conditional_4_Template, 1, 0)(5, AppHelpComponent_Conditional_5_Template, 1, 0);
|
|
186
|
+
\u0275\u0275elementEnd();
|
|
187
|
+
\u0275\u0275elementStart(6, "mat-menu", null, 0);
|
|
188
|
+
\u0275\u0275template(8, AppHelpComponent_ng_template_8_Template, 3, 1, "ng-template", 4);
|
|
189
|
+
\u0275\u0275elementEnd();
|
|
190
|
+
\u0275\u0275elementStart(9, "div", 5)(10, "button", 6);
|
|
191
|
+
\u0275\u0275listener("click", function AppHelpComponent_Template_button_click_10_listener() {
|
|
192
|
+
\u0275\u0275restoreView(_r1);
|
|
193
|
+
return \u0275\u0275resetView(ctx.backPage());
|
|
194
|
+
});
|
|
195
|
+
\u0275\u0275elementStart(11, "mat-icon");
|
|
196
|
+
\u0275\u0275text(12, "arrow_back_ios");
|
|
197
|
+
\u0275\u0275elementEnd()();
|
|
198
|
+
\u0275\u0275elementStart(13, "button", 6);
|
|
199
|
+
\u0275\u0275listener("click", function AppHelpComponent_Template_button_click_13_listener() {
|
|
200
|
+
\u0275\u0275restoreView(_r1);
|
|
201
|
+
return \u0275\u0275resetView(ctx.closePage());
|
|
202
|
+
});
|
|
203
|
+
\u0275\u0275elementStart(14, "mat-icon");
|
|
204
|
+
\u0275\u0275text(15, "close");
|
|
205
|
+
\u0275\u0275elementEnd()()()();
|
|
206
|
+
\u0275\u0275element(16, "mat-divider");
|
|
207
|
+
\u0275\u0275conditionalCreate(17, AppHelpComponent_Conditional_17_Template, 2, 0, "div", 7)(18, AppHelpComponent_Conditional_18_Template, 2, 0, "div", 7)(19, AppHelpComponent_Conditional_19_Template, 1, 1, "markdown", 8);
|
|
208
|
+
}
|
|
209
|
+
if (rf & 2) {
|
|
210
|
+
const helpMenu_r5 = \u0275\u0275reference(7);
|
|
211
|
+
\u0275\u0275advance(2);
|
|
212
|
+
\u0275\u0275textInterpolate(ctx.pageTitle);
|
|
213
|
+
\u0275\u0275advance();
|
|
214
|
+
\u0275\u0275property("matMenuTriggerFor", helpMenu_r5)("disabled", ctx.isLoading() || ctx.hasError() || ctx.helpFiles().length === 0);
|
|
215
|
+
\u0275\u0275advance();
|
|
216
|
+
\u0275\u0275conditional(ctx.isLoading() ? 4 : 5);
|
|
217
|
+
\u0275\u0275advance(13);
|
|
218
|
+
\u0275\u0275conditional(ctx.hasError() ? 17 : ctx.isLoading() && ctx.helpFiles().length === 0 ? 18 : ctx.selectedFile() ? 19 : -1);
|
|
219
|
+
}
|
|
220
|
+
}, dependencies: [MarkdownComponent, MatButtonModule, MatButton, MatIconButton, MatMenuModule, MatMenu, MatMenuItem, MatMenuContent, MatMenuTrigger, MatDividerModule, MatDivider, MatIconModule, MatIcon], styles: ["\n\n.fullpage-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.fullpage-header-title[_ngcontent-%COMP%] {\n margin-block-start: 0px;\n margin-block-end: 0px;\n padding: 18px 24px 13px 24px;\n color: var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));\n font-family: var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));\n line-height: var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));\n font-size: var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));\n font-weight: var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));\n letter-spacing: var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em));\n}\n.mat-mdc-dialog-content[_ngcontent-%COMP%] {\n max-height: max-content;\n}\n.markdown-content[_ngcontent-%COMP%] {\n display: block;\n height: calc(100% - 75px);\n width: 100%;\n overflow-x: scroll;\n padding: 25px;\n}\n.dialog-close-icon[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n gap: 5px;\n padding-right: 15px;\n}\n/*# sourceMappingURL=app-help.component.css.map */"] });
|
|
221
|
+
};
|
|
222
|
+
(() => {
|
|
223
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && setClassMetadata(AppHelpComponent, [{
|
|
224
|
+
type: Component,
|
|
225
|
+
args: [{ selector: "app-help", standalone: true, imports: [MarkdownComponent, MatButtonModule, MatMenuModule, MatDividerModule, MatIconModule], template: `<div class="fullpage-header">
|
|
226
|
+
<h6 class="fullpage-header-title">{{ pageTitle }}</h6>
|
|
227
|
+
<button mat-flat-button [matMenuTriggerFor]="helpMenu" [disabled]="isLoading() || hasError() || helpFiles().length === 0">
|
|
228
|
+
@if (isLoading()) { Loading... } @else { Table of Content }
|
|
229
|
+
</button>
|
|
230
|
+
<mat-menu #helpMenu="matMenu">
|
|
231
|
+
<ng-template matMenuContent>
|
|
232
|
+
@if (hasError()) {
|
|
233
|
+
<button mat-menu-item disabled>Error loading menu</button>
|
|
234
|
+
} @else if (!isLoading() && helpFiles().length === 0) {
|
|
235
|
+
<button mat-menu-item disabled>No help entries</button>
|
|
236
|
+
} @else {
|
|
237
|
+
@for (file of helpFiles(); track file.file) {
|
|
238
|
+
<button mat-menu-item (click)="selectFile(file.file)" [disabled]="selectedFile() === file.file">
|
|
239
|
+
{{ file.title }}
|
|
240
|
+
</button>
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
</ng-template>
|
|
244
|
+
</mat-menu>
|
|
245
|
+
<div class="dialog-close-icon">
|
|
246
|
+
<button mat-icon-button (click)="backPage()">
|
|
247
|
+
<mat-icon>arrow_back_ios</mat-icon>
|
|
248
|
+
</button>
|
|
249
|
+
<button mat-icon-button (click)="closePage()">
|
|
250
|
+
<mat-icon>close</mat-icon>
|
|
251
|
+
</button>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
<mat-divider></mat-divider>
|
|
255
|
+
|
|
256
|
+
@if (hasError()) {
|
|
257
|
+
<div class="markdown-content">Unable to load help content.</div>
|
|
258
|
+
} @else if (isLoading() && helpFiles().length === 0) {
|
|
259
|
+
<div class="markdown-content">Loading help...</div>
|
|
260
|
+
} @else if (selectedFile()) {
|
|
261
|
+
<markdown class="markdown-content" [src]="'assets/help-docs/' + selectedFile()"></markdown>
|
|
262
|
+
}
|
|
263
|
+
`, styles: ["/* src/app/core/components/app-help/app-help.component.scss */\n.fullpage-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.fullpage-header-title {\n margin-block-start: 0px;\n margin-block-end: 0px;\n padding: 18px 24px 13px 24px;\n color: var(--mat-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));\n font-family: var(--mat-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));\n line-height: var(--mat-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));\n font-size: var(--mat-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));\n font-weight: var(--mat-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));\n letter-spacing: var(--mat-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em));\n}\n.mat-mdc-dialog-content {\n max-height: max-content;\n}\n.markdown-content {\n display: block;\n height: calc(100% - 75px);\n width: 100%;\n overflow-x: scroll;\n padding: 25px;\n}\n.dialog-close-icon {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n gap: 5px;\n padding-right: 15px;\n}\n/*# sourceMappingURL=app-help.component.css.map */\n"] }]
|
|
264
|
+
}], null, null);
|
|
265
|
+
})();
|
|
266
|
+
(() => {
|
|
267
|
+
(typeof ngDevMode === "undefined" || ngDevMode) && \u0275setClassDebugInfo(AppHelpComponent, { className: "AppHelpComponent", filePath: "src/app/core/components/app-help/app-help.component.ts", lineNumber: 17 });
|
|
268
|
+
})();
|
|
269
|
+
export {
|
|
270
|
+
AppHelpComponent
|
|
271
|
+
};
|
|
272
|
+
//# sourceMappingURL=chunk-XSABJ5NZ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/app/core/components/app-help/app-help.component.ts", "src/app/core/components/app-help/app-help.component.html"],
|
|
4
|
+
"sourcesContent": ["import { Component, inject, effect, signal, computed } from '@angular/core';\nimport { MarkdownComponent } from 'ngx-markdown';\nimport { httpResource } from '@angular/common/http';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Router } from '@angular/router';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'app-help',\n standalone: true,\n imports: [MarkdownComponent, MatButtonModule, MatMenuModule, MatDividerModule, MatIconModule],\n templateUrl: './app-help.component.html',\n styleUrl: './app-help.component.scss'\n})\nexport class AppHelpComponent {\n protected readonly pageTitle = 'Help';\n private readonly _router = inject(Router);\n\n // Resource for the help menu JSON (reactive & eagerly fetched)\n private readonly _helpMenuRes = httpResource<{ title: string; file: string }[]>(() => 'assets/help-docs/menu.json');\n\n // Raw list (filtered) as a signal\n protected readonly helpFiles = computed(() => {\n if (this._helpMenuRes.hasValue()) {\n return (this._helpMenuRes.value() ?? []).filter(item => item.file.endsWith('.md'));\n }\n return [] as { title: string; file: string }[];\n });\n\n // Selected file signal (empty until helpFiles first populated)\n protected selectedFile = signal<string>('');\n\n // Initialize default selection reactively when data arrives first time\n private _initSelectionOnce = signal<boolean>(false);\n private _syncEffect = effect(() => {\n const files = this.helpFiles();\n if (!this._initSelectionOnce() && files.length > 0) {\n this.selectedFile.set(files[0].file);\n this._initSelectionOnce.set(true);\n }\n });\n\n protected hasError = computed(() => this._helpMenuRes.error() != null);\n protected isLoading = computed(() => this._helpMenuRes.isLoading());\n\n protected selectFile(file: string): void {\n this.selectedFile.set(file);\n }\n\n protected backPage() {\n this._router.navigate(['/home']);\n }\n\n protected closePage(): void {\n this._router.navigate(['/dashboard']);\n }\n}\n", "<div class=\"fullpage-header\">\n <h6 class=\"fullpage-header-title\">{{ pageTitle }}</h6>\n <button mat-flat-button [matMenuTriggerFor]=\"helpMenu\" [disabled]=\"isLoading() || hasError() || helpFiles().length === 0\">\n @if (isLoading()) { Loading... } @else { Table of Content }\n </button>\n <mat-menu #helpMenu=\"matMenu\">\n <ng-template matMenuContent>\n @if (hasError()) {\n <button mat-menu-item disabled>Error loading menu</button>\n } @else if (!isLoading() && helpFiles().length === 0) {\n <button mat-menu-item disabled>No help entries</button>\n } @else {\n @for (file of helpFiles(); track file.file) {\n <button mat-menu-item (click)=\"selectFile(file.file)\" [disabled]=\"selectedFile() === file.file\">\n {{ file.title }}\n </button>\n }\n }\n </ng-template>\n </mat-menu>\n <div class=\"dialog-close-icon\">\n <button mat-icon-button (click)=\"backPage()\">\n <mat-icon>arrow_back_ios</mat-icon>\n </button>\n <button mat-icon-button (click)=\"closePage()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n</div>\n<mat-divider></mat-divider>\n\n@if (hasError()) {\n <div class=\"markdown-content\">Unable to load help content.</div>\n} @else if (isLoading() && helpFiles().length === 0) {\n <div class=\"markdown-content\">Loading help...</div>\n} @else if (selectedFile()) {\n <markdown class=\"markdown-content\" [src]=\"'assets/help-docs/' + selectedFile()\"></markdown>\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|