estela 0.3.4 → 0.4.1

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.
Files changed (45) hide show
  1. package/README.md +106 -0
  2. package/dist/billing/assign.d.ts +11 -1
  3. package/dist/billing/assign.js +59 -1
  4. package/dist/billing/sessionize.d.ts +6 -0
  5. package/dist/billing/sessionize.js +24 -5
  6. package/dist/cli.js +1106 -8
  7. package/dist/db/schema.js +101 -0
  8. package/dist/db/store.d.ts +28 -0
  9. package/dist/db/store.js +120 -1
  10. package/dist/delivery/clients.d.ts +52 -0
  11. package/dist/delivery/clients.js +94 -0
  12. package/dist/delivery/github.d.ts +21 -0
  13. package/dist/delivery/github.js +123 -0
  14. package/dist/delivery/gitlab.d.ts +38 -0
  15. package/dist/delivery/gitlab.js +146 -0
  16. package/dist/delivery/report.d.ts +55 -0
  17. package/dist/delivery/report.js +124 -0
  18. package/dist/delivery/source.d.ts +68 -0
  19. package/dist/delivery/source.js +3 -0
  20. package/dist/export/csv.d.ts +14 -0
  21. package/dist/export/csv.js +78 -0
  22. package/dist/export/finance.d.ts +79 -0
  23. package/dist/export/finance.js +208 -0
  24. package/dist/i18n/en.js +171 -0
  25. package/dist/metrics/spend.d.ts +83 -0
  26. package/dist/metrics/spend.js +167 -0
  27. package/dist/metrics/undelivered.d.ts +104 -0
  28. package/dist/metrics/undelivered.js +199 -0
  29. package/dist/server.js +21 -1
  30. package/dist/watchers/git.d.ts +40 -0
  31. package/dist/watchers/git.js +87 -0
  32. package/node_modules/@estela/shared/dist/money.d.ts +2 -0
  33. package/node_modules/@estela/shared/dist/money.d.ts.map +1 -1
  34. package/node_modules/@estela/shared/dist/money.js +7 -7
  35. package/node_modules/@estela/shared/dist/money.js.map +1 -1
  36. package/node_modules/@estela/shared/dist/types.d.ts +2 -0
  37. package/node_modules/@estela/shared/dist/types.d.ts.map +1 -1
  38. package/node_modules/@estela/shared/dist/workitems.d.ts +13 -2
  39. package/node_modules/@estela/shared/dist/workitems.d.ts.map +1 -1
  40. package/node_modules/@estela/shared/dist/workitems.js +8 -2
  41. package/node_modules/@estela/shared/dist/workitems.js.map +1 -1
  42. package/package.json +1 -1
  43. package/web/app.css +5 -0
  44. package/web/app.js +42 -10
  45. package/web/i18n.js +10 -0
@@ -11,6 +11,8 @@
11
11
  * perdería entero.
12
12
  */
13
13
  export type Currency = "EUR" | "USD" | "GBP" | "MXN" | "COP" | "ARS" | "CLP" | "PEN" | "BRL";
14
+ /** Decimales de la unidad menor por moneda (ISO 4217). */
15
+ export declare const MINOR_UNIT_DIGITS: Record<Currency, number>;
14
16
  /** Importe facturable. `amount` son unidades menores enteras de `currency`. */
15
17
  export interface Money {
16
18
  readonly amount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAO7F,+EAA+E;AAC/E,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,6EAA6E;AAC7E,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,MAAwB,CAAC;AAEpD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAK/D;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAenE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAGlD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAS3E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1D;AAQD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAQ3E;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,CAGxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAI9E;AAaD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAiC;AAErF,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,SAAqB,GAAG,MAAM,CAQzE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAIjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG5C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQtD"}
1
+ {"version":3,"file":"money.d.ts","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAE7F,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAEtD,CAAC;AAEF,+EAA+E;AAC/E,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED,6EAA6E;AAC7E,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,MAAwB,CAAC;AAEpD,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAK/D;AAED,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAenE;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAGlD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK,CAS3E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE1D;AAQD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAQ3E;AAED,6EAA6E;AAC7E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAEhF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,GAAG,KAAK,CAGxE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAI9E;AAaD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAiC;AAErF,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,SAAqB,GAAG,MAAM,CAQzE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAIjD;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG5C;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQtD"}
@@ -12,7 +12,7 @@
12
12
  * perdería entero.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.ZERO_AI_COST = void 0;
15
+ exports.ZERO_AI_COST = exports.MINOR_UNIT_DIGITS = void 0;
16
16
  exports.money = money;
17
17
  exports.parseMoney = parseMoney;
18
18
  exports.addMoney = addMoney;
@@ -30,7 +30,7 @@ exports.formatAiCost = formatAiCost;
30
30
  exports.localDate = localDate;
31
31
  exports.formatDuration = formatDuration;
32
32
  /** Decimales de la unidad menor por moneda (ISO 4217). */
33
- const MINOR_UNIT_DIGITS = {
33
+ exports.MINOR_UNIT_DIGITS = {
34
34
  EUR: 2, USD: 2, GBP: 2, MXN: 2, COP: 2, ARS: 2, CLP: 0, PEN: 2, BRL: 2,
35
35
  };
36
36
  exports.ZERO_AI_COST = { microUsd: 0 };
@@ -46,7 +46,7 @@ function parseMoney(input, currency) {
46
46
  if (!/^-?\d+(\.\d+)?$/.test(trimmed)) {
47
47
  throw new TypeError(`Importe no reconocido: "${input}"`);
48
48
  }
49
- const digits = MINOR_UNIT_DIGITS[currency];
49
+ const digits = exports.MINOR_UNIT_DIGITS[currency];
50
50
  const [whole = "0", frac = ""] = trimmed.split(".");
51
51
  const negative = whole.startsWith("-");
52
52
  const wholeDigits = negative ? whole.slice(1) : whole;
@@ -96,8 +96,8 @@ function convertMoney(from, to, rate) {
96
96
  if (!(rate > 0) || !Number.isFinite(rate)) {
97
97
  throw new TypeError(`Tipo de cambio inválido: ${rate}`);
98
98
  }
99
- const fromDigits = MINOR_UNIT_DIGITS[from.currency];
100
- const toDigits = MINOR_UNIT_DIGITS[to];
99
+ const fromDigits = exports.MINOR_UNIT_DIGITS[from.currency];
100
+ const toDigits = exports.MINOR_UNIT_DIGITS[to];
101
101
  const major = from.amount / 10 ** fromDigits;
102
102
  return { amount: Math.round(major * rate * 10 ** toDigits), currency: to };
103
103
  }
@@ -138,7 +138,7 @@ const SYMBOLS = {
138
138
  let defaultMoneyLocale = "es-EC";
139
139
  function setMoneyLocale(locale) { defaultMoneyLocale = locale; }
140
140
  function formatMoney(m, locale = defaultMoneyLocale) {
141
- const digits = MINOR_UNIT_DIGITS[m.currency];
141
+ const digits = exports.MINOR_UNIT_DIGITS[m.currency];
142
142
  const value = (m.amount / 10 ** digits).toLocaleString(locale, {
143
143
  minimumFractionDigits: digits,
144
144
  maximumFractionDigits: digits,
@@ -152,7 +152,7 @@ function formatMoney(m, locale = defaultMoneyLocale) {
152
152
  * ticket), donde los céntimos solo estorban.
153
153
  */
154
154
  function formatMoneyWhole(m) {
155
- const value = Math.round(m.amount / 10 ** MINOR_UNIT_DIGITS[m.currency]).toLocaleString("en-US");
155
+ const value = Math.round(m.amount / 10 ** exports.MINOR_UNIT_DIGITS[m.currency]).toLocaleString("en-US");
156
156
  const symbol = SYMBOLS[m.currency];
157
157
  return symbol ? `${symbol}${value}` : `${value} ${m.currency}`;
158
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"money.js","sourceRoot":"","sources":["../src/money.ts"],"names":[],"mappings":"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"}
@@ -286,6 +286,8 @@ export interface TimeEntry {
286
286
  * base siempre viene, aunque sea vacío.
287
287
  */
288
288
  readonly workItems?: readonly string[];
289
+ /** Si los tickets se pusieron a mano (`estela entry link`). Solo al leer de la base. */
290
+ readonly workItemsManual?: boolean;
289
291
  }
290
292
  export interface InvoiceLine {
291
293
  readonly description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMtD,uCAAuC;AACvC,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEtF;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,UAEzB,CAAC;AAEF,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,qFAAqF;IACrF,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAMD;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,cAAc,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,cAAc,CAAC;AAE9C,4EAA4E;AAC5E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CACnC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACjC;AAED;;;;;;GAMG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAE/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI3D,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,UAAU,GAAG,aAAa,CAAC;IAClD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CACnC;AAED;;;;;GAKG;AACH;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAE3D,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,QAAQ,GAChB,aAAa,GACb,SAAS,GACT,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,CAAC;AAEZ,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAQrD,CAAC;AAEF,8EAA8E;AAC9E,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,kDAAkD;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,0EAA0E;IAC1E,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,KAAK,GAAG,IAAI,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAID;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,CAAC;AAEvC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,CAAC;AAEnD;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAEpD,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,qCAAqC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,mEAAmE;AACnE,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC;CACjC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,16 @@ export interface WorkItemTracker {
21
21
  * nada que no empiece así se confunde con un ticket.
22
22
  */
23
23
  readonly prefixes: readonly string[];
24
+ /**
25
+ * La etiqueta que marca lo planificado (`estela delivery`). Sin ella, el
26
+ * informe solo enseña lo entregado.
27
+ */
28
+ readonly planLabel?: string;
29
+ /**
30
+ * Prefijo de las etiquetas que dicen qué cliente pidió algo (`cliente:acme`).
31
+ * Sin configurar se usa `cliente:`.
32
+ */
33
+ readonly clientLabel?: string;
24
34
  }
25
35
  /**
26
36
  * Claves normalizadas (`jira:PROJ-12`, `azure:1234`, `github:12`), primero las
@@ -32,11 +42,12 @@ export interface WorkItemTracker {
32
42
  * el gestor no se sabe de quién es.
33
43
  */
34
44
  export declare function extractWorkItems(branch: string | null, subjects: readonly string[], tracker?: WorkItemTracker | null): string[];
35
- /** Cómo se enseña una clave: `PROJ-12`, `AB#1234`, `#12`. */
45
+ /** Cómo se enseña una clave: `PROJ-12`, `AB#1234`, `#12`, `!45` (merge request de GitLab). */
36
46
  export declare function formatWorkItem(key: string): string;
37
47
  export declare function splitWorkItem(key: string): [TrackerSystem, string];
38
48
  /**
39
- * Lo que escribe alguien a mano (`PROJ-12`, `AB#1234`, `#12`, `1234`) a clave
49
+ * Lo que escribe alguien a mano (`PROJ-12`, `AB#1234`, `#12`, `1234`, y `!45`
50
+ * para una merge request de GitLab) a clave
40
51
  * normalizada, con el gestor del proyecto para lo ambiguo. `null` si no se
41
52
  * puede saber de qué gestor es.
42
53
  */
@@ -1 +1 @@
1
- {"version":3,"file":"workitems.d.ts","sourceRoot":"","sources":["../src/workitems.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnE,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA0C,CAAC;AAE/F,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAC/B,MAAM,EAAE,CAqBV;AA0CD,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAKlD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAGlE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAS3F"}
1
+ {"version":3,"file":"workitems.d.ts","sourceRoot":"","sources":["../src/workitems.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEnE,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAA0C,CAAC;AAE/F,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAC/B,MAAM,EAAE,CAqBV;AA0CD,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAW3F"}
@@ -103,11 +103,13 @@ function branchNumber(branch) {
103
103
  return null;
104
104
  return m[1].replace(/^0+/, "") || null;
105
105
  }
106
- /** Cómo se enseña una clave: `PROJ-12`, `AB#1234`, `#12`. */
106
+ /** Cómo se enseña una clave: `PROJ-12`, `AB#1234`, `#12`, `!45` (merge request de GitLab). */
107
107
  function formatWorkItem(key) {
108
108
  const [system, id] = splitWorkItem(key);
109
109
  if (system === "azure")
110
110
  return `AB#${id}`;
111
+ if (system === "gitlab" && id.startsWith("!"))
112
+ return id;
111
113
  if (system === "github" || system === "gitlab")
112
114
  return `#${id}`;
113
115
  return id;
@@ -117,7 +119,8 @@ function splitWorkItem(key) {
117
119
  return [key.slice(0, i), key.slice(i + 1)];
118
120
  }
119
121
  /**
120
- * Lo que escribe alguien a mano (`PROJ-12`, `AB#1234`, `#12`, `1234`) a clave
122
+ * Lo que escribe alguien a mano (`PROJ-12`, `AB#1234`, `#12`, `1234`, y `!45`
123
+ * para una merge request de GitLab) a clave
121
124
  * normalizada, con el gestor del proyecto para lo ambiguo. `null` si no se
122
125
  * puede saber de qué gestor es.
123
126
  */
@@ -129,6 +132,9 @@ function parseWorkItem(text, tracker) {
129
132
  m = /^([A-Za-z][A-Za-z0-9]+)-(\d+)$/.exec(t);
130
133
  if (m)
131
134
  return `jira:${m[1].toUpperCase()}-${m[2]}`;
135
+ m = /^!(\d+)$/.exec(t);
136
+ if (m)
137
+ return tracker?.system === "gitlab" ? `gitlab:!${m[1]}` : null;
132
138
  m = /^#?(\d+)$/.exec(t);
133
139
  if (m && tracker && tracker.system !== "jira")
134
140
  return `${tracker.system}:${m[1]}`;
@@ -1 +1 @@
1
- {"version":3,"file":"workitems.js","sourceRoot":"","sources":["../src/workitems.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workitems.js","sourceRoot":"","sources":["../src/workitems.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "estela",
3
- "version": "0.3.4",
3
+ "version": "0.4.1",
4
4
  "description": "Time tracking you never fill in: rebuilds your billable hours from Claude Code, Codex and GitHub Copilot sessions and your Git history, and splits what the AI cost per project.",
5
5
  "keywords": [
6
6
  "time-tracking",
package/web/app.css CHANGED
@@ -433,6 +433,11 @@ main.wide { max-width: 1180px; }
433
433
  font-size: .83rem; color: var(--ink-3); margin-top: 3px;
434
434
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
435
435
  }
436
+ /* Lo facturado y lo pendiente del periodo: debajo, en pequeño, porque es la
437
+ explicación del total y no otro total. */
438
+ .prow-split {
439
+ font-size: .8rem; color: var(--ink-3); margin-top: 4px; font-variant-numeric: tabular-nums;
440
+ }
436
441
  .prow-figs { text-align: right; flex: none; }
437
442
  .prow-hours {
438
443
  font-size: 1.05rem; font-weight: 580; font-variant-numeric: tabular-nums;
package/web/app.js CHANGED
@@ -11,7 +11,11 @@ const state = {
11
11
  date: localToday(),
12
12
  day: null,
13
13
  summary: null,
14
+ // Cada pantalla con su periodo: compartirlo hacía que "Todo lo pendiente"
15
+ // de Informes cambiara en silencio el Resumen a 3 meses, con "Este mes"
16
+ // todavía marcado.
14
17
  period: "month",
18
+ reportsPeriod: "month",
15
19
  open: new Set(),
16
20
  };
17
21
 
@@ -427,7 +431,7 @@ function haceCuanto(days) {
427
431
  // ── Resumen: todos los proyectos a la vez ──────────────────────────────
428
432
 
429
433
  async function loadSummary() {
430
- const { from, to } = periodRange(state.period === "all" ? "quarter" : state.period);
434
+ const { from, to } = periodRange(state.period);
431
435
  // La cuota es siempre de esta semana, sea cual sea el periodo elegido: si
432
436
  // fallara, el resumen se pinta igual y la tarjeta simplemente no sale.
433
437
  const [summary, quota] = await Promise.all([
@@ -441,7 +445,10 @@ async function loadSummary() {
441
445
 
442
446
  function renderSummary() {
443
447
  const s = state.summary;
448
+ // Las fechas, siempre: un total sin su periodo al lado se compara con otro
449
+ // que tiene uno distinto y parece que no cuadra.
444
450
  $("#summary-range").textContent =
451
+ `${tr("summary.range", { from: s.from, to: s.to })} · ` +
445
452
  `${tr("summary.projects", { n: s.activeProjects })} · ${tr("summary.days", { n: s.activeDays })}`;
446
453
 
447
454
  // Con varias monedas se enseñan todas: un guion parecería que falta un dato.
@@ -490,7 +497,7 @@ function renderSummary() {
490
497
  $("#summary-body").innerHTML = parts.join("");
491
498
 
492
499
  $("#approve-all")?.addEventListener("click", async () => {
493
- const { from, to } = periodRange(state.period === "all" ? "quarter" : state.period);
500
+ const { from, to } = periodRange(state.period);
494
501
  try {
495
502
  const r = await api("/api/approve-range", {
496
503
  method: "POST", body: JSON.stringify({ from, to }),
@@ -646,6 +653,7 @@ function renderProjectRow(p) {
646
653
  <div class="prow-name">${esc(p.projectName)} ${flag}${notBillable}</div>
647
654
  <div class="prow-meta">${esc(p.clientName)}${rate ? ` · ${rate}/h` : ""} ·
648
655
  ${tr("project.days", { n: p.days })} · ${tr("project.lastSeen", { date: esc(p.lastDay) })}</div>
656
+ ${billingSplit(p)}
649
657
  </div>
650
658
  <div class="prow-figs">
651
659
  <div class="prow-hours">${fmtDuration(p.seconds)}</div>
@@ -654,6 +662,29 @@ function renderProjectRow(p) {
654
662
  </div>`;
655
663
  }
656
664
 
665
+ /* De lo trabajado en el periodo, qué ya está en una factura y qué falta por
666
+ facturar. Lo pendiente es la misma cifra que da Informes para esas fechas:
667
+ sin esta línea, el total del Resumen (que incluye lo facturado) y lo
668
+ pendiente de Informes parecen dos cuentas que no cuadran. Solo sale cuando
669
+ hay mezcla; si todo está pendiente, el total ya lo dice. */
670
+ function billingSplit(p) {
671
+ if (p.kind !== "client") return "";
672
+ if (!p.invoicedSeconds && !p.notBillableSeconds) return "";
673
+ const parts = [];
674
+ if (p.invoicedSeconds) {
675
+ parts.push(tr("project.split.invoiced", { duration: fmtDuration(p.invoicedSeconds),
676
+ invoices: p.invoices?.length ? ` (${p.invoices.join(", ")})` : "" }));
677
+ }
678
+ if (p.unbilledSeconds) {
679
+ const money = p.unbilledMinor === null ? "" : ` · ${fmtMoney(p.unbilledMinor, p.currency)}`;
680
+ parts.push(tr("project.split.pending", { duration: fmtDuration(p.unbilledSeconds), amount: money }));
681
+ } else {
682
+ parts.push(tr("project.split.nothingPending"));
683
+ }
684
+ if (p.notBillableSeconds) parts.push(tr("project.split.notBillable", { duration: fmtDuration(p.notBillableSeconds) }));
685
+ return `<div class="prow-split">${esc(parts.join(" · "))}</div>`;
686
+ }
687
+
657
688
  function renderActivity(c) {
658
689
  const when = new Date(c.at).toLocaleDateString(localeTag(), { day: "numeric", month: "short" });
659
690
  return `
@@ -1409,7 +1440,7 @@ state.reportsOpen = new Set();
1409
1440
  async function loadReports() {
1410
1441
  // Mismo periodo que Resumen: si las dos pantallas contestan a la misma
1411
1442
  // pregunta, tienen que dar el mismo número.
1412
- const { from, to } = periodRange(state.period);
1443
+ const { from, to } = periodRange(state.reportsPeriod);
1413
1444
  const [overview, facturado] = await Promise.all([
1414
1445
  api(`/api/overview?from=${from}&to=${to}`),
1415
1446
  // Lo emitido no depende del periodo elegido: una factura de agosto sigue
@@ -1426,10 +1457,10 @@ function renderReports() {
1426
1457
  const parts = [];
1427
1458
 
1428
1459
  parts.push(`<div class="filters" id="rep-periods">
1429
- <button type="button" class="period${state.period === "week" ? " is-on" : ""}" data-period="week">${tr("period.week")}</button>
1430
- <button type="button" class="period${state.period === "month" ? " is-on" : ""}" data-period="month">${tr("period.month")}</button>
1431
- <button type="button" class="period${state.period === "quarter" ? " is-on" : ""}" data-period="quarter">${tr("period.quarter")}</button>
1432
- <button type="button" class="period${state.period === "all" ? " is-on" : ""}" data-period="all">${tr("period.all")}</button>
1460
+ <button type="button" class="period${state.reportsPeriod === "week" ? " is-on" : ""}" data-period="week">${tr("period.week")}</button>
1461
+ <button type="button" class="period${state.reportsPeriod === "month" ? " is-on" : ""}" data-period="month">${tr("period.month")}</button>
1462
+ <button type="button" class="period${state.reportsPeriod === "quarter" ? " is-on" : ""}" data-period="quarter">${tr("period.quarter")}</button>
1463
+ <button type="button" class="period${state.reportsPeriod === "all" ? " is-on" : ""}" data-period="all">${tr("period.all")}</button>
1433
1464
  </div>`);
1434
1465
 
1435
1466
  const fuera = overview.outsideRange;
@@ -1550,7 +1581,7 @@ function renderReports() {
1550
1581
 
1551
1582
  document.querySelectorAll("#rep-periods .period").forEach((btn) => {
1552
1583
  btn.addEventListener("click", () => {
1553
- state.period = btn.dataset.period; state.reportsAll = false; loadReports();
1584
+ state.reportsPeriod = btn.dataset.period; state.reportsAll = false; loadReports();
1554
1585
  });
1555
1586
  });
1556
1587
 
@@ -1710,10 +1741,11 @@ function showView(name) {
1710
1741
  if (name === "projects") loadProjects();
1711
1742
  }
1712
1743
 
1713
- document.querySelectorAll(".period").forEach((btn) => {
1744
+ // Solo los del Resumen: los de Equipo e Informes llevan su propio periodo.
1745
+ document.querySelectorAll("#periods .period").forEach((btn) => {
1714
1746
  btn.addEventListener("click", () => {
1715
1747
  state.period = btn.dataset.period;
1716
- document.querySelectorAll(".period").forEach((b) => b.classList.toggle("is-on", b === btn));
1748
+ document.querySelectorAll("#periods .period").forEach((b) => b.classList.toggle("is-on", b === btn));
1717
1749
  loadSummary();
1718
1750
  });
1719
1751
  });
package/web/i18n.js CHANGED
@@ -128,6 +128,7 @@
128
128
  "toast.blocksApproved": { one: "1 bloque aprobado", other: "{n} bloques aprobados" },
129
129
 
130
130
  // ── Resumen ──
131
+ "summary.range": "{from} → {to}",
131
132
  "summary.projects": { one: "1 proyecto con actividad", other: "{n} proyectos con actividad" },
132
133
  "summary.days": { one: "1 día trabajado", other: "{n} días trabajados" },
133
134
  "summary.value": "valor del trabajo",
@@ -162,6 +163,10 @@
162
163
  "project.pendingTitle": "Ir al día más reciente con bloques sin revisar",
163
164
  "project.days": { one: "1 día", other: "{n} días" },
164
165
  "project.lastSeen": "última vez {date}",
166
+ "project.split.invoiced": "Ya facturado: {duration}{invoices}",
167
+ "project.split.pending": "Pendiente de facturar: {duration}{amount}",
168
+ "project.split.nothingPending": "Nada pendiente de facturar",
169
+ "project.split.notBillable": "No facturable: {duration}",
165
170
 
166
171
  // ── Equipo ──
167
172
  "team.people": { one: "1 persona", other: "{n} personas" },
@@ -446,6 +451,7 @@
446
451
  "toast.blocksApproved": { one: "1 block approved", other: "{n} blocks approved" },
447
452
 
448
453
  // ── Summary ──
454
+ "summary.range": "{from} → {to}",
449
455
  "summary.projects": { one: "1 project with activity", other: "{n} projects with activity" },
450
456
  "summary.days": { one: "1 day worked", other: "{n} days worked" },
451
457
  "summary.value": "value of work",
@@ -480,6 +486,10 @@
480
486
  "project.pendingTitle": "Go to the most recent day with unreviewed blocks",
481
487
  "project.days": { one: "1 day", other: "{n} days" },
482
488
  "project.lastSeen": "last {date}",
489
+ "project.split.invoiced": "Already invoiced: {duration}{invoices}",
490
+ "project.split.pending": "Not yet invoiced: {duration}{amount}",
491
+ "project.split.nothingPending": "Nothing left to invoice",
492
+ "project.split.notBillable": "Not billable: {duration}",
483
493
 
484
494
  // ── Team ──
485
495
  "team.people": { one: "1 person", other: "{n} people" },