@apia/scheduler-controller 4.0.28
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/dist/index.d.ts +132 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +540 -0
- package/dist/index.js.map +1 -0
- package/package.json +40 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { ButtonProps } from 'theme-ui';
|
|
2
|
+
import { TableController, CellState } from '@apia/table2-controller';
|
|
3
|
+
|
|
4
|
+
type TSchedulerState = {
|
|
5
|
+
data?: TScheduleResult;
|
|
6
|
+
initialProps: IScheduleInitialProps;
|
|
7
|
+
url?: string;
|
|
8
|
+
selectedCell?: string | null;
|
|
9
|
+
focusStage?: string;
|
|
10
|
+
stageList?: string[];
|
|
11
|
+
selectedDay?: ISelectedDay;
|
|
12
|
+
stageData: IStage[];
|
|
13
|
+
isStageMounted: Record<string, boolean>;
|
|
14
|
+
isLoading?: 'NotLoading' | 'Today' | 'LastWeek' | 'DateInput' | 'NextWeek' | 'DeleteWeek';
|
|
15
|
+
};
|
|
16
|
+
type TSelectedDateResponse = {
|
|
17
|
+
success: boolean;
|
|
18
|
+
};
|
|
19
|
+
type TTskSchHour = {
|
|
20
|
+
hour: string;
|
|
21
|
+
disabled: boolean;
|
|
22
|
+
value: string;
|
|
23
|
+
};
|
|
24
|
+
type TTskSchDay = {
|
|
25
|
+
type: string;
|
|
26
|
+
day: string;
|
|
27
|
+
tskSchHour?: TTskSchHour | TTskSchHour[];
|
|
28
|
+
isDisabled?: boolean;
|
|
29
|
+
};
|
|
30
|
+
type TScheduleResult = {
|
|
31
|
+
calId: string;
|
|
32
|
+
mode: string;
|
|
33
|
+
overassign: string;
|
|
34
|
+
weekNotConfigured: boolean;
|
|
35
|
+
frec: string;
|
|
36
|
+
tskSchId: string;
|
|
37
|
+
mondayWeek: string;
|
|
38
|
+
success: boolean;
|
|
39
|
+
tskSchDay: TTskSchDay | TTskSchDay[];
|
|
40
|
+
};
|
|
41
|
+
interface IScheduleInitialProps {
|
|
42
|
+
schId: string;
|
|
43
|
+
proId: string;
|
|
44
|
+
proVerId: string;
|
|
45
|
+
tskId: string;
|
|
46
|
+
showDisponibility: string;
|
|
47
|
+
showAttributes: string;
|
|
48
|
+
}
|
|
49
|
+
interface ILabelSelectedDay {
|
|
50
|
+
hour: string;
|
|
51
|
+
day?: string | undefined;
|
|
52
|
+
}
|
|
53
|
+
interface ISelectedDay {
|
|
54
|
+
hour?: string;
|
|
55
|
+
day?: string;
|
|
56
|
+
mondayWeek?: string;
|
|
57
|
+
dayNumber?: number;
|
|
58
|
+
morningOrAfternoonSelected?: number | null;
|
|
59
|
+
}
|
|
60
|
+
interface IStage {
|
|
61
|
+
name: string;
|
|
62
|
+
buttons?: IStageButton[];
|
|
63
|
+
}
|
|
64
|
+
interface IStageButton extends ButtonProps {
|
|
65
|
+
label: string;
|
|
66
|
+
title: string;
|
|
67
|
+
action: () => unknown;
|
|
68
|
+
isDisabled?: boolean;
|
|
69
|
+
value?: string;
|
|
70
|
+
isSelectedSelector: () => boolean;
|
|
71
|
+
}
|
|
72
|
+
type TSchInfoResult = {
|
|
73
|
+
pro_instances: {
|
|
74
|
+
pro_instance: TProcesses;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
type TProcesses = {
|
|
78
|
+
id: number;
|
|
79
|
+
attributes: {
|
|
80
|
+
attribute: {
|
|
81
|
+
title: string;
|
|
82
|
+
value: string;
|
|
83
|
+
}[];
|
|
84
|
+
};
|
|
85
|
+
}[];
|
|
86
|
+
|
|
87
|
+
interface ISchedulerDataRetriever {
|
|
88
|
+
markDay(weekDay: string, hour: string, dayNumber: number): Promise<void>;
|
|
89
|
+
deleteDate(): Promise<boolean>;
|
|
90
|
+
loadWeek(weekDay: string, schId: string, proId: string, proVerId: string, tskId: string): Promise<TScheduleResult | null>;
|
|
91
|
+
loadInfo(schId: string, weekDay: string, dayNumber: number, hour: string): Promise<TProcesses | []>;
|
|
92
|
+
}
|
|
93
|
+
declare class Scheduler {
|
|
94
|
+
retriever: ISchedulerDataRetriever;
|
|
95
|
+
type?: "RescheduleTskScheduler" | "Scheduler" | undefined;
|
|
96
|
+
state: TSchedulerState;
|
|
97
|
+
private inited;
|
|
98
|
+
protected readonly _tableController: TableController;
|
|
99
|
+
constructor(properties: IScheduleInitialProps, retriever: ISchedulerDataRetriever, type?: "RescheduleTskScheduler" | "Scheduler" | undefined);
|
|
100
|
+
getState(): TSchedulerState;
|
|
101
|
+
setState(newState: Partial<TSchedulerState>): void;
|
|
102
|
+
get tableController(): TableController;
|
|
103
|
+
loadWeek(weekDay?: string): Promise<boolean>;
|
|
104
|
+
loadInfo(): Promise<{
|
|
105
|
+
id: number;
|
|
106
|
+
attributes: {
|
|
107
|
+
attribute: {
|
|
108
|
+
title: string;
|
|
109
|
+
value: string;
|
|
110
|
+
}[];
|
|
111
|
+
};
|
|
112
|
+
}[]>;
|
|
113
|
+
private parseRows;
|
|
114
|
+
private isMorningTime;
|
|
115
|
+
setDay(day: ISelectedDay): void;
|
|
116
|
+
setStage({ index, newStage }: {
|
|
117
|
+
index: number;
|
|
118
|
+
newStage: IStage;
|
|
119
|
+
}): void;
|
|
120
|
+
syncStage(day: TTskSchDay, hour: number): void;
|
|
121
|
+
makeDaysStage(data?: TScheduleResult): void;
|
|
122
|
+
private makeMorningOrAfternoonStage;
|
|
123
|
+
private makeHoursStage;
|
|
124
|
+
deleteDate(): Promise<void>;
|
|
125
|
+
goNextWeek(): Promise<void>;
|
|
126
|
+
goPreviousWeek(): Promise<void>;
|
|
127
|
+
parsedDateLabel: () => string;
|
|
128
|
+
getSchedulerColumns(data: TScheduleResult | null): CellState[];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export { type ILabelSelectedDay, type IScheduleInitialProps, type ISchedulerDataRetriever, type ISelectedDay, type IStage, type IStageButton, Scheduler, type TProcesses, type TSchInfoResult, type TScheduleResult, type TSchedulerState, type TSelectedDateResponse, type TTskSchDay, type TTskSchHour };
|
|
132
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
import { TableController } from '@apia/table2-controller';
|
|
2
|
+
import { getLabel, arrayOrArray, noNaN } from '@apia/util';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import { getLabel as getLabel$1 } from '@apia/util/src/labels';
|
|
5
|
+
import { makeObservable } from 'mobx';
|
|
6
|
+
|
|
7
|
+
[
|
|
8
|
+
getLabel("lblTskDayMon").text,
|
|
9
|
+
getLabel("lblTskDayTue").text,
|
|
10
|
+
getLabel("lblTskDayWed").text,
|
|
11
|
+
getLabel("lblTskDayThu").text,
|
|
12
|
+
getLabel("lblTskDayFri").text,
|
|
13
|
+
getLabel("lblTskDaySat").text,
|
|
14
|
+
getLabel("lblTskDaySun").text
|
|
15
|
+
];
|
|
16
|
+
const dayFullWord = [
|
|
17
|
+
getLabel("lblDomingo").text,
|
|
18
|
+
getLabel("lblLunes").text,
|
|
19
|
+
getLabel("lblMartes").text,
|
|
20
|
+
getLabel("lblMiercoles").text,
|
|
21
|
+
getLabel("lblJueves").text,
|
|
22
|
+
getLabel("lblViernes").text,
|
|
23
|
+
getLabel("lblSabado").text
|
|
24
|
+
];
|
|
25
|
+
const monthLabels = [
|
|
26
|
+
getLabel("lblEnero").text,
|
|
27
|
+
getLabel("lblFebrero").text,
|
|
28
|
+
getLabel("lblMarzo").text,
|
|
29
|
+
getLabel("lblAbril").text,
|
|
30
|
+
getLabel("lblMayo").text,
|
|
31
|
+
getLabel("lblJunio").text,
|
|
32
|
+
getLabel("lblJulio").text,
|
|
33
|
+
getLabel("lblAgosto").text,
|
|
34
|
+
getLabel("lblSeptiembre").text,
|
|
35
|
+
getLabel("lblOctubre").text,
|
|
36
|
+
getLabel("lblNoviembre").text,
|
|
37
|
+
getLabel("lblDiciembre").text
|
|
38
|
+
];
|
|
39
|
+
|
|
40
|
+
var __defProp = Object.defineProperty;
|
|
41
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
42
|
+
var __publicField = (obj, key, value) => {
|
|
43
|
+
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
44
|
+
return value;
|
|
45
|
+
};
|
|
46
|
+
const dateFormat = "DD/MM/YYYY";
|
|
47
|
+
function getCurrentDate() {
|
|
48
|
+
return dayjs().format(dateFormat);
|
|
49
|
+
}
|
|
50
|
+
const initState = {
|
|
51
|
+
isStageMounted: {},
|
|
52
|
+
stageData: [],
|
|
53
|
+
isLoading: "NotLoading",
|
|
54
|
+
initialProps: {
|
|
55
|
+
schId: "",
|
|
56
|
+
proId: "",
|
|
57
|
+
proVerId: "",
|
|
58
|
+
tskId: "",
|
|
59
|
+
showDisponibility: "false",
|
|
60
|
+
showAttributes: "false"
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
class Scheduler {
|
|
64
|
+
constructor(properties, retriever, type) {
|
|
65
|
+
this.retriever = retriever;
|
|
66
|
+
this.type = type;
|
|
67
|
+
__publicField(this, "state");
|
|
68
|
+
__publicField(this, "inited", false);
|
|
69
|
+
__publicField(this, "_tableController", new TableController({
|
|
70
|
+
allowEdition: false,
|
|
71
|
+
allowSelection: false,
|
|
72
|
+
isSelectionMultiple: false,
|
|
73
|
+
allowResize: false
|
|
74
|
+
}));
|
|
75
|
+
__publicField(this, "parsedDateLabel", () => {
|
|
76
|
+
const mondayWeek = this.state?.data?.mondayWeek;
|
|
77
|
+
if (!mondayWeek) {
|
|
78
|
+
return "";
|
|
79
|
+
} else {
|
|
80
|
+
const monday = dayjs(mondayWeek, dateFormat);
|
|
81
|
+
const sunday = monday.add(6, "day");
|
|
82
|
+
const mondayDate = noNaN(monday.date());
|
|
83
|
+
const sundayDate = noNaN(sunday.date());
|
|
84
|
+
const mondayMonth = noNaN(monday.month());
|
|
85
|
+
const sundayMonth = noNaN(sunday.month());
|
|
86
|
+
const mondayYear = noNaN(monday.year());
|
|
87
|
+
const sundayYear = noNaN(sunday.year());
|
|
88
|
+
const getMonthLabel = (monthIndex) => monthLabels[monthIndex];
|
|
89
|
+
if (mondayDate > sundayDate && mondayMonth < sundayMonth) {
|
|
90
|
+
return `${mondayDate} de ${getMonthLabel(mondayMonth)} - ${sundayDate} de ${getMonthLabel(sundayMonth)}, ${mondayYear}`;
|
|
91
|
+
}
|
|
92
|
+
if (mondayMonth > sundayMonth) {
|
|
93
|
+
return `${mondayDate} de ${getMonthLabel(mondayMonth)}, ${mondayYear} - ${sundayDate} de ${getMonthLabel(sundayMonth)}, ${sundayYear}`;
|
|
94
|
+
}
|
|
95
|
+
return `${mondayDate} - ${sundayDate} de ${getMonthLabel(mondayMonth)}, ${mondayYear}`;
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
this.state = initState;
|
|
99
|
+
this.state.initialProps = properties;
|
|
100
|
+
makeObservable(this, { state: true, getState: true });
|
|
101
|
+
}
|
|
102
|
+
getState() {
|
|
103
|
+
return this.state;
|
|
104
|
+
}
|
|
105
|
+
setState(newState) {
|
|
106
|
+
Object.entries(newState).forEach(([key, value]) => {
|
|
107
|
+
this.state[key] = value;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
get tableController() {
|
|
111
|
+
return this._tableController;
|
|
112
|
+
}
|
|
113
|
+
async loadWeek(weekDay = getCurrentDate()) {
|
|
114
|
+
const { schId, proId, proVerId, tskId } = this.state.initialProps;
|
|
115
|
+
const data = await this.retriever.loadWeek(
|
|
116
|
+
weekDay,
|
|
117
|
+
schId,
|
|
118
|
+
proId,
|
|
119
|
+
proVerId,
|
|
120
|
+
tskId
|
|
121
|
+
);
|
|
122
|
+
if (data) {
|
|
123
|
+
this.state.data = data;
|
|
124
|
+
this.makeDaysStage(data);
|
|
125
|
+
const rows = this.parseRows(data);
|
|
126
|
+
if (!this.inited) {
|
|
127
|
+
this.inited = true;
|
|
128
|
+
const tableJson = {
|
|
129
|
+
columns: this.getSchedulerColumns(data),
|
|
130
|
+
rows,
|
|
131
|
+
filters: []
|
|
132
|
+
};
|
|
133
|
+
this.tableController.build(tableJson);
|
|
134
|
+
} else {
|
|
135
|
+
this.tableController.head.getState("rows").forEach((r) => {
|
|
136
|
+
r.cells.forEach((cell, cellIndex) => {
|
|
137
|
+
const newCell = this.getSchedulerColumns(data)[cellIndex];
|
|
138
|
+
if (newCell) {
|
|
139
|
+
if (cellIndex !== 0) {
|
|
140
|
+
cell.setState((cellState) => {
|
|
141
|
+
return {
|
|
142
|
+
...cellState,
|
|
143
|
+
content: newCell.content
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
this.tableController.body.getState("rows").forEach((r, i) => {
|
|
151
|
+
r.cells.forEach((cell, cellIndex) => {
|
|
152
|
+
const newCell = rows[i]?.cells?.[cellIndex];
|
|
153
|
+
if (newCell) {
|
|
154
|
+
cell.setState((cellState) => {
|
|
155
|
+
return {
|
|
156
|
+
...cellState,
|
|
157
|
+
content: newCell.content,
|
|
158
|
+
properties: newCell.properties,
|
|
159
|
+
domProperties: newCell.domProperties
|
|
160
|
+
};
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
this.state.isLoading = "NotLoading";
|
|
167
|
+
return true;
|
|
168
|
+
} else {
|
|
169
|
+
this.state.isLoading = "NotLoading";
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
async loadInfo() {
|
|
174
|
+
if (this.state.data?.tskSchId && this.state.data?.mondayWeek && this.state.selectedDay?.dayNumber && this.state.selectedDay?.hour) {
|
|
175
|
+
const processes = await this.retriever.loadInfo(
|
|
176
|
+
this.state.data.tskSchId,
|
|
177
|
+
this.state.data.mondayWeek,
|
|
178
|
+
this.state.selectedDay.dayNumber,
|
|
179
|
+
this.state.selectedDay.hour
|
|
180
|
+
);
|
|
181
|
+
return arrayOrArray(processes);
|
|
182
|
+
}
|
|
183
|
+
return [];
|
|
184
|
+
}
|
|
185
|
+
parseRows(data) {
|
|
186
|
+
const retrievedDays = arrayOrArray(data?.tskSchDay);
|
|
187
|
+
const hourIndexes = arrayOrArray(
|
|
188
|
+
retrievedDays.find((c) => c?.tskSchHour)?.tskSchHour
|
|
189
|
+
);
|
|
190
|
+
const columnsWithOutHour = this.getSchedulerColumns(data).slice(1);
|
|
191
|
+
const newRows = hourIndexes.map((hour, rowIdx) => {
|
|
192
|
+
const currentDate = dayjs();
|
|
193
|
+
const currentHour = Number(dayjs().format("HHmm"));
|
|
194
|
+
const newRow = {
|
|
195
|
+
id: hour.hour,
|
|
196
|
+
cells: [
|
|
197
|
+
{
|
|
198
|
+
colName: "hour",
|
|
199
|
+
content: `${hour.hour.slice(0, -2)}:${hour.hour.slice(2)}`
|
|
200
|
+
},
|
|
201
|
+
...columnsWithOutHour.map((_, colIdx) => {
|
|
202
|
+
const currentDayDefinition = retrievedDays[colIdx];
|
|
203
|
+
const currentHourDefinition = arrayOrArray(
|
|
204
|
+
currentDayDefinition?.tskSchHour
|
|
205
|
+
)[rowIdx];
|
|
206
|
+
const parsingDay = dayjs(currentDayDefinition?.day, dateFormat);
|
|
207
|
+
const parsingHour = Number(currentHourDefinition?.hour);
|
|
208
|
+
const isEnabled = !hour?.disabled && Number(currentHourDefinition?.value) + Number(this.state.data?.overassign) > 0 && (!(parsingDay.isSame(currentDate, "day") || parsingDay.isBefore(currentDate, "day")) || parsingDay.isSame(currentDate, "day") && currentHour <= parsingHour);
|
|
209
|
+
const isQueriedDisabled = hour?.disabled;
|
|
210
|
+
const returnCell = {
|
|
211
|
+
colName: columnsWithOutHour[colIdx].colName,
|
|
212
|
+
domProperties: {
|
|
213
|
+
className: isEnabled ? "" : "disabled"
|
|
214
|
+
},
|
|
215
|
+
properties: {
|
|
216
|
+
cellId: `${hour.hour}_${colIdx + 1}_${data?.mondayWeek ?? ""}`,
|
|
217
|
+
currentDayDefinition,
|
|
218
|
+
isEnabled,
|
|
219
|
+
isQueriedDisabled,
|
|
220
|
+
weekDay: data?.mondayWeek ?? "",
|
|
221
|
+
dayNumber: colIdx + 1,
|
|
222
|
+
hour: hour.hour,
|
|
223
|
+
value: Number(currentHourDefinition?.value),
|
|
224
|
+
valuePlusOverassign: Number(currentHourDefinition?.value) + Number(this.state.data?.overassign),
|
|
225
|
+
isOverassignClassName: !!(!Number(currentHourDefinition?.value) && Number(currentHourDefinition?.value) < Number(this.state.data?.overassign))
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
return returnCell;
|
|
229
|
+
}).filter((c) => c !== null)
|
|
230
|
+
]
|
|
231
|
+
};
|
|
232
|
+
return newRow;
|
|
233
|
+
});
|
|
234
|
+
return newRows;
|
|
235
|
+
}
|
|
236
|
+
isMorningTime(hour) {
|
|
237
|
+
if (Number(hour) < 1200)
|
|
238
|
+
return true;
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
setDay(day) {
|
|
242
|
+
if (!this.state.selectedDay)
|
|
243
|
+
this.state.selectedDay = {};
|
|
244
|
+
this.state.selectedDay = { ...this.state.selectedDay, ...day };
|
|
245
|
+
}
|
|
246
|
+
setStage({ index, newStage }) {
|
|
247
|
+
if (!this.state.stageData)
|
|
248
|
+
this.state.stageData = [];
|
|
249
|
+
this.state.stageData[index] = newStage;
|
|
250
|
+
this.state.stageData.splice(index + 1);
|
|
251
|
+
}
|
|
252
|
+
syncStage(day, hour) {
|
|
253
|
+
this.makeMorningOrAfternoonStage(day);
|
|
254
|
+
this.makeHoursStage(day, this.isMorningTime(hour));
|
|
255
|
+
}
|
|
256
|
+
makeDaysStage(data) {
|
|
257
|
+
const dayData = data ?? this.state.data;
|
|
258
|
+
const overassign = this.state.data?.overassign;
|
|
259
|
+
const availableDays = arrayOrArray(dayData?.tskSchDay).map((currentDay) => {
|
|
260
|
+
const isDisabled = !arrayOrArray(currentDay?.tskSchHour).find(
|
|
261
|
+
(hour) => {
|
|
262
|
+
const parsingDay = dayjs(currentDay.day, dateFormat);
|
|
263
|
+
const currentDate = dayjs();
|
|
264
|
+
const parsingHour = Number(hour.hour);
|
|
265
|
+
const currentHour = Number(dayjs().format("HHmm"));
|
|
266
|
+
if (hour.hour !== void 0 && noNaN(hour.value) + noNaN(overassign) >= 0 && !(parsingDay.isSame(currentDate, "day") || parsingDay.isBefore(currentDate, "day")) || parsingDay.isSame(currentDate, "day") && currentHour <= parsingHour && !hour.disabled) {
|
|
267
|
+
return true;
|
|
268
|
+
}
|
|
269
|
+
return false;
|
|
270
|
+
}
|
|
271
|
+
);
|
|
272
|
+
return { ...currentDay, isDisabled };
|
|
273
|
+
}) ?? [];
|
|
274
|
+
const availableDaysButtons = availableDays.map((c) => {
|
|
275
|
+
const parsingDay = dayjs(c.day, dateFormat);
|
|
276
|
+
const returnBtn = {
|
|
277
|
+
isDisabled: c.isDisabled,
|
|
278
|
+
"aria-label": dayFullWord[dayjs(parsingDay).day()],
|
|
279
|
+
title: c.day,
|
|
280
|
+
label: `${dayFullWord[dayjs(parsingDay).day()]},
|
|
281
|
+
${dayjs(parsingDay).get("date")}`,
|
|
282
|
+
value: "",
|
|
283
|
+
isSelectedSelector: () => {
|
|
284
|
+
return this.state.selectedDay?.day === c.day;
|
|
285
|
+
},
|
|
286
|
+
action: () => {
|
|
287
|
+
const isLoading = this.state.isLoading;
|
|
288
|
+
if (isLoading !== "NotLoading")
|
|
289
|
+
return;
|
|
290
|
+
this.makeMorningOrAfternoonStage(c);
|
|
291
|
+
const monday = dayjs(dayData?.mondayWeek, dateFormat);
|
|
292
|
+
const current = dayjs(c.day, dateFormat);
|
|
293
|
+
const diffDays = current.diff(monday, "day");
|
|
294
|
+
const dayNumber = diffDays + 1;
|
|
295
|
+
this.setDay({
|
|
296
|
+
mondayWeek: dayData?.mondayWeek,
|
|
297
|
+
day: c.day,
|
|
298
|
+
dayNumber
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
};
|
|
302
|
+
return returnBtn;
|
|
303
|
+
});
|
|
304
|
+
this.setStage({
|
|
305
|
+
index: 0,
|
|
306
|
+
newStage: {
|
|
307
|
+
name: "daysList",
|
|
308
|
+
buttons: [...availableDaysButtons]
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
makeMorningOrAfternoonStage(day) {
|
|
313
|
+
const thisDate = day.day;
|
|
314
|
+
const hours = arrayOrArray(day.tskSchHour);
|
|
315
|
+
const isLoading = this.state.isLoading;
|
|
316
|
+
const overassign = this.state.data?.overassign;
|
|
317
|
+
const parsingDay = dayjs(thisDate, dateFormat);
|
|
318
|
+
const currentDate = dayjs();
|
|
319
|
+
const currentHour = Number(dayjs().format("HHmm"));
|
|
320
|
+
const morningHours = hours?.filter((hour) => {
|
|
321
|
+
return (parsingDay.isSame(currentDate, "day") && currentHour <= Number(hour.hour) || !parsingDay.isSame(currentDate, "day") && Number(hour.value) + Number(overassign) > 0) && Number(hour.hour) < 1200;
|
|
322
|
+
});
|
|
323
|
+
const afternoonHours = hours?.filter((hour) => {
|
|
324
|
+
return (parsingDay.isSame(currentDate, "day") && currentHour <= Number(hour.hour) || !parsingDay.isSame(currentDate, "day") && Number(hour.value) + Number(overassign) > 0) && Number(hour.hour) >= 1200;
|
|
325
|
+
});
|
|
326
|
+
const morningButton = {
|
|
327
|
+
isDisabled: (morningHours?.length ?? 0) === 0,
|
|
328
|
+
label: getLabel$1("lblSchedMorning").text,
|
|
329
|
+
title: getLabel$1("lblSchedMorning").text,
|
|
330
|
+
"aria-label": getLabel$1("lblSchedMorning").text,
|
|
331
|
+
value: "",
|
|
332
|
+
isSelectedSelector: () => {
|
|
333
|
+
return this.isMorningTime(
|
|
334
|
+
this.state.selectedDay?.morningOrAfternoonSelected
|
|
335
|
+
);
|
|
336
|
+
},
|
|
337
|
+
action: () => {
|
|
338
|
+
if (isLoading !== "NotLoading")
|
|
339
|
+
return;
|
|
340
|
+
this.setDay({
|
|
341
|
+
morningOrAfternoonSelected: 1100
|
|
342
|
+
});
|
|
343
|
+
const newStagesStringArray = [];
|
|
344
|
+
this.makeHoursStage(day, this.isMorningTime(1100));
|
|
345
|
+
this.setState({
|
|
346
|
+
stageList: newStagesStringArray
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
};
|
|
350
|
+
const afternoonButton = {
|
|
351
|
+
isDisabled: (afternoonHours?.length ?? 0) === 0,
|
|
352
|
+
label: getLabel$1("lblSchedAfternoon").text,
|
|
353
|
+
title: getLabel$1("lblSchedAfternoon").text,
|
|
354
|
+
"aria-label": getLabel$1("lblSchedAfternoon").text,
|
|
355
|
+
value: "",
|
|
356
|
+
isSelectedSelector: () => {
|
|
357
|
+
if (this.state.selectedDay?.morningOrAfternoonSelected) {
|
|
358
|
+
return !this.isMorningTime(
|
|
359
|
+
this.state.selectedDay?.morningOrAfternoonSelected
|
|
360
|
+
);
|
|
361
|
+
}
|
|
362
|
+
return false;
|
|
363
|
+
},
|
|
364
|
+
action: () => {
|
|
365
|
+
if (isLoading !== "NotLoading")
|
|
366
|
+
return;
|
|
367
|
+
this.setDay({
|
|
368
|
+
morningOrAfternoonSelected: 1300
|
|
369
|
+
});
|
|
370
|
+
this.makeHoursStage(day, this.isMorningTime(1300));
|
|
371
|
+
}
|
|
372
|
+
};
|
|
373
|
+
this.setStage({
|
|
374
|
+
index: 1,
|
|
375
|
+
newStage: {
|
|
376
|
+
name: "morningOrAfternoon",
|
|
377
|
+
buttons: [morningButton, afternoonButton].filter(
|
|
378
|
+
(current) => current !== null
|
|
379
|
+
)
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
makeHoursStage(day, isMorning) {
|
|
384
|
+
const thisDate = day.day;
|
|
385
|
+
const hours = arrayOrArray(day.tskSchHour);
|
|
386
|
+
const overassign = this.state.data?.overassign;
|
|
387
|
+
const parsingDay = dayjs(thisDate, dateFormat);
|
|
388
|
+
const currentDate = dayjs();
|
|
389
|
+
const currentHour = Number(dayjs().format("HHmm"));
|
|
390
|
+
const isLoading = this.state.isLoading;
|
|
391
|
+
let morningOrAfternoonHours;
|
|
392
|
+
if (isMorning) {
|
|
393
|
+
morningOrAfternoonHours = hours?.filter((hour) => {
|
|
394
|
+
return (parsingDay.isSame(currentDate, "day") && currentHour <= Number(hour.hour) || !parsingDay.isSame(currentDate, "day") && Number(hour.value) + Number(overassign) > 0) && Number(hour.hour) < 1200;
|
|
395
|
+
});
|
|
396
|
+
} else {
|
|
397
|
+
morningOrAfternoonHours = hours?.filter((hour) => {
|
|
398
|
+
return (parsingDay.isSame(currentDate, "day") && currentHour <= Number(hour.hour) || !parsingDay.isSame(currentDate, "day") && Number(hour.value) + Number(overassign) > 0) && Number(hour.hour) >= 1200;
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
const enableHours = morningOrAfternoonHours?.filter(
|
|
402
|
+
(hour) => !hour.disabled
|
|
403
|
+
);
|
|
404
|
+
this.setStage({
|
|
405
|
+
index: 2,
|
|
406
|
+
newStage: {
|
|
407
|
+
name: "daysHours",
|
|
408
|
+
buttons: enableHours?.map((hour) => {
|
|
409
|
+
const returnButton = {
|
|
410
|
+
title: hour.hour,
|
|
411
|
+
label: `${hour.hour.slice(0, -2)}:${hour.hour.slice(2)}`,
|
|
412
|
+
value: hour.value,
|
|
413
|
+
"aria-label": hour.hour,
|
|
414
|
+
isSelectedSelector: () => {
|
|
415
|
+
return this.state?.selectedDay?.hour === hour.hour;
|
|
416
|
+
},
|
|
417
|
+
action: () => {
|
|
418
|
+
if (isLoading !== "NotLoading")
|
|
419
|
+
return;
|
|
420
|
+
this.setState({
|
|
421
|
+
selectedCell: `${hour.hour} ${String(
|
|
422
|
+
this.state?.selectedDay?.dayNumber
|
|
423
|
+
)} ${this.state?.selectedDay?.mondayWeek}`
|
|
424
|
+
});
|
|
425
|
+
this.setDay({
|
|
426
|
+
hour: hour.hour,
|
|
427
|
+
mondayWeek: this.state?.selectedDay?.mondayWeek
|
|
428
|
+
});
|
|
429
|
+
if (this.state?.selectedDay?.dayNumber && this.state?.selectedDay?.mondayWeek && this.type !== "RescheduleTskScheduler") {
|
|
430
|
+
this.retriever.markDay(
|
|
431
|
+
this.state?.selectedDay?.mondayWeek,
|
|
432
|
+
hour.hour,
|
|
433
|
+
this.state?.selectedDay?.dayNumber
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
return returnButton;
|
|
439
|
+
})
|
|
440
|
+
}
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
async deleteDate() {
|
|
444
|
+
this.setState({ isLoading: "DeleteWeek" });
|
|
445
|
+
this.retriever.deleteDate().then((success) => {
|
|
446
|
+
if (success) {
|
|
447
|
+
this.setState({
|
|
448
|
+
selectedDay: {},
|
|
449
|
+
selectedCell: null,
|
|
450
|
+
isLoading: "NotLoading"
|
|
451
|
+
});
|
|
452
|
+
this.makeDaysStage();
|
|
453
|
+
}
|
|
454
|
+
}).catch(() => {
|
|
455
|
+
});
|
|
456
|
+
}
|
|
457
|
+
async goNextWeek() {
|
|
458
|
+
if (this.state.isLoading === "NotLoading") {
|
|
459
|
+
this.setState({ isLoading: "NextWeek" });
|
|
460
|
+
await this.loadWeek(
|
|
461
|
+
dayjs(this.state.data?.mondayWeek, dateFormat).add(7, "day").format(dateFormat)
|
|
462
|
+
);
|
|
463
|
+
this.makeDaysStage(this.state.data);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
async goPreviousWeek() {
|
|
467
|
+
if (this.state.isLoading === "NotLoading") {
|
|
468
|
+
this.setState({ isLoading: "LastWeek" });
|
|
469
|
+
await this.loadWeek(
|
|
470
|
+
dayjs(this.state.data?.mondayWeek, dateFormat).subtract(7, "day").format(dateFormat)
|
|
471
|
+
);
|
|
472
|
+
this.makeDaysStage(this.state.data);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
getSchedulerColumns(data) {
|
|
476
|
+
if (!data || !data.mondayWeek) {
|
|
477
|
+
return [];
|
|
478
|
+
}
|
|
479
|
+
const columns = [
|
|
480
|
+
{
|
|
481
|
+
content: getLabel$1("lblTime").text,
|
|
482
|
+
colName: "Hour",
|
|
483
|
+
width: "75px"
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
content: `${getLabel$1("lblTskDayMon").text} ${dayjs(
|
|
487
|
+
data?.mondayWeek,
|
|
488
|
+
dateFormat
|
|
489
|
+
).format("DD/MM")}`,
|
|
490
|
+
colName: "Monday"
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
content: `${getLabel$1("lblTskDayTue").text} ${dayjs(
|
|
494
|
+
data?.mondayWeek,
|
|
495
|
+
dateFormat
|
|
496
|
+
).add(1, "day").format("DD/MM")}`,
|
|
497
|
+
colName: "Tuesday"
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
content: `${getLabel$1("lblTskDayWed").text} ${dayjs(
|
|
501
|
+
data?.mondayWeek,
|
|
502
|
+
dateFormat
|
|
503
|
+
).add(2, "day").format("DD/MM")} `,
|
|
504
|
+
colName: "Wednesday"
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
content: `${getLabel$1("lblTskDayThu").text} ${dayjs(
|
|
508
|
+
data?.mondayWeek,
|
|
509
|
+
dateFormat
|
|
510
|
+
).add(3, "day").format("DD/MM")}`,
|
|
511
|
+
colName: "Thursday"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
content: `${getLabel$1("lblTskDayFri").text} ${dayjs(
|
|
515
|
+
data?.mondayWeek,
|
|
516
|
+
dateFormat
|
|
517
|
+
).add(4, "day").format("DD/MM")}`,
|
|
518
|
+
colName: "Friday"
|
|
519
|
+
},
|
|
520
|
+
{
|
|
521
|
+
content: `${getLabel$1("lblTskDaySat").text} ${dayjs(
|
|
522
|
+
data?.mondayWeek,
|
|
523
|
+
dateFormat
|
|
524
|
+
).add(5, "day").format("DD/MM")}`,
|
|
525
|
+
colName: "Saturday"
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
content: `${getLabel$1("lblTskDaySun").text} ${dayjs(
|
|
529
|
+
data?.mondayWeek,
|
|
530
|
+
dateFormat
|
|
531
|
+
).add(6, "day").format("DD/MM")}`,
|
|
532
|
+
colName: "Sunday"
|
|
533
|
+
}
|
|
534
|
+
];
|
|
535
|
+
return columns;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export { Scheduler };
|
|
540
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/Scheduler/util.ts","../src/Scheduler/index.ts"],"sourcesContent":["import { getLabel } from '@apia/util';\r\n\r\nexport const dayLabels = [\r\n getLabel('lblTskDayMon').text,\r\n getLabel('lblTskDayTue').text,\r\n getLabel('lblTskDayWed').text,\r\n getLabel('lblTskDayThu').text,\r\n getLabel('lblTskDayFri').text,\r\n getLabel('lblTskDaySat').text,\r\n getLabel('lblTskDaySun').text,\r\n];\r\nexport const dayFullWord = [\r\n getLabel('lblDomingo').text,\r\n getLabel('lblLunes').text,\r\n getLabel('lblMartes').text,\r\n getLabel('lblMiercoles').text,\r\n getLabel('lblJueves').text,\r\n getLabel('lblViernes').text,\r\n getLabel('lblSabado').text,\r\n];\r\n\r\nexport const monthLabels = [\r\n getLabel('lblEnero').text,\r\n getLabel('lblFebrero').text,\r\n getLabel('lblMarzo').text,\r\n getLabel('lblAbril').text,\r\n getLabel('lblMayo').text,\r\n getLabel('lblJunio').text,\r\n getLabel('lblJulio').text,\r\n getLabel('lblAgosto').text,\r\n getLabel('lblSeptiembre').text,\r\n getLabel('lblOctubre').text,\r\n getLabel('lblNoviembre').text,\r\n getLabel('lblDiciembre').text,\r\n];\r\n","import {\r\n IScheduleInitialProps,\r\n ISelectedDay,\r\n IStage,\r\n IStageButton,\r\n TProcesses,\r\n TScheduleResult,\r\n TSchedulerState,\r\n TTskSchDay,\r\n} from './types';\r\nimport {\r\n CellState,\r\n TableController,\r\n TBuildRow,\r\n TBuildTable,\r\n} from '@apia/table2-controller';\r\n\r\nimport { arrayOrArray, noNaN, TDateFormat } from '@apia/util';\r\nimport dayjs from 'dayjs';\r\nimport { getLabel } from '@apia/util/src/labels';\r\nimport { dayFullWord, monthLabels } from './util';\r\nimport { makeObservable } from 'mobx';\r\n\r\nconst dateFormat: TDateFormat = 'DD/MM/YYYY';\r\nexport function getCurrentDate() {\r\n return dayjs().format(dateFormat);\r\n}\r\n\r\nexport interface ISchedulerDataRetriever {\r\n markDay(weekDay: string, hour: string, dayNumber: number): Promise<void>;\r\n deleteDate(): Promise<boolean>;\r\n loadWeek(\r\n weekDay: string,\r\n schId: string,\r\n proId: string,\r\n proVerId: string,\r\n tskId: string,\r\n ): Promise<TScheduleResult | null>;\r\n\r\n loadInfo(\r\n schId: string,\r\n weekDay: string,\r\n dayNumber: number,\r\n hour: string,\r\n ): Promise<TProcesses | []>;\r\n}\r\n\r\nconst initState: TSchedulerState = {\r\n isStageMounted: {},\r\n stageData: [],\r\n isLoading: 'NotLoading',\r\n initialProps: {\r\n schId: '',\r\n proId: '',\r\n proVerId: '',\r\n tskId: '',\r\n showDisponibility: 'false',\r\n showAttributes: 'false',\r\n },\r\n};\r\n\r\nexport class Scheduler {\r\n public state: TSchedulerState;\r\n private inited = false;\r\n\r\n protected readonly _tableController: TableController = new TableController({\r\n allowEdition: false,\r\n allowSelection: false,\r\n isSelectionMultiple: false,\r\n allowResize: false,\r\n });\r\n\r\n constructor(\r\n properties: IScheduleInitialProps,\r\n public retriever: ISchedulerDataRetriever,\r\n public type?: 'RescheduleTskScheduler' | 'Scheduler',\r\n ) {\r\n this.state = initState;\r\n this.state.initialProps = properties;\r\n makeObservable<Scheduler, 'state'>(this, { state: true, getState: true });\r\n }\r\n getState(): TSchedulerState {\r\n return this.state;\r\n }\r\n public setState(newState: Partial<TSchedulerState>) {\r\n Object.entries(newState).forEach(([key, value]) => {\r\n (this.state[key as keyof TSchedulerState] as unknown) = value;\r\n });\r\n }\r\n\r\n public get tableController() {\r\n return this._tableController;\r\n }\r\n\r\n public async loadWeek(weekDay = getCurrentDate()): Promise<boolean> {\r\n const { schId, proId, proVerId, tskId } = this.state.initialProps;\r\n const data = await this.retriever.loadWeek(\r\n weekDay,\r\n schId,\r\n proId,\r\n proVerId,\r\n tskId,\r\n );\r\n\r\n if (data) {\r\n this.state.data = data;\r\n this.makeDaysStage(data);\r\n\r\n const rows = this.parseRows(data);\r\n\r\n if (!this.inited) {\r\n this.inited = true;\r\n const tableJson = {\r\n columns: this.getSchedulerColumns(data),\r\n rows,\r\n filters: [],\r\n } as TBuildTable;\r\n this.tableController.build(tableJson);\r\n } else {\r\n this.tableController.head.getState('rows').forEach((r) => {\r\n r.cells.forEach((cell, cellIndex) => {\r\n const newCell = this.getSchedulerColumns(data)[cellIndex];\r\n if (newCell) {\r\n if (cellIndex !== 0) {\r\n cell.setState((cellState) => {\r\n return {\r\n ...cellState,\r\n content: newCell.content,\r\n };\r\n });\r\n }\r\n }\r\n });\r\n });\r\n this.tableController.body.getState('rows').forEach((r, i) => {\r\n r.cells.forEach((cell, cellIndex) => {\r\n const newCell = rows[i]?.cells?.[cellIndex];\r\n if (newCell) {\r\n cell.setState((cellState) => {\r\n return {\r\n ...cellState,\r\n content: newCell.content,\r\n properties: newCell.properties,\r\n domProperties: newCell.domProperties,\r\n };\r\n });\r\n }\r\n });\r\n });\r\n }\r\n this.state.isLoading = 'NotLoading';\r\n return true;\r\n } else {\r\n this.state.isLoading = 'NotLoading';\r\n return false;\r\n }\r\n }\r\n\r\n public async loadInfo() {\r\n if (\r\n this.state.data?.tskSchId &&\r\n this.state.data?.mondayWeek &&\r\n this.state.selectedDay?.dayNumber &&\r\n this.state.selectedDay?.hour\r\n ) {\r\n const processes = await this.retriever.loadInfo(\r\n this.state.data.tskSchId,\r\n this.state.data.mondayWeek,\r\n this.state.selectedDay.dayNumber,\r\n this.state.selectedDay.hour,\r\n );\r\n\r\n return arrayOrArray(processes);\r\n }\r\n return [];\r\n }\r\n\r\n private parseRows(data: TScheduleResult): TBuildRow[] {\r\n const retrievedDays = arrayOrArray(data?.tskSchDay);\r\n const hourIndexes = arrayOrArray(\r\n retrievedDays.find((c) => c?.tskSchHour)?.tskSchHour,\r\n );\r\n const columnsWithOutHour = this.getSchedulerColumns(data).slice(1);\r\n\r\n const newRows = hourIndexes.map((hour, rowIdx) => {\r\n const currentDate = dayjs();\r\n const currentHour = Number(dayjs().format('HHmm'));\r\n const newRow: TBuildRow = {\r\n id: hour.hour,\r\n cells: [\r\n {\r\n colName: 'hour',\r\n content: `${hour.hour.slice(0, -2)}:${hour.hour.slice(2)}`,\r\n },\r\n ...columnsWithOutHour\r\n .map((_, colIdx) => {\r\n const currentDayDefinition = retrievedDays[colIdx];\r\n const currentHourDefinition = arrayOrArray(\r\n currentDayDefinition?.tskSchHour,\r\n )[rowIdx];\r\n\r\n const parsingDay = dayjs(currentDayDefinition?.day, dateFormat);\r\n const parsingHour = Number(currentHourDefinition?.hour);\r\n\r\n const isEnabled =\r\n !hour?.disabled &&\r\n Number(currentHourDefinition?.value) +\r\n Number(this.state.data?.overassign) >\r\n 0 &&\r\n (!(\r\n parsingDay.isSame(currentDate, 'day') ||\r\n parsingDay.isBefore(currentDate, 'day')\r\n ) ||\r\n (parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= parsingHour));\r\n\r\n const isQueriedDisabled = hour?.disabled;\r\n\r\n const returnCell: CellState = {\r\n colName: columnsWithOutHour[colIdx].colName,\r\n domProperties: {\r\n className: isEnabled ? '' : 'disabled',\r\n },\r\n properties: {\r\n cellId: `${hour.hour}_${colIdx + 1}_${\r\n data?.mondayWeek ?? ''\r\n }`,\r\n currentDayDefinition,\r\n isEnabled,\r\n isQueriedDisabled,\r\n weekDay: data?.mondayWeek ?? '',\r\n dayNumber: colIdx + 1,\r\n hour: hour.hour,\r\n value: Number(currentHourDefinition?.value),\r\n valuePlusOverassign:\r\n Number(currentHourDefinition?.value) +\r\n Number(this.state.data?.overassign),\r\n isOverassignClassName: !!(\r\n !Number(currentHourDefinition?.value) &&\r\n Number(currentHourDefinition?.value) <\r\n Number(this.state.data?.overassign)\r\n ),\r\n },\r\n };\r\n return returnCell;\r\n })\r\n .filter((c): c is CellState => c !== null),\r\n ],\r\n };\r\n\r\n return newRow;\r\n });\r\n\r\n return newRows;\r\n }\r\n\r\n private isMorningTime(hour: number) {\r\n if (Number(hour) < 1200) return true;\r\n return false;\r\n }\r\n\r\n public setDay(day: ISelectedDay) {\r\n if (!this.state.selectedDay) this.state.selectedDay = {};\r\n this.state.selectedDay = { ...this.state.selectedDay, ...day };\r\n }\r\n\r\n public setStage({ index, newStage }: { index: number; newStage: IStage }) {\r\n if (!this.state.stageData) this.state.stageData = [];\r\n this.state.stageData[index] = newStage;\r\n this.state.stageData.splice(index + 1);\r\n }\r\n\r\n public syncStage(day: TTskSchDay, hour: number) {\r\n this.makeMorningOrAfternoonStage(day);\r\n this.makeHoursStage(day, this.isMorningTime(hour));\r\n }\r\n\r\n public makeDaysStage(data?: TScheduleResult) {\r\n const dayData = data ?? this.state.data;\r\n const overassign = this.state.data?.overassign;\r\n\r\n const availableDays =\r\n arrayOrArray(dayData?.tskSchDay).map((currentDay) => {\r\n const isDisabled = !arrayOrArray(currentDay?.tskSchHour).find(\r\n (hour) => {\r\n const parsingDay = dayjs(currentDay.day, dateFormat);\r\n const currentDate = dayjs();\r\n const parsingHour = Number(hour.hour);\r\n const currentHour = Number(dayjs().format('HHmm'));\r\n\r\n if (\r\n (hour.hour !== undefined &&\r\n noNaN(hour.value) + noNaN(overassign) >= 0 &&\r\n !(\r\n parsingDay.isSame(currentDate, 'day') ||\r\n parsingDay.isBefore(currentDate, 'day')\r\n )) ||\r\n (parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= parsingHour &&\r\n !hour.disabled)\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n );\r\n\r\n return { ...currentDay, isDisabled };\r\n }) ?? [];\r\n\r\n const availableDaysButtons = availableDays.map((c) => {\r\n const parsingDay = dayjs(c.day, dateFormat);\r\n const returnBtn: IStageButton = {\r\n isDisabled: c.isDisabled,\r\n 'aria-label': dayFullWord[dayjs(parsingDay).day()],\r\n title: c.day,\r\n label: `${dayFullWord[dayjs(parsingDay).day()]}, \r\n ${dayjs(parsingDay).get('date')}`,\r\n value: '',\r\n isSelectedSelector: () => {\r\n return this.state.selectedDay?.day === c.day;\r\n },\r\n\r\n action: () => {\r\n const isLoading = this.state.isLoading;\r\n if (isLoading !== 'NotLoading') return;\r\n\r\n this.makeMorningOrAfternoonStage(c);\r\n const monday = dayjs(dayData?.mondayWeek, dateFormat);\r\n const current = dayjs(c.day, dateFormat);\r\n\r\n const diffDays = current.diff(monday, 'day');\r\n\r\n const dayNumber = diffDays + 1;\r\n\r\n this.setDay({\r\n mondayWeek: dayData?.mondayWeek,\r\n day: c.day,\r\n dayNumber,\r\n });\r\n },\r\n };\r\n\r\n return returnBtn;\r\n });\r\n\r\n this.setStage({\r\n index: 0,\r\n newStage: {\r\n name: 'daysList',\r\n buttons: [...availableDaysButtons],\r\n },\r\n });\r\n }\r\n\r\n private makeMorningOrAfternoonStage(day: TTskSchDay) {\r\n const thisDate = day.day;\r\n const hours = arrayOrArray(day.tskSchHour);\r\n const isLoading = this.state.isLoading;\r\n\r\n const overassign = this.state.data?.overassign;\r\n const parsingDay = dayjs(thisDate, dateFormat);\r\n const currentDate = dayjs();\r\n const currentHour = Number(dayjs().format('HHmm'));\r\n\r\n const morningHours = hours?.filter((hour) => {\r\n return (\r\n ((parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= Number(hour.hour)) ||\r\n (!parsingDay.isSame(currentDate, 'day') &&\r\n Number(hour.value) + Number(overassign) > 0)) &&\r\n Number(hour.hour) < 1200\r\n );\r\n });\r\n const afternoonHours = hours?.filter((hour) => {\r\n return (\r\n ((parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= Number(hour.hour)) ||\r\n (!parsingDay.isSame(currentDate, 'day') &&\r\n Number(hour.value) + Number(overassign) > 0)) &&\r\n Number(hour.hour) >= 1200\r\n );\r\n });\r\n\r\n const morningButton: IStageButton = {\r\n isDisabled: (morningHours?.length ?? 0) === 0,\r\n label: getLabel('lblSchedMorning').text,\r\n title: getLabel('lblSchedMorning').text,\r\n 'aria-label': getLabel('lblSchedMorning').text,\r\n value: '',\r\n isSelectedSelector: () => {\r\n return this.isMorningTime(\r\n this.state.selectedDay?.morningOrAfternoonSelected as number,\r\n );\r\n },\r\n action: () => {\r\n if (isLoading !== 'NotLoading') return;\r\n\r\n this.setDay({\r\n morningOrAfternoonSelected: 1100,\r\n });\r\n\r\n const newStagesStringArray: string[] = [];\r\n\r\n this.makeHoursStage(day, this.isMorningTime(1100));\r\n this.setState({\r\n stageList: newStagesStringArray,\r\n });\r\n },\r\n };\r\n\r\n const afternoonButton: IStageButton = {\r\n isDisabled: (afternoonHours?.length ?? 0) === 0,\r\n label: getLabel('lblSchedAfternoon').text,\r\n title: getLabel('lblSchedAfternoon').text,\r\n 'aria-label': getLabel('lblSchedAfternoon').text,\r\n value: '',\r\n isSelectedSelector: () => {\r\n if (this.state.selectedDay?.morningOrAfternoonSelected) {\r\n return !this.isMorningTime(\r\n this.state.selectedDay?.morningOrAfternoonSelected,\r\n );\r\n }\r\n return false;\r\n },\r\n action: () => {\r\n if (isLoading !== 'NotLoading') return;\r\n\r\n this.setDay({\r\n morningOrAfternoonSelected: 1300,\r\n });\r\n this.makeHoursStage(day, this.isMorningTime(1300));\r\n },\r\n };\r\n\r\n this.setStage({\r\n index: 1,\r\n newStage: {\r\n name: 'morningOrAfternoon',\r\n buttons: [morningButton, afternoonButton].filter(\r\n (current): current is IStageButton => current !== null,\r\n ),\r\n },\r\n });\r\n }\r\n\r\n private makeHoursStage(day: TTskSchDay, isMorning: boolean) {\r\n const thisDate = day.day;\r\n const hours = arrayOrArray(day.tskSchHour);\r\n const overassign = this.state.data?.overassign;\r\n const parsingDay = dayjs(thisDate, dateFormat);\r\n const currentDate = dayjs();\r\n const currentHour = Number(dayjs().format('HHmm'));\r\n const isLoading = this.state.isLoading;\r\n let morningOrAfternoonHours;\r\n\r\n if (isMorning) {\r\n morningOrAfternoonHours = hours?.filter((hour) => {\r\n return (\r\n ((parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= Number(hour.hour)) ||\r\n (!parsingDay.isSame(currentDate, 'day') &&\r\n Number(hour.value) + Number(overassign) > 0)) &&\r\n Number(hour.hour) < 1200\r\n );\r\n });\r\n } else {\r\n morningOrAfternoonHours = hours?.filter((hour) => {\r\n return (\r\n ((parsingDay.isSame(currentDate, 'day') &&\r\n currentHour <= Number(hour.hour)) ||\r\n (!parsingDay.isSame(currentDate, 'day') &&\r\n Number(hour.value) + Number(overassign) > 0)) &&\r\n Number(hour.hour) >= 1200\r\n );\r\n });\r\n }\r\n\r\n const enableHours = morningOrAfternoonHours?.filter(\r\n (hour) => !hour.disabled,\r\n );\r\n\r\n this.setStage({\r\n index: 2,\r\n newStage: {\r\n name: 'daysHours',\r\n buttons: enableHours?.map((hour) => {\r\n const returnButton: IStageButton = {\r\n title: hour.hour,\r\n label: `${hour.hour.slice(0, -2)}:${hour.hour.slice(2)}`,\r\n value: hour.value,\r\n 'aria-label': hour.hour,\r\n isSelectedSelector: () => {\r\n return this.state?.selectedDay?.hour === hour.hour;\r\n },\r\n action: () => {\r\n if (isLoading !== 'NotLoading') return;\r\n this.setState({\r\n selectedCell: `${hour.hour} ${String(\r\n this.state?.selectedDay?.dayNumber,\r\n )} ${this.state?.selectedDay?.mondayWeek as string}`,\r\n });\r\n this.setDay({\r\n hour: hour.hour,\r\n mondayWeek: this.state?.selectedDay?.mondayWeek,\r\n });\r\n if (\r\n this.state?.selectedDay?.dayNumber &&\r\n this.state?.selectedDay?.mondayWeek &&\r\n this.type !== 'RescheduleTskScheduler'\r\n ) {\r\n this.retriever.markDay(\r\n this.state?.selectedDay?.mondayWeek,\r\n hour.hour,\r\n this.state?.selectedDay?.dayNumber,\r\n );\r\n }\r\n },\r\n };\r\n\r\n return returnButton;\r\n }),\r\n },\r\n });\r\n }\r\n\r\n public async deleteDate() {\r\n this.setState({ isLoading: 'DeleteWeek' });\r\n\r\n this.retriever\r\n .deleteDate()\r\n .then((success) => {\r\n if (success) {\r\n this.setState({\r\n selectedDay: {},\r\n selectedCell: null,\r\n isLoading: 'NotLoading',\r\n });\r\n this.makeDaysStage();\r\n }\r\n })\r\n .catch(() => {});\r\n }\r\n\r\n public async goNextWeek() {\r\n if (this.state.isLoading === 'NotLoading') {\r\n this.setState({ isLoading: 'NextWeek' });\r\n\r\n await this.loadWeek(\r\n dayjs(this.state.data?.mondayWeek, dateFormat)\r\n .add(7, 'day')\r\n .format(dateFormat),\r\n );\r\n this.makeDaysStage(this.state.data);\r\n }\r\n }\r\n\r\n public async goPreviousWeek() {\r\n if (this.state.isLoading === 'NotLoading') {\r\n this.setState({ isLoading: 'LastWeek' });\r\n await this.loadWeek(\r\n dayjs(this.state.data?.mondayWeek, dateFormat)\r\n .subtract(7, 'day')\r\n .format(dateFormat),\r\n );\r\n this.makeDaysStage(this.state.data);\r\n }\r\n }\r\n\r\n public parsedDateLabel = () => {\r\n const mondayWeek = this.state?.data?.mondayWeek;\r\n if (!mondayWeek) {\r\n return '';\r\n } else {\r\n const monday = dayjs(mondayWeek, dateFormat);\r\n const sunday = monday.add(6, 'day');\r\n\r\n const mondayDate = noNaN(monday.date());\r\n const sundayDate = noNaN(sunday.date());\r\n\r\n const mondayMonth = noNaN(monday.month());\r\n const sundayMonth = noNaN(sunday.month());\r\n\r\n const mondayYear = noNaN(monday.year());\r\n const sundayYear = noNaN(sunday.year());\r\n\r\n const getMonthLabel = (monthIndex: number) => monthLabels[monthIndex];\r\n\r\n if (mondayDate > sundayDate && mondayMonth < sundayMonth) {\r\n return `${mondayDate} de ${getMonthLabel(mondayMonth)} - ${sundayDate} de ${getMonthLabel(sundayMonth)}, ${mondayYear}`;\r\n }\r\n\r\n if (mondayMonth > sundayMonth) {\r\n return `${mondayDate} de ${getMonthLabel(mondayMonth)}, ${mondayYear} - ${sundayDate} de ${getMonthLabel(sundayMonth)}, ${sundayYear}`;\r\n }\r\n\r\n return `${mondayDate} - ${sundayDate} de ${getMonthLabel(mondayMonth)}, ${mondayYear}`;\r\n }\r\n };\r\n\r\n public getSchedulerColumns(data: TScheduleResult | null) {\r\n if (!data || !data.mondayWeek) {\r\n return [];\r\n }\r\n const columns = [\r\n {\r\n content: getLabel('lblTime').text,\r\n colName: 'Hour',\r\n width: '75px',\r\n },\r\n {\r\n content: `${getLabel('lblTskDayMon').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n ).format('DD/MM')}`,\r\n colName: 'Monday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDayTue').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(1, 'day')\r\n .format('DD/MM')}`,\r\n colName: 'Tuesday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDayWed').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(2, 'day')\r\n .format('DD/MM')} `,\r\n colName: 'Wednesday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDayThu').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(3, 'day')\r\n .format('DD/MM')}`,\r\n colName: 'Thursday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDayFri').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(4, 'day')\r\n .format('DD/MM')}`,\r\n colName: 'Friday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDaySat').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(5, 'day')\r\n .format('DD/MM')}`,\r\n colName: 'Saturday',\r\n },\r\n {\r\n content: `${getLabel('lblTskDaySun').text} ${dayjs(\r\n data?.mondayWeek,\r\n dateFormat,\r\n )\r\n .add(6, 'day')\r\n .format('DD/MM')}`,\r\n\r\n colName: 'Sunday',\r\n },\r\n ] as CellState[];\r\n return columns;\r\n }\r\n}\r\n"],"names":["getLabel"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@apia/scheduler-controller",
|
|
3
|
+
"version": "4.0.28",
|
|
4
|
+
"sideEffects": false,
|
|
5
|
+
"author": "Sebastián La Cruz <sebastianlacruz@live.com>",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"typings": "dist/index.d.ts",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"libDev": "rollup --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts",
|
|
12
|
+
"libBuild": "rollup --config ../../config/rollup.common.mjs --environment MODE:production,ENTRY:index.ts",
|
|
13
|
+
"libWatch": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true",
|
|
14
|
+
"libWatchForExecution": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:execution",
|
|
15
|
+
"libWatchForDashboards": "rollup --watch --config ../../config/rollup.common.mjs --environment MODE:development,ENTRY:index.ts,WATCH:true,DEV_SERVER_MODULE:dashboards"
|
|
16
|
+
},
|
|
17
|
+
"devDependencies": {
|
|
18
|
+
"@types/react": "^18.2.43",
|
|
19
|
+
"@types/react-dom": "^18.2.17",
|
|
20
|
+
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
21
|
+
"axios": "^1.3.5",
|
|
22
|
+
"dayjs": "^1.11.13",
|
|
23
|
+
"typescript": "5.4.2"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": "^18.2.0",
|
|
27
|
+
"react-dom": "^18.2.0"
|
|
28
|
+
},
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public",
|
|
31
|
+
"registry": "https://registry.npmjs.org/"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@apia/api": "^4.0.28",
|
|
35
|
+
"@apia/util": "^4.0.28",
|
|
36
|
+
"mobx": "^6.13.7",
|
|
37
|
+
"mobx-react-lite": "^4.1.0"
|
|
38
|
+
},
|
|
39
|
+
"gitHead": "f382e288940eb98a55c01081f33f0d0cacaaaadb"
|
|
40
|
+
}
|