@weaver-apps/service-desk 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,74 @@
1
+ import { s as serviceDeskHost, t as SERVICE_DESK_GATEWAY } from "./weaver-apps-service-desk-service-desk-gateway-BK42Rgow.mjs";
2
+ import { n as deskPath } from "./weaver-apps-service-desk-service-desk-paths-BmQrbz-V.mjs";
3
+ import * as i0 from "@angular/core";
4
+ import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, inject, resource } from "@angular/core";
5
+ import { TranslocoPipe } from "@jsverse/transloco";
6
+ var DeskListPage = class DeskListPage {
7
+ gateway = inject(SERVICE_DESK_GATEWAY);
8
+ desks = resource({
9
+ ...ngDevMode ? { debugName: "desks" } : /* istanbul ignore next */ {},
10
+ loader: () => this.gateway.desks()
11
+ });
12
+ open(deskId) {
13
+ serviceDeskHost.navigate(deskPath(deskId));
14
+ }
15
+ async create() {
16
+ const name = await serviceDeskHost.ui.prompt({
17
+ title: "weaver-apps-service-desk.desks.create",
18
+ message: "weaver-apps-service-desk.desks.createMessage",
19
+ confirmLabel: "weaver-apps-service-desk.desks.createConfirm"
20
+ });
21
+ if (!name?.trim()) return;
22
+ try {
23
+ const desk = await this.gateway.saveDesk(crypto.randomUUID(), name.trim());
24
+ this.open(desk.id);
25
+ } catch {
26
+ serviceDeskHost.ui.toast({
27
+ message: "weaver-apps-service-desk.errors.create",
28
+ kind: "error"
29
+ });
30
+ }
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({
33
+ minVersion: "12.0.0",
34
+ version: "22.2.3",
35
+ ngImport: i0,
36
+ type: DeskListPage,
37
+ deps: [],
38
+ target: i0.ɵɵFactoryTarget.Component
39
+ });
40
+ static ɵcmp = i0.ɵɵngDeclareComponent({
41
+ minVersion: "17.0.0",
42
+ version: "22.2.3",
43
+ type: DeskListPage,
44
+ isStandalone: true,
45
+ selector: "wa-desk-list-page",
46
+ ngImport: i0,
47
+ template: "<div class=\"flex h-full flex-col gap-4 overflow-auto p-6\">\n <div class=\"flex items-center justify-between gap-4\">\n <h2 class=\"text-lg font-semibold text-content\">{{ 'weaver-apps-service-desk.desks.title' | transloco }}</h2>\n <button type=\"button\" class=\"lw-btn lw-btn--primary\" (click)=\"create()\">{{ 'weaver-apps-service-desk.desks.create' | transloco }}</button>\n </div>\n @if (desks.error()) {\n <p class=\"text-sm text-negative\" role=\"alert\">{{ 'weaver-apps-service-desk.errors.load' | transloco }}</p>\n } @else if (desks.hasValue()) {\n <ul role=\"list\" class=\"divide-y divide-border rounded-xl border border-border bg-surface\">\n @for (desk of desks.value(); track desk.id) {\n <li>\n <button type=\"button\" class=\"flex w-full items-center gap-3 px-4 py-3 text-left text-sm text-content hover:bg-surface-overlay\" (click)=\"open(desk.id)\">\n <lw-icon name=\"weaver-apps-service-desk.desk\" size=\"1.25rem\"></lw-icon>\n <span>{{ desk.name }}</span>\n </button>\n </li>\n } @empty {\n <li class=\"px-4 py-8 text-center text-sm text-content-faint\">{{ 'weaver-apps-service-desk.desks.empty' | transloco }}</li>\n }\n </ul>\n }\n</div>\n",
48
+ dependencies: [{
49
+ kind: "pipe",
50
+ type: TranslocoPipe,
51
+ name: "transloco"
52
+ }],
53
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
54
+ });
55
+ };
56
+ i0.ɵɵngDeclareClassMetadata({
57
+ minVersion: "12.0.0",
58
+ version: "22.2.3",
59
+ ngImport: i0,
60
+ type: DeskListPage,
61
+ decorators: [{
62
+ type: Component,
63
+ args: [{
64
+ selector: "wa-desk-list-page",
65
+ imports: [TranslocoPipe],
66
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
67
+ changeDetection: ChangeDetectionStrategy.OnPush,
68
+ template: "<div class=\"flex h-full flex-col gap-4 overflow-auto p-6\">\n <div class=\"flex items-center justify-between gap-4\">\n <h2 class=\"text-lg font-semibold text-content\">{{ 'weaver-apps-service-desk.desks.title' | transloco }}</h2>\n <button type=\"button\" class=\"lw-btn lw-btn--primary\" (click)=\"create()\">{{ 'weaver-apps-service-desk.desks.create' | transloco }}</button>\n </div>\n @if (desks.error()) {\n <p class=\"text-sm text-negative\" role=\"alert\">{{ 'weaver-apps-service-desk.errors.load' | transloco }}</p>\n } @else if (desks.hasValue()) {\n <ul role=\"list\" class=\"divide-y divide-border rounded-xl border border-border bg-surface\">\n @for (desk of desks.value(); track desk.id) {\n <li>\n <button type=\"button\" class=\"flex w-full items-center gap-3 px-4 py-3 text-left text-sm text-content hover:bg-surface-overlay\" (click)=\"open(desk.id)\">\n <lw-icon name=\"weaver-apps-service-desk.desk\" size=\"1.25rem\"></lw-icon>\n <span>{{ desk.name }}</span>\n </button>\n </li>\n } @empty {\n <li class=\"px-4 py-8 text-center text-sm text-content-faint\">{{ 'weaver-apps-service-desk.desks.empty' | transloco }}</li>\n }\n </ul>\n }\n</div>\n"
69
+ }]
70
+ }]
71
+ });
72
+ export { DeskListPage };
73
+
74
+ //# sourceMappingURL=weaver-apps-service-desk-desk-list-page-DPxs6zRX.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weaver-apps-service-desk-desk-list-page-DPxs6zRX.mjs","names":[],"sources":["../../../../libs/service-desk/src/lib/views/desk-list-page.ts","../../../../libs/service-desk/src/lib/views/desk-list-page.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, inject, resource } from '@angular/core';\nimport { TranslocoPipe } from '@jsverse/transloco';\nimport { SERVICE_DESK_GATEWAY } from '../gateway/service-desk-gateway';\nimport { serviceDeskHost } from '../plugin/service-desk-host';\nimport { deskPath } from '../plugin/service-desk-paths';\n\n@Component({\n selector: 'wa-desk-list-page',\n imports: [TranslocoPipe],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n templateUrl: './desk-list-page.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DeskListPage {\n private readonly gateway = inject(SERVICE_DESK_GATEWAY);\n\n protected readonly desks = resource({ loader: () => this.gateway.desks() });\n\n protected open(deskId: string): void {\n serviceDeskHost.navigate(deskPath(deskId));\n }\n\n protected async create(): Promise<void> {\n const name = await serviceDeskHost.ui.prompt({\n title: 'weaver-apps-service-desk.desks.create',\n message: 'weaver-apps-service-desk.desks.createMessage',\n confirmLabel: 'weaver-apps-service-desk.desks.createConfirm',\n });\n if (!name?.trim()) {\n return;\n }\n try {\n const desk = await this.gateway.saveDesk(crypto.randomUUID(), name.trim());\n this.open(desk.id);\n } catch {\n serviceDeskHost.ui.toast({ message: 'weaver-apps-service-desk.errors.create', kind: 'error' });\n }\n }\n}\n","<div class=\"flex h-full flex-col gap-4 overflow-auto p-6\">\n <div class=\"flex items-center justify-between gap-4\">\n <h2 class=\"text-lg font-semibold text-content\">{{ 'weaver-apps-service-desk.desks.title' | transloco }}</h2>\n <button type=\"button\" class=\"lw-btn lw-btn--primary\" (click)=\"create()\">{{ 'weaver-apps-service-desk.desks.create' | transloco }}</button>\n </div>\n @if (desks.error()) {\n <p class=\"text-sm text-negative\" role=\"alert\">{{ 'weaver-apps-service-desk.errors.load' | transloco }}</p>\n } @else if (desks.hasValue()) {\n <ul role=\"list\" class=\"divide-y divide-border rounded-xl border border-border bg-surface\">\n @for (desk of desks.value(); track desk.id) {\n <li>\n <button type=\"button\" class=\"flex w-full items-center gap-3 px-4 py-3 text-left text-sm text-content hover:bg-surface-overlay\" (click)=\"open(desk.id)\">\n <lw-icon name=\"weaver-apps-service-desk.desk\" size=\"1.25rem\"></lw-icon>\n <span>{{ desk.name }}</span>\n </button>\n </li>\n } @empty {\n <li class=\"px-4 py-8 text-center text-sm text-content-faint\">{{ 'weaver-apps-service-desk.desks.empty' | transloco }}</li>\n }\n </ul>\n }\n</div>\n"],"mappings":";;;;;AAaA,IAAa,eAAb,MAAa,aAAY;CACN,UAAU,OAAO,oBAAoB;CAEnC,QAAQ,SAAQ;EAAA,GAAA,YAAA,EAAA,WAAA,QAAA,+BAAA,CAAA;EAAG,cAAc,KAAK,QAAQ,MAAK;CAAE,CAAA;CAE9D,KAAK,QAAc;EAC3B,gBAAgB,SAAS,SAAS,MAAM,CAAC;CAC3C;CAEU,MAAM,SAAM;EACpB,MAAM,OAAO,MAAM,gBAAgB,GAAG,OAAO;GAC3C,OAAO;GACP,SAAS;GACT,cAAc;EACf,CAAA;EACD,IAAI,CAAC,MAAM,KAAI,GACb;EAEF,IAAI;GACF,MAAM,OAAO,MAAM,KAAK,QAAQ,SAAS,OAAO,WAAU,GAAI,KAAK,KAAI,CAAE;GACzE,KAAK,KAAK,KAAK,EAAE;EACnB,QAAQ;GACN,gBAAgB,GAAG,MAAM;IAAE,SAAS;IAA0C,MAAM;GAAO,CAAE;EAC/F;CACF;CAxBW,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAY,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAZ,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAY,cAAA;EAAA,UAAA;EAAA,UAAA;EAAA,UCbzB;EAsBA,cAAA,CAAA;GAAA,MAAA;GAAA,MDdY;GAAa,MAAA;EAAA,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAKZ,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAY,YAAA,CAAA;EAPxB,MAAA;EACW,MAAA,CAAA;GAAA,UAAA;GAAmB,SACpB,CAAC,aAAa;GAAC,SACf,CAAC,sBAAsB;GAAC,iBAEhB,wBAAwB;GAAM,UAAA;EAAA,CAAA"}