@isaiahiroko/tilmart-ngx-apps-admin 0.2.6 → 0.2.8
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/isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs +119 -0
- package/fesm2022/isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs.map +1 -0
- package/fesm2022/isaiahiroko-tilmart-ngx-apps-admin.mjs +10 -0
- package/fesm2022/isaiahiroko-tilmart-ngx-apps-admin.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as i1$1 from '@angular/router';
|
|
4
|
+
import { RouterModule } from '@angular/router';
|
|
5
|
+
import { BaseDirective, using, SharedModule } from '@thescaffold/ngx-core';
|
|
6
|
+
import * as i2 from '@thescaffold/ngx-ui';
|
|
7
|
+
import { ElementsModule } from '@thescaffold/ngx-ui';
|
|
8
|
+
import { forkJoin, takeUntil } from 'rxjs';
|
|
9
|
+
import * as i1 from '@angular/forms';
|
|
10
|
+
import * as i3 from '@angular/common';
|
|
11
|
+
|
|
12
|
+
const TYPE_LABELS = {
|
|
13
|
+
calculator: 'Load & sizing',
|
|
14
|
+
kit_builder: 'Kit builder',
|
|
15
|
+
runtime: 'Runtime',
|
|
16
|
+
savings: 'Savings',
|
|
17
|
+
compatibility: 'Compatibility',
|
|
18
|
+
};
|
|
19
|
+
// Back-office view of everything customers saved from the Tools pages
|
|
20
|
+
// (`CommerceToolSessions`), so sales can follow up. Admins are also emailed
|
|
21
|
+
// when a Load & sizing run is saved.
|
|
22
|
+
class ToolSessionsComponent extends BaseDirective {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.source = this.apiService.on('apps/commerce/tool-session');
|
|
26
|
+
this.customerSource = this.apiService.on('apps/commerce/customer');
|
|
27
|
+
this.loading = true;
|
|
28
|
+
this.sessions = [];
|
|
29
|
+
this.typeFilter = '';
|
|
30
|
+
this.search = '';
|
|
31
|
+
this.typeLabels = TYPE_LABELS;
|
|
32
|
+
this.types = Object.keys(TYPE_LABELS);
|
|
33
|
+
this.init = () => {
|
|
34
|
+
this.load();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
load() {
|
|
38
|
+
this.loading = true;
|
|
39
|
+
forkJoin({
|
|
40
|
+
sessions: this.source.getMany({ page: 1, perPage: 200 }),
|
|
41
|
+
customers: this.customerSource.getMany({ page: 1, perPage: 200 }),
|
|
42
|
+
})
|
|
43
|
+
.pipe(takeUntil(this.$))
|
|
44
|
+
.subscribe(using(({ sessions, customers }) => {
|
|
45
|
+
const byId = new Map((customers?.data ?? []).map((c) => [c.id, c]));
|
|
46
|
+
this.sessions = (sessions?.data ?? [])
|
|
47
|
+
.map((s) => {
|
|
48
|
+
const c = s.customerId ? byId.get(s.customerId) : undefined;
|
|
49
|
+
return {
|
|
50
|
+
...s,
|
|
51
|
+
customerName: c?.name,
|
|
52
|
+
customerEmail: c?.email,
|
|
53
|
+
customerPhone: c?.phone,
|
|
54
|
+
};
|
|
55
|
+
})
|
|
56
|
+
.sort((a, b) => new Date(b.updatedAt ?? b.createdAt).getTime() -
|
|
57
|
+
new Date(a.updatedAt ?? a.createdAt).getTime());
|
|
58
|
+
this.loading = false;
|
|
59
|
+
if (this.selected) {
|
|
60
|
+
this.selected = this.sessions.find((s) => s.id === this.selected.id);
|
|
61
|
+
}
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
get filtered() {
|
|
65
|
+
const q = this.search.trim().toLowerCase();
|
|
66
|
+
return this.sessions.filter((s) => (!this.typeFilter || s.type === this.typeFilter) &&
|
|
67
|
+
(!q ||
|
|
68
|
+
[s.name, s.customerName, s.customerEmail, s.customerPhone, s.deviceToken]
|
|
69
|
+
.filter(Boolean)
|
|
70
|
+
.some((v) => String(v).toLowerCase().includes(q))));
|
|
71
|
+
}
|
|
72
|
+
label(type) {
|
|
73
|
+
return TYPE_LABELS[type] ?? type;
|
|
74
|
+
}
|
|
75
|
+
who(s) {
|
|
76
|
+
return s.customerName || s.customerEmail || (s.customerId ? 'Customer' : 'Guest');
|
|
77
|
+
}
|
|
78
|
+
appliances(s) {
|
|
79
|
+
return Array.isArray(s.input?.appliances) ? s.input.appliances : [];
|
|
80
|
+
}
|
|
81
|
+
shareUrl(s) {
|
|
82
|
+
if (!s.shareToken)
|
|
83
|
+
return undefined;
|
|
84
|
+
const path = s.type === 'kit_builder' ? 'kit-builder' : 'calculator';
|
|
85
|
+
return `${window.location.origin}/tools/${path}?s=${s.shareToken}`;
|
|
86
|
+
}
|
|
87
|
+
json(v) {
|
|
88
|
+
return JSON.stringify(v ?? {}, null, 2);
|
|
89
|
+
}
|
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.16", type: ToolSessionsComponent, isStandalone: false, selector: "x-tool-sessions", usesInheritance: true, ngImport: i0, template: "<div class=\"x-page-head\">\n <div class=\"x-page-title\">Tool sessions</div>\n <div class=\"x-page-subtitle\">\n Load & sizing, kit builder and other tool runs customers have saved \u2014 for follow-up.\n </div>\n</div>\n\n@if (loading) {\n <x-element-loader></x-element-loader>\n} @else {\n <div class=\"x-ts-filters\">\n <input type=\"search\" placeholder=\"Search name, customer, phone\u2026\" [(ngModel)]=\"search\" />\n <select [(ngModel)]=\"typeFilter\">\n <option value=\"\">All tools</option>\n @for (t of types; track t) {\n <option [value]=\"t\">{{ typeLabels[t] }}</option>\n }\n </select>\n <button type=\"button\" class=\"x-ts-btn\" (click)=\"load()\">Refresh</button>\n </div>\n\n <div class=\"x-ts-layout\">\n <div class=\"x-ts-list\">\n @for (s of filtered; track s.id) {\n <button type=\"button\" class=\"x-ts-row\" [class.is-active]=\"selected?.id === s.id\" (click)=\"selected = s\">\n <span class=\"x-ts-type\">{{ label(s.type) }}</span>\n <span class=\"x-ts-who\">{{ s.name || who(s) }}</span>\n <span class=\"x-ts-when\">{{ (s.updatedAt || s.createdAt) | date: 'short' }}</span>\n </button>\n } @empty {\n <div class=\"x-ts-empty\">No saved sessions.</div>\n }\n </div>\n\n <div class=\"x-ts-detail\">\n @if (!selected) {\n <div class=\"x-ts-empty\">Select a session.</div>\n } @else {\n <div class=\"x-ts-d-title\">{{ label(selected.type) }}{{ selected.name ? ' \u2014 ' + selected.name : '' }}</div>\n <dl class=\"x-ts-meta\">\n <dt>Customer</dt><dd>{{ selected.customerId ? (selected.customerName || selected.customerId) : 'Guest (device ' + (selected.deviceToken || '\u2014') + ')' }}</dd>\n @if (selected.customerEmail) { <dt>Email</dt><dd>{{ selected.customerEmail }}</dd> }\n @if (selected.customerPhone) { <dt>Phone</dt><dd>{{ selected.customerPhone }}</dd> }\n @if (selected.input?.state) { <dt>State</dt><dd>{{ selected.input.state }}</dd> }\n <dt>Saved</dt><dd>{{ selected.createdAt | date: 'medium' }}</dd>\n @if (selected.updatedAt && selected.updatedAt !== selected.createdAt) {\n <dt>Updated</dt><dd>{{ selected.updatedAt | date: 'medium' }}</dd>\n }\n @if (shareUrl(selected); as url) {\n <dt>Link</dt><dd><a [href]=\"url\" target=\"_blank\" rel=\"noopener\">Open in storefront</a></dd>\n }\n </dl>\n\n @if (appliances(selected).length) {\n <div class=\"x-ts-h\">Appliances</div>\n <table class=\"x-ts-table\">\n <thead><tr><th>Item</th><th>Watts</th><th>Qty</th><th>Hrs/day</th><th>Night</th></tr></thead>\n <tbody>\n @for (a of appliances(selected); track $index) {\n <tr>\n <td>{{ a.name }}</td><td>{{ a.watts }}</td><td>{{ a.quantity }}</td>\n <td>{{ a.hoursPerDay }}</td><td>{{ a.runsAtNight ? 'Yes' : 'No' }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n @if (selected.type === 'calculator' && selected.output) {\n <div class=\"x-ts-h\">Recommended system</div>\n <dl class=\"x-ts-meta\">\n <dt>Peak load</dt><dd>{{ selected.output.peakLoadW }} W</dd>\n <dt>Daily energy</dt><dd>{{ selected.output.dailyEnergyWh }} Wh (night {{ selected.output.nightEnergyWh }} Wh)</dd>\n <dt>Inverter</dt><dd>{{ selected.output.recommendedInverterVA }} VA @ {{ selected.output.recommendedSystemVoltage }} V</dd>\n <dt>Battery</dt><dd>{{ selected.output.recommendedBatteryCapacityAh }} Ah ({{ selected.output.recommendedBatteryUsableKwh }} kWh usable)</dd>\n <dt>Solar array</dt><dd>{{ selected.output.recommendedArrayWp }} Wp</dd>\n </dl>\n } @else {\n <div class=\"x-ts-h\">Input</div>\n <pre class=\"x-ts-pre\">{{ json(selected.input) }}</pre>\n @if (selected.output) {\n <div class=\"x-ts-h\">Output</div>\n <pre class=\"x-ts-pre\">{{ json(selected.output) }}</pre>\n }\n }\n }\n </div>\n </div>\n}\n\n<style>\n .x-page-head { margin-bottom: 20px; }\n .x-page-title { font-size: 24px; font-weight: 800; color: var(--color-text); }\n .x-page-subtitle { font-size: 13.5px; color: var(--color-text-muted); margin-top: 2px; }\n .x-ts-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }\n .x-ts-filters input, .x-ts-filters select { font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); }\n .x-ts-filters input { min-width: 240px; }\n .x-ts-btn { font: inherit; font-weight: 600; font-size: 12.5px; padding: 7px 12px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); cursor: pointer; }\n .x-ts-layout { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }\n @media (max-width: 720px) { .x-ts-layout { grid-template-columns: 1fr; } }\n .x-ts-list { display: flex; flex-direction: column; gap: 4px; }\n .x-ts-row { text-align: left; appearance: none; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface, #fff); padding: 9px 11px; cursor: pointer; display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--color-text); }\n .x-ts-row.is-active { border-color: var(--color-brand); }\n .x-ts-type { font-weight: 700; text-transform: uppercase; font-size: 10.5px; color: var(--color-brand); white-space: nowrap; }\n .x-ts-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .x-ts-when { margin-left: auto; color: var(--color-text-muted); white-space: nowrap; }\n .x-ts-detail { border: 1px solid var(--color-border); border-radius: 12px; padding: 16px; overflow-x: auto; }\n .x-ts-d-title { font-size: 16px; font-weight: 800; color: var(--color-text); margin-bottom: 10px; }\n .x-ts-h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); margin: 16px 0 6px; }\n .x-ts-meta { display: grid; grid-template-columns: 110px 1fr; gap: 4px 12px; font-size: 13px; margin: 0; }\n .x-ts-meta dt { color: var(--color-text-muted); }\n .x-ts-meta dd { margin: 0; color: var(--color-text); }\n .x-ts-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n .x-ts-table th, .x-ts-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--color-border); }\n .x-ts-pre { white-space: pre-wrap; font-size: 12px; background: color-mix(in srgb, var(--color-border) 20%, transparent); padding: 8px; border-radius: 6px; }\n .x-ts-empty { padding: 24px; text-align: center; font-size: 13px; color: var(--color-text-muted); }\n</style>\n", styles: [".x-page-head{margin-bottom:20px}.x-page-title{font-size:24px;font-weight:800;color:var(--color-text)}.x-page-subtitle{font-size:13.5px;color:var(--color-text-muted);margin-top:2px}.x-ts-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.x-ts-filters input,.x-ts-filters select{font:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface, #fff);color:var(--color-text)}.x-ts-filters input{min-width:240px}.x-ts-btn{font:inherit;font-weight:600;font-size:12.5px;padding:7px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface, #fff);color:var(--color-text);cursor:pointer}.x-ts-layout{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}@media(max-width:720px){.x-ts-layout{grid-template-columns:1fr}}.x-ts-list{display:flex;flex-direction:column;gap:4px}.x-ts-row{text-align:left;appearance:none;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface, #fff);padding:9px 11px;cursor:pointer;display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--color-text)}.x-ts-row.is-active{border-color:var(--color-brand)}.x-ts-type{font-weight:700;text-transform:uppercase;font-size:10.5px;color:var(--color-brand);white-space:nowrap}.x-ts-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.x-ts-when{margin-left:auto;color:var(--color-text-muted);white-space:nowrap}.x-ts-detail{border:1px solid var(--color-border);border-radius:12px;padding:16px;overflow-x:auto}.x-ts-d-title{font-size:16px;font-weight:800;color:var(--color-text);margin-bottom:10px}.x-ts-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin:16px 0 6px}.x-ts-meta{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;font-size:13px;margin:0}.x-ts-meta dt{color:var(--color-text-muted)}.x-ts-meta dd{margin:0;color:var(--color-text)}.x-ts-table{width:100%;border-collapse:collapse;font-size:13px}.x-ts-table th,.x-ts-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--color-border)}.x-ts-pre{white-space:pre-wrap;font-size:12px;background:color-mix(in srgb,var(--color-border) 20%,transparent);padding:8px;border-radius:6px}.x-ts-empty{padding:24px;text-align:center;font-size:13px;color:var(--color-text-muted)}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.LoaderComponent, selector: "x-element-loader", inputs: ["data"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
92
|
+
}
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsComponent, decorators: [{
|
|
94
|
+
type: Component,
|
|
95
|
+
args: [{ standalone: false, selector: 'x-tool-sessions', template: "<div class=\"x-page-head\">\n <div class=\"x-page-title\">Tool sessions</div>\n <div class=\"x-page-subtitle\">\n Load & sizing, kit builder and other tool runs customers have saved \u2014 for follow-up.\n </div>\n</div>\n\n@if (loading) {\n <x-element-loader></x-element-loader>\n} @else {\n <div class=\"x-ts-filters\">\n <input type=\"search\" placeholder=\"Search name, customer, phone\u2026\" [(ngModel)]=\"search\" />\n <select [(ngModel)]=\"typeFilter\">\n <option value=\"\">All tools</option>\n @for (t of types; track t) {\n <option [value]=\"t\">{{ typeLabels[t] }}</option>\n }\n </select>\n <button type=\"button\" class=\"x-ts-btn\" (click)=\"load()\">Refresh</button>\n </div>\n\n <div class=\"x-ts-layout\">\n <div class=\"x-ts-list\">\n @for (s of filtered; track s.id) {\n <button type=\"button\" class=\"x-ts-row\" [class.is-active]=\"selected?.id === s.id\" (click)=\"selected = s\">\n <span class=\"x-ts-type\">{{ label(s.type) }}</span>\n <span class=\"x-ts-who\">{{ s.name || who(s) }}</span>\n <span class=\"x-ts-when\">{{ (s.updatedAt || s.createdAt) | date: 'short' }}</span>\n </button>\n } @empty {\n <div class=\"x-ts-empty\">No saved sessions.</div>\n }\n </div>\n\n <div class=\"x-ts-detail\">\n @if (!selected) {\n <div class=\"x-ts-empty\">Select a session.</div>\n } @else {\n <div class=\"x-ts-d-title\">{{ label(selected.type) }}{{ selected.name ? ' \u2014 ' + selected.name : '' }}</div>\n <dl class=\"x-ts-meta\">\n <dt>Customer</dt><dd>{{ selected.customerId ? (selected.customerName || selected.customerId) : 'Guest (device ' + (selected.deviceToken || '\u2014') + ')' }}</dd>\n @if (selected.customerEmail) { <dt>Email</dt><dd>{{ selected.customerEmail }}</dd> }\n @if (selected.customerPhone) { <dt>Phone</dt><dd>{{ selected.customerPhone }}</dd> }\n @if (selected.input?.state) { <dt>State</dt><dd>{{ selected.input.state }}</dd> }\n <dt>Saved</dt><dd>{{ selected.createdAt | date: 'medium' }}</dd>\n @if (selected.updatedAt && selected.updatedAt !== selected.createdAt) {\n <dt>Updated</dt><dd>{{ selected.updatedAt | date: 'medium' }}</dd>\n }\n @if (shareUrl(selected); as url) {\n <dt>Link</dt><dd><a [href]=\"url\" target=\"_blank\" rel=\"noopener\">Open in storefront</a></dd>\n }\n </dl>\n\n @if (appliances(selected).length) {\n <div class=\"x-ts-h\">Appliances</div>\n <table class=\"x-ts-table\">\n <thead><tr><th>Item</th><th>Watts</th><th>Qty</th><th>Hrs/day</th><th>Night</th></tr></thead>\n <tbody>\n @for (a of appliances(selected); track $index) {\n <tr>\n <td>{{ a.name }}</td><td>{{ a.watts }}</td><td>{{ a.quantity }}</td>\n <td>{{ a.hoursPerDay }}</td><td>{{ a.runsAtNight ? 'Yes' : 'No' }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n @if (selected.type === 'calculator' && selected.output) {\n <div class=\"x-ts-h\">Recommended system</div>\n <dl class=\"x-ts-meta\">\n <dt>Peak load</dt><dd>{{ selected.output.peakLoadW }} W</dd>\n <dt>Daily energy</dt><dd>{{ selected.output.dailyEnergyWh }} Wh (night {{ selected.output.nightEnergyWh }} Wh)</dd>\n <dt>Inverter</dt><dd>{{ selected.output.recommendedInverterVA }} VA @ {{ selected.output.recommendedSystemVoltage }} V</dd>\n <dt>Battery</dt><dd>{{ selected.output.recommendedBatteryCapacityAh }} Ah ({{ selected.output.recommendedBatteryUsableKwh }} kWh usable)</dd>\n <dt>Solar array</dt><dd>{{ selected.output.recommendedArrayWp }} Wp</dd>\n </dl>\n } @else {\n <div class=\"x-ts-h\">Input</div>\n <pre class=\"x-ts-pre\">{{ json(selected.input) }}</pre>\n @if (selected.output) {\n <div class=\"x-ts-h\">Output</div>\n <pre class=\"x-ts-pre\">{{ json(selected.output) }}</pre>\n }\n }\n }\n </div>\n </div>\n}\n\n<style>\n .x-page-head { margin-bottom: 20px; }\n .x-page-title { font-size: 24px; font-weight: 800; color: var(--color-text); }\n .x-page-subtitle { font-size: 13.5px; color: var(--color-text-muted); margin-top: 2px; }\n .x-ts-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }\n .x-ts-filters input, .x-ts-filters select { font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); }\n .x-ts-filters input { min-width: 240px; }\n .x-ts-btn { font: inherit; font-weight: 600; font-size: 12.5px; padding: 7px 12px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); cursor: pointer; }\n .x-ts-layout { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }\n @media (max-width: 720px) { .x-ts-layout { grid-template-columns: 1fr; } }\n .x-ts-list { display: flex; flex-direction: column; gap: 4px; }\n .x-ts-row { text-align: left; appearance: none; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface, #fff); padding: 9px 11px; cursor: pointer; display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--color-text); }\n .x-ts-row.is-active { border-color: var(--color-brand); }\n .x-ts-type { font-weight: 700; text-transform: uppercase; font-size: 10.5px; color: var(--color-brand); white-space: nowrap; }\n .x-ts-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .x-ts-when { margin-left: auto; color: var(--color-text-muted); white-space: nowrap; }\n .x-ts-detail { border: 1px solid var(--color-border); border-radius: 12px; padding: 16px; overflow-x: auto; }\n .x-ts-d-title { font-size: 16px; font-weight: 800; color: var(--color-text); margin-bottom: 10px; }\n .x-ts-h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); margin: 16px 0 6px; }\n .x-ts-meta { display: grid; grid-template-columns: 110px 1fr; gap: 4px 12px; font-size: 13px; margin: 0; }\n .x-ts-meta dt { color: var(--color-text-muted); }\n .x-ts-meta dd { margin: 0; color: var(--color-text); }\n .x-ts-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n .x-ts-table th, .x-ts-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--color-border); }\n .x-ts-pre { white-space: pre-wrap; font-size: 12px; background: color-mix(in srgb, var(--color-border) 20%, transparent); padding: 8px; border-radius: 6px; }\n .x-ts-empty { padding: 24px; text-align: center; font-size: 13px; color: var(--color-text-muted); }\n</style>\n" }]
|
|
96
|
+
}] });
|
|
97
|
+
|
|
98
|
+
class ToolSessionsModule {
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
100
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsModule, declarations: [ToolSessionsComponent], imports: [SharedModule,
|
|
101
|
+
ElementsModule, i1$1.RouterModule] }); }
|
|
102
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsModule, imports: [SharedModule,
|
|
103
|
+
ElementsModule,
|
|
104
|
+
RouterModule.forChild([{ path: '', component: ToolSessionsComponent }])] }); }
|
|
105
|
+
}
|
|
106
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImport: i0, type: ToolSessionsModule, decorators: [{
|
|
107
|
+
type: NgModule,
|
|
108
|
+
args: [{
|
|
109
|
+
declarations: [ToolSessionsComponent],
|
|
110
|
+
imports: [
|
|
111
|
+
SharedModule,
|
|
112
|
+
ElementsModule,
|
|
113
|
+
RouterModule.forChild([{ path: '', component: ToolSessionsComponent }]),
|
|
114
|
+
],
|
|
115
|
+
}]
|
|
116
|
+
}] });
|
|
117
|
+
|
|
118
|
+
export { ToolSessionsModule };
|
|
119
|
+
//# sourceMappingURL=isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs","sources":["../../../projects/admin/src/lib/pages/tool-sessions/tool-sessions.component.ts","../../../projects/admin/src/lib/pages/tool-sessions/tool-sessions.component.html","../../../projects/admin/src/lib/pages/tool-sessions/tool-sessions.module.ts"],"sourcesContent":["import { Component } from '@angular/core';\nimport { BaseDirective, using } from '@thescaffold/ngx-core';\nimport { forkJoin, takeUntil } from 'rxjs';\n\ninterface SessionVm {\n id: string;\n type: string;\n name?: string;\n customerId?: string;\n deviceToken?: string;\n shareToken?: string;\n input: any;\n output?: any;\n createdAt: string;\n updatedAt?: string;\n customerName?: string;\n customerEmail?: string;\n customerPhone?: string;\n}\n\nconst TYPE_LABELS: Record<string, string> = {\n calculator: 'Load & sizing',\n kit_builder: 'Kit builder',\n runtime: 'Runtime',\n savings: 'Savings',\n compatibility: 'Compatibility',\n};\n\n// Back-office view of everything customers saved from the Tools pages\n// (`CommerceToolSessions`), so sales can follow up. Admins are also emailed\n// when a Load & sizing run is saved.\n@Component({\n standalone: false,\n selector: 'x-tool-sessions',\n templateUrl: './tool-sessions.component.html',\n})\nexport class ToolSessionsComponent extends BaseDirective {\n private readonly source = this.apiService.on('apps/commerce/tool-session');\n private readonly customerSource = this.apiService.on('apps/commerce/customer');\n\n loading = true;\n sessions: SessionVm[] = [];\n selected?: SessionVm;\n typeFilter = '';\n search = '';\n readonly typeLabels = TYPE_LABELS;\n readonly types = Object.keys(TYPE_LABELS);\n\n override init = () => {\n this.load();\n };\n\n load(): void {\n this.loading = true;\n forkJoin({\n sessions: this.source.getMany({ page: 1, perPage: 200 } as any),\n customers: this.customerSource.getMany({ page: 1, perPage: 200 } as any),\n })\n .pipe(takeUntil(this.$))\n .subscribe(\n using(({ sessions, customers }: any) => {\n const byId = new Map<string, any>(\n (customers?.data ?? []).map((c: any) => [c.id, c]),\n );\n this.sessions = (sessions?.data ?? [])\n .map((s: SessionVm) => {\n const c = s.customerId ? byId.get(s.customerId) : undefined;\n return {\n ...s,\n customerName: c?.name,\n customerEmail: c?.email,\n customerPhone: c?.phone,\n };\n })\n .sort(\n (a: SessionVm, b: SessionVm) =>\n new Date(b.updatedAt ?? b.createdAt).getTime() -\n new Date(a.updatedAt ?? a.createdAt).getTime(),\n );\n this.loading = false;\n if (this.selected) {\n this.selected = this.sessions.find((s) => s.id === this.selected!.id);\n }\n }),\n );\n }\n\n get filtered(): SessionVm[] {\n const q = this.search.trim().toLowerCase();\n return this.sessions.filter(\n (s) =>\n (!this.typeFilter || s.type === this.typeFilter) &&\n (!q ||\n [s.name, s.customerName, s.customerEmail, s.customerPhone, s.deviceToken]\n .filter(Boolean)\n .some((v) => String(v).toLowerCase().includes(q))),\n );\n }\n\n label(type: string): string {\n return TYPE_LABELS[type] ?? type;\n }\n\n who(s: SessionVm): string {\n return s.customerName || s.customerEmail || (s.customerId ? 'Customer' : 'Guest');\n }\n\n appliances(s: SessionVm): any[] {\n return Array.isArray(s.input?.appliances) ? s.input.appliances : [];\n }\n\n shareUrl(s: SessionVm): string | undefined {\n if (!s.shareToken) return undefined;\n const path = s.type === 'kit_builder' ? 'kit-builder' : 'calculator';\n return `${window.location.origin}/tools/${path}?s=${s.shareToken}`;\n }\n\n json(v: unknown): string {\n return JSON.stringify(v ?? {}, null, 2);\n }\n}\n","<div class=\"x-page-head\">\n <div class=\"x-page-title\">Tool sessions</div>\n <div class=\"x-page-subtitle\">\n Load & sizing, kit builder and other tool runs customers have saved — for follow-up.\n </div>\n</div>\n\n@if (loading) {\n <x-element-loader></x-element-loader>\n} @else {\n <div class=\"x-ts-filters\">\n <input type=\"search\" placeholder=\"Search name, customer, phone…\" [(ngModel)]=\"search\" />\n <select [(ngModel)]=\"typeFilter\">\n <option value=\"\">All tools</option>\n @for (t of types; track t) {\n <option [value]=\"t\">{{ typeLabels[t] }}</option>\n }\n </select>\n <button type=\"button\" class=\"x-ts-btn\" (click)=\"load()\">Refresh</button>\n </div>\n\n <div class=\"x-ts-layout\">\n <div class=\"x-ts-list\">\n @for (s of filtered; track s.id) {\n <button type=\"button\" class=\"x-ts-row\" [class.is-active]=\"selected?.id === s.id\" (click)=\"selected = s\">\n <span class=\"x-ts-type\">{{ label(s.type) }}</span>\n <span class=\"x-ts-who\">{{ s.name || who(s) }}</span>\n <span class=\"x-ts-when\">{{ (s.updatedAt || s.createdAt) | date: 'short' }}</span>\n </button>\n } @empty {\n <div class=\"x-ts-empty\">No saved sessions.</div>\n }\n </div>\n\n <div class=\"x-ts-detail\">\n @if (!selected) {\n <div class=\"x-ts-empty\">Select a session.</div>\n } @else {\n <div class=\"x-ts-d-title\">{{ label(selected.type) }}{{ selected.name ? ' — ' + selected.name : '' }}</div>\n <dl class=\"x-ts-meta\">\n <dt>Customer</dt><dd>{{ selected.customerId ? (selected.customerName || selected.customerId) : 'Guest (device ' + (selected.deviceToken || '—') + ')' }}</dd>\n @if (selected.customerEmail) { <dt>Email</dt><dd>{{ selected.customerEmail }}</dd> }\n @if (selected.customerPhone) { <dt>Phone</dt><dd>{{ selected.customerPhone }}</dd> }\n @if (selected.input?.state) { <dt>State</dt><dd>{{ selected.input.state }}</dd> }\n <dt>Saved</dt><dd>{{ selected.createdAt | date: 'medium' }}</dd>\n @if (selected.updatedAt && selected.updatedAt !== selected.createdAt) {\n <dt>Updated</dt><dd>{{ selected.updatedAt | date: 'medium' }}</dd>\n }\n @if (shareUrl(selected); as url) {\n <dt>Link</dt><dd><a [href]=\"url\" target=\"_blank\" rel=\"noopener\">Open in storefront</a></dd>\n }\n </dl>\n\n @if (appliances(selected).length) {\n <div class=\"x-ts-h\">Appliances</div>\n <table class=\"x-ts-table\">\n <thead><tr><th>Item</th><th>Watts</th><th>Qty</th><th>Hrs/day</th><th>Night</th></tr></thead>\n <tbody>\n @for (a of appliances(selected); track $index) {\n <tr>\n <td>{{ a.name }}</td><td>{{ a.watts }}</td><td>{{ a.quantity }}</td>\n <td>{{ a.hoursPerDay }}</td><td>{{ a.runsAtNight ? 'Yes' : 'No' }}</td>\n </tr>\n }\n </tbody>\n </table>\n }\n\n @if (selected.type === 'calculator' && selected.output) {\n <div class=\"x-ts-h\">Recommended system</div>\n <dl class=\"x-ts-meta\">\n <dt>Peak load</dt><dd>{{ selected.output.peakLoadW }} W</dd>\n <dt>Daily energy</dt><dd>{{ selected.output.dailyEnergyWh }} Wh (night {{ selected.output.nightEnergyWh }} Wh)</dd>\n <dt>Inverter</dt><dd>{{ selected.output.recommendedInverterVA }} VA @ {{ selected.output.recommendedSystemVoltage }} V</dd>\n <dt>Battery</dt><dd>{{ selected.output.recommendedBatteryCapacityAh }} Ah ({{ selected.output.recommendedBatteryUsableKwh }} kWh usable)</dd>\n <dt>Solar array</dt><dd>{{ selected.output.recommendedArrayWp }} Wp</dd>\n </dl>\n } @else {\n <div class=\"x-ts-h\">Input</div>\n <pre class=\"x-ts-pre\">{{ json(selected.input) }}</pre>\n @if (selected.output) {\n <div class=\"x-ts-h\">Output</div>\n <pre class=\"x-ts-pre\">{{ json(selected.output) }}</pre>\n }\n }\n }\n </div>\n </div>\n}\n\n<style>\n .x-page-head { margin-bottom: 20px; }\n .x-page-title { font-size: 24px; font-weight: 800; color: var(--color-text); }\n .x-page-subtitle { font-size: 13.5px; color: var(--color-text-muted); margin-top: 2px; }\n .x-ts-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }\n .x-ts-filters input, .x-ts-filters select { font: inherit; font-size: 13px; padding: 7px 10px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); }\n .x-ts-filters input { min-width: 240px; }\n .x-ts-btn { font: inherit; font-weight: 600; font-size: 12.5px; padding: 7px 12px; border: 1px solid var(--color-border); border-radius: 6px; background: var(--color-surface, #fff); color: var(--color-text); cursor: pointer; }\n .x-ts-layout { display: grid; grid-template-columns: 300px 1fr; gap: 16px; align-items: start; }\n @media (max-width: 720px) { .x-ts-layout { grid-template-columns: 1fr; } }\n .x-ts-list { display: flex; flex-direction: column; gap: 4px; }\n .x-ts-row { text-align: left; appearance: none; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-surface, #fff); padding: 9px 11px; cursor: pointer; display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--color-text); }\n .x-ts-row.is-active { border-color: var(--color-brand); }\n .x-ts-type { font-weight: 700; text-transform: uppercase; font-size: 10.5px; color: var(--color-brand); white-space: nowrap; }\n .x-ts-who { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n .x-ts-when { margin-left: auto; color: var(--color-text-muted); white-space: nowrap; }\n .x-ts-detail { border: 1px solid var(--color-border); border-radius: 12px; padding: 16px; overflow-x: auto; }\n .x-ts-d-title { font-size: 16px; font-weight: 800; color: var(--color-text); margin-bottom: 10px; }\n .x-ts-h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--color-text-muted); margin: 16px 0 6px; }\n .x-ts-meta { display: grid; grid-template-columns: 110px 1fr; gap: 4px 12px; font-size: 13px; margin: 0; }\n .x-ts-meta dt { color: var(--color-text-muted); }\n .x-ts-meta dd { margin: 0; color: var(--color-text); }\n .x-ts-table { width: 100%; border-collapse: collapse; font-size: 13px; }\n .x-ts-table th, .x-ts-table td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--color-border); }\n .x-ts-pre { white-space: pre-wrap; font-size: 12px; background: color-mix(in srgb, var(--color-border) 20%, transparent); padding: 8px; border-radius: 6px; }\n .x-ts-empty { padding: 24px; text-align: center; font-size: 13px; color: var(--color-text-muted); }\n</style>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@thescaffold/ngx-core';\nimport { ElementsModule } from '@thescaffold/ngx-ui';\nimport { ToolSessionsComponent } from './tool-sessions.component';\n\n@NgModule({\n declarations: [ToolSessionsComponent],\n imports: [\n SharedModule,\n ElementsModule,\n RouterModule.forChild([{ path: '', component: ToolSessionsComponent }]),\n ],\n})\nexport class ToolSessionsModule {}\n"],"names":["i1"],"mappings":"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"}
|
|
@@ -280,6 +280,11 @@ class PagesModule {
|
|
|
280
280
|
path: 'trace',
|
|
281
281
|
loadChildren: () => import('./isaiahiroko-tilmart-ngx-apps-admin-trace.module-9sRlGZCC.mjs').then((m) => m.TraceModule),
|
|
282
282
|
},
|
|
283
|
+
{
|
|
284
|
+
// Saved Load & sizing / kit-builder runs, for sales follow-up.
|
|
285
|
+
path: 'tool-sessions',
|
|
286
|
+
loadChildren: () => import('./isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs').then((m) => m.ToolSessionsModule),
|
|
287
|
+
},
|
|
283
288
|
{
|
|
284
289
|
// P7.7 — SEC-04 / SEC-05 NDPR data-subject requests.
|
|
285
290
|
path: 'data-requests',
|
|
@@ -480,6 +485,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.16", ngImpo
|
|
|
480
485
|
path: 'trace',
|
|
481
486
|
loadChildren: () => import('./isaiahiroko-tilmart-ngx-apps-admin-trace.module-9sRlGZCC.mjs').then((m) => m.TraceModule),
|
|
482
487
|
},
|
|
488
|
+
{
|
|
489
|
+
// Saved Load & sizing / kit-builder runs, for sales follow-up.
|
|
490
|
+
path: 'tool-sessions',
|
|
491
|
+
loadChildren: () => import('./isaiahiroko-tilmart-ngx-apps-admin-tool-sessions.module-DBBy0bzj.mjs').then((m) => m.ToolSessionsModule),
|
|
492
|
+
},
|
|
483
493
|
{
|
|
484
494
|
// P7.7 — SEC-04 / SEC-05 NDPR data-subject requests.
|
|
485
495
|
path: 'data-requests',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isaiahiroko-tilmart-ngx-apps-admin.mjs","sources":["../../../projects/admin/src/lib/app.config.ts","../../../projects/admin/src/lib/pages/pages.component.ts","../../../projects/admin/src/lib/pages/pages.module.ts","../../../projects/admin/src/lib/app.module.ts","../../../projects/admin/src/lib/index.ts","../../../projects/admin/src/public-api.ts","../../../projects/admin/src/isaiahiroko-tilmart-ngx-apps-admin.ts"],"sourcesContent":["import { getClientId, getEnv, translate } from '@thescaffold/ngx-core';\nimport { AppDataContract } from '@thescaffold/ngx-ui';\n\nexport const config: () => AppDataContract = () => ({\n name: getEnv('APP_NAME'),\n desc: getEnv('APP_DESC'),\n url: getEnv('APP_URL'),\n logo: getEnv('APP_LOGO'),\n business: {\n name: getEnv('BUSINESS_NAME'),\n desc: getEnv('BUSINESS_DESC'),\n url: getEnv('BUSINESS_URL'),\n },\n group: {\n name: getEnv('GROUP_NAME'),\n desc: getEnv('GROUP_DESC'),\n url: getEnv('GROUP_URL'),\n },\n app: {\n name: getEnv('APP_NAME'),\n desc: getEnv('APP_DESC'),\n url: getEnv('APP_URL'),\n logo: getEnv('APP_LOGO'),\n },\n guardBaseUrl: getEnv('GUARD_BASE_URL'),\n identityBaseUrl: getEnv('IDENTITY_BASE_URL'),\n paymentBaseUrl: getEnv('PAYMENT_BASE_URL'),\n clientId: getClientId(),\n});\n\nexport const paths = () => [\n 'translations/en/ngx/packages/common.yaml',\n 'translations/en/ngx/packages/core.yaml',\n 'translations/en/ngx/packages/ui.yaml',\n\n 'translations/en/ngx/apps/admin.yaml',\n];\n\nexport const messages = () => ({\n forbidden: {\n message: {\n title: translate('apps.admin.messages.forbidden.title'),\n desc: translate('apps.admin.messages.forbidden.desc'),\n code: 'ERR-X-000',\n },\n },\n});\n","import { Component, inject } from '@angular/core';\nimport {\n BaseDirective,\n CommonActionType,\n StateService,\n} from '@thescaffold/ngx-core';\nimport { config } from '../app.config';\n\n@Component({\n standalone: false,\n selector: 'x-pages',\n template: `\n <router-outlet></router-outlet>\n\n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n\n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [],\n host: { '[attr.x-pages-app-name]': '\"admin\"' },\n})\nexport class PagesComponent extends BaseDirective {\n private readonly stateService = inject(StateService);\n\n override init = () => {\n this.stateService.dispatch({\n type: CommonActionType.APP_CONFIG,\n payload: {\n ...config(),\n },\n });\n };\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ConsentBarModule, StatusBarModule } from '@thescaffold/ngx-common';\nimport { SharedModule } from '@thescaffold/ngx-core';\nimport {\n ElementsModule,\n LayoutsModule,\n ProgressModule,\n WebgetsModule,\n} from '@thescaffold/ngx-ui';\nimport { PagesComponent } from './pages.component';\n\n@NgModule({\n declarations: [PagesComponent],\n imports: [\n SharedModule,\n RouterModule.forChild([\n {\n path: '',\n component: PagesComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'orders' },\n {\n // P4.19 — ORD-12 ops queues (rebuilt from the Salama Cycles\n // kanban onto apps/commerce/order).\n path: 'board',\n loadChildren: () =>\n import('./order-board/order-board.module').then((m) => m.OrderBoardModule),\n },\n {\n path: 'orders',\n loadChildren: () =>\n import('./orders/orders.module').then((m) => m.OrdersModule),\n },\n {\n // P4.19 — fulfilment queue: dispatch / deliver / exception.\n path: 'shipments',\n loadChildren: () =>\n import('./shipments/shipments.module').then((m) => m.ShipmentsModule),\n },\n {\n path: 'catalog',\n loadChildren: () =>\n import('./catalog/catalog.module').then((m) => m.CatalogModule),\n },\n {\n path: 'brands',\n loadChildren: () =>\n import('./brands/brands.module').then((m) => m.BrandsModule),\n },\n {\n path: 'categories',\n loadChildren: () =>\n import('./categories/categories.module').then((m) => m.CategoriesModule),\n },\n {\n path: 'attribute-templates',\n loadChildren: () =>\n import('./attribute-templates/attribute-templates.module').then(\n (m) => m.AttributeTemplatesModule,\n ),\n },\n {\n path: 'compatibility-rules',\n loadChildren: () =>\n import('./compatibility-rules/compatibility-rules.module').then(\n (m) => m.CompatibilityRulesModule,\n ),\n },\n {\n path: 'bulk-upload',\n loadChildren: () =>\n import('./bulk-upload/bulk-upload.module').then(\n (m) => m.BulkUploadModule,\n ),\n },\n {\n path: 'data-quality',\n loadChildren: () =>\n import('./data-quality/data-quality.module').then(\n (m) => m.DataQualityModule,\n ),\n },\n {\n path: 'routes',\n loadChildren: () =>\n import('./routes/routes.module').then(\n (m) => m.RoutesModule,\n ),\n },\n {\n path: 'payments',\n loadChildren: () =>\n import('./payments/payments.module').then(\n (m) => m.PaymentsModule,\n ),\n },\n {\n path: 'inbox',\n loadChildren: () =>\n import('./inbox/inbox.module').then((m) => m.InboxModule),\n },\n {\n path: 'referrals',\n loadChildren: () =>\n import('./referrals/referrals.module').then(\n (m) => m.ReferralsModule,\n ),\n },\n {\n // P5.11 — UGC-04 moderation queue.\n path: 'moderation',\n loadChildren: () =>\n import('./moderation/moderation.module').then(\n (m) => m.ModerationModule,\n ),\n },\n {\n // P6.7 — PROMO-06 homepage composer.\n path: 'homepage',\n loadChildren: () =>\n import('./homepage/homepage.module').then(\n (m) => m.HomepageModule,\n ),\n },\n {\n path: 'banners',\n loadChildren: () =>\n import('./banners/banners.module').then((m) => m.BannersModule),\n },\n {\n path: 'flash-sales',\n loadChildren: () =>\n import('./flash-sales/flash-sales.module').then(\n (m) => m.FlashSalesModule,\n ),\n },\n {\n // P6.10 — CMS-01 page builder.\n path: 'content',\n loadChildren: () =>\n import('./content/content.module').then((m) => m.ContentModule),\n },\n {\n // P6.11 — CMS-02 Learn-hub article editor.\n path: 'articles',\n loadChildren: () =>\n import('./articles/articles.module').then((m) => m.ArticlesModule),\n },\n {\n // P6.12 — CMS-03 navigation menu editor.\n path: 'navigation',\n loadChildren: () =>\n import('./navigation/navigation.module').then(\n (m) => m.NavigationModule,\n ),\n },\n {\n // Super-admin-only staff (admin account) management.\n path: 'staff',\n loadChildren: () =>\n import('./staff/staff.module').then((m) => m.StaffModule),\n },\n {\n path: 'users',\n loadChildren: () =>\n import('./users/users.module').then((m) => m.UsersModule),\n },\n {\n path: 'reports',\n loadChildren: () =>\n import('./reports/reports.module').then((m) => m.ReportsModule),\n },\n // P7.1 — ops console section pass (PRD 6.2, TRD 9.2). Standard\n // list/detail views over the commerce API for the sections that\n // had no page yet.\n {\n path: 'customers',\n loadChildren: () =>\n import('./customers/customers.module').then((m) => m.CustomersModule),\n },\n {\n path: 'promotions',\n loadChildren: () =>\n import('./promotions/promotions.module').then(\n (m) => m.PromotionsModule,\n ),\n },\n {\n path: 'coupons',\n loadChildren: () =>\n import('./coupons/coupons.module').then((m) => m.CouponsModule),\n },\n {\n path: 'redirects',\n loadChildren: () =>\n import('./redirects/redirects.module').then(\n (m) => m.RedirectsModule,\n ),\n },\n {\n path: 'stock',\n loadChildren: () =>\n import('./stock/stock.module').then((m) => m.StockModule),\n },\n {\n path: 'returns',\n loadChildren: () =>\n import('./returns/returns.module').then((m) => m.ReturnsModule),\n },\n {\n path: 'claims',\n loadChildren: () =>\n import('./claims/claims.module').then((m) => m.ClaimsModule),\n },\n {\n path: 'disputes',\n loadChildren: () =>\n import('./disputes/disputes.module').then((m) => m.DisputesModule),\n },\n {\n path: 'payouts',\n loadChildren: () =>\n import('./payouts/payouts.module').then((m) => m.PayoutsModule),\n },\n {\n // The signed-in admin's own details + password.\n path: 'profile',\n loadChildren: () =>\n import('./profile/profile.module').then((m) => m.ProfileModule),\n },\n {\n path: 'settings',\n loadChildren: () =>\n import('./settings/settings.module').then((m) => m.SettingsModule),\n },\n {\n // P7.3 — queues + SLA board, cron catalogue.\n path: 'queues',\n loadChildren: () =>\n import('./queues/queues.module').then((m) => m.QueuesModule),\n },\n {\n // P7.5 — SUP-03 canned-response library.\n path: 'macros',\n loadChildren: () =>\n import('./macros/macros.module').then((m) => m.MacrosModule),\n },\n {\n // P7.6 — ADM-14 / SEC-07 audit-log viewer.\n path: 'audit',\n loadChildren: () =>\n import('./audit/audit.module').then((m) => m.AuditModule),\n },\n {\n // P7.14 — N.4 single-order observability trace.\n path: 'trace',\n loadChildren: () =>\n import('./trace/trace.module').then((m) => m.TraceModule),\n },\n {\n // P7.7 — SEC-04 / SEC-05 NDPR data-subject requests.\n path: 'data-requests',\n loadChildren: () =>\n import('./data-requests/data-requests.module').then(\n (m) => m.DataRequestsModule,\n ),\n },\n ],\n },\n ]),\n LayoutsModule,\n WebgetsModule,\n ElementsModule,\n ProgressModule,\n StatusBarModule,\n ConsentBarModule,\n ],\n})\nexport class PagesModule {}\n","import { NgModule } from '@angular/core';\nimport { AppModuleDirective } from '@thescaffold/ngx-common';\nimport { PagesModule } from './pages/pages.module';\n\n@NgModule({\n imports: [PagesModule],\n exports: [PagesModule],\n})\nexport class AppModule extends AppModuleDirective {}\n","export { AppModule as AdminAppModule } from './app.module';\nexport { PagesModule } from './pages/pages.module';\n\nexport const routes = {\n root: ['/', 'admin'],\n};\n","/*\n * Public API Surface of admin\n */\n\nexport * from './lib/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"isaiahiroko-tilmart-ngx-apps-admin.mjs","sources":["../../../projects/admin/src/lib/app.config.ts","../../../projects/admin/src/lib/pages/pages.component.ts","../../../projects/admin/src/lib/pages/pages.module.ts","../../../projects/admin/src/lib/app.module.ts","../../../projects/admin/src/lib/index.ts","../../../projects/admin/src/public-api.ts","../../../projects/admin/src/isaiahiroko-tilmart-ngx-apps-admin.ts"],"sourcesContent":["import { getClientId, getEnv, translate } from '@thescaffold/ngx-core';\nimport { AppDataContract } from '@thescaffold/ngx-ui';\n\nexport const config: () => AppDataContract = () => ({\n name: getEnv('APP_NAME'),\n desc: getEnv('APP_DESC'),\n url: getEnv('APP_URL'),\n logo: getEnv('APP_LOGO'),\n business: {\n name: getEnv('BUSINESS_NAME'),\n desc: getEnv('BUSINESS_DESC'),\n url: getEnv('BUSINESS_URL'),\n },\n group: {\n name: getEnv('GROUP_NAME'),\n desc: getEnv('GROUP_DESC'),\n url: getEnv('GROUP_URL'),\n },\n app: {\n name: getEnv('APP_NAME'),\n desc: getEnv('APP_DESC'),\n url: getEnv('APP_URL'),\n logo: getEnv('APP_LOGO'),\n },\n guardBaseUrl: getEnv('GUARD_BASE_URL'),\n identityBaseUrl: getEnv('IDENTITY_BASE_URL'),\n paymentBaseUrl: getEnv('PAYMENT_BASE_URL'),\n clientId: getClientId(),\n});\n\nexport const paths = () => [\n 'translations/en/ngx/packages/common.yaml',\n 'translations/en/ngx/packages/core.yaml',\n 'translations/en/ngx/packages/ui.yaml',\n\n 'translations/en/ngx/apps/admin.yaml',\n];\n\nexport const messages = () => ({\n forbidden: {\n message: {\n title: translate('apps.admin.messages.forbidden.title'),\n desc: translate('apps.admin.messages.forbidden.desc'),\n code: 'ERR-X-000',\n },\n },\n});\n","import { Component, inject } from '@angular/core';\nimport {\n BaseDirective,\n CommonActionType,\n StateService,\n} from '@thescaffold/ngx-core';\nimport { config } from '../app.config';\n\n@Component({\n standalone: false,\n selector: 'x-pages',\n template: `\n <router-outlet></router-outlet>\n\n <!-- misc -->\n <ng-template #loader>\n <x-element-loader></x-element-loader>\n </ng-template>\n\n <ng-template #empty>\n <x-element-blank></x-element-blank>\n </ng-template>\n `,\n styles: [],\n host: { '[attr.x-pages-app-name]': '\"admin\"' },\n})\nexport class PagesComponent extends BaseDirective {\n private readonly stateService = inject(StateService);\n\n override init = () => {\n this.stateService.dispatch({\n type: CommonActionType.APP_CONFIG,\n payload: {\n ...config(),\n },\n });\n };\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { ConsentBarModule, StatusBarModule } from '@thescaffold/ngx-common';\nimport { SharedModule } from '@thescaffold/ngx-core';\nimport {\n ElementsModule,\n LayoutsModule,\n ProgressModule,\n WebgetsModule,\n} from '@thescaffold/ngx-ui';\nimport { PagesComponent } from './pages.component';\n\n@NgModule({\n declarations: [PagesComponent],\n imports: [\n SharedModule,\n RouterModule.forChild([\n {\n path: '',\n component: PagesComponent,\n children: [\n { path: '', pathMatch: 'full', redirectTo: 'orders' },\n {\n // P4.19 — ORD-12 ops queues (rebuilt from the Salama Cycles\n // kanban onto apps/commerce/order).\n path: 'board',\n loadChildren: () =>\n import('./order-board/order-board.module').then((m) => m.OrderBoardModule),\n },\n {\n path: 'orders',\n loadChildren: () =>\n import('./orders/orders.module').then((m) => m.OrdersModule),\n },\n {\n // P4.19 — fulfilment queue: dispatch / deliver / exception.\n path: 'shipments',\n loadChildren: () =>\n import('./shipments/shipments.module').then((m) => m.ShipmentsModule),\n },\n {\n path: 'catalog',\n loadChildren: () =>\n import('./catalog/catalog.module').then((m) => m.CatalogModule),\n },\n {\n path: 'brands',\n loadChildren: () =>\n import('./brands/brands.module').then((m) => m.BrandsModule),\n },\n {\n path: 'categories',\n loadChildren: () =>\n import('./categories/categories.module').then((m) => m.CategoriesModule),\n },\n {\n path: 'attribute-templates',\n loadChildren: () =>\n import('./attribute-templates/attribute-templates.module').then(\n (m) => m.AttributeTemplatesModule,\n ),\n },\n {\n path: 'compatibility-rules',\n loadChildren: () =>\n import('./compatibility-rules/compatibility-rules.module').then(\n (m) => m.CompatibilityRulesModule,\n ),\n },\n {\n path: 'bulk-upload',\n loadChildren: () =>\n import('./bulk-upload/bulk-upload.module').then(\n (m) => m.BulkUploadModule,\n ),\n },\n {\n path: 'data-quality',\n loadChildren: () =>\n import('./data-quality/data-quality.module').then(\n (m) => m.DataQualityModule,\n ),\n },\n {\n path: 'routes',\n loadChildren: () =>\n import('./routes/routes.module').then(\n (m) => m.RoutesModule,\n ),\n },\n {\n path: 'payments',\n loadChildren: () =>\n import('./payments/payments.module').then(\n (m) => m.PaymentsModule,\n ),\n },\n {\n path: 'inbox',\n loadChildren: () =>\n import('./inbox/inbox.module').then((m) => m.InboxModule),\n },\n {\n path: 'referrals',\n loadChildren: () =>\n import('./referrals/referrals.module').then(\n (m) => m.ReferralsModule,\n ),\n },\n {\n // P5.11 — UGC-04 moderation queue.\n path: 'moderation',\n loadChildren: () =>\n import('./moderation/moderation.module').then(\n (m) => m.ModerationModule,\n ),\n },\n {\n // P6.7 — PROMO-06 homepage composer.\n path: 'homepage',\n loadChildren: () =>\n import('./homepage/homepage.module').then(\n (m) => m.HomepageModule,\n ),\n },\n {\n path: 'banners',\n loadChildren: () =>\n import('./banners/banners.module').then((m) => m.BannersModule),\n },\n {\n path: 'flash-sales',\n loadChildren: () =>\n import('./flash-sales/flash-sales.module').then(\n (m) => m.FlashSalesModule,\n ),\n },\n {\n // P6.10 — CMS-01 page builder.\n path: 'content',\n loadChildren: () =>\n import('./content/content.module').then((m) => m.ContentModule),\n },\n {\n // P6.11 — CMS-02 Learn-hub article editor.\n path: 'articles',\n loadChildren: () =>\n import('./articles/articles.module').then((m) => m.ArticlesModule),\n },\n {\n // P6.12 — CMS-03 navigation menu editor.\n path: 'navigation',\n loadChildren: () =>\n import('./navigation/navigation.module').then(\n (m) => m.NavigationModule,\n ),\n },\n {\n // Super-admin-only staff (admin account) management.\n path: 'staff',\n loadChildren: () =>\n import('./staff/staff.module').then((m) => m.StaffModule),\n },\n {\n path: 'users',\n loadChildren: () =>\n import('./users/users.module').then((m) => m.UsersModule),\n },\n {\n path: 'reports',\n loadChildren: () =>\n import('./reports/reports.module').then((m) => m.ReportsModule),\n },\n // P7.1 — ops console section pass (PRD 6.2, TRD 9.2). Standard\n // list/detail views over the commerce API for the sections that\n // had no page yet.\n {\n path: 'customers',\n loadChildren: () =>\n import('./customers/customers.module').then((m) => m.CustomersModule),\n },\n {\n path: 'promotions',\n loadChildren: () =>\n import('./promotions/promotions.module').then(\n (m) => m.PromotionsModule,\n ),\n },\n {\n path: 'coupons',\n loadChildren: () =>\n import('./coupons/coupons.module').then((m) => m.CouponsModule),\n },\n {\n path: 'redirects',\n loadChildren: () =>\n import('./redirects/redirects.module').then(\n (m) => m.RedirectsModule,\n ),\n },\n {\n path: 'stock',\n loadChildren: () =>\n import('./stock/stock.module').then((m) => m.StockModule),\n },\n {\n path: 'returns',\n loadChildren: () =>\n import('./returns/returns.module').then((m) => m.ReturnsModule),\n },\n {\n path: 'claims',\n loadChildren: () =>\n import('./claims/claims.module').then((m) => m.ClaimsModule),\n },\n {\n path: 'disputes',\n loadChildren: () =>\n import('./disputes/disputes.module').then((m) => m.DisputesModule),\n },\n {\n path: 'payouts',\n loadChildren: () =>\n import('./payouts/payouts.module').then((m) => m.PayoutsModule),\n },\n {\n // The signed-in admin's own details + password.\n path: 'profile',\n loadChildren: () =>\n import('./profile/profile.module').then((m) => m.ProfileModule),\n },\n {\n path: 'settings',\n loadChildren: () =>\n import('./settings/settings.module').then((m) => m.SettingsModule),\n },\n {\n // P7.3 — queues + SLA board, cron catalogue.\n path: 'queues',\n loadChildren: () =>\n import('./queues/queues.module').then((m) => m.QueuesModule),\n },\n {\n // P7.5 — SUP-03 canned-response library.\n path: 'macros',\n loadChildren: () =>\n import('./macros/macros.module').then((m) => m.MacrosModule),\n },\n {\n // P7.6 — ADM-14 / SEC-07 audit-log viewer.\n path: 'audit',\n loadChildren: () =>\n import('./audit/audit.module').then((m) => m.AuditModule),\n },\n {\n // P7.14 — N.4 single-order observability trace.\n path: 'trace',\n loadChildren: () =>\n import('./trace/trace.module').then((m) => m.TraceModule),\n },\n {\n // Saved Load & sizing / kit-builder runs, for sales follow-up.\n path: 'tool-sessions',\n loadChildren: () =>\n import('./tool-sessions/tool-sessions.module').then(\n (m) => m.ToolSessionsModule,\n ),\n },\n {\n // P7.7 — SEC-04 / SEC-05 NDPR data-subject requests.\n path: 'data-requests',\n loadChildren: () =>\n import('./data-requests/data-requests.module').then(\n (m) => m.DataRequestsModule,\n ),\n },\n ],\n },\n ]),\n LayoutsModule,\n WebgetsModule,\n ElementsModule,\n ProgressModule,\n StatusBarModule,\n ConsentBarModule,\n ],\n})\nexport class PagesModule {}\n","import { NgModule } from '@angular/core';\nimport { AppModuleDirective } from '@thescaffold/ngx-common';\nimport { PagesModule } from './pages/pages.module';\n\n@NgModule({\n imports: [PagesModule],\n exports: [PagesModule],\n})\nexport class AppModule extends AppModuleDirective {}\n","export { AppModule as AdminAppModule } from './app.module';\nexport { PagesModule } from './pages/pages.module';\n\nexport const routes = {\n root: ['/', 'admin'],\n};\n","/*\n * Public API Surface of admin\n */\n\nexport * from './lib/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAGO,MAAM,MAAM,GAA0B,OAAO;AAClD,IAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACxB,IAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACxB,IAAA,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;AACtB,IAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACxB,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC;AAC7B,QAAA,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC;AAC7B,QAAA,GAAG,EAAE,MAAM,CAAC,cAAc,CAAC;AAC5B,KAAA;AACD,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC;AAC1B,QAAA,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC;AAC1B,QAAA,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC;AACzB,KAAA;AACD,IAAA,GAAG,EAAE;AACH,QAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACxB,QAAA,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC;AACtB,QAAA,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;AACzB,KAAA;AACD,IAAA,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACtC,IAAA,eAAe,EAAE,MAAM,CAAC,mBAAmB,CAAC;AAC5C,IAAA,cAAc,EAAE,MAAM,CAAC,kBAAkB,CAAC;IAC1C,QAAQ,EAAE,WAAW,EAAE;AACxB,CAAA,CAAC;AAEK,MAAM,KAAK,GAAG,MAAM;IACzB,0CAA0C;IAC1C,wCAAwC;IACxC,sCAAsC;IAEtC,qCAAqC;CACtC;AAEM,MAAM,QAAQ,GAAG,OAAO;AAC7B,IAAA,SAAS,EAAE;AACT,QAAA,OAAO,EAAE;AACP,YAAA,KAAK,EAAE,SAAS,CAAC,qCAAqC,CAAC;AACvD,YAAA,IAAI,EAAE,SAAS,CAAC,oCAAoC,CAAC;AACrD,YAAA,IAAI,EAAE,WAAW;AAClB,SAAA;AACF,KAAA;AACF,CAAA,CAAC;;ACpBI,MAAO,cAAe,SAAQ,aAAa,CAAA;AAlBjD,IAAA,WAAA,GAAA;;AAmBmB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QAE3C,IAAA,CAAA,IAAI,GAAG,MAAK;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;gBACzB,IAAI,EAAE,gBAAgB,CAAC,UAAU;AACjC,gBAAA,OAAO,EAAE;AACP,oBAAA,GAAG,MAAM,EAAE;AACZ,iBAAA;AACF,aAAA,CAAC;AACJ,QAAA,CAAC;AACF,IAAA;+GAXY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAff;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAlB1B,SAAS;iCACI,KAAK,EAAA,QAAA,EACP,SAAS,EAAA,QAAA,EACT;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,IAAA,EAEK,EAAE,yBAAyB,EAAE,SAAS,EAAE,EAAA;;;MCuQnC,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,CAlRP,cAAc,CAAA,EAAA,OAAA,EAAA,CAE3B,YAAY,mBAwQZ,aAAa;YACb,aAAa;YACb,cAAc;YACd,cAAc;YACd,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAGP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAhRpB,YAAY;YACZ,YAAY,CAAC,QAAQ,CAAC;AACpB,gBAAA;AACE,oBAAA,IAAI,EAAE,EAAE;AACR,oBAAA,SAAS,EAAE,cAAc;AACzB,oBAAA,QAAQ,EAAE;wBACR,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACrD,wBAAA;;;AAGE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC7E,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;AACxE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,YAAY;AAClB,4BAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC3E,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,qBAAqB;AAC3B,4BAAA,YAAY,EAAE,MACZ,OAAO,8EAAkD,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,qBAAqB;AAC3B,4BAAA,YAAY,EAAE,MACZ,OAAO,8EAAkD,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,aAAa;AACnB,4BAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,cAAc;AACpB,4BAAA,YAAY,EAAE,MACZ,OAAO,uEAAoC,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAC3B;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CACtB;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CACxB;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CACzB;AACJ,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,YAAY;AAClB,4BAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CACxB;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,aAAa;AACnB,4BAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,YAAY;AAClB,4BAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;;;;AAID,wBAAA;AACE,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;AACxE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,YAAY;AAClB,4BAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,WAAW;AACjB,4BAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CACzB;AACJ,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,yBAAA;AACD,wBAAA;AACE,4BAAA,IAAI,EAAE,UAAU;AAChB,4BAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,eAAe;AACrB,4BAAA,YAAY,EAAE,MACZ,OAAO,wEAAsC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAC5B;AACJ,yBAAA;AACD,wBAAA;;AAEE,4BAAA,IAAI,EAAE,eAAe;AACrB,4BAAA,YAAY,EAAE,MACZ,OAAO,wEAAsC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAC5B;AACJ,yBAAA;AACF,qBAAA;AACF,iBAAA;aACF,CAAC;YACF,aAAa;YACb,aAAa;YACb,cAAc;YACd,cAAc;YACd,eAAe;YACf,gBAAgB,CAAA,EAAA,CAAA,CAAA;;4FAGP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAnRvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY,CAAC,QAAQ,CAAC;AACpB,4BAAA;AACE,gCAAA,IAAI,EAAE,EAAE;AACR,gCAAA,SAAS,EAAE,cAAc;AACzB,gCAAA,QAAQ,EAAE;oCACR,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE;AACrD,oCAAA;;;AAGE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC7E,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,WAAW;AACjB,wCAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;AACxE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,YAAY;AAClB,wCAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AAC3E,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,qBAAqB;AAC3B,wCAAA,YAAY,EAAE,MACZ,OAAO,8EAAkD,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,qBAAqB;AAC3B,wCAAA,YAAY,EAAE,MACZ,OAAO,8EAAkD,CAAC,CAAC,IAAI,CAC7D,CAAC,CAAC,KAAK,CAAC,CAAC,wBAAwB,CAClC;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,aAAa;AACnB,wCAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,cAAc;AACpB,wCAAA,YAAY,EAAE,MACZ,OAAO,uEAAoC,CAAC,CAAC,IAAI,CAC/C,CAAC,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAC3B;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CACnC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CACtB;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CACxB;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,WAAW;AACjB,wCAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CACzB;AACJ,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,YAAY;AAClB,wCAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CACvC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CACxB;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,aAAa;AACnB,wCAAA,YAAY,EAAE,MACZ,OAAO,sEAAkC,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,YAAY;AAClB,wCAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;;;;AAID,oCAAA;AACE,wCAAA,IAAI,EAAE,WAAW;AACjB,wCAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC;AACxE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,YAAY;AAClB,wCAAA,YAAY,EAAE,MACZ,OAAO,qEAAgC,CAAC,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAC1B;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,WAAW;AACjB,wCAAA,YAAY,EAAE,MACZ,OAAO,oEAA8B,CAAC,CAAC,IAAI,CACzC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,CACzB;AACJ,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,SAAS;AACf,wCAAA,YAAY,EAAE,MACZ,OAAO,kEAA0B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;AAClE,qCAAA;AACD,oCAAA;AACE,wCAAA,IAAI,EAAE,UAAU;AAChB,wCAAA,YAAY,EAAE,MACZ,OAAO,mEAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC;AACrE,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,QAAQ;AACd,wCAAA,YAAY,EAAE,MACZ,OAAO,iEAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC;AAC/D,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,OAAO;AACb,wCAAA,YAAY,EAAE,MACZ,OAAO,gEAAsB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC;AAC5D,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,eAAe;AACrB,wCAAA,YAAY,EAAE,MACZ,OAAO,wEAAsC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAC5B;AACJ,qCAAA;AACD,oCAAA;;AAEE,wCAAA,IAAI,EAAE,eAAe;AACrB,wCAAA,YAAY,EAAE,MACZ,OAAO,wEAAsC,CAAC,CAAC,IAAI,CACjD,CAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAC5B;AACJ,qCAAA;AACF,iCAAA;AACF,6BAAA;yBACF,CAAC;wBACF,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,cAAc;wBACd,eAAe;wBACf,gBAAgB;AACjB,qBAAA;AACF,iBAAA;;;ACtRK,MAAO,SAAU,SAAQ,kBAAkB,CAAA;+GAApC,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAT,SAAS,EAAA,OAAA,EAAA,CAHV,WAAW,CAAA,EAAA,OAAA,EAAA,CACX,WAAW,CAAA,EAAA,CAAA,CAAA;gHAEV,SAAS,EAAA,OAAA,EAAA,CAHV,WAAW,EACX,WAAW,CAAA,EAAA,CAAA,CAAA;;4FAEV,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,WAAW,CAAC;oBACtB,OAAO,EAAE,CAAC,WAAW,CAAC;AACvB,iBAAA;;;ACJM,MAAM,MAAM,GAAG;AACpB,IAAA,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;;;ACJtB;;AAEG;;ACFH;;AAEG;;;;"}
|