@outbuild-company/schedule-core 1.6.2 → 1.7.0
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/README.md +26 -0
- package/dist/cdn/schedule-core.global.js +1 -1
- package/dist/cdn/schedule-core.global.js.map +1 -1
- package/dist/index.cjs +1399 -556
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +175 -48
- package/dist/index.d.ts +175 -48
- package/dist/index.js +1398 -557
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -134,6 +134,14 @@ interface CoreActivity {
|
|
|
134
134
|
recursiveDurationHours: number;
|
|
135
135
|
isCritical: boolean;
|
|
136
136
|
freeSlackHours: number | null;
|
|
137
|
+
/**
|
|
138
|
+
* Días de calendario crudos entre start y end (incluye no laborables). Es una
|
|
139
|
+
* columna del grid, así que la posee el core (decisión del owner 2026-08-03):
|
|
140
|
+
* estado derivado que el core mantiene al nacer la actividad y al escribir
|
|
141
|
+
* start/end/type (`internal/state/calendar-duration.ts`), y que por eso fluye
|
|
142
|
+
* solo por vistas, ChangeSets y undo. Milestone → 0; fechas inválidas → null.
|
|
143
|
+
*/
|
|
144
|
+
calendarDuration?: number | null;
|
|
137
145
|
expectedProgress: number | null;
|
|
138
146
|
expectedProgressBaseline: number | null;
|
|
139
147
|
status: ActivityStatus | null;
|
|
@@ -193,6 +201,8 @@ interface SectorMetadata {
|
|
|
193
201
|
updateDurationForPrimaveraEndDate?: boolean;
|
|
194
202
|
activityCreter?: ActivityCreter;
|
|
195
203
|
statusCriteria: StatusCriteria;
|
|
204
|
+
/** Declared by the loader input; never derived from the backend payload. */
|
|
205
|
+
ganttId: number | null;
|
|
196
206
|
}
|
|
197
207
|
interface EntityChange<T> {
|
|
198
208
|
id: string;
|
|
@@ -204,6 +214,26 @@ interface EntityChange<T> {
|
|
|
204
214
|
after: Readonly<T> | null;
|
|
205
215
|
}
|
|
206
216
|
|
|
217
|
+
declare const EDITABLE: {
|
|
218
|
+
readonly TEXT: "text";
|
|
219
|
+
readonly DESCRIPTION: "description";
|
|
220
|
+
readonly DURATION: "duration";
|
|
221
|
+
readonly PROGRESS: "progress";
|
|
222
|
+
readonly COST: "cost";
|
|
223
|
+
readonly USED_COST: "used_cost";
|
|
224
|
+
readonly HH_WORK_TIME: "hhWorkTime";
|
|
225
|
+
readonly START_DATE: "start_date";
|
|
226
|
+
readonly END_DATE: "end_date";
|
|
227
|
+
readonly CONSTRAINT_TYPE: "constraint_type";
|
|
228
|
+
readonly CONSTRAINT_DATE: "constraint_date";
|
|
229
|
+
readonly CALENDAR_ID: "calendar_id";
|
|
230
|
+
readonly CUSTOM_ID: "custom_id";
|
|
231
|
+
readonly SUBCONTRACT_ID: "subcontractId";
|
|
232
|
+
readonly RESPONSABLES: "responsables";
|
|
233
|
+
readonly TAGS: "tags";
|
|
234
|
+
readonly CUSTOM_PREDECESSORS: "custom_predecessors";
|
|
235
|
+
readonly CUSTOM_SUCESSORS: "custom_sucessors";
|
|
236
|
+
};
|
|
207
237
|
declare const COLUMN: {
|
|
208
238
|
readonly REAL_WORK: "real_work";
|
|
209
239
|
readonly REAL_COST: "real_cost";
|
|
@@ -245,8 +275,11 @@ declare const COLUMN: {
|
|
|
245
275
|
readonly CUSTOM_PREDECESSORS: "custom_predecessors";
|
|
246
276
|
readonly CUSTOM_SUCESSORS: "custom_sucessors";
|
|
247
277
|
};
|
|
278
|
+
type EditableColumnName = (typeof EDITABLE)[keyof typeof EDITABLE];
|
|
248
279
|
type ColumnName = (typeof COLUMN)[keyof typeof COLUMN];
|
|
249
280
|
|
|
281
|
+
type PipelineColumnName = Exclude<(typeof EDITABLE)[keyof typeof EDITABLE], typeof COLUMN.CUSTOM_PREDECESSORS | typeof COLUMN.CUSTOM_SUCESSORS>;
|
|
282
|
+
|
|
250
283
|
declare const CREATION_OVERRIDE_FIELD_LIST: readonly ["name", "description", "type", "startDate", "durationHours", "constraintType", "constraintDate", "calendarId", "assignedDefaultCalendar", "autoScheduling", "progress", "cost", "usedCost", "realCost", "workHours", "realWorkHours", "ponderator", "hasCustomPonderator", "customId", "subcontractId", "responsableIds", "tagIds", "isLookahead"];
|
|
251
284
|
type CreationOverrideField = (typeof CREATION_OVERRIDE_FIELD_LIST)[number];
|
|
252
285
|
type CreationOverrides = Partial<Pick<CoreActivity, CreationOverrideField>>;
|
|
@@ -256,14 +289,22 @@ type NumberOperator = 'equals' | 'notEquals' | 'greaterThan' | 'lessThan' | 'gre
|
|
|
256
289
|
type DateOperator = 'after' | 'before';
|
|
257
290
|
type MembershipOperator = 'someOf' | 'notSomeOf';
|
|
258
291
|
type FilterOperator = StringOperator | NumberOperator | DateOperator | MembershipOperator;
|
|
259
|
-
type
|
|
292
|
+
type StringFilterField = 'name' | 'description' | 'customId';
|
|
293
|
+
type NumberFilterField = 'correlativeId' | 'uniqueCorrelativeId' | 'progress' | 'durationDays' | 'calendarDuration' | 'cost' | 'usedCost' | 'realCost' | 'workHours' | 'realWorkHours' | 'ponderator' | 'freeSlackDays' | 'totalSlackDays' | 'expectedProgressBaseline' | 'baselineDurationDays' | 'baselineCost' | 'baselineWorkHours';
|
|
294
|
+
type DateFilterField = 'startDate' | 'endDate' | 'constraintDate' | 'baselineStartDate' | 'baselineEndDate' | 'earlyStart' | 'earlyFinish' | 'lateStart' | 'lateFinish';
|
|
295
|
+
type IdArrayFilterField = 'responsableIds' | 'tagIds';
|
|
296
|
+
type EnumFilterField = 'status' | 'constraintType';
|
|
297
|
+
type ReferenceFilterField = 'calendarId' | 'subcontractId';
|
|
298
|
+
type BooleanFilterField = 'isCritical';
|
|
299
|
+
type FilterField = StringFilterField | NumberFilterField | DateFilterField | IdArrayFilterField | EnumFilterField | ReferenceFilterField | BooleanFilterField;
|
|
260
300
|
type FilterScalarValue = string | number | Date;
|
|
261
|
-
type FilterCriterionValue = FilterScalarValue | ReadonlyArray<string | number>;
|
|
262
|
-
interface
|
|
263
|
-
readonly field:
|
|
264
|
-
readonly operator:
|
|
265
|
-
readonly value:
|
|
301
|
+
type FilterCriterionValue = FilterScalarValue | ReadonlyArray<string | number | boolean>;
|
|
302
|
+
interface Criterion<Field extends FilterField, Operator, Value> {
|
|
303
|
+
readonly field: Field;
|
|
304
|
+
readonly operator: Operator;
|
|
305
|
+
readonly value: Value;
|
|
266
306
|
}
|
|
307
|
+
type FilterCriterion = Criterion<StringFilterField, StringOperator, string> | Criterion<NumberFilterField, NumberOperator, string | number> | Criterion<DateFilterField, DateOperator, string | number | Date> | Criterion<IdArrayFilterField, MembershipOperator, ReadonlyArray<string | number>> | Criterion<EnumFilterField, MembershipOperator, ReadonlyArray<string>> | Criterion<ReferenceFilterField, MembershipOperator, ReadonlyArray<string | number>> | Criterion<BooleanFilterField, MembershipOperator, ReadonlyArray<boolean>>;
|
|
267
308
|
interface FilterDateRange {
|
|
268
309
|
readonly start: Date;
|
|
269
310
|
readonly end: Date;
|
|
@@ -318,6 +359,10 @@ type LinksBatchOperation = {
|
|
|
318
359
|
kind: 'delete';
|
|
319
360
|
linkId: LinkId;
|
|
320
361
|
};
|
|
362
|
+
interface ReconciledActivityProgress {
|
|
363
|
+
readonly activityId: string;
|
|
364
|
+
readonly progress: number;
|
|
365
|
+
}
|
|
321
366
|
interface PersistedEntityIdentity {
|
|
322
367
|
readonly id: string;
|
|
323
368
|
readonly proplannerId: number;
|
|
@@ -350,9 +395,28 @@ interface ActivityBatchAction {
|
|
|
350
395
|
}
|
|
351
396
|
|
|
352
397
|
type DispatchAction = {
|
|
398
|
+
kind: 'activity-copy';
|
|
399
|
+
eventSource?: string;
|
|
400
|
+
} | {
|
|
401
|
+
kind: 'activity-clipboard-clear';
|
|
402
|
+
eventSource?: string;
|
|
403
|
+
} | {
|
|
404
|
+
kind: 'activity-paste-copied';
|
|
405
|
+
destination: {
|
|
406
|
+
afterSiblingId: ActivityId;
|
|
407
|
+
};
|
|
408
|
+
eventSource?: string;
|
|
409
|
+
} | {
|
|
353
410
|
kind: 'persistence-acknowledge';
|
|
354
411
|
activities?: ReadonlyArray<PersistedEntityIdentity>;
|
|
355
412
|
links?: ReadonlyArray<PersistedEntityIdentity>;
|
|
413
|
+
/**
|
|
414
|
+
* CP19 (ISSUE-070): valores que el backend normalizo al guardar (hoy solo
|
|
415
|
+
* progress). El motor los reconcilia — aplica los que difieren, ignora
|
|
416
|
+
* los iguales — para que el core refleje lo persistido. Sin undo: el
|
|
417
|
+
* acuse es clear-on-success y el tracker snapshotea despues.
|
|
418
|
+
*/
|
|
419
|
+
reconciledProgress?: ReadonlyArray<ReconciledActivityProgress>;
|
|
356
420
|
} | {
|
|
357
421
|
kind: 'baseline-apply';
|
|
358
422
|
points: ReadonlyArray<BaselinePoint>;
|
|
@@ -365,7 +429,7 @@ type DispatchAction = {
|
|
|
365
429
|
} | {
|
|
366
430
|
kind: 'inline-edit';
|
|
367
431
|
activityId: ActivityId;
|
|
368
|
-
column:
|
|
432
|
+
column: EditableColumnName;
|
|
369
433
|
newValue: unknown;
|
|
370
434
|
} | {
|
|
371
435
|
kind: 'dates-batch';
|
|
@@ -378,7 +442,7 @@ type DispatchAction = {
|
|
|
378
442
|
kind: 'bulk-edit';
|
|
379
443
|
edits: ReadonlyArray<{
|
|
380
444
|
activityId: ActivityId;
|
|
381
|
-
column:
|
|
445
|
+
column: PipelineColumnName;
|
|
382
446
|
newValue: unknown;
|
|
383
447
|
}>;
|
|
384
448
|
eventSource?: string;
|
|
@@ -431,6 +495,15 @@ type DispatchAction = {
|
|
|
431
495
|
kind: 'activity-set-progress';
|
|
432
496
|
activityId: ActivityId;
|
|
433
497
|
newValue: 0 | 100;
|
|
498
|
+
/**
|
|
499
|
+
* CP15 (ISSUE-066): el origen se DECLARA, no se adivina (mismo patron
|
|
500
|
+
* que inputUnit). 'action-button' es el unico origen con salvoconducto
|
|
501
|
+
* de negocio para actividades en Lookahead (espejo del flag
|
|
502
|
+
* progressChangedByActionButton que consume parseToUpdate en el
|
|
503
|
+
* backend; guia agents/progreso-lookahead.md). Sin origen declarado
|
|
504
|
+
* aplica el canEdit completo del pipeline.
|
|
505
|
+
*/
|
|
506
|
+
origin?: 'action-button';
|
|
434
507
|
eventSource?: string;
|
|
435
508
|
} | {
|
|
436
509
|
kind: 'selection-toggle';
|
|
@@ -462,6 +535,13 @@ type DispatchAction = {
|
|
|
462
535
|
activityId: ActivityId;
|
|
463
536
|
pendingRequests: ReadonlyArray<PendingRequest>;
|
|
464
537
|
eventSource?: string;
|
|
538
|
+
} | {
|
|
539
|
+
kind: 'sir-approve';
|
|
540
|
+
activityId: ActivityId;
|
|
541
|
+
approvedRequestId: string;
|
|
542
|
+
startDate: unknown;
|
|
543
|
+
endDate: unknown;
|
|
544
|
+
eventSource?: string;
|
|
465
545
|
} | {
|
|
466
546
|
kind: 'activity-lookahead-sync';
|
|
467
547
|
activityIds: ReadonlyArray<ActivityId>;
|
|
@@ -469,38 +549,32 @@ type DispatchAction = {
|
|
|
469
549
|
hasLookaheadTasks: boolean;
|
|
470
550
|
acknowledgePersistedLookahead?: boolean;
|
|
471
551
|
eventSource?: string;
|
|
472
|
-
} | {
|
|
473
|
-
kind: 'activity-paste';
|
|
474
|
-
destination: {
|
|
475
|
-
parentId: ActivityId | '0';
|
|
476
|
-
index: number;
|
|
477
|
-
} | {
|
|
478
|
-
afterSiblingId: ActivityId;
|
|
479
|
-
};
|
|
480
|
-
referenceActivityId: ActivityId;
|
|
481
|
-
activities: ReadonlyArray<PastedActivityInput>;
|
|
482
|
-
links: ReadonlyArray<PastedLinkInput>;
|
|
483
|
-
eventSource?: string;
|
|
484
552
|
};
|
|
485
553
|
type InternalDispatchAction = DispatchAction | ActivityBatchAction;
|
|
486
|
-
interface PastedActivityInput {
|
|
487
|
-
readonly originalId: ActivityId;
|
|
488
|
-
readonly originalParentId: ActivityId | '0';
|
|
489
|
-
readonly activityId?: ActivityId;
|
|
490
|
-
readonly overrides: CreationOverrides;
|
|
491
|
-
readonly baselineSnapshot?: ActivityBaselineSnapshot | null;
|
|
492
|
-
}
|
|
493
|
-
interface PastedLinkInput {
|
|
494
|
-
readonly source: ActivityId;
|
|
495
|
-
readonly target: ActivityId;
|
|
496
|
-
readonly type: LinkType;
|
|
497
|
-
readonly lag: number;
|
|
498
|
-
readonly linkId?: LinkId;
|
|
499
|
-
}
|
|
500
554
|
interface DispatchOptions {
|
|
501
555
|
skipAutoSchedule?: boolean;
|
|
502
556
|
skipCriticalPath?: boolean;
|
|
503
557
|
inputUnit?: 'days' | 'hours';
|
|
558
|
+
/**
|
|
559
|
+
* Reversible preview mode (SIR). The edit mutates internal state with the
|
|
560
|
+
* exact same scheduling rules as a real edit (calendar, link/autoschedule
|
|
561
|
+
* propagation, parents, derived fields), but leaves no session trace: no
|
|
562
|
+
* save-tracker dirty, no undo entry, no SIR auto-reject effect or
|
|
563
|
+
* pendingRequestIds mutation, and the schedule revision does not move.
|
|
564
|
+
* The result carries `preview` with the exact inverse ChangeSet; exiting
|
|
565
|
+
* the preview is `ScheduleCore.applyPreviewInverse(inverse)`.
|
|
566
|
+
*/
|
|
567
|
+
preview?: boolean;
|
|
568
|
+
}
|
|
569
|
+
interface PreviewDispatchInfo {
|
|
570
|
+
/**
|
|
571
|
+
* Exact inverse of `changes`. Note its `after` images were captured while
|
|
572
|
+
* the preview edit was still applied; project the ChangeSet RETURNED by
|
|
573
|
+
* `applyPreviewInverse`, which re-reads them from the restored state.
|
|
574
|
+
*/
|
|
575
|
+
inverse: ChangeSet;
|
|
576
|
+
/** `getScheduleRevision()` at the time the preview was computed. */
|
|
577
|
+
revision: number;
|
|
504
578
|
}
|
|
505
579
|
type DispatchResult = {
|
|
506
580
|
ok: true;
|
|
@@ -508,6 +582,8 @@ type DispatchResult = {
|
|
|
508
582
|
verdicts?: ReadonlyArray<DatesBatchVerdict>;
|
|
509
583
|
activityVerdicts?: ReadonlyArray<DatesBatchVerdict>;
|
|
510
584
|
linkVerdicts?: ReadonlyArray<LinkBatchVerdict>;
|
|
585
|
+
/** Present only when dispatched with `DispatchOptions.preview`. */
|
|
586
|
+
preview?: PreviewDispatchInfo;
|
|
511
587
|
} | {
|
|
512
588
|
ok: false;
|
|
513
589
|
reason: string;
|
|
@@ -561,14 +637,15 @@ interface ViewStateChange {
|
|
|
561
637
|
readonly checked?: ViewStatePropChange;
|
|
562
638
|
readonly visible?: ViewStatePropChange;
|
|
563
639
|
}
|
|
640
|
+
type ChangeSetSource = InternalDispatchAction | {
|
|
641
|
+
kind: 'init';
|
|
642
|
+
} | {
|
|
643
|
+
kind: 'undo';
|
|
644
|
+
} | {
|
|
645
|
+
kind: 'redo';
|
|
646
|
+
};
|
|
564
647
|
interface ChangeSet {
|
|
565
|
-
source:
|
|
566
|
-
kind: 'init';
|
|
567
|
-
} | {
|
|
568
|
-
kind: 'undo';
|
|
569
|
-
} | {
|
|
570
|
-
kind: 'redo';
|
|
571
|
-
};
|
|
648
|
+
source: ChangeSetSource;
|
|
572
649
|
activities: ReadonlyArray<EntityChange<CoreActivity>>;
|
|
573
650
|
links: ReadonlyArray<EntityChange<Link>>;
|
|
574
651
|
calendars: ReadonlyArray<EntityChange<Calendar>>;
|
|
@@ -647,7 +724,6 @@ interface BackendActivityInput {
|
|
|
647
724
|
has_childs: boolean;
|
|
648
725
|
isOnLookahead: boolean;
|
|
649
726
|
sumOfDurationRecursively: number | null;
|
|
650
|
-
freeSlack: number | null;
|
|
651
727
|
is_critical: boolean;
|
|
652
728
|
newActivitiesArray: string | (string | number)[] | null;
|
|
653
729
|
hasNewActivities: boolean | null;
|
|
@@ -712,12 +788,18 @@ interface ScheduleCoreReporter {
|
|
|
712
788
|
}
|
|
713
789
|
|
|
714
790
|
type ScheduleCoreStatus = 'ready' | 'destroyed' | 'poisoned';
|
|
791
|
+
declare const SCHEDULE_CORE_STATUS: {
|
|
792
|
+
readonly READY: "ready";
|
|
793
|
+
readonly DESTROYED: "destroyed";
|
|
794
|
+
readonly POISONED: "poisoned";
|
|
795
|
+
};
|
|
715
796
|
interface ScheduleCoreInput extends BackendScheduleInput {
|
|
716
797
|
skipInitialAutoSchedule?: boolean;
|
|
717
798
|
baselinePoints?: readonly BaselinePoint[];
|
|
718
799
|
clock?: () => Date;
|
|
719
800
|
criticalPathOnLoad?: boolean;
|
|
720
801
|
statusCriteria?: StatusCriteria;
|
|
802
|
+
ganttId?: number;
|
|
721
803
|
reporter?: ScheduleCoreReporter;
|
|
722
804
|
}
|
|
723
805
|
|
|
@@ -736,12 +818,20 @@ interface DateGesturePreview {
|
|
|
736
818
|
} | null;
|
|
737
819
|
}
|
|
738
820
|
|
|
821
|
+
interface EffectiveGraphAudit {
|
|
822
|
+
readonly activityCount: number;
|
|
823
|
+
readonly logicalLinkCount: number;
|
|
824
|
+
readonly effectiveEdgeCount: number;
|
|
825
|
+
readonly circularComponents: ReadonlyArray<ReadonlyArray<string>>;
|
|
826
|
+
readonly largestComponentSize: number;
|
|
827
|
+
}
|
|
739
828
|
interface UndoOptions {
|
|
740
829
|
readonly skipCriticalPath?: boolean;
|
|
741
830
|
readonly expectedUndoDepth?: number;
|
|
742
831
|
}
|
|
743
832
|
|
|
744
833
|
declare class ScheduleCore {
|
|
834
|
+
private readonly _activityClipboard;
|
|
745
835
|
private _status;
|
|
746
836
|
private readonly coreRuntime;
|
|
747
837
|
private readonly _undo;
|
|
@@ -783,9 +873,18 @@ declare class ScheduleCore {
|
|
|
783
873
|
getActivityView(id: ActivityId): Readonly<CoreActivity> | null;
|
|
784
874
|
createDateGesturePreview(gesture: DateGesture): DateGesturePreview;
|
|
785
875
|
getAllActivitiesView(): ReadonlyArray<Readonly<CoreActivity>>;
|
|
876
|
+
/**
|
|
877
|
+
* Read del plan de indent (ISSUE-080): los padres destino DISTINTOS bajo los
|
|
878
|
+
* que quedarían las actividades si se indentaran ahora. Es exactamente la
|
|
879
|
+
* planificación que ejecuta el handler (`planIndentMoves`, autoridad única),
|
|
880
|
+
* expuesta para que la frontera pueda correr el protocolo de conversión a
|
|
881
|
+
* madre (chequeo backend + modal) ANTES de despachar. Solo lecturas.
|
|
882
|
+
*/
|
|
883
|
+
getIndentTargetParentIds(activityIds: ReadonlyArray<ActivityId | string>): readonly string[];
|
|
786
884
|
getChildrenView(parentId: ActivityId | '0'): ReadonlyArray<Readonly<CoreActivity>>;
|
|
787
885
|
getLinkView(id: LinkId): Readonly<Link> | null;
|
|
788
886
|
getAllLinksView(): ReadonlyArray<Readonly<Link>>;
|
|
887
|
+
auditEffectiveGraph(): EffectiveGraphAudit;
|
|
789
888
|
getProperty<Property extends keyof CoreActivity>(activityId: ActivityId, property: Property): CoreActivity[Property] | null;
|
|
790
889
|
getAllIds(): readonly string[];
|
|
791
890
|
forEachActivityId(visit: (id: string) => void): void;
|
|
@@ -804,6 +903,26 @@ declare class ScheduleCore {
|
|
|
804
903
|
getModifiedLinks(): ReadonlyArray<Readonly<Link>>;
|
|
805
904
|
getModifiedActivities(): ReadonlyArray<Readonly<CoreActivity>>;
|
|
806
905
|
hasUnsavedChanges(): boolean;
|
|
906
|
+
/**
|
|
907
|
+
* Read-only view of the internal schedule revision. It moves once per
|
|
908
|
+
* substantive CANONICAL mutation (dispatch, undo, redo). It does NOT move
|
|
909
|
+
* for a preview dispatch nor for `applyPreviewInverse`: comparing the value
|
|
910
|
+
* captured in `PreviewDispatchInfo.revision` against the current one
|
|
911
|
+
* answers "did the schedule change while the preview was open".
|
|
912
|
+
*/
|
|
913
|
+
getScheduleRevision(): number;
|
|
914
|
+
/**
|
|
915
|
+
* Exit channel for a preview dispatch (`DispatchOptions.preview`): applies
|
|
916
|
+
* the inverse ChangeSet the preview returned, restoring the canonical
|
|
917
|
+
* state exactly. Like the preview itself it leaves no session trace: no
|
|
918
|
+
* save-tracker dirty, no undo entry, no effects, and the schedule revision
|
|
919
|
+
* does not move (see `getScheduleRevision`).
|
|
920
|
+
*
|
|
921
|
+
* Returns the ChangeSet to project to the view layer: the same changes as
|
|
922
|
+
* `inverse`, but with `after` images re-read from the restored state (the
|
|
923
|
+
* ones inside `inverse` were captured while the preview edit was applied).
|
|
924
|
+
*/
|
|
925
|
+
applyPreviewInverse(inverse: ChangeSet): Promise<ChangeSet>;
|
|
807
926
|
getDeletedActivitiesSinceLastSave(): ReadonlyArray<Readonly<DeletedActivitySnapshot>>;
|
|
808
927
|
getDeletedLinksSinceLastSave(): ReadonlyArray<Readonly<DeletedLinkSnapshot>>;
|
|
809
928
|
private _enqueue;
|
|
@@ -927,16 +1046,15 @@ declare class ScheduleCore {
|
|
|
927
1046
|
private _rollback;
|
|
928
1047
|
}
|
|
929
1048
|
|
|
930
|
-
interface ViewStateSeed {
|
|
931
|
-
readonly hiddenIds: readonly ActivityId[];
|
|
932
|
-
}
|
|
933
1049
|
interface ParsedInput {
|
|
934
1050
|
sector: SectorMetadata;
|
|
935
1051
|
activities: CoreActivity[];
|
|
936
1052
|
links: Link[];
|
|
937
1053
|
calendars: Calendar[];
|
|
938
1054
|
baseCalendars: Calendar[];
|
|
939
|
-
viewStateSeed:
|
|
1055
|
+
viewStateSeed: {
|
|
1056
|
+
readonly hiddenIds: readonly ActivityId[];
|
|
1057
|
+
};
|
|
940
1058
|
}
|
|
941
1059
|
declare function parseFromBackend(input: BackendScheduleInput, reporter?: ScheduleCoreReporter): ParsedInput;
|
|
942
1060
|
|
|
@@ -1002,6 +1120,9 @@ declare const DEFAULT_HOURS_PER_DAY = 8;
|
|
|
1002
1120
|
|
|
1003
1121
|
type DispatchActionKind = DispatchAction['kind'];
|
|
1004
1122
|
declare const DISPATCH_ACTION_KIND: {
|
|
1123
|
+
readonly ACTIVITY_CLIPBOARD_CLEAR: "activity-clipboard-clear";
|
|
1124
|
+
readonly ACTIVITY_COPY: "activity-copy";
|
|
1125
|
+
readonly ACTIVITY_PASTE_COPIED: "activity-paste-copied";
|
|
1005
1126
|
readonly PERSISTENCE_ACKNOWLEDGE: "persistence-acknowledge";
|
|
1006
1127
|
readonly BASELINE_APPLY: "baseline-apply";
|
|
1007
1128
|
readonly PONDERATOR_CRITERION_SET: "ponderator-criterion-set";
|
|
@@ -1019,13 +1140,13 @@ declare const DISPATCH_ACTION_KIND: {
|
|
|
1019
1140
|
readonly ACTIVITY_INDENT: "activity-indent";
|
|
1020
1141
|
readonly ACTIVITY_OUTDENT: "activity-outdent";
|
|
1021
1142
|
readonly ACTIVITY_SET_PROGRESS: "activity-set-progress";
|
|
1022
|
-
readonly ACTIVITY_PASTE: "activity-paste";
|
|
1023
1143
|
readonly SELECTION_TOGGLE: "selection-toggle";
|
|
1024
1144
|
readonly SELECTION_REPLACE: "selection-replace";
|
|
1025
1145
|
readonly VISIBILITY_SET: "visibility-set";
|
|
1026
1146
|
readonly FILTER_SET: "filter-set";
|
|
1027
1147
|
readonly SORT_SET: "sort-set";
|
|
1028
1148
|
readonly SIR_SYNC: "sir-sync";
|
|
1149
|
+
readonly SIR_APPROVE: "sir-approve";
|
|
1029
1150
|
readonly ACTIVITY_LOOKAHEAD_SYNC: "activity-lookahead-sync";
|
|
1030
1151
|
};
|
|
1031
1152
|
declare const DISPATCH_ACTION_KINDS: ReadonlyArray<DispatchActionKind>;
|
|
@@ -1050,13 +1171,19 @@ declare const REJECTION_REASON: {
|
|
|
1050
1171
|
readonly ACTIVITY_NOT_FOUND: "activity_not_found";
|
|
1051
1172
|
readonly PARENT_NOT_FOUND: "parent_not_found";
|
|
1052
1173
|
readonly ACTIVITY_IDS_EMPTY: "activity_ids_empty";
|
|
1174
|
+
readonly NO_ACTIVITY_SELECTION: "no_activity_selection";
|
|
1175
|
+
readonly CLIPBOARD_EMPTY: "clipboard_empty";
|
|
1176
|
+
readonly ACTIVITY_PASTE_INVARIANT_FAILED: "activity_paste_invariant_failed";
|
|
1053
1177
|
readonly ANCHOR_SIBLING_CONFLICT: "anchor_sibling_conflict";
|
|
1054
1178
|
readonly ANCHOR_SIBLING_NOT_FOUND: "anchor_sibling_not_found";
|
|
1055
1179
|
readonly ANCHOR_SIBLING_WRONG_PARENT: "anchor_sibling_wrong_parent";
|
|
1056
1180
|
readonly PARENT_FROZEN_BY_SIR: "parent_frozen_by_sir";
|
|
1181
|
+
readonly SIR_REQUEST_NOT_PENDING: "sir_request_not_pending";
|
|
1182
|
+
readonly PREVIEW_UNSUPPORTED_ACTION: "preview_unsupported_action";
|
|
1057
1183
|
readonly CANNOT_MOVE_INTO_OWN_DESCENDANT: "cannot_move_into_own_descendant";
|
|
1058
1184
|
readonly INDENT_NO_ELIGIBLE_SIBLING: "indent_no_eligible_sibling";
|
|
1059
1185
|
readonly OUTDENT_ROOT_LEVEL_NOT_EDITABLE: "outdent_root_level_not_editable";
|
|
1186
|
+
readonly HIERARCHY_CYCLE: "hierarchy_cycle";
|
|
1060
1187
|
readonly INVALID_PROGRESS_VALUE: "invalid_progress_value_must_be_0_or_100";
|
|
1061
1188
|
};
|
|
1062
1189
|
type DispatchRejectReason = (typeof REJECTION_REASON)[keyof typeof REJECTION_REASON];
|
|
@@ -1070,4 +1197,4 @@ declare const DISPATCH_TRACK_EVENT: {
|
|
|
1070
1197
|
};
|
|
1071
1198
|
type DispatchTrackEvent = (typeof DISPATCH_TRACK_EVENT)[keyof typeof DISPATCH_TRACK_EVENT];
|
|
1072
1199
|
|
|
1073
|
-
export { ACTIVITY_TYPE, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreter, type ActivityId, type ActivityType, type BackendActivityInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CreationKind, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EntityChange, type FilterCriterion, type FilterDateRange, type FilterField, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type
|
|
1200
|
+
export { ACTIVITY_TYPE, type ActivityBaselineSnapshot, type ActivityBatchAction, type ActivityBatchItem, type ActivityBatchLinkInput, type ActivityBatchMode, type ActivityBatchParentReference, type ActivityBatchReference, type ActivityCreter, type ActivityId, type ActivityStatus, type ActivityType, type BackendActivityInput, type BackendCalendarExceptionInput, type BackendCalendarInput, type BackendLinkInput, type BackendScheduleInput, type BackendSectorInput, type BackendShiftInput, type BaselinePoint, type BaselineVersion, type BranchOrderChange, CALENDAR_UNIT, COLUMN, CONSTRAINT_TYPE, CONSTRAINT_TYPE_TO_LABEL, CREATION_KIND, type Calendar, type CalendarId, type CalendarLike, type CalendarUnit, type CalendarWorktime, type ChangeSet, type ChangeSetSource, type ColumnName, type ConstraintType, type ConstraintWarning, type CoreActivity, type CoreBaselinePoint, type CreationKind, type CreationOverrides, type CriticalPathResult, DEFAULT_HOURS_PER_DAY, DISPATCH_ACTION_KIND, DISPATCH_ACTION_KINDS, DISPATCH_TRACK_EVENT, type DateGesture, type DateGesturePreview, type DatesBatchVerdict, type DeletedActivitySnapshot, type DeletedLinkSnapshot, type DispatchAction, type DispatchActionKind, type DispatchOptions, type DispatchRejectReason, type DispatchResult, type DispatchTrackEvent, type EditableColumnName, type EffectiveGraphAudit, type EntityChange, type ExpectedProgressAdapter, type FilterCriterion, type FilterCriterionValue, type FilterDateRange, type FilterField, type FilterOperator, type FilterState, LINK_CODE_TO_TYPE, LINK_TYPE, LINK_TYPE_CODE, type Link, type LinkBatchVerdict, type LinkId, type LinkType, type LinkTypeCode, type LinksBatchOperation, NEW_ACTIVITY_DEFAULTS, type OrderRule, type OrderState, type ParsedInput, type PendingRequest, type PersistedEntityIdentity, type PipelineColumnName, type PreviewDispatchInfo, type ProjectWorkHours, REJECTION_REASON, ROOT_PARENT_ID, SCHEDULE_CORE_STATUS, STATUS, ScheduleCore, type ScheduleCoreInput, type ScheduleCoreReporter, type ScheduleCoreStatus, type ScheduleEffect, type SectorMetadata, type StaticActivityDefaults, type StatusCriteria, type TrackingEvent, type UndoOptions, type ViewStateChange, type ViewStatePropChange, WORK_TIME_DIRECTION, type WithProplannerId, type WorkTimeDirection, checkNoUpdatedLinks, computeExpectedProgress, expectedProgressFromBaseline, getActiveBaseline, getUnsavedActivities, isRootParent, normalizeParentKey, parseFromBackend, willRunCriticalPath, yieldToBrowser };
|