@things-factory/worklist 10.1.234 → 10.1.236

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.
@@ -44,7 +44,27 @@ export interface WorkCalendarSource {
44
44
  applies?(): Promise<boolean>;
45
45
  /** The caller's own entries that fall in [from, to). */
46
46
  load(from: Date, to: Date): Promise<WorkCalendarEntry[]>;
47
+ /**
48
+ * The days in [from, to) that are not worked - weekends, holidays, days off - as local `YYYY-MM-DD`. The calendar
49
+ * paints their cells, whether or not the source's chip is on: they are the frame the day is read through, not an
50
+ * entry in it. Left out, the source paints nothing.
51
+ */
52
+ nonWorkingDays?(from: Date, to: Date): Promise<string[]>;
47
53
  }
54
+ /**
55
+ * A day not worked is painted as the plant calendar paints it - one token, so every calendar of the suite shows a
56
+ * day off alike (@operato/event-view DayState).
57
+ */
58
+ export declare const NON_WORKING_DAY_STATE: {
59
+ readonly name: "non-working";
60
+ readonly color: "var(--calendar-day-state-non-working-background-color, rgba(168, 48, 110, 0.1))";
61
+ };
62
+ /** `YYYY-MM-DD` of a local day. */
63
+ export declare function localDayOf(date: Date): string;
64
+ /** The grid's days that are not worked, keyed by the very Date objects the calendar drew. */
65
+ export declare function nonWorkingStates(days: readonly {
66
+ date: Date;
67
+ }[], notWorked: ReadonlySet<string>): Map<Date, typeof NON_WORKING_DAY_STATE>;
48
68
  export declare function registerWorkCalendarSource(source: WorkCalendarSource): void;
49
69
  export declare function workCalendarSources(): WorkCalendarSource[];
50
70
  /**
@@ -8,6 +8,26 @@
8
8
  *
9
9
  * A source that fails is said as such on the calendar - never read as a day with nothing on it.
10
10
  */
11
+ /**
12
+ * A day not worked is painted as the plant calendar paints it - one token, so every calendar of the suite shows a
13
+ * day off alike (@operato/event-view DayState).
14
+ */
15
+ export const NON_WORKING_DAY_STATE = {
16
+ name: 'non-working',
17
+ color: 'var(--calendar-day-state-non-working-background-color, rgba(168, 48, 110, 0.1))'
18
+ };
19
+ /** `YYYY-MM-DD` of a local day. */
20
+ export function localDayOf(date) {
21
+ return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`;
22
+ }
23
+ /** The grid's days that are not worked, keyed by the very Date objects the calendar drew. */
24
+ export function nonWorkingStates(days, notWorked) {
25
+ const states = new Map();
26
+ for (const { date } of days)
27
+ if (notWorked.has(localDayOf(date)))
28
+ states.set(date, NON_WORKING_DAY_STATE);
29
+ return states;
30
+ }
11
31
  const SOURCES = new Map();
12
32
  export function registerWorkCalendarSource(source) {
13
33
  SOURCES.set(source.key, source);
@@ -1 +1 @@
1
- {"version":3,"file":"work-calendar-sources.js","sourceRoot":"","sources":["../client/work-calendar-sources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyCH,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8B,CAAA;AAErD,MAAM,UAAU,0BAA0B,CAAC,MAA0B;IACnE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;AAC9B,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA6B;IACjE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5H,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;QAC7B,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAA;IACrD,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAA6D;IAClG,MAAM,OAAO,GAAwB,EAAE,CAAA;IACvC,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACxE,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QAClC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;aAC7D,CAAC;YACJ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC5B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4B,EAAE,QAAgB,EAAE,KAAa;IACxF,MAAM,QAAQ,GAAG,OAAO;SACrB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,IAAI,QAAQ,CAAC;SACtE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACtI,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;IACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;AAC1D,CAAC","sourcesContent":["/**\n * What else a person's work calendar shows — **the calendar is worklist's, what goes on it is not all worklist's.**\n *\n * 「내 업무 달력」 answers \"what must I do on which day\". The to-dos and approvals are worklist's own; a meeting I am\n * called to, a day my leave starts, are other modules' facts on the same day. A product registers a source for each:\n * it reads only the caller's own entries, through doors of its own, and says where an entry opens. worklist places\n * them with its own on the grid, in one order, under one per-day limit, and gives each a chip to show or hide it.\n *\n * A source that fails is said as such on the calendar - never read as a day with nothing on it.\n */\n\nexport interface WorkCalendarEntry {\n /** Unique within its source. */\n id: string\n /** What the entry is, in a line. */\n name: string\n /** When it falls - its time is shown, its day places it. */\n date: string | Date\n /**\n * 0 - to act on that day (a due item, a meeting, my own leave) · 1 - arrived that day · 2 - over (done, cancelled) ·\n * 3 - someone else's day (a colleague on leave): after everything of one's own, so a department's leave never pushes\n * one's own work past the day's limit.\n */\n rank: 0 | 1 | 2 | 3\n /** 0..3, the most urgent last - the colour of the entry. */\n priority?: number\n /** Material Symbols name drawn before it. */\n icon?: string\n /** Where it opens - none when the person may not open it; the entry is then shown, not linked. */\n href?: string\n /** What the entry's place means, for the tooltip - 「due this day」, 「meeting at 09:00」. */\n note?: string\n /** The whole day - a day of leave, a payday: no time is drawn, as none was ever set. */\n allDay?: boolean\n}\n\nexport interface WorkCalendarSource {\n /** Unique - a second registration with the same key replaces the first. */\n key: string\n /** What its filter chip says, in the reader's language - asked each time it is drawn. */\n label(): string\n /**\n * Whether the source has anything for this person at all - a department's leave for one who heads none does not.\n * Asked once when the calendar opens; a source that does not apply gets no chip. Left out, it applies.\n */\n applies?(): Promise<boolean>\n /** The caller's own entries that fall in [from, to). */\n load(from: Date, to: Date): Promise<WorkCalendarEntry[]>\n}\n\nconst SOURCES = new Map<string, WorkCalendarSource>()\n\nexport function registerWorkCalendarSource(source: WorkCalendarSource): void {\n SOURCES.set(source.key, source)\n}\n\nexport function workCalendarSources(): WorkCalendarSource[] {\n return [...SOURCES.values()]\n}\n\n/**\n * The sources that have anything for this person - asked apart, so one that cannot answer is kept: its chip then says\n * it was not read, rather than the calendar dropping it as if it had nothing.\n */\nexport async function applyingSources(sources: WorkCalendarSource[]): Promise<WorkCalendarSource[]> {\n const answers = await Promise.allSettled(sources.map(source => (source.applies ? source.applies() : Promise.resolve(true))))\n return sources.filter((_, index) => {\n const answer = answers[index]\n return answer.status === 'rejected' || answer.value\n })\n}\n\n/**\n * Every source asked apart, for one window: one that fails leaves the others' entries, and `failed` names it - a\n * calendar that read nothing from a source must not look like a week with nothing in it.\n */\nexport async function loadWorkCalendar(loads: [key: string, entries: Promise<WorkCalendarEntry[]>][]): Promise<{ entries: WorkCalendarEntry[]; failed: string[] }> {\n const entries: WorkCalendarEntry[] = []\n const failed: string[] = []\n const outcomes = await Promise.allSettled(loads.map(([, load]) => load))\n outcomes.forEach((outcome, index) => {\n if (outcome.status === 'fulfilled') entries.push(...outcome.value)\n else {\n failed.push(loads[index][0])\n console.error(outcome.reason)\n }\n })\n return { entries, failed }\n}\n\n/**\n * One day's entries in the order they are drawn, cut to the limit **after** ordering: what is to be done that day\n * first, then what arrived that day, then what is over; within each the more urgent, then the earlier. `hidden` is\n * how many the limit left out - said as a number, never as more rows.\n */\nexport function entriesOfDay(entries: WorkCalendarEntry[], localDay: string, limit: number) {\n const ofTheDay = entries\n .filter(entry => new Date(entry.date).toLocaleDateString() == localDay)\n .sort((a, b) => a.rank - b.rank || (b.priority || 0) - (a.priority || 0) || new Date(a.date).getTime() - new Date(b.date).getTime())\n const shown = ofTheDay.slice(0, limit)\n return { shown, hidden: ofTheDay.length - shown.length }\n}\n"]}
1
+ {"version":3,"file":"work-calendar-sources.js","sourceRoot":"","sources":["../client/work-calendar-sources.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * What else a person's work calendar shows — **the calendar is worklist's, what goes on it is not all worklist's.**\n *\n * 「내 업무 달력」 answers \"what must I do on which day\". The to-dos and approvals are worklist's own; a meeting I am\n * called to, a day my leave starts, are other modules' facts on the same day. A product registers a source for each:\n * it reads only the caller's own entries, through doors of its own, and says where an entry opens. worklist places\n * them with its own on the grid, in one order, under one per-day limit, and gives each a chip to show or hide it.\n *\n * A source that fails is said as such on the calendar - never read as a day with nothing on it.\n */\n\nexport interface WorkCalendarEntry {\n /** Unique within its source. */\n id: string\n /** What the entry is, in a line. */\n name: string\n /** When it falls - its time is shown, its day places it. */\n date: string | Date\n /**\n * 0 - to act on that day (a due item, a meeting, my own leave) · 1 - arrived that day · 2 - over (done, cancelled) ·\n * 3 - someone else's day (a colleague on leave): after everything of one's own, so a department's leave never pushes\n * one's own work past the day's limit.\n */\n rank: 0 | 1 | 2 | 3\n /** 0..3, the most urgent last - the colour of the entry. */\n priority?: number\n /** Material Symbols name drawn before it. */\n icon?: string\n /** Where it opens - none when the person may not open it; the entry is then shown, not linked. */\n href?: string\n /** What the entry's place means, for the tooltip - 「due this day」, 「meeting at 09:00」. */\n note?: string\n /** The whole day - a day of leave, a payday: no time is drawn, as none was ever set. */\n allDay?: boolean\n}\n\nexport interface WorkCalendarSource {\n /** Unique - a second registration with the same key replaces the first. */\n key: string\n /** What its filter chip says, in the reader's language - asked each time it is drawn. */\n label(): string\n /**\n * Whether the source has anything for this person at all - a department's leave for one who heads none does not.\n * Asked once when the calendar opens; a source that does not apply gets no chip. Left out, it applies.\n */\n applies?(): Promise<boolean>\n /** The caller's own entries that fall in [from, to). */\n load(from: Date, to: Date): Promise<WorkCalendarEntry[]>\n /**\n * The days in [from, to) that are not worked - weekends, holidays, days off - as local `YYYY-MM-DD`. The calendar\n * paints their cells, whether or not the source's chip is on: they are the frame the day is read through, not an\n * entry in it. Left out, the source paints nothing.\n */\n nonWorkingDays?(from: Date, to: Date): Promise<string[]>\n}\n\n/**\n * A day not worked is painted as the plant calendar paints it - one token, so every calendar of the suite shows a\n * day off alike (@operato/event-view DayState).\n */\nexport const NON_WORKING_DAY_STATE = {\n name: 'non-working',\n color: 'var(--calendar-day-state-non-working-background-color, rgba(168, 48, 110, 0.1))'\n} as const\n\n/** `YYYY-MM-DD` of a local day. */\nexport function localDayOf(date: Date): string {\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`\n}\n\n/** The grid's days that are not worked, keyed by the very Date objects the calendar drew. */\nexport function nonWorkingStates(days: readonly { date: Date }[], notWorked: ReadonlySet<string>): Map<Date, typeof NON_WORKING_DAY_STATE> {\n const states = new Map<Date, typeof NON_WORKING_DAY_STATE>()\n for (const { date } of days) if (notWorked.has(localDayOf(date))) states.set(date, NON_WORKING_DAY_STATE)\n return states\n}\n\nconst SOURCES = new Map<string, WorkCalendarSource>()\n\nexport function registerWorkCalendarSource(source: WorkCalendarSource): void {\n SOURCES.set(source.key, source)\n}\n\nexport function workCalendarSources(): WorkCalendarSource[] {\n return [...SOURCES.values()]\n}\n\n/**\n * The sources that have anything for this person - asked apart, so one that cannot answer is kept: its chip then says\n * it was not read, rather than the calendar dropping it as if it had nothing.\n */\nexport async function applyingSources(sources: WorkCalendarSource[]): Promise<WorkCalendarSource[]> {\n const answers = await Promise.allSettled(sources.map(source => (source.applies ? source.applies() : Promise.resolve(true))))\n return sources.filter((_, index) => {\n const answer = answers[index]\n return answer.status === 'rejected' || answer.value\n })\n}\n\n/**\n * Every source asked apart, for one window: one that fails leaves the others' entries, and `failed` names it - a\n * calendar that read nothing from a source must not look like a week with nothing in it.\n */\nexport async function loadWorkCalendar(loads: [key: string, entries: Promise<WorkCalendarEntry[]>][]): Promise<{ entries: WorkCalendarEntry[]; failed: string[] }> {\n const entries: WorkCalendarEntry[] = []\n const failed: string[] = []\n const outcomes = await Promise.allSettled(loads.map(([, load]) => load))\n outcomes.forEach((outcome, index) => {\n if (outcome.status === 'fulfilled') entries.push(...outcome.value)\n else {\n failed.push(loads[index][0])\n console.error(outcome.reason)\n }\n })\n return { entries, failed }\n}\n\n/**\n * One day's entries in the order they are drawn, cut to the limit **after** ordering: what is to be done that day\n * first, then what arrived that day, then what is over; within each the more urgent, then the earlier. `hidden` is\n * how many the limit left out - said as a number, never as more rows.\n */\nexport function entriesOfDay(entries: WorkCalendarEntry[], localDay: string, limit: number) {\n const ofTheDay = entries\n .filter(entry => new Date(entry.date).toLocaleDateString() == localDay)\n .sort((a, b) => a.rank - b.rank || (b.priority || 0) - (a.priority || 0) || new Date(a.date).getTime() - new Date(b.date).getTime())\n const shown = ofTheDay.slice(0, limit)\n return { shown, hidden: ofTheDay.length - shown.length }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/worklist",
3
- "version": "10.1.234",
3
+ "version": "10.1.236",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "exports": {
@@ -56,14 +56,14 @@
56
56
  "@operato/popup": "^10.29.43",
57
57
  "@things-factory/attachment-base": "^10.1.234",
58
58
  "@things-factory/auth-base": "^10.1.234",
59
- "@things-factory/board-service": "^10.1.234",
59
+ "@things-factory/board-service": "^10.1.236",
60
60
  "@things-factory/context-ui": "^10.1.234",
61
61
  "@things-factory/i18n-base": "^10.1.234",
62
- "@things-factory/notification": "^10.1.234",
63
- "@things-factory/organization": "^10.1.234",
62
+ "@things-factory/notification": "^10.1.236",
63
+ "@things-factory/organization": "^10.1.236",
64
64
  "@things-factory/personalization": "^10.1.234",
65
65
  "@things-factory/scheduler-client": "^10.1.234",
66
66
  "@things-factory/shell": "^10.1.234"
67
67
  },
68
- "gitHead": "92f29853680fff527a5f1d167ab3ad9b27837ba9"
68
+ "gitHead": "1560112ae8ae5a5d296b4fce1d5a1be05e30e8c2"
69
69
  }