@apia/scheduler-component 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.
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Scheduler, ISchedulerDataRetriever, IScheduleInitialProps } from '@apia/scheduler-controller';
3
+
4
+ declare const SchedulerComponent: (({ controller, retriever, properties, getController, }: {
5
+ controller?: Scheduler;
6
+ retriever?: ISchedulerDataRetriever;
7
+ properties?: IScheduleInitialProps;
8
+ getController?: (ctrl: Scheduler) => void;
9
+ }) => react_jsx_runtime.JSX.Element | null) & {
10
+ displayName: string;
11
+ };
12
+
13
+ export { SchedulerComponent };
14
+ //# 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,553 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { Box, getVariant, Heading, Spinner, Label, useBreakpointIndex } from '@apia/theme';
3
+ import dayjs from 'dayjs';
4
+ import { observer } from 'mobx-react-lite';
5
+ import { ApiaUtil, SimpleButton, IconButton, DateInput } from '@apia/components';
6
+ import React, { useCallback, createContext, useState, useContext } from 'react';
7
+ import { getLabel, arrayOrArray, getDateFormat, toBoolean, useMountTransition, isChild, getSpecificParent, formatMessage } from '@apia/util';
8
+ import { Icon } from '@apia/icons';
9
+ import { ApiaApi, makeApiaUrl } from '@apia/api';
10
+ import { Table } from '@apia/table2-component';
11
+ import { Scheduler } from '@apia/scheduler-controller';
12
+
13
+ const ReserveDetails = observer(
14
+ ({ processes }) => {
15
+ let content = /* @__PURE__ */ jsx(Box, { className: "no__appoinments", children: /* @__PURE__ */ jsxs(Box, { as: "span", children: [
16
+ getLabel("lblNoAppoinments").text,
17
+ " "
18
+ ] }) });
19
+ if (processes.length > 0)
20
+ content = /* @__PURE__ */ jsxs("table", { className: "appoinments__details", children: [
21
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsxs("tr", { children: [
22
+ /* @__PURE__ */ jsx("th", { children: getLabel("lblId").text }),
23
+ /* @__PURE__ */ jsx("th", { children: getLabel("flaAtr").text })
24
+ ] }) }),
25
+ /* @__PURE__ */ jsx("tbody", { children: processes?.map((c) => {
26
+ const attributes = arrayOrArray(c.attributes.attribute);
27
+ return attributes.map((attr, index) => /* @__PURE__ */ jsxs("tr", { children: [
28
+ index === 0 && /* @__PURE__ */ jsx(
29
+ "td",
30
+ {
31
+ className: "appoinments__details_id",
32
+ rowSpan: attributes.length,
33
+ children: c.id
34
+ }
35
+ ),
36
+ /* @__PURE__ */ jsxs("td", { className: "appoinments__details_attribute", children: [
37
+ attr.title,
38
+ ": ",
39
+ attr.value
40
+ ] })
41
+ ] }, `${c.id}-${index}`));
42
+ }) })
43
+ ] });
44
+ return /* @__PURE__ */ jsx(Box, { ...getVariant("layout.execution.form.fields.scheduler.details"), children: content });
45
+ }
46
+ );
47
+
48
+ const dateFormat = getDateFormat();
49
+ const CellRenderer = observer(({ cell }) => {
50
+ const controller = useScheduler();
51
+ const state = controller.getState();
52
+ if (cell.getState("content")) {
53
+ return cell.getState("content");
54
+ }
55
+ const properties = cell.getState("properties");
56
+ if (!state)
57
+ return;
58
+ const isSelected = state.selectedCell === properties.cellId;
59
+ const ariaLabel = !properties.isEnabled ? `${dayjs(properties.weekDay, dateFormat).add(Number(properties.dayNumber) - 1, "day").format(dateFormat)},${properties.hour.slice(0, -2) ?? ""}:${properties.hour.slice(2) ?? ""}, ${String("disabled")}
60
+ ` : `${dayjs(properties.weekDay, dateFormat).add(Number(properties.dayNumber) - 1, "day").format(dateFormat)},${properties.hour.slice(
61
+ 0,
62
+ -2
63
+ )}:${properties.hour.slice(2)}, ${String(
64
+ properties.valuePlusOverassign
65
+ )}
66
+ `;
67
+ const title = !properties.isEnabled ? "" : `${dayjs(properties.weekDay, dateFormat).add(Number(properties.dayNumber) - 1, "day").format(dateFormat)},${properties.hour.slice(
68
+ 0,
69
+ -2
70
+ )}:${properties.hour.slice(2)}, ${String(
71
+ properties.valuePlusOverassign
72
+ )}
73
+ `;
74
+ const onSelectDayHandler = useCallback(() => {
75
+ if (controller.type === "RescheduleTskScheduler") {
76
+ controller.setState({
77
+ ...state,
78
+ selectedCell: properties.cellId,
79
+ selectedDay: {
80
+ hour: String(properties.hour),
81
+ day: dayjs(properties.weekDay, dateFormat).add(Number(properties.dayNumber) - 1, "day").format(dateFormat),
82
+ mondayWeek: String(
83
+ dayjs(properties.weekDay, dateFormat).format(dateFormat)
84
+ ),
85
+ dayNumber: Number(properties.dayNumber),
86
+ morningOrAfternoonSelected: Number(properties.hour)
87
+ }
88
+ });
89
+ } else {
90
+ ApiaApi.get(
91
+ makeApiaUrl({
92
+ ajaxUrl: "/apia.design.TaskSchedulerAction.run",
93
+ action: "setExecutionSchedulerSelectedDay",
94
+ weekDay: properties.weekDay,
95
+ hour: properties.hour,
96
+ dayNumber: properties.dayNumber
97
+ })
98
+ ).then((response) => {
99
+ if (response?.data?.success) {
100
+ controller.setState({
101
+ ...state,
102
+ selectedCell: properties.cellId,
103
+ selectedDay: {
104
+ hour: String(properties.hour),
105
+ day: dayjs(properties.weekDay, dateFormat).add(Number(properties.dayNumber) - 1, "day").format(dateFormat),
106
+ mondayWeek: String(
107
+ dayjs(properties.weekDay, dateFormat).format(dateFormat)
108
+ ),
109
+ dayNumber: Number(properties.dayNumber),
110
+ morningOrAfternoonSelected: Number(properties.hour)
111
+ }
112
+ });
113
+ if (properties.currentDayDefinition) {
114
+ controller.syncStage(
115
+ properties.currentDayDefinition,
116
+ Number(properties.hour)
117
+ );
118
+ }
119
+ }
120
+ }).catch(() => {
121
+ });
122
+ }
123
+ }, [
124
+ controller,
125
+ properties.cellId,
126
+ properties.currentDayDefinition,
127
+ properties.dayNumber,
128
+ properties.hour,
129
+ properties.weekDay,
130
+ state
131
+ ]);
132
+ return /* @__PURE__ */ jsxs(
133
+ Box,
134
+ {
135
+ className: `scheduler_cell ${properties.isOverassignClassName ? "td_overassign" : ""}`,
136
+ children: [
137
+ /* @__PURE__ */ jsxs(
138
+ SimpleButton,
139
+ {
140
+ tabIndex: 0,
141
+ title,
142
+ "aria-label": ariaLabel,
143
+ disabled: !properties.isEnabled,
144
+ ...getVariant("transparentIcon"),
145
+ onClick: onSelectDayHandler,
146
+ className: `sched_cell__btn `,
147
+ children: [
148
+ isSelected && /* @__PURE__ */ jsx(Icon, { title: "", name: "Check" }),
149
+ !isSelected && properties.isEnabled && toBoolean(state.initialProps.showDisponibility) && Number(properties.valuePlusOverassign)
150
+ ]
151
+ }
152
+ ),
153
+ properties.currentDayDefinition?.type === "laboral" && ApiaUtil.instance.parsers.parseBool(
154
+ state.initialProps.showAttributes ?? "false"
155
+ ) && /* @__PURE__ */ jsx(
156
+ IconButton,
157
+ {
158
+ size: 24,
159
+ icon: "Search",
160
+ ...getVariant("transparentIcon"),
161
+ className: `schd__info ${!properties.isEnabled ? "schd__info_disabledColor" : ""}`,
162
+ onClick: async () => {
163
+ const processes = await controller.loadInfo();
164
+ ApiaUtil.instance.modals.open({
165
+ title: getLabel("lblAppointmentDetails").text,
166
+ children: /* @__PURE__ */ jsx(ReserveDetails, { processes }),
167
+ variant: "layout.execution.form.fields.scheduler.details"
168
+ });
169
+ }
170
+ }
171
+ )
172
+ ]
173
+ }
174
+ );
175
+ });
176
+ class SchedulerTablePlugin {
177
+ getRenderers() {
178
+ return {
179
+ cell: CellRenderer
180
+ };
181
+ }
182
+ }
183
+
184
+ const Navigation = observer(() => {
185
+ const controller = useScheduler();
186
+ const mondayWeek = controller.getState().data?.mondayWeek;
187
+ const {
188
+ isDisabled,
189
+ isTodayLoading,
190
+ isLastWeekLoading,
191
+ isDateInputLoading,
192
+ isNextWeekLoading,
193
+ isDeleteLoading
194
+ } = {
195
+ isDisabled: controller.getState()?.isLoading !== "NotLoading",
196
+ isTodayLoading: controller.getState()?.isLoading === "Today",
197
+ isLastWeekLoading: controller.getState()?.isLoading === "LastWeek",
198
+ isDateInputLoading: controller.getState()?.isLoading === "DateInput",
199
+ isNextWeekLoading: controller.getState()?.isLoading === "NextWeek",
200
+ isDeleteLoading: controller.getState()?.isLoading === "DeleteWeek"
201
+ };
202
+ const onTodayHandler = () => {
203
+ controller.setState({ isLoading: "Today" });
204
+ controller.makeDaysStage();
205
+ controller.loadWeek(dayjs().subtract(1, "day").format(dateFormat));
206
+ };
207
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Box, { className: "scheduler__navigator", children: [
208
+ /* @__PURE__ */ jsx(
209
+ SimpleButton,
210
+ {
211
+ variant: "outline",
212
+ className: "scheduler__navigator_todayBtn",
213
+ disabled: isDisabled,
214
+ "aria-label": window.LBL_TODAY,
215
+ isLoading: isTodayLoading,
216
+ onClick: useCallback(onTodayHandler, [controller]),
217
+ type: "button",
218
+ children: window.LBL_TODAY
219
+ }
220
+ ),
221
+ /* @__PURE__ */ jsx(
222
+ SimpleButton,
223
+ {
224
+ variant: "outline",
225
+ className: "scheduler__navigator_lastBtn",
226
+ disabled: isDisabled,
227
+ title: window.LBL_SCHED_LAST_WEEK_TOOLTIP,
228
+ "aria-label": window.LBL_SCHED_LAST_WEEK_TEXT,
229
+ isLoading: isLastWeekLoading,
230
+ onClick: () => controller.goPreviousWeek(),
231
+ type: "button",
232
+ children: "<"
233
+ }
234
+ ),
235
+ /* @__PURE__ */ jsx(
236
+ DateInput,
237
+ {
238
+ className: "scheduler__navigator_dateInput",
239
+ disabled: isDisabled,
240
+ isLoading: isDateInputLoading,
241
+ getCustomMask: useCallback(() => {
242
+ return "";
243
+ }, []),
244
+ renderLabel: controller.parsedDateLabel,
245
+ onChange: (newDate) => {
246
+ if (newDate) {
247
+ controller.setState({ isLoading: "DateInput" });
248
+ controller.loadWeek(
249
+ dayjs(newDate, dateFormat).format(dateFormat)
250
+ );
251
+ }
252
+ },
253
+ value: mondayWeek
254
+ }
255
+ ),
256
+ /* @__PURE__ */ jsx(
257
+ SimpleButton,
258
+ {
259
+ variant: "outline",
260
+ className: "scheduler__navigator_nextBtn",
261
+ disabled: isDisabled,
262
+ title: window.LBL_SCHED_NEXT_WEEK_TOOLTIP,
263
+ "aria-label": window.LBL_SCHED_NEXT_WEEK_TEXT,
264
+ isLoading: isNextWeekLoading,
265
+ onClick: () => controller.goNextWeek(),
266
+ type: "button",
267
+ children: ">"
268
+ }
269
+ ),
270
+ /* @__PURE__ */ jsx(
271
+ SimpleButton,
272
+ {
273
+ variant: "outline-danger",
274
+ title: window.LBL_SCHED_RESET_TOOLTIP,
275
+ "aria-label": window.LBL_SCHED_RESET_TEXT,
276
+ className: "scheduler__navigator_DeleteBtn",
277
+ disabled: isDisabled,
278
+ isLoading: isDeleteLoading,
279
+ onClick: () => controller.deleteDate(),
280
+ type: "button",
281
+ children: /* @__PURE__ */ jsx(Icon, { name: "Trash", title: window.LBL_SCHED_RESET_TEXT })
282
+ }
283
+ )
284
+ ] }) });
285
+ });
286
+
287
+ const SchedTable = observer(() => {
288
+ const controller = useScheduler();
289
+ return /* @__PURE__ */ jsx(
290
+ Box,
291
+ {
292
+ onKeyDownCapture: (ev) => {
293
+ if (ev.code === "ArrowRight" && ev.ctrlKey) {
294
+ ev.stopPropagation();
295
+ controller.goNextWeek();
296
+ }
297
+ if (ev.code === "ArrowLeft" && ev.ctrlKey) {
298
+ ev.stopPropagation();
299
+ controller.goPreviousWeek();
300
+ }
301
+ },
302
+ children: /* @__PURE__ */ jsx(Table, { variant: "secondary", controller: controller.tableController })
303
+ }
304
+ );
305
+ });
306
+
307
+ const StageButton = observer(
308
+ ({
309
+ button: {
310
+ action,
311
+ isDisabled,
312
+ isSelectedSelector,
313
+ label,
314
+ title,
315
+ value,
316
+ ...props
317
+ }
318
+ }) => {
319
+ const controller = useScheduler();
320
+ const isSelected = isSelectedSelector();
321
+ const showDisponibility = controller.getState().initialProps.showDisponibility;
322
+ const overassign = controller.getState().data?.overassign;
323
+ return /* @__PURE__ */ jsxs(
324
+ SimpleButton,
325
+ {
326
+ variant: "outline",
327
+ className: `${isSelected ? "selected" : ""} ${value !== "" && !Number(value) && Number(value) <= Number(overassign) ? "td_overassign" : ""} ${isDisabled ? "disabled" : ""} stage_btn`,
328
+ onClick: action,
329
+ disabled: isDisabled,
330
+ ...props,
331
+ children: [
332
+ label,
333
+ " ",
334
+ toBoolean(showDisponibility) && value !== "" && `(${Number(value) + Number(overassign) || Number(overassign)})`
335
+ ]
336
+ },
337
+ title
338
+ );
339
+ }
340
+ );
341
+
342
+ const Stage = observer(({ stageIndex }) => {
343
+ const controller = useScheduler();
344
+ const stage = controller.getState().stageData?.[stageIndex];
345
+ const [ref, setRef] = React.useState(null);
346
+ const focusStage = controller.getState().focusStage;
347
+ const isMounted = !!stage?.name;
348
+ const hasTransitionedIn = useMountTransition(isMounted, 1e3);
349
+ const doFocus = React.useCallback(() => {
350
+ if (!stage || stage.name === "daysList")
351
+ return;
352
+ if (!ref)
353
+ return;
354
+ const firstBtn = ref.querySelector(
355
+ ".stage_btn:not(:disabled)"
356
+ );
357
+ if (firstBtn) {
358
+ firstBtn.focus();
359
+ }
360
+ }, [ref, stage]);
361
+ React.useEffect(() => {
362
+ if (focusStage === stage?.name)
363
+ doFocus();
364
+ }, [focusStage]);
365
+ React.useLayoutEffect(doFocus, [ref, stage]);
366
+ const handleFocus = React.useCallback(
367
+ (sum) => {
368
+ const focusedElement = document.activeElement;
369
+ if (isChild(focusedElement, (current) => current === ref) && ref) {
370
+ const buttons = [
371
+ ...ref.querySelectorAll(".stage_btn:not(:disabled)")
372
+ ];
373
+ if (buttons) {
374
+ const index = buttons.findIndex(
375
+ (current) => current === focusedElement
376
+ );
377
+ if (buttons[index] === focusedElement && buttons[index - sum]) {
378
+ buttons[index - sum].focus();
379
+ controller.setState({ focusStage: stage?.name });
380
+ }
381
+ }
382
+ }
383
+ },
384
+ [controller, ref, stage?.name]
385
+ );
386
+ const handleKeyDown = React.useCallback(
387
+ (ev) => {
388
+ if (ev.key.toLowerCase() === "arrowdown") {
389
+ ev.preventDefault();
390
+ handleFocus(-1);
391
+ }
392
+ if (ev.key.toLowerCase() === "arrowup") {
393
+ ev.preventDefault();
394
+ handleFocus(1);
395
+ }
396
+ },
397
+ [handleFocus]
398
+ );
399
+ return stage ? /* @__PURE__ */ jsx(
400
+ Box,
401
+ {
402
+ "data-name": stage?.name,
403
+ className: `stage ${hasTransitionedIn && "in"} ${isMounted && "visible"}`,
404
+ ref: setRef,
405
+ onKeyDown: handleKeyDown,
406
+ children: (hasTransitionedIn || isMounted) && stage?.buttons?.map((elem) => {
407
+ return /* @__PURE__ */ jsx(StageButton, { button: elem }, elem.title);
408
+ })
409
+ }
410
+ ) : null;
411
+ });
412
+
413
+ const Mini = observer(() => {
414
+ const controller = useScheduler();
415
+ const data = controller.getState().data;
416
+ const stage = controller.getState()?.stageData;
417
+ const stagesLength = controller.getState().stageData?.length;
418
+ return /* @__PURE__ */ jsxs(
419
+ Box,
420
+ {
421
+ ...getVariant("layout.execution.form.fields.scheduler"),
422
+ className: "schedulerMini",
423
+ onKeyDown: (ev) => {
424
+ if (ev.key.toLowerCase() === "arrowleft") {
425
+ const stageName = getSpecificParent(
426
+ ev.target,
427
+ (current) => current.classList.contains("stage")
428
+ )?.dataset.name;
429
+ const stageIndex = stage.findIndex(
430
+ (current) => current.name === stageName
431
+ );
432
+ if (stageIndex <= 0)
433
+ return;
434
+ const nextStage = stage[stageIndex - 1]?.name;
435
+ const firstButton = document.querySelector(
436
+ `[data-name="${nextStage}"] .selected`
437
+ ) || document.querySelector(
438
+ `[data-name="${nextStage}"] button:not(:disabled)`
439
+ );
440
+ if (firstButton)
441
+ firstButton.focus();
442
+ }
443
+ if (ev.key.toLowerCase() === "arrowright") {
444
+ const stageName = getSpecificParent(
445
+ ev.target,
446
+ (current) => current.classList.contains("stage")
447
+ )?.dataset.name;
448
+ const stageIndex = stage.findIndex(
449
+ (current) => current.name === stageName
450
+ );
451
+ if (stageIndex >= stage.length - 1)
452
+ return;
453
+ const nextStage = stage[stageIndex + 1]?.name;
454
+ const firstButton = document.querySelector(
455
+ `[data-name="${nextStage}"] .selected`
456
+ ) || document.querySelector(
457
+ `[data-name="${nextStage}"] button:not(:disabled)`
458
+ );
459
+ if (firstButton)
460
+ firstButton.focus();
461
+ }
462
+ },
463
+ children: [
464
+ data?.weekNotConfigured && /* @__PURE__ */ jsx(Heading, { as: "h1", children: window.LBL_SCHED_WEEK_NOT_CONFIGURED }),
465
+ !data?.weekNotConfigured && data?.tskSchDay && /* @__PURE__ */ jsxs(Fragment, { children: [
466
+ /* @__PURE__ */ jsx(Stage, { stageIndex: 0 }),
467
+ stagesLength >= 2 && /* @__PURE__ */ jsx(
468
+ Icon,
469
+ {
470
+ name: "ArrowDown",
471
+ title: "",
472
+ className: "schedulerMini_faCaretDown"
473
+ }
474
+ ),
475
+ /* @__PURE__ */ jsx(Stage, { stageIndex: 1 }),
476
+ stagesLength >= 3 && /* @__PURE__ */ jsx(
477
+ Icon,
478
+ {
479
+ name: "ArrowDown",
480
+ title: "",
481
+ className: "schedulerMini_faCaretDown"
482
+ }
483
+ ),
484
+ /* @__PURE__ */ jsx(Stage, { stageIndex: 2 })
485
+ ] }),
486
+ !data?.weekNotConfigured && !data?.tskSchDay && /* @__PURE__ */ jsx(Box, { className: "box_spinner", title: window.WAIT_A_SECOND, children: /* @__PURE__ */ jsx(Spinner, {}) })
487
+ ]
488
+ }
489
+ );
490
+ });
491
+
492
+ const SelectedDateInfo = observer(() => {
493
+ const controller = useScheduler();
494
+ const data = controller.getState().data;
495
+ const selectedDay = controller.getState()?.selectedDay;
496
+ return /* @__PURE__ */ jsxs(Box, { className: "selectedDateInfo", children: [
497
+ selectedDay?.day && selectedDay?.hour && /* @__PURE__ */ jsx(Label, { children: formatMessage(window.LBL_SCHED_SELECTED_DATE, {
498
+ TOK1: selectedDay?.day,
499
+ TOK2: `${selectedDay.hour.slice(
500
+ 0,
501
+ -2
502
+ )}:${selectedDay.hour.slice(2)}`
503
+ }) }),
504
+ !selectedDay?.day && !data?.weekNotConfigured && data?.tskSchDay && /* @__PURE__ */ jsx(Label, { sx: { display: "block" }, children: window.LBL_SCHED_DATE_NOT_SELECTED })
505
+ ] });
506
+ });
507
+
508
+ const SchedulerController = createContext(null);
509
+ function useScheduler() {
510
+ return useContext(SchedulerController);
511
+ }
512
+ const SchedulerComponent = observer(
513
+ ({
514
+ controller,
515
+ retriever,
516
+ properties,
517
+ getController
518
+ }) => {
519
+ if (!controller && !(properties && retriever)) {
520
+ console.error(
521
+ "Need to create controller or pass retriever and properties"
522
+ );
523
+ return null;
524
+ }
525
+ const [actualController] = useState(() => {
526
+ const ctrl = controller ?? new Scheduler(properties, retriever);
527
+ getController?.(ctrl);
528
+ ctrl.tableController.setPlugins((current) => {
529
+ if (!current.some((plugin) => plugin instanceof SchedulerTablePlugin)) {
530
+ current.push(new SchedulerTablePlugin());
531
+ }
532
+ return current;
533
+ });
534
+ return ctrl;
535
+ });
536
+ const breakPoint = useBreakpointIndex();
537
+ return /* @__PURE__ */ jsx(SchedulerController.Provider, { value: actualController, children: /* @__PURE__ */ jsxs(
538
+ Box,
539
+ {
540
+ ...getVariant("layout.common.components.scheduler"),
541
+ className: "scheduler",
542
+ children: [
543
+ /* @__PURE__ */ jsx(Navigation, {}),
544
+ /* @__PURE__ */ jsx(SelectedDateInfo, {}),
545
+ breakPoint > 4 ? /* @__PURE__ */ jsx(SchedTable, {}) : /* @__PURE__ */ jsx(Mini, {})
546
+ ]
547
+ }
548
+ ) });
549
+ }
550
+ );
551
+
552
+ export { SchedulerComponent };
553
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/Scheduler/ReserveDetails.tsx","../src/Scheduler/SchedulerTablePlugin.tsx","../src/Scheduler/Navigation.tsx","../src/Scheduler/Table.tsx","../src/Scheduler/mini/StageButton.tsx","../src/Scheduler/mini/Stage.tsx","../src/Scheduler/mini/Mini.tsx","../src/Scheduler/SelectedDayInfo.tsx","../src/Scheduler/index.tsx"],"sourcesContent":["import { arrayOrArray, getLabel } from '@apia/util';\r\nimport { Box, getVariant } from '@apia/theme';\r\nimport { TProcesses } from '@apia/execution';\r\nimport { observer } from 'mobx-react-lite';\r\n\r\nexport const ReserveDetails = observer(\r\n ({ processes }: { processes: TProcesses }) => {\r\n let content = (\r\n <Box className=\"no__appoinments\">\r\n <Box as=\"span\">{getLabel('lblNoAppoinments').text} </Box>\r\n </Box>\r\n );\r\n if (processes.length > 0)\r\n content = (\r\n <table className=\"appoinments__details\">\r\n <thead>\r\n <tr>\r\n <th>{getLabel('lblId').text}</th>\r\n <th>{getLabel('flaAtr').text}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {processes?.map((c) => {\r\n const attributes = arrayOrArray(c.attributes.attribute);\r\n return attributes.map((attr, index) => (\r\n <tr key={`${c.id}-${index}`}>\r\n {index === 0 && (\r\n <td\r\n className=\"appoinments__details_id\"\r\n rowSpan={attributes.length}\r\n >\r\n {c.id}\r\n </td>\r\n )}\r\n <td className=\"appoinments__details_attribute\">\r\n {attr.title}: {attr.value}\r\n </td>\r\n </tr>\r\n ));\r\n })}\r\n </tbody>\r\n </table>\r\n );\r\n return (\r\n <Box {...getVariant('layout.execution.form.fields.scheduler.details')}>\r\n {content}\r\n </Box>\r\n );\r\n },\r\n);\r\n","import { Cell, TablePlugin } from '@apia/table2-component';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { SimpleButton, IconButton, ApiaUtil } from '@apia/components';\r\nimport { Box, getVariant } from '@apia/theme';\r\nimport { useCallback } from 'react';\r\nimport { getDateFormat, getLabel, TDateFormat, toBoolean } from '@apia/util';\r\nimport dayjs from 'dayjs';\r\nimport { Icon } from '@apia/icons';\r\nimport { ReserveDetails } from './ReserveDetails';\r\nimport { useScheduler } from '.';\r\nimport { ApiaApi, makeApiaUrl } from '@apia/api';\r\nimport { TScheduleResult, TTskSchDay } from '@apia/scheduler-controller';\r\n\r\nexport const dateFormat: TDateFormat = getDateFormat();\r\n\r\ntype CellProperties = {\r\n cellId: string;\r\n currentDayDefinition: TTskSchDay;\r\n isEnabled: boolean;\r\n isQueriedDisabled: boolean;\r\n weekDay: string;\r\n dayNumber: number;\r\n hour: string;\r\n value: number;\r\n valuePlusOverassign: number;\r\n isOverassignClassName: boolean;\r\n};\r\n\r\nconst CellRenderer = observer(({ cell }: { cell: Cell }) => {\r\n const controller = useScheduler();\r\n const state = controller.getState();\r\n if (cell.getState('content')) {\r\n return cell.getState('content');\r\n }\r\n const properties = cell.getState('properties') as CellProperties;\r\n if (!state) return;\r\n const isSelected = state.selectedCell === properties.cellId;\r\n\r\n const ariaLabel = !properties!.isEnabled\r\n ? `${dayjs(properties!.weekDay, dateFormat)\r\n .add(Number(properties!.dayNumber) - 1, 'day')\r\n .format(dateFormat)},${\r\n properties!.hour.slice(0, -2) ?? ''\r\n }:${properties!.hour.slice(2) ?? ''}, ${String('disabled')}\r\n `\r\n : `${dayjs(properties!.weekDay, dateFormat)\r\n .add(Number(properties!.dayNumber) - 1, 'day')\r\n .format(dateFormat)},${properties!.hour.slice(\r\n 0,\r\n -2,\r\n )}:${properties!.hour.slice(2)}, ${String(\r\n properties!.valuePlusOverassign,\r\n )}\r\n `;\r\n\r\n const title = !properties!.isEnabled\r\n ? ''\r\n : `${dayjs(properties!.weekDay, dateFormat)\r\n .add(Number(properties!.dayNumber) - 1, 'day')\r\n .format(dateFormat)},${properties!.hour.slice(\r\n 0,\r\n -2,\r\n )}:${properties!.hour.slice(2)}, ${String(\r\n properties!.valuePlusOverassign,\r\n )}\r\n `;\r\n\r\n const onSelectDayHandler = useCallback(() => {\r\n if (controller.type === 'RescheduleTskScheduler') {\r\n controller.setState({\r\n ...state,\r\n selectedCell: properties.cellId,\r\n\r\n selectedDay: {\r\n hour: String(properties.hour),\r\n day: dayjs(properties.weekDay, dateFormat)\r\n .add(Number(properties.dayNumber) - 1, 'day')\r\n .format(dateFormat),\r\n mondayWeek: String(\r\n dayjs(properties.weekDay, dateFormat).format(dateFormat),\r\n ),\r\n dayNumber: Number(properties.dayNumber),\r\n morningOrAfternoonSelected: Number(properties.hour),\r\n },\r\n });\r\n } else {\r\n ApiaApi.get<TScheduleResult>(\r\n makeApiaUrl({\r\n ajaxUrl: '/apia.design.TaskSchedulerAction.run',\r\n action: 'setExecutionSchedulerSelectedDay',\r\n weekDay: properties.weekDay,\r\n hour: properties.hour,\r\n dayNumber: properties.dayNumber,\r\n }),\r\n )\r\n .then((response) => {\r\n if (response?.data?.success) {\r\n controller.setState({\r\n ...state,\r\n selectedCell: properties.cellId,\r\n selectedDay: {\r\n hour: String(properties.hour),\r\n day: dayjs(properties.weekDay, dateFormat)\r\n .add(Number(properties.dayNumber) - 1, 'day')\r\n .format(dateFormat),\r\n mondayWeek: String(\r\n dayjs(properties.weekDay, dateFormat).format(dateFormat),\r\n ),\r\n dayNumber: Number(properties.dayNumber),\r\n morningOrAfternoonSelected: Number(properties.hour),\r\n },\r\n });\r\n if (properties.currentDayDefinition) {\r\n controller.syncStage(\r\n properties.currentDayDefinition,\r\n Number(properties.hour),\r\n );\r\n }\r\n }\r\n })\r\n .catch(() => {});\r\n }\r\n }, [\r\n controller,\r\n properties.cellId,\r\n properties.currentDayDefinition,\r\n properties.dayNumber,\r\n properties.hour,\r\n properties.weekDay,\r\n state,\r\n ]);\r\n\r\n return (\r\n <Box\r\n className={`scheduler_cell ${\r\n properties!.isOverassignClassName ? 'td_overassign' : ''\r\n }`}\r\n >\r\n <SimpleButton\r\n tabIndex={0}\r\n title={title}\r\n aria-label={ariaLabel}\r\n disabled={!properties!.isEnabled}\r\n {...getVariant('transparentIcon')}\r\n onClick={onSelectDayHandler}\r\n className={`sched_cell__btn `}\r\n >\r\n {isSelected && <Icon title=\"\" name=\"Check\" />}\r\n {!isSelected &&\r\n properties!.isEnabled &&\r\n toBoolean(state.initialProps.showDisponibility) &&\r\n Number(properties!.valuePlusOverassign)}\r\n </SimpleButton>\r\n\r\n {properties!.currentDayDefinition?.type === 'laboral' &&\r\n ApiaUtil.instance.parsers.parseBool(\r\n state.initialProps.showAttributes ?? 'false',\r\n ) && (\r\n <IconButton\r\n size={24}\r\n icon=\"Search\"\r\n {...getVariant('transparentIcon')}\r\n className={`schd__info ${!properties!.isEnabled ? 'schd__info_disabledColor' : ''}`}\r\n onClick={async () => {\r\n const processes = await controller.loadInfo();\r\n\r\n ApiaUtil.instance.modals.open({\r\n title: getLabel('lblAppointmentDetails').text,\r\n children: <ReserveDetails processes={processes} />,\r\n variant: 'layout.execution.form.fields.scheduler.details',\r\n });\r\n }}\r\n />\r\n )}\r\n </Box>\r\n );\r\n});\r\n\r\nexport class SchedulerTablePlugin implements TablePlugin {\r\n getRenderers() {\r\n return {\r\n cell: CellRenderer,\r\n };\r\n }\r\n}\r\n","import dayjs from 'dayjs';\r\nimport { dateFormat } from './SchedulerTablePlugin';\r\nimport { useCallback } from 'react';\r\nimport { DateInput, SimpleButton } from '@apia/components';\r\nimport { Box } from '@apia/theme';\r\nimport { Icon } from '@apia/icons';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useScheduler } from '.';\r\n\r\n// enum Characteristic {\r\n// A = 'A',\r\n// B = 'B',\r\n// C = 'C',\r\n// }\r\n\r\n// type State = {\r\n// characteristic: Characteristic;\r\n// }\r\n\r\n// class A {\r\n// state: State = {characteristic: Characteristic.A}\r\n\r\n// setState<K extends keyof State>(key: K, value: State[K]) {\r\n// return this.state[key];\r\n// }\r\n// }\r\n\r\n// const a: A;\r\n\r\n// const pepe = a.setState('characteristic', Characteristic.C)\r\n\r\nexport const Navigation = observer(() => {\r\n const controller = useScheduler();\r\n const mondayWeek = controller.getState().data?.mondayWeek;\r\n\r\n const {\r\n isDisabled,\r\n isTodayLoading,\r\n isLastWeekLoading,\r\n isDateInputLoading,\r\n isNextWeekLoading,\r\n isDeleteLoading,\r\n } = {\r\n isDisabled: controller.getState()?.isLoading !== 'NotLoading',\r\n isTodayLoading: controller.getState()?.isLoading === 'Today',\r\n isLastWeekLoading: controller.getState()?.isLoading === 'LastWeek',\r\n isDateInputLoading: controller.getState()?.isLoading === 'DateInput',\r\n isNextWeekLoading: controller.getState()?.isLoading === 'NextWeek',\r\n isDeleteLoading: controller.getState()?.isLoading === 'DeleteWeek',\r\n };\r\n\r\n const onTodayHandler = () => {\r\n controller.setState({ isLoading: 'Today' });\r\n\r\n controller.makeDaysStage();\r\n controller.loadWeek(dayjs().subtract(1, 'day').format(dateFormat));\r\n };\r\n\r\n return (\r\n <>\r\n <Box className=\"scheduler__navigator\">\r\n <SimpleButton\r\n variant=\"outline\"\r\n className=\"scheduler__navigator_todayBtn\"\r\n disabled={isDisabled}\r\n aria-label={window.LBL_TODAY}\r\n isLoading={isTodayLoading}\r\n onClick={useCallback(onTodayHandler, [controller])}\r\n type=\"button\"\r\n >\r\n {window.LBL_TODAY}\r\n </SimpleButton>\r\n <SimpleButton\r\n variant=\"outline\"\r\n className=\"scheduler__navigator_lastBtn\"\r\n disabled={isDisabled}\r\n title={window.LBL_SCHED_LAST_WEEK_TOOLTIP}\r\n aria-label={window.LBL_SCHED_LAST_WEEK_TEXT}\r\n isLoading={isLastWeekLoading}\r\n onClick={() => controller.goPreviousWeek()}\r\n type=\"button\"\r\n >\r\n &lt;\r\n </SimpleButton>\r\n <DateInput\r\n className=\"scheduler__navigator_dateInput\"\r\n disabled={isDisabled}\r\n isLoading={isDateInputLoading}\r\n getCustomMask={useCallback(() => {\r\n return '';\r\n }, [])}\r\n renderLabel={controller.parsedDateLabel}\r\n onChange={(newDate) => {\r\n if (newDate) {\r\n controller.setState({ isLoading: 'DateInput' });\r\n controller.loadWeek(\r\n dayjs(newDate, dateFormat).format(dateFormat),\r\n );\r\n }\r\n }}\r\n value={mondayWeek}\r\n />\r\n <SimpleButton\r\n variant=\"outline\"\r\n className=\"scheduler__navigator_nextBtn\"\r\n disabled={isDisabled}\r\n title={window.LBL_SCHED_NEXT_WEEK_TOOLTIP}\r\n aria-label={window.LBL_SCHED_NEXT_WEEK_TEXT}\r\n isLoading={isNextWeekLoading}\r\n onClick={() => controller.goNextWeek()}\r\n type=\"button\"\r\n >\r\n &gt;\r\n </SimpleButton>\r\n <SimpleButton\r\n variant=\"outline-danger\"\r\n title={window.LBL_SCHED_RESET_TOOLTIP}\r\n aria-label={window.LBL_SCHED_RESET_TEXT}\r\n className=\"scheduler__navigator_DeleteBtn\"\r\n disabled={isDisabled}\r\n isLoading={isDeleteLoading}\r\n onClick={() => controller.deleteDate()}\r\n type=\"button\"\r\n >\r\n <Icon name=\"Trash\" title={window.LBL_SCHED_RESET_TEXT} />\r\n </SimpleButton>\r\n </Box>\r\n </>\r\n );\r\n});\r\n","import { Table } from '@apia/table2-component';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { Box } from '@apia/theme';\r\nimport { useScheduler } from '.';\r\n\r\nexport const SchedTable = observer(() => {\r\n const controller = useScheduler();\r\n\r\n return (\r\n <Box\r\n onKeyDownCapture={(ev) => {\r\n if (ev.code === 'ArrowRight' && ev.ctrlKey) {\r\n ev.stopPropagation();\r\n controller.goNextWeek();\r\n }\r\n if (ev.code === 'ArrowLeft' && ev.ctrlKey) {\r\n ev.stopPropagation();\r\n controller.goPreviousWeek();\r\n }\r\n }}\r\n >\r\n <Table variant=\"secondary\" controller={controller.tableController} />\r\n </Box>\r\n );\r\n});\r\n","import { toBoolean } from '@apia/util';\r\nimport { SimpleButton } from '@apia/components';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useScheduler } from '..';\r\nimport { IStageButton } from '@apia/scheduler-controller';\r\n\r\nconst StageButton = observer(\r\n ({\r\n button: {\r\n action,\r\n isDisabled,\r\n isSelectedSelector,\r\n label,\r\n title,\r\n value,\r\n ...props\r\n },\r\n }: {\r\n button: IStageButton;\r\n }) => {\r\n const controller = useScheduler();\r\n const isSelected = isSelectedSelector();\r\n const showDisponibility =\r\n controller.getState().initialProps.showDisponibility;\r\n const overassign = controller.getState().data?.overassign;\r\n\r\n return (\r\n <SimpleButton\r\n variant=\"outline\"\r\n className={`${isSelected ? 'selected' : ''} ${\r\n value !== '' && !Number(value) && Number(value) <= Number(overassign)\r\n ? 'td_overassign'\r\n : ''\r\n } ${isDisabled ? 'disabled' : ''} stage_btn`}\r\n onClick={action}\r\n key={title}\r\n disabled={isDisabled}\r\n {...props}\r\n >\r\n {label}{' '}\r\n {toBoolean(showDisponibility) &&\r\n value !== '' &&\r\n `(${Number(value) + Number(overassign) || Number(overassign)})`}\r\n </SimpleButton>\r\n );\r\n },\r\n);\r\n\r\nexport default StageButton;\r\n","import React from 'react';\r\nimport { Box } from '@apia/theme';\r\n\r\nimport StageButton from './StageButton';\r\nimport { isChild, useMountTransition } from '@apia/util';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useScheduler } from '..';\r\n\r\ninterface IButtonList {\r\n stageIndex: number;\r\n}\r\n\r\nconst Stage = observer(({ stageIndex }: IButtonList) => {\r\n const controller = useScheduler();\r\n const stage = controller.getState().stageData?.[stageIndex];\r\n const [ref, setRef] = React.useState<HTMLElement | null>(null);\r\n const focusStage = controller.getState().focusStage;\r\n const isMounted = !!stage?.name;\r\n const hasTransitionedIn = useMountTransition(isMounted, 1000);\r\n\r\n const doFocus = React.useCallback(() => {\r\n if (!stage || stage.name === 'daysList') return;\r\n\r\n if (!ref) return;\r\n const firstBtn = ref.querySelector(\r\n '.stage_btn:not(:disabled)',\r\n ) as HTMLElement;\r\n if (firstBtn) {\r\n firstBtn.focus();\r\n }\r\n }, [ref, stage]);\r\n\r\n React.useEffect(() => {\r\n if (focusStage === stage?.name) doFocus();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [focusStage]);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n React.useLayoutEffect(doFocus, [ref, stage]);\r\n\r\n const handleFocus = React.useCallback(\r\n (sum: number) => {\r\n const focusedElement = document.activeElement;\r\n if (\r\n isChild(focusedElement as HTMLElement, (current) => current === ref) &&\r\n ref\r\n ) {\r\n const buttons = [\r\n ...ref.querySelectorAll<HTMLElement>('.stage_btn:not(:disabled)'),\r\n ];\r\n if (buttons) {\r\n const index = buttons.findIndex(\r\n (current) => current === focusedElement,\r\n );\r\n\r\n if (buttons[index] === focusedElement && buttons[index - sum]) {\r\n buttons[index - sum].focus();\r\n\r\n controller.setState({ focusStage: stage?.name });\r\n }\r\n }\r\n }\r\n },\r\n [controller, ref, stage?.name],\r\n );\r\n\r\n const handleKeyDown = React.useCallback(\r\n (ev: React.KeyboardEvent) => {\r\n if (ev.key.toLowerCase() === 'arrowdown') {\r\n ev.preventDefault();\r\n handleFocus(-1);\r\n }\r\n if (ev.key.toLowerCase() === 'arrowup') {\r\n ev.preventDefault();\r\n handleFocus(+1);\r\n }\r\n },\r\n [handleFocus],\r\n );\r\n\r\n return stage ? (\r\n <Box\r\n data-name={stage?.name}\r\n className={`stage ${hasTransitionedIn && 'in'} ${isMounted && 'visible'}`}\r\n ref={setRef}\r\n onKeyDown={handleKeyDown}\r\n >\r\n {(hasTransitionedIn || isMounted) &&\r\n stage?.buttons?.map((elem) => {\r\n return <StageButton button={elem} key={elem.title} />;\r\n })}\r\n </Box>\r\n ) : null;\r\n});\r\n\r\nexport default Stage;\r\n","import { Box, getVariant, Heading, Spinner } from '@apia/theme';\r\nimport { observer } from 'mobx-react-lite';\r\nimport Stage from './Stage';\r\nimport { getSpecificParent } from '@apia/util';\r\nimport { Icon } from '@apia/icons';\r\nimport { useScheduler } from '..';\r\n\r\nexport const Mini = observer(() => {\r\n const controller = useScheduler();\r\n const data = controller.getState().data;\r\n const stage = controller.getState()?.stageData;\r\n\r\n const stagesLength = controller.getState().stageData?.length;\r\n\r\n return (\r\n <Box\r\n {...getVariant('layout.execution.form.fields.scheduler')}\r\n className=\"schedulerMini\"\r\n onKeyDown={(ev) => {\r\n if (ev.key.toLowerCase() === 'arrowleft') {\r\n const stageName = getSpecificParent(\r\n ev.target as HTMLElement,\r\n (current) => current.classList.contains('stage'),\r\n )?.dataset.name as string;\r\n const stageIndex = stage.findIndex(\r\n (current) => current.name === stageName,\r\n );\r\n if (stageIndex <= 0) return;\r\n\r\n const nextStage = stage[stageIndex - 1]?.name;\r\n const firstButton =\r\n document.querySelector<HTMLElement>(\r\n `[data-name=\"${nextStage}\"] .selected`,\r\n ) ||\r\n document.querySelector<HTMLElement>(\r\n `[data-name=\"${nextStage}\"] button:not(:disabled)`,\r\n );\r\n if (firstButton) firstButton.focus();\r\n }\r\n if (ev.key.toLowerCase() === 'arrowright') {\r\n const stageName = getSpecificParent(\r\n ev.target as HTMLElement,\r\n (current) => current.classList.contains('stage'),\r\n )?.dataset.name as string;\r\n const stageIndex = stage.findIndex(\r\n (current) => current.name === stageName,\r\n );\r\n if (stageIndex >= stage.length - 1) return;\r\n\r\n const nextStage = stage[stageIndex + 1]?.name;\r\n const firstButton =\r\n document.querySelector<HTMLElement>(\r\n `[data-name=\"${nextStage}\"] .selected`,\r\n ) ||\r\n document.querySelector<HTMLElement>(\r\n `[data-name=\"${nextStage}\"] button:not(:disabled)`,\r\n );\r\n if (firstButton) firstButton.focus();\r\n }\r\n }}\r\n >\r\n {data?.weekNotConfigured && (\r\n <Heading as=\"h1\">{window.LBL_SCHED_WEEK_NOT_CONFIGURED}</Heading>\r\n )}\r\n {!data?.weekNotConfigured && data?.tskSchDay && (\r\n <>\r\n <Stage stageIndex={0} />\r\n {stagesLength >= 2 && (\r\n <Icon\r\n name=\"ArrowDown\"\r\n title=\"\"\r\n className=\"schedulerMini_faCaretDown\"\r\n />\r\n )}\r\n <Stage stageIndex={1} />\r\n {stagesLength >= 3 && (\r\n <Icon\r\n name=\"ArrowDown\"\r\n title=\"\"\r\n className=\"schedulerMini_faCaretDown\"\r\n />\r\n )}\r\n <Stage stageIndex={2} />\r\n </>\r\n )}\r\n {!data?.weekNotConfigured && !data?.tskSchDay && (\r\n <Box className=\"box_spinner\" title={window.WAIT_A_SECOND}>\r\n <Spinner />\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n});\r\n","import { Box, Label } from '@apia/theme';\r\nimport { formatMessage } from '@apia/util';\r\nimport { observer } from 'mobx-react-lite';\r\nimport { useScheduler } from '.';\r\n\r\nconst SelectedDateInfo = observer(() => {\r\n const controller = useScheduler();\r\n const data = controller.getState().data;\r\n const selectedDay = controller.getState()?.selectedDay;\r\n\r\n return (\r\n <Box className=\"selectedDateInfo\">\r\n {selectedDay?.day && selectedDay?.hour && (\r\n <Label>\r\n {formatMessage(window.LBL_SCHED_SELECTED_DATE, {\r\n TOK1: selectedDay?.day,\r\n TOK2: `${selectedDay.hour.slice(\r\n 0,\r\n -2,\r\n )}:${selectedDay.hour!.slice(2)}`,\r\n })}\r\n </Label>\r\n )}\r\n {!selectedDay?.day && !data?.weekNotConfigured && data?.tskSchDay && (\r\n <Label sx={{ display: 'block' }}>\r\n {window.LBL_SCHED_DATE_NOT_SELECTED}\r\n </Label>\r\n )}\r\n </Box>\r\n );\r\n});\r\n\r\nexport default SelectedDateInfo;\r\n","import { Box, getVariant, useBreakpointIndex } from '@apia/theme';\r\nimport { Navigation } from './Navigation';\r\nimport { SchedTable } from './Table';\r\nimport { Mini } from './mini/Mini';\r\nimport { SchedulerTablePlugin } from './SchedulerTablePlugin';\r\nimport { observer } from 'mobx-react-lite';\r\nimport SelectedDateInfo from './SelectedDayInfo';\r\nimport {\r\n IScheduleInitialProps,\r\n ISchedulerDataRetriever,\r\n Scheduler,\r\n} from '@apia/scheduler-controller';\r\nimport { createContext, useContext, useState } from 'react';\r\n\r\nexport const SchedulerController = createContext<Scheduler | null>(null);\r\n\r\nexport function useScheduler() {\r\n return useContext(SchedulerController)!;\r\n}\r\n\r\nexport const SchedulerComponent = observer(\r\n ({\r\n controller,\r\n retriever,\r\n properties,\r\n getController,\r\n }: {\r\n controller?: Scheduler;\r\n retriever?: ISchedulerDataRetriever;\r\n properties?: IScheduleInitialProps;\r\n getController?: (ctrl: Scheduler) => void;\r\n }) => {\r\n if (!controller && !(properties && retriever)) {\r\n console.error(\r\n 'Need to create controller or pass retriever and properties',\r\n );\r\n return null;\r\n }\r\n\r\n const [actualController] = useState(() => {\r\n const ctrl = controller ?? new Scheduler(properties!, retriever!);\r\n\r\n getController?.(ctrl);\r\n\r\n ctrl.tableController.setPlugins((current) => {\r\n if (!current.some((plugin) => plugin instanceof SchedulerTablePlugin)) {\r\n current.push(new SchedulerTablePlugin());\r\n }\r\n return current;\r\n });\r\n\r\n return ctrl;\r\n });\r\n\r\n const breakPoint = useBreakpointIndex();\r\n\r\n return (\r\n <SchedulerController.Provider value={actualController}>\r\n <Box\r\n {...getVariant('layout.common.components.scheduler')}\r\n className=\"scheduler\"\r\n >\r\n <Navigation />\r\n <SelectedDateInfo />\r\n {breakPoint > 4 ? <SchedTable /> : <Mini />}\r\n </Box>\r\n </SchedulerController.Provider>\r\n );\r\n },\r\n);\r\n"],"names":[],"mappings":";;;;;;;;;;;;AAKO,MAAM,cAAA,GAAiB,QAAA;AAAA,EAC5B,CAAC,EAAE,SAAA,EAAU,KAAiC;AAC5C,IAAA,IAAI,OAAA,uBACD,GAAA,EAAA,EAAI,SAAA,EAAU,mBACb,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,IAAG,MAAA,EAAQ,QAAA,EAAA;AAAA,MAAA,QAAA,CAAS,kBAAkB,CAAA,CAAE,IAAA;AAAA,MAAK;AAAA,KAAA,EAAC,CAAA,EACrD,CAAA;AAEF,IAAA,IAAI,UAAU,MAAA,GAAS,CAAA;AACrB,MAAA,OAAA,mBACE,IAAA,CAAC,OAAA,EAAA,EAAM,SAAA,EAAU,sBAAA,EACf,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EACC,+BAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,QAAA,CAAS,OAAO,CAAA,CAAE,IAAA,EAAK,CAAA;AAAA,0BAC5B,GAAA,CAAC,IAAA,EAAA,EAAI,QAAA,EAAA,QAAA,CAAS,QAAQ,EAAE,IAAA,EAAK;AAAA,SAAA,EAC/B,CAAA,EACF,CAAA;AAAA,wBACA,GAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA,SAAA,EAAW,GAAA,CAAI,CAAC,CAAA,KAAM;AACrB,UAAA,MAAM,UAAA,GAAa,YAAA,CAAa,CAAA,CAAE,UAAA,CAAW,SAAS,CAAA;AACtD,UAAA,OAAO,WAAW,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,0BAC1B,IAAA,EAAA,EACE,QAAA,EAAA;AAAA,YAAA,KAAA,KAAU,CAAA,oBACT,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAU,yBAAA;AAAA,gBACV,SAAS,UAAA,CAAW,MAAA;AAAA,gBAEnB,QAAA,EAAA,CAAA,CAAE;AAAA;AAAA,aACL;AAAA,4BAEF,IAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAU,gCAAA,EACX,QAAA,EAAA;AAAA,cAAA,IAAA,CAAK,KAAA;AAAA,cAAM,IAAA;AAAA,cAAG,IAAA,CAAK;AAAA,aAAA,EACtB;AAAA,WAAA,EAAA,EAXO,GAAG,CAAA,CAAE,EAAE,CAAA,CAAA,EAAI,KAAK,EAYzB,CACD,CAAA;AAAA,SACF,CAAA,EACH;AAAA,OAAA,EACF,CAAA;AAEJ,IAAA,2BACG,GAAA,EAAA,EAAK,GAAG,UAAA,CAAW,gDAAgD,GACjE,QAAA,EAAA,OAAA,EACH,CAAA;AAAA;AAGN,CAAA;;ACpCO,MAAM,aAA0B,aAAA,EAAc;AAerD,MAAM,YAAA,GAAe,QAAA,CAAS,CAAC,EAAE,MAAK,KAAsB;AAC1D,EAAA,MAAM,aAAa,YAAA,EAAa;AAChC,EAAA,MAAM,KAAA,GAAQ,WAAW,QAAA,EAAS;AAClC,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,SAAS,CAAA,EAAG;AAC5B,IAAA,OAAO,IAAA,CAAK,SAAS,SAAS,CAAA;AAAA;AAEhC,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,QAAA,CAAS,YAAY,CAAA;AAC7C,EAAA,IAAI,CAAC,KAAA;AAAO,IAAA;AACZ,EAAA,MAAM,UAAA,GAAa,KAAA,CAAM,YAAA,KAAiB,UAAA,CAAW,MAAA;AAErD,EAAA,MAAM,YAAY,CAAC,UAAA,CAAY,SAAA,GAC3B,CAAA,EAAG,MAAM,UAAA,CAAY,OAAA,EAAS,UAAU,CAAA,CACrC,IAAI,MAAA,CAAO,UAAA,CAAY,SAAS,CAAA,GAAI,CAAA,EAAG,KAAK,CAAA,CAC5C,MAAA,CAAO,UAAU,CAAC,IACnB,UAAA,CAAY,IAAA,CAAK,MAAM,CAAA,EAAG,EAAE,KAAK,EACnC,CAAA,CAAA,EAAI,UAAA,CAAY,IAAA,CAAK,MAAM,CAAC,CAAA,IAAK,EAAE,CAAA,EAAA,EAAK,MAAA,CAAO,UAAU,CAAC;AAAA,cAAA,CAAA,GAE1D,GAAG,KAAA,CAAM,UAAA,CAAY,SAAS,UAAU,CAAA,CACrC,IAAI,MAAA,CAAO,UAAA,CAAY,SAAS,CAAA,GAAI,CAAA,EAAG,KAAK,CAAA,CAC5C,MAAA,CAAO,UAAU,CAAC,CAAA,CAAA,EAAI,WAAY,IAAA,CAAK,KAAA;AAAA,IACxC,CAAA;AAAA,IACA;AAAA,GACD,CAAA,CAAA,EAAI,UAAA,CAAY,KAAK,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,MAAA;AAAA,IACjC,UAAA,CAAY;AAAA,GACb;AAAA,cAAA,CAAA;AAGL,EAAA,MAAM,KAAA,GAAQ,CAAC,UAAA,CAAY,SAAA,GACvB,EAAA,GACA,GAAG,KAAA,CAAM,UAAA,CAAY,OAAA,EAAS,UAAU,CAAA,CACrC,GAAA,CAAI,OAAO,UAAA,CAAY,SAAS,CAAA,GAAI,CAAA,EAAG,KAAK,CAAA,CAC5C,OAAO,UAAU,CAAC,CAAA,CAAA,EAAI,UAAA,CAAY,IAAA,CAAK,KAAA;AAAA,IACxC,CAAA;AAAA,IACA;AAAA,GACD,CAAA,CAAA,EAAI,UAAA,CAAY,KAAK,KAAA,CAAM,CAAC,CAAC,CAAA,EAAA,EAAK,MAAA;AAAA,IACjC,UAAA,CAAY;AAAA,GACb;AAAA,cAAA,CAAA;AAGL,EAAA,MAAM,kBAAA,GAAqB,YAAY,MAAM;AAC3C,IAAA,IAAI,UAAA,CAAW,SAAS,wBAAA,EAA0B;AAChD,MAAA,UAAA,CAAW,QAAA,CAAS;AAAA,QAClB,GAAG,KAAA;AAAA,QACH,cAAc,UAAA,CAAW,MAAA;AAAA,QAEzB,WAAA,EAAa;AAAA,UACX,IAAA,EAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAAA,UAC5B,GAAA,EAAK,KAAA,CAAM,UAAA,CAAW,OAAA,EAAS,UAAU,CAAA,CACtC,GAAA,CAAI,MAAA,CAAO,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,EAAG,KAAK,CAAA,CAC3C,OAAO,UAAU,CAAA;AAAA,UACpB,UAAA,EAAY,MAAA;AAAA,YACV,MAAM,UAAA,CAAW,OAAA,EAAS,UAAU,CAAA,CAAE,OAAO,UAAU;AAAA,WACzD;AAAA,UACA,SAAA,EAAW,MAAA,CAAO,UAAA,CAAW,SAAS,CAAA;AAAA,UACtC,0BAAA,EAA4B,MAAA,CAAO,UAAA,CAAW,IAAI;AAAA;AACpD,OACD,CAAA;AAAA,KACH,MAAO;AACL,MAAA,OAAA,CAAQ,GAAA;AAAA,QACN,WAAA,CAAY;AAAA,UACV,OAAA,EAAS,sCAAA;AAAA,UACT,MAAA,EAAQ,kCAAA;AAAA,UACR,SAAS,UAAA,CAAW,OAAA;AAAA,UACpB,MAAM,UAAA,CAAW,IAAA;AAAA,UACjB,WAAW,UAAA,CAAW;AAAA,SACvB;AAAA,OACH,CACG,IAAA,CAAK,CAAC,QAAA,KAAa;AAClB,QAAA,IAAI,QAAA,EAAU,MAAM,OAAA,EAAS;AAC3B,UAAA,UAAA,CAAW,QAAA,CAAS;AAAA,YAClB,GAAG,KAAA;AAAA,YACH,cAAc,UAAA,CAAW,MAAA;AAAA,YACzB,WAAA,EAAa;AAAA,cACX,IAAA,EAAM,MAAA,CAAO,UAAA,CAAW,IAAI,CAAA;AAAA,cAC5B,GAAA,EAAK,KAAA,CAAM,UAAA,CAAW,OAAA,EAAS,UAAU,CAAA,CACtC,GAAA,CAAI,MAAA,CAAO,UAAA,CAAW,SAAS,CAAA,GAAI,CAAA,EAAG,KAAK,CAAA,CAC3C,OAAO,UAAU,CAAA;AAAA,cACpB,UAAA,EAAY,MAAA;AAAA,gBACV,MAAM,UAAA,CAAW,OAAA,EAAS,UAAU,CAAA,CAAE,OAAO,UAAU;AAAA,eACzD;AAAA,cACA,SAAA,EAAW,MAAA,CAAO,UAAA,CAAW,SAAS,CAAA;AAAA,cACtC,0BAAA,EAA4B,MAAA,CAAO,UAAA,CAAW,IAAI;AAAA;AACpD,WACD,CAAA;AACD,UAAA,IAAI,WAAW,oBAAA,EAAsB;AACnC,YAAA,UAAA,CAAW,SAAA;AAAA,cACT,UAAA,CAAW,oBAAA;AAAA,cACX,MAAA,CAAO,WAAW,IAAI;AAAA,aACxB;AAAA;AACF;AACF,OACD,CAAA,CACA,KAAA,CAAM,MAAM;AAAA,OAAE,CAAA;AAAA;AACnB,GACF,EAAG;AAAA,IACD,UAAA;AAAA,IACA,UAAA,CAAW,MAAA;AAAA,IACX,UAAA,CAAW,oBAAA;AAAA,IACX,UAAA,CAAW,SAAA;AAAA,IACX,UAAA,CAAW,IAAA;AAAA,IACX,UAAA,CAAW,OAAA;AAAA,IACX;AAAA,GACD,CAAA;AAED,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,eAAA,EACT,UAAA,CAAY,qBAAA,GAAwB,kBAAkB,EACxD,CAAA,CAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,CAAA;AAAA,YACV,KAAA;AAAA,YACA,YAAA,EAAY,SAAA;AAAA,YACZ,QAAA,EAAU,CAAC,UAAA,CAAY,SAAA;AAAA,YACtB,GAAG,WAAW,iBAAiB,CAAA;AAAA,YAChC,OAAA,EAAS,kBAAA;AAAA,YACT,SAAA,EAAW,CAAA,gBAAA,CAAA;AAAA,YAEV,QAAA,EAAA;AAAA,cAAA,UAAA,oBAAc,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,EAAA,EAAG,MAAK,OAAA,EAAQ,CAAA;AAAA,cAC1C,CAAC,UAAA,IACA,UAAA,CAAY,SAAA,IACZ,SAAA,CAAU,KAAA,CAAM,YAAA,CAAa,iBAAiB,CAAA,IAC9C,MAAA,CAAO,UAAA,CAAY,mBAAmB;AAAA;AAAA;AAAA,SAC1C;AAAA,QAEC,WAAY,oBAAA,EAAsB,IAAA,KAAS,SAAA,IAC1C,QAAA,CAAS,SAAS,OAAA,CAAQ,SAAA;AAAA,UACxB,KAAA,CAAM,aAAa,cAAA,IAAkB;AAAA,SACvC,oBACE,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,EAAA;AAAA,YACN,IAAA,EAAK,QAAA;AAAA,YACJ,GAAG,WAAW,iBAAiB,CAAA;AAAA,YAChC,WAAW,CAAA,WAAA,EAAc,CAAC,UAAA,CAAY,SAAA,GAAY,6BAA6B,EAAE,CAAA,CAAA;AAAA,YACjF,SAAS,YAAY;AACnB,cAAA,MAAM,SAAA,GAAY,MAAM,UAAA,CAAW,QAAA,EAAS;AAE5C,cAAA,QAAA,CAAS,QAAA,CAAS,OAAO,IAAA,CAAK;AAAA,gBAC5B,KAAA,EAAO,QAAA,CAAS,uBAAuB,CAAA,CAAE,IAAA;AAAA,gBACzC,QAAA,kBAAU,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAsB,CAAA;AAAA,gBAChD,OAAA,EAAS;AAAA,eACV,CAAA;AAAA;AACH;AAAA;AACF;AAAA;AAAA,GAEN;AAEJ,CAAC,CAAA;AAEM,MAAM,oBAAA,CAA4C;AAAA,EACvD,YAAA,GAAe;AACb,IAAA,OAAO;AAAA,MACL,IAAA,EAAM;AAAA,KACR;AAAA;AAEJ;;ACzJO,MAAM,UAAA,GAAa,SAAS,MAAM;AACvC,EAAA,MAAM,aAAa,YAAA,EAAa;AAChC,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,QAAA,EAAS,CAAE,IAAA,EAAM,UAAA;AAE/C,EAAA,MAAM;AAAA,IACJ,UAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,kBAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACF,GAAI;AAAA,IACF,UAAA,EAAY,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc,YAAA;AAAA,IACjD,cAAA,EAAgB,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc,OAAA;AAAA,IACrD,iBAAA,EAAmB,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc,UAAA;AAAA,IACxD,kBAAA,EAAoB,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc,WAAA;AAAA,IACzD,iBAAA,EAAmB,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc,UAAA;AAAA,IACxD,eAAA,EAAiB,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA,KAAc;AAAA,GACxD;AAEA,EAAA,MAAM,iBAAiB,MAAM;AAC3B,IAAA,UAAA,CAAW,QAAA,CAAS,EAAE,SAAA,EAAW,OAAA,EAAS,CAAA;AAE1C,IAAA,UAAA,CAAW,aAAA,EAAc;AACzB,IAAA,UAAA,CAAW,QAAA,CAAS,OAAM,CAAE,QAAA,CAAS,GAAG,KAAK,CAAA,CAAE,MAAA,CAAO,UAAU,CAAC,CAAA;AAAA,GACnE;AAEA,EAAA,uBACE,GAAA,CAAA,QAAA,EAAA,EACE,QAAA,kBAAA,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAU,sBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAU,+BAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,cAAY,MAAA,CAAO,SAAA;AAAA,QACnB,SAAA,EAAW,cAAA;AAAA,QACX,OAAA,EAAS,WAAA,CAAY,cAAA,EAAgB,CAAC,UAAU,CAAC,CAAA;AAAA,QACjD,IAAA,EAAK,QAAA;AAAA,QAEJ,QAAA,EAAA,MAAA,CAAO;AAAA;AAAA,KACV;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAU,8BAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,OAAO,MAAA,CAAO,2BAAA;AAAA,QACd,cAAY,MAAA,CAAO,wBAAA;AAAA,QACnB,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,MAAM,UAAA,CAAW,cAAA,EAAe;AAAA,QACzC,IAAA,EAAK,QAAA;AAAA,QACN,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,oBACA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,gCAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,SAAA,EAAW,kBAAA;AAAA,QACX,aAAA,EAAe,YAAY,MAAM;AAC/B,UAAA,OAAO,EAAA;AAAA,SACT,EAAG,EAAE,CAAA;AAAA,QACL,aAAa,UAAA,CAAW,eAAA;AAAA,QACxB,QAAA,EAAU,CAAC,OAAA,KAAY;AACrB,UAAA,IAAI,OAAA,EAAS;AACX,YAAA,UAAA,CAAW,QAAA,CAAS,EAAE,SAAA,EAAW,WAAA,EAAa,CAAA;AAC9C,YAAA,UAAA,CAAW,QAAA;AAAA,cACT,KAAA,CAAM,OAAA,EAAS,UAAU,CAAA,CAAE,OAAO,UAAU;AAAA,aAC9C;AAAA;AACF,SACF;AAAA,QACA,KAAA,EAAO;AAAA;AAAA,KACT;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAU,8BAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,OAAO,MAAA,CAAO,2BAAA;AAAA,QACd,cAAY,MAAA,CAAO,wBAAA;AAAA,QACnB,SAAA,EAAW,iBAAA;AAAA,QACX,OAAA,EAAS,MAAM,UAAA,CAAW,UAAA,EAAW;AAAA,QACrC,IAAA,EAAK,QAAA;AAAA,QACN,QAAA,EAAA;AAAA;AAAA,KAED;AAAA,oBACA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,gBAAA;AAAA,QACR,OAAO,MAAA,CAAO,uBAAA;AAAA,QACd,cAAY,MAAA,CAAO,oBAAA;AAAA,QACnB,SAAA,EAAU,gCAAA;AAAA,QACV,QAAA,EAAU,UAAA;AAAA,QACV,SAAA,EAAW,eAAA;AAAA,QACX,OAAA,EAAS,MAAM,UAAA,CAAW,UAAA,EAAW;AAAA,QACrC,IAAA,EAAK,QAAA;AAAA,QAEL,8BAAC,IAAA,EAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,KAAA,EAAO,OAAO,oBAAA,EAAsB;AAAA;AAAA;AACzD,GAAA,EACF,CAAA,EACF,CAAA;AAEJ,CAAC,CAAA;;AC5HM,MAAM,UAAA,GAAa,SAAS,MAAM;AACvC,EAAA,MAAM,aAAa,YAAA,EAAa;AAEhC,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,gBAAA,EAAkB,CAAC,EAAA,KAAO;AACxB,QAAA,IAAI,EAAA,CAAG,IAAA,KAAS,YAAA,IAAgB,EAAA,CAAG,OAAA,EAAS;AAC1C,UAAA,EAAA,CAAG,eAAA,EAAgB;AACnB,UAAA,UAAA,CAAW,UAAA,EAAW;AAAA;AAExB,QAAA,IAAI,EAAA,CAAG,IAAA,KAAS,WAAA,IAAe,EAAA,CAAG,OAAA,EAAS;AACzC,UAAA,EAAA,CAAG,eAAA,EAAgB;AACnB,UAAA,UAAA,CAAW,cAAA,EAAe;AAAA;AAC5B,OACF;AAAA,MAEA,8BAAC,KAAA,EAAA,EAAM,OAAA,EAAQ,WAAA,EAAY,UAAA,EAAY,WAAW,eAAA,EAAiB;AAAA;AAAA,GACrE;AAEJ,CAAC,CAAA;;AClBD,MAAM,WAAA,GAAc,QAAA;AAAA,EAClB,CAAC;AAAA,IACC,MAAA,EAAQ;AAAA,MACN,MAAA;AAAA,MACA,UAAA;AAAA,MACA,kBAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA;AACL,GACF,KAEM;AACJ,IAAA,MAAM,aAAa,YAAA,EAAa;AAChC,IAAA,MAAM,aAAa,kBAAA,EAAmB;AACtC,IAAA,MAAM,iBAAA,GACJ,UAAA,CAAW,QAAA,EAAS,CAAE,YAAA,CAAa,iBAAA;AACrC,IAAA,MAAM,UAAA,GAAa,UAAA,CAAW,QAAA,EAAS,CAAE,IAAA,EAAM,UAAA;AAE/C,IAAA,uBACE,IAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAQ,SAAA;AAAA,QACR,SAAA,EAAW,GAAG,UAAA,GAAa,UAAA,GAAa,EAAE,CAAA,CAAA,EACxC,KAAA,KAAU,EAAA,IAAM,CAAC,MAAA,CAAO,KAAK,KAAK,MAAA,CAAO,KAAK,CAAA,IAAK,MAAA,CAAO,UAAU,CAAA,GAChE,kBACA,EACN,CAAA,CAAA,EAAI,UAAA,GAAa,UAAA,GAAa,EAAE,CAAA,UAAA,CAAA;AAAA,QAChC,OAAA,EAAS,MAAA;AAAA,QAET,QAAA,EAAU,UAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,KAAA;AAAA,UAAO,GAAA;AAAA,UACP,SAAA,CAAU,iBAAiB,CAAA,IAC1B,KAAA,KAAU,MACV,CAAA,CAAA,EAAI,MAAA,CAAO,KAAK,CAAA,GAAI,MAAA,CAAO,UAAU,CAAA,IAAK,MAAA,CAAO,UAAU,CAAC,CAAA,CAAA;AAAA;AAAA,OAAA;AAAA,MAPzD;AAAA,KAQP;AAAA;AAGN,CAAA;;AClCA,MAAM,KAAA,GAAQ,QAAA,CAAS,CAAC,EAAE,YAAW,KAAmB;AACtD,EAAA,MAAM,aAAa,YAAA,EAAa;AAChC,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,QAAA,EAAS,CAAE,YAAY,UAAU,CAAA;AAC1D,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAI,KAAA,CAAM,SAA6B,IAAI,CAAA;AAC7D,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,QAAA,EAAS,CAAE,UAAA;AACzC,EAAA,MAAM,SAAA,GAAY,CAAC,CAAC,KAAA,EAAO,IAAA;AAC3B,EAAA,MAAM,iBAAA,GAAoB,kBAAA,CAAmB,SAAA,EAAW,GAAI,CAAA;AAE5D,EAAA,MAAM,OAAA,GAAU,KAAA,CAAM,WAAA,CAAY,MAAM;AACtC,IAAA,IAAI,CAAC,KAAA,IAAS,KAAA,CAAM,IAAA,KAAS,UAAA;AAAY,MAAA;AAEzC,IAAA,IAAI,CAAC,GAAA;AAAK,MAAA;AACV,IAAA,MAAM,WAAW,GAAA,CAAI,aAAA;AAAA,MACnB;AAAA,KACF;AACA,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,CAAS,KAAA,EAAM;AAAA;AACjB,GACF,EAAG,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA;AAEf,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,IAAI,eAAe,KAAA,EAAO,IAAA;AAAM,MAAA,OAAA,EAAQ;AAAA,GAE1C,EAAG,CAAC,UAAU,CAAC,CAAA;AAGf,EAAA,KAAA,CAAM,eAAA,CAAgB,OAAA,EAAS,CAAC,GAAA,EAAK,KAAK,CAAC,CAAA;AAE3C,EAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAAA,IACxB,CAAC,GAAA,KAAgB;AACf,MAAA,MAAM,iBAAiB,QAAA,CAAS,aAAA;AAChC,MAAA,IACE,QAAQ,cAAA,EAA+B,CAAC,YAAY,OAAA,KAAY,GAAG,KACnE,GAAA,EACA;AACA,QAAA,MAAM,OAAA,GAAU;AAAA,UACd,GAAG,GAAA,CAAI,gBAAA,CAA8B,2BAA2B;AAAA,SAClE;AACA,QAAA,IAAI,OAAA,EAAS;AACX,UAAA,MAAM,QAAQ,OAAA,CAAQ,SAAA;AAAA,YACpB,CAAC,YAAY,OAAA,KAAY;AAAA,WAC3B;AAEA,UAAA,IAAI,QAAQ,KAAK,CAAA,KAAM,kBAAkB,OAAA,CAAQ,KAAA,GAAQ,GAAG,CAAA,EAAG;AAC7D,YAAA,OAAA,CAAQ,KAAA,GAAQ,GAAG,CAAA,CAAE,KAAA,EAAM;AAE3B,YAAA,UAAA,CAAW,QAAA,CAAS,EAAE,UAAA,EAAY,KAAA,EAAO,MAAM,CAAA;AAAA;AACjD;AACF;AACF,KACF;AAAA,IACA,CAAC,UAAA,EAAY,GAAA,EAAK,KAAA,EAAO,IAAI;AAAA,GAC/B;AAEA,EAAA,MAAM,gBAAgB,KAAA,CAAM,WAAA;AAAA,IAC1B,CAAC,EAAA,KAA4B;AAC3B,MAAA,IAAI,EAAA,CAAG,GAAA,CAAI,WAAA,EAAY,KAAM,WAAA,EAAa;AACxC,QAAA,EAAA,CAAG,cAAA,EAAe;AAClB,QAAA,WAAA,CAAY,EAAE,CAAA;AAAA;AAEhB,MAAA,IAAI,EAAA,CAAG,GAAA,CAAI,WAAA,EAAY,KAAM,SAAA,EAAW;AACtC,QAAA,EAAA,CAAG,cAAA,EAAe;AAClB,QAAA,WAAA,CAAY,CAAE,CAAA;AAAA;AAChB,KACF;AAAA,IACA,CAAC,WAAW;AAAA,GACd;AAEA,EAAA,OAAO,KAAA,mBACL,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,aAAW,KAAA,EAAO,IAAA;AAAA,MAClB,WAAW,CAAA,MAAA,EAAS,iBAAA,IAAqB,IAAI,CAAA,CAAA,EAAI,aAAa,SAAS,CAAA,CAAA;AAAA,MACvE,GAAA,EAAK,MAAA;AAAA,MACL,SAAA,EAAW,aAAA;AAAA,MAET,gCAAqB,SAAA,KACrB,KAAA,EAAO,OAAA,EAAS,GAAA,CAAI,CAAC,IAAA,KAAS;AAC5B,QAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,MAAA,EAAQ,IAAA,EAAA,EAAW,KAAK,KAAO,CAAA;AAAA,OACpD;AAAA;AAAA,GACL,GACE,IAAA;AACN,CAAC,CAAA;;ACtFM,MAAM,IAAA,GAAO,SAAS,MAAM;AACjC,EAAA,MAAM,aAAa,YAAA,EAAa;AAChC,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,QAAA,EAAS,CAAE,IAAA;AACnC,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,QAAA,EAAS,EAAG,SAAA;AAErC,EAAA,MAAM,YAAA,GAAe,UAAA,CAAW,QAAA,EAAS,CAAE,SAAA,EAAW,MAAA;AAEtD,EAAA,uBACE,IAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAW,wCAAwC,CAAA;AAAA,MACvD,SAAA,EAAU,eAAA;AAAA,MACV,SAAA,EAAW,CAAC,EAAA,KAAO;AACjB,QAAA,IAAI,EAAA,CAAG,GAAA,CAAI,WAAA,EAAY,KAAM,WAAA,EAAa;AACxC,UAAA,MAAM,SAAA,GAAY,iBAAA;AAAA,YAChB,EAAA,CAAG,MAAA;AAAA,YACH,CAAC,OAAA,KAAY,OAAA,CAAQ,SAAA,CAAU,SAAS,OAAO;AAAA,aAC9C,OAAA,CAAQ,IAAA;AACX,UAAA,MAAM,aAAa,KAAA,CAAM,SAAA;AAAA,YACvB,CAAC,OAAA,KAAY,OAAA,CAAQ,IAAA,KAAS;AAAA,WAChC;AACA,UAAA,IAAI,UAAA,IAAc,CAAA;AAAG,YAAA;AAErB,UAAA,MAAM,SAAA,GAAY,KAAA,CAAM,UAAA,GAAa,CAAC,CAAA,EAAG,IAAA;AACzC,UAAA,MAAM,cACJ,QAAA,CAAS,aAAA;AAAA,YACP,eAAe,SAAS,CAAA,YAAA;AAAA,eAE1B,QAAA,CAAS,aAAA;AAAA,YACP,eAAe,SAAS,CAAA,wBAAA;AAAA,WAC1B;AACF,UAAA,IAAI,WAAA;AAAa,YAAA,WAAA,CAAY,KAAA,EAAM;AAAA;AAErC,QAAA,IAAI,EAAA,CAAG,GAAA,CAAI,WAAA,EAAY,KAAM,YAAA,EAAc;AACzC,UAAA,MAAM,SAAA,GAAY,iBAAA;AAAA,YAChB,EAAA,CAAG,MAAA;AAAA,YACH,CAAC,OAAA,KAAY,OAAA,CAAQ,SAAA,CAAU,SAAS,OAAO;AAAA,aAC9C,OAAA,CAAQ,IAAA;AACX,UAAA,MAAM,aAAa,KAAA,CAAM,SAAA;AAAA,YACvB,CAAC,OAAA,KAAY,OAAA,CAAQ,IAAA,KAAS;AAAA,WAChC;AACA,UAAA,IAAI,UAAA,IAAc,MAAM,MAAA,GAAS,CAAA;AAAG,YAAA;AAEpC,UAAA,MAAM,SAAA,GAAY,KAAA,CAAM,UAAA,GAAa,CAAC,CAAA,EAAG,IAAA;AACzC,UAAA,MAAM,cACJ,QAAA,CAAS,aAAA;AAAA,YACP,eAAe,SAAS,CAAA,YAAA;AAAA,eAE1B,QAAA,CAAS,aAAA;AAAA,YACP,eAAe,SAAS,CAAA,wBAAA;AAAA,WAC1B;AACF,UAAA,IAAI,WAAA;AAAa,YAAA,WAAA,CAAY,KAAA,EAAM;AAAA;AACrC,OACF;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,EAAM,qCACL,GAAA,CAAC,OAAA,EAAA,EAAQ,EAAA,EAAG,IAAA,EAAM,iBAAO,6BAAA,EAA8B,CAAA;AAAA,QAExD,CAAC,IAAA,EAAM,iBAAA,IAAqB,IAAA,EAAM,6BACjC,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,KAAA,EAAA,EAAM,YAAY,CAAA,EAAG,CAAA;AAAA,UACrB,gBAAgB,CAAA,oBACf,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,WAAA;AAAA,cACL,KAAA,EAAM,EAAA;AAAA,cACN,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BAEF,GAAA,CAAC,KAAA,EAAA,EAAM,UAAA,EAAY,CAAA,EAAG,CAAA;AAAA,UACrB,gBAAgB,CAAA,oBACf,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,WAAA;AAAA,cACL,KAAA,EAAM,EAAA;AAAA,cACN,SAAA,EAAU;AAAA;AAAA,WACZ;AAAA,0BAEF,GAAA,CAAC,KAAA,EAAA,EAAM,UAAA,EAAY,CAAA,EAAG;AAAA,SAAA,EACxB,CAAA;AAAA,QAED,CAAC,IAAA,EAAM,iBAAA,IAAqB,CAAC,MAAM,SAAA,oBAClC,GAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAU,eAAc,KAAA,EAAO,MAAA,CAAO,aAAA,EACzC,QAAA,kBAAA,GAAA,CAAC,WAAQ,CAAA,EACX;AAAA;AAAA;AAAA,GAEJ;AAEJ,CAAC,CAAA;;ACvFD,MAAM,gBAAA,GAAmB,SAAS,MAAM;AACtC,EAAA,MAAM,aAAa,YAAA,EAAa;AAChC,EAAA,MAAM,IAAA,GAAO,UAAA,CAAW,QAAA,EAAS,CAAE,IAAA;AACnC,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,QAAA,EAAS,EAAG,WAAA;AAE3C,EAAA,uBACE,IAAA,CAAC,GAAA,EAAA,EAAI,SAAA,EAAU,kBAAA,EACZ,QAAA,EAAA;AAAA,IAAA,WAAA,EAAa,OAAO,WAAA,EAAa,IAAA,wBAC/B,KAAA,EAAA,EACE,QAAA,EAAA,aAAA,CAAc,OAAO,uBAAA,EAAyB;AAAA,MAC7C,MAAM,WAAA,EAAa,GAAA;AAAA,MACnB,IAAA,EAAM,CAAA,EAAG,WAAA,CAAY,IAAA,CAAK,KAAA;AAAA,QACxB,CAAA;AAAA,QACA;AAAA,OACD,CAAA,CAAA,EAAI,WAAA,CAAY,IAAA,CAAM,KAAA,CAAM,CAAC,CAAC,CAAA;AAAA,KAChC,CAAA,EACH,CAAA;AAAA,IAED,CAAC,WAAA,EAAa,GAAA,IAAO,CAAC,IAAA,EAAM,qBAAqB,IAAA,EAAM,SAAA,oBACtD,GAAA,CAAC,KAAA,EAAA,EAAM,IAAI,EAAE,OAAA,EAAS,OAAA,EAAQ,EAC3B,iBAAO,2BAAA,EACV;AAAA,GAAA,EAEJ,CAAA;AAEJ,CAAC,CAAA;;AChBM,MAAM,mBAAA,GAAsB,cAAgC,IAAI,CAAA;AAEhE,SAAS,YAAA,GAAe;AAC7B,EAAA,OAAO,WAAW,mBAAmB,CAAA;AACvC;AAEO,MAAM,kBAAA,GAAqB,QAAA;AAAA,EAChC,CAAC;AAAA,IACC,UAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,KAKM;AACJ,IAAA,IAAI,CAAC,UAAA,IAAc,EAAE,UAAA,IAAc,SAAA,CAAA,EAAY;AAC7C,MAAA,OAAA,CAAQ,KAAA;AAAA,QACN;AAAA,OACF;AACA,MAAA,OAAO,IAAA;AAAA;AAGT,IAAA,MAAM,CAAC,gBAAgB,CAAA,GAAI,QAAA,CAAS,MAAM;AACxC,MAAA,MAAM,IAAA,GAAO,UAAA,IAAc,IAAI,SAAA,CAAU,YAAa,SAAU,CAAA;AAEhE,MAAA,aAAA,GAAgB,IAAI,CAAA;AAEpB,MAAA,IAAA,CAAK,eAAA,CAAgB,UAAA,CAAW,CAAC,OAAA,KAAY;AAC3C,QAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,YAAkB,oBAAoB,CAAA,EAAG;AACrE,UAAA,OAAA,CAAQ,IAAA,CAAK,IAAI,oBAAA,EAAsB,CAAA;AAAA;AAEzC,QAAA,OAAO,OAAA;AAAA,OACR,CAAA;AAED,MAAA,OAAO,IAAA;AAAA,KACR,CAAA;AAED,IAAA,MAAM,aAAa,kBAAA,EAAmB;AAEtC,IAAA,uBACE,GAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,OAAO,gBAAA,EACnC,QAAA,kBAAA,IAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACE,GAAG,WAAW,oCAAoC,CAAA;AAAA,QACnD,SAAA,EAAU,WAAA;AAAA,QAEV,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA;AAAA,8BACX,gBAAA,EAAA,EAAiB,CAAA;AAAA,UACjB,aAAa,CAAA,mBAAI,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA,uBAAM,IAAA,EAAA,EAAK;AAAA;AAAA;AAAA,KAC3C,EACF,CAAA;AAAA;AAGN;;;;"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@apia/scheduler-component",
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
+ "typescript": "5.4.2"
23
+ },
24
+ "peerDependencies": {
25
+ "react": "^18.2.0",
26
+ "react-dom": "^18.2.0"
27
+ },
28
+ "publishConfig": {
29
+ "access": "public",
30
+ "registry": "https://registry.npmjs.org/"
31
+ },
32
+ "dependencies": {
33
+ "@apia/api": "^4.0.28",
34
+ "@apia/components": "^4.0.28",
35
+ "@apia/icons": "^4.0.28",
36
+ "@apia/scheduler-controller": "^4.0.28",
37
+ "@apia/table2-controller": "^4.0.28",
38
+ "@apia/theme": "^4.0.28",
39
+ "@apia/util": "^4.0.28",
40
+ "mobx": "^6.13.7",
41
+ "mobx-react-lite": "^4.1.0"
42
+ },
43
+ "gitHead": "f382e288940eb98a55c01081f33f0d0cacaaaadb"
44
+ }