@flowselections/dashboard-planner-installatie-techniek 1.0.40 → 1.0.42

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.
@@ -40,6 +40,7 @@ export const Constants = {
40
40
  "afleverbrief",
41
41
  "veilingbrief",
42
42
  "traysticker",
43
+ "eigen_sticker",
43
44
  ],
44
45
  doc_orientation: ["portrait", "landscape"],
45
46
  exact_env: ["staging", "live"],
@@ -0,0 +1,10 @@
1
+ export declare const MAX_NOTITIE_LENGTE = 2000;
2
+ /** YYYY-MM-DD plus `dagen` kalenderdagen (Amsterdamse datum als basis). */
3
+ export declare function verschuifDag(datum: string, dagen: number): string;
4
+ /** "vandaag", "morgen", "gisteren" of "do 5 nov". */
5
+ export declare function dagNaam(datum: string, nu?: Date): string;
6
+ export declare function knipNotitie(tekst: string): string;
7
+ export declare const PUNT = "\u2022 ";
8
+ /** Zet "• " voor elke regel; lege tekst blijft leeg, bestaande punten blijven. */
9
+ export declare function metPunten(tekst: string): string;
10
+ //# sourceMappingURL=dashboard-dagnotities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-dagnotities.d.ts","sourceRoot":"","sources":["../../src/lib/dashboard-dagnotities.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,OAAO,CAAC;AAEvC,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIjE;AAKD,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAE,IAAiB,GAAG,MAAM,CAOpE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,eAAO,MAAM,IAAI,YAAO,CAAC;AAEzB,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -0,0 +1,32 @@
1
+ import { dashboardDatum } from "./dashboard-constanten";
2
+ export const MAX_NOTITIE_LENGTE = 2000;
3
+ /** YYYY-MM-DD plus `dagen` kalenderdagen (Amsterdamse datum als basis). */
4
+ export function verschuifDag(datum, dagen) {
5
+ const d = new Date(`${datum}T12:00:00Z`);
6
+ d.setUTCDate(d.getUTCDate() + dagen);
7
+ return d.toISOString().slice(0, 10);
8
+ }
9
+ const DAGEN = ["zo", "ma", "di", "wo", "do", "vr", "za"];
10
+ const MAANDEN = ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"];
11
+ /** "vandaag", "morgen", "gisteren" of "do 5 nov". */
12
+ export function dagNaam(datum, nu = new Date()) {
13
+ const vandaag = dashboardDatum(nu);
14
+ if (datum === vandaag)
15
+ return "vandaag";
16
+ if (datum === verschuifDag(vandaag, 1))
17
+ return "morgen";
18
+ if (datum === verschuifDag(vandaag, -1))
19
+ return "gisteren";
20
+ const d = new Date(`${datum}T12:00:00Z`);
21
+ return `${DAGEN[d.getUTCDay()]} ${d.getUTCDate()} ${MAANDEN[d.getUTCMonth()]}`;
22
+ }
23
+ export function knipNotitie(tekst) {
24
+ return tekst.slice(0, MAX_NOTITIE_LENGTE);
25
+ }
26
+ export const PUNT = "• ";
27
+ /** Zet "• " voor elke regel; lege tekst blijft leeg, bestaande punten blijven. */
28
+ export function metPunten(tekst) {
29
+ if (tekst === "")
30
+ return "";
31
+ return tekst.split("\n").map((r) => (r.startsWith(PUNT) ? r : r.startsWith("•") ? PUNT + r.slice(1).trimStart() : PUNT + r)).join("\n");
32
+ }
@@ -5,7 +5,11 @@ export interface ModuleTegel {
5
5
  /** Uitleg bij het getal; leeg = tegel zonder getal. */
6
6
  getalLabel: string;
7
7
  kpi: keyof DashboardKpis | null;
8
+ /** Kandidaatpaden van de echte module, in voorkeursvolgorde. */
9
+ paden: readonly string[];
8
10
  }
9
11
  export declare const MODULE_TEGELS: readonly ModuleTegel[];
10
12
  export declare function vindModuleTegel(key: string): ModuleTegel | undefined;
13
+ /** Eerste pad dat de shell echt kent; null = module niet in deze shell. */
14
+ export declare function kiesModulePad(tegel: ModuleTegel, bekendePaden: Iterable<string>): string | null;
11
15
  //# sourceMappingURL=dashboard-planner-installatie-techniek.modules.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-planner-installatie-techniek.modules.d.ts","sourceRoot":"","sources":["../../src/lib/dashboard-planner-installatie-techniek.modules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;CACjC;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAO/C,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE"}
1
+ {"version":3,"file":"dashboard-planner-installatie-techniek.modules.d.ts","sourceRoot":"","sources":["../../src/lib/dashboard-planner-installatie-techniek.modules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAGpF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IAChC,gEAAgE;IAChE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAMD,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAO/C,CAAC;AAEF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAEpE;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAG/F"}
@@ -1,11 +1,20 @@
1
+ import { PLANNER_SNELKOPPELINGEN } from "./dashboard-snelkoppelingen.catalogus";
2
+ function paden(catalogusTitel) {
3
+ return PLANNER_SNELKOPPELINGEN.find((m) => m.titel === catalogusTitel)?.paden ?? [];
4
+ }
1
5
  export const MODULE_TEGELS = [
2
- { key: "e-mail", titel: "E-mail", getalLabel: "te controleren", kpi: "mailsTeControleren" },
3
- { key: "werkbonnen", titel: "Werkbonnen", getalLabel: "niet gefactureerd", kpi: "werkbonnenOpen" },
4
- { key: "urenregistratie", titel: "Urenregistratie", getalLabel: "te beoordelen", kpi: "urenTeBeoordelen" },
5
- { key: "planning", titel: "Planning", getalLabel: "niet ingepland", kpi: "planningNietIngepland" },
6
- { key: "offertes", titel: "Offertes", getalLabel: "meerwerkmeldingen", kpi: "offertesMeerwerk" },
7
- { key: "facturen", titel: "Facturen", getalLabel: "te factureren", kpi: "facturenTeFactureren" },
6
+ { key: "e-mail", titel: "E-mail", getalLabel: "te controleren", kpi: "mailsTeControleren", paden: paden("E-mail (planner)") },
7
+ { key: "werkbonnen", titel: "Werkbonnen", getalLabel: "niet gefactureerd", kpi: "werkbonnenOpen", paden: paden("Werkbonnen (planner)") },
8
+ { key: "urenregistratie", titel: "Urenregistratie", getalLabel: "te beoordelen", kpi: "urenTeBeoordelen", paden: paden("Urenregistratie (planner)") },
9
+ { key: "planning", titel: "Planning", getalLabel: "niet ingepland", kpi: "planningNietIngepland", paden: paden("Planning (planner)") },
10
+ { key: "offertes", titel: "Offertes", getalLabel: "meerwerkmeldingen", kpi: "offertesMeerwerk", paden: paden("Offertes (planner)") },
11
+ { key: "facturen", titel: "Facturen", getalLabel: "te factureren", kpi: "facturenTeFactureren", paden: paden("Facturen (planner)") },
8
12
  ];
9
13
  export function vindModuleTegel(key) {
10
14
  return MODULE_TEGELS.find((m) => m.key === key);
11
15
  }
16
+ /** Eerste pad dat de shell echt kent; null = module niet in deze shell. */
17
+ export function kiesModulePad(tegel, bekendePaden) {
18
+ const set = new Set(Array.from(bekendePaden, (p) => p.replace(/\/+$/, "") || "/"));
19
+ return tegel.paden.find((p) => set.has(p)) ?? null;
20
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/dashboard-planner-installatie-techniek",
3
- "version": "1.0.40",
3
+ "version": "1.0.42",
4
4
  "flowselections": {
5
5
  "moduleId": "dashboard-planner-installatie-techniek",
6
6
  "pages": [
@@ -118,7 +118,7 @@
118
118
  "devDependencies": {
119
119
  "@cloudflare/vite-plugin": "^1.25.5",
120
120
  "@eslint/js": "^9.32.0",
121
- "@flowselections/core": "1.0.30",
121
+ "@flowselections/core": "1.0.35",
122
122
  "@lovable.dev/vite-tanstack-config": "2.26.5",
123
123
  "@rsbuild/core": "^1.0.0",
124
124
  "@tailwindcss/vite": "^4.2.1",