@masterteam/work-center 0.0.83 → 0.0.85

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masterteam/work-center",
3
- "version": "0.0.83",
3
+ "version": "0.0.85",
4
4
  "publishConfig": {
5
5
  "directory": "../../../dist/masterteam/work-center",
6
6
  "linkDirectory": false,
@@ -21,11 +21,11 @@
21
21
  "tailwindcss": "^4.2.2",
22
22
  "tailwindcss-primeui": "^0.6.1",
23
23
  "@masterteam/client-components": "^0.0.87",
24
- "@masterteam/components": "^0.0.274",
25
- "@masterteam/forms": "^0.0.141",
24
+ "@masterteam/discussion": "^0.0.26",
25
+ "@masterteam/forms": "^0.0.142",
26
+ "@masterteam/components": "^0.0.276",
26
27
  "@masterteam/icons": "^0.0.17",
27
- "@masterteam/structure-builder": "^0.0.62",
28
- "@masterteam/discussion": "^0.0.26"
28
+ "@masterteam/structure-builder": "^0.0.63"
29
29
  },
30
30
  "sideEffects": false,
31
31
  "exports": {
@@ -376,6 +376,7 @@ declare class WorkCenterPage {
376
376
  align?: "start" | "center" | "end";
377
377
  shrink?: boolean;
378
378
  filterOnly?: boolean;
379
+ filterable?: boolean;
379
380
  exportable?: boolean;
380
381
  exportValue?: (row: any) => string | number | boolean | null;
381
382
  }[]>;
@@ -589,8 +590,11 @@ declare const WORK_CENTER_TYPE_COMPONENTS: InjectionToken<Record<string, Type<un
589
590
  */
590
591
  /**
591
592
  * `'removed'` means a row that is in the published snapshot but no longer in the
592
- * plan. `'unchanged'` never reaches the comparison payload - the drawer shows
593
- * what is being published, not the whole plan.
593
+ * plan. `'unchanged'` appears only on a CONVERGENT-CONFLICT row (round 3: both
594
+ * sides were touched and ended with equal values) - it carries no publishable
595
+ * change and is excluded from every publish count, but the approver must still
596
+ * see it in the conflicts section, or the request reports conflicts the view
597
+ * cannot show. A non-conflict `unchanged` row is still dropped.
594
598
  */
595
599
  type SchedulePublishState = 'added' | 'changed' | 'removed' | 'unchanged';
596
600
  interface SchedulePublishFieldChange {
@@ -624,6 +628,19 @@ interface SchedulePublishDiffRow {
624
628
  * list: the whole row is the change.
625
629
  */
626
630
  changes?: SchedulePublishFieldChange[] | null;
631
+ /**
632
+ * `'stale'` | `'conflict'` - the server's per-row baseline verdict (round 3,
633
+ * additive). `'conflict'` means the PUBLISHED side also moved on a row this
634
+ * draft edits; such rows lead the comparison in their own section. Absent on
635
+ * an older backend, which renders exactly as before.
636
+ */
637
+ draftBaselineState?: string | null;
638
+ /**
639
+ * Comma-joined field keys the published side changed on a conflict row -
640
+ * parse with {@link parseSchedulePublishChangedFields}. Additive; absent on
641
+ * older backends.
642
+ */
643
+ publishedChangedFields?: string | null;
627
644
  }
628
645
  interface SchedulePublishDiff {
629
646
  levelDataId?: number | null;
@@ -676,8 +693,10 @@ interface SchedulePublishFormLoadResponse {
676
693
  * group is where the eye stops.
677
694
  */
678
695
  declare const SCHEDULE_PUBLISH_GROUP_ORDER: readonly SchedulePublishState[];
696
+ /** Group keys: the publish states plus the leading conflicts section (round 3). */
697
+ type SchedulePublishGroupKey = SchedulePublishState | 'conflict';
679
698
  interface SchedulePublishGroup {
680
- state: SchedulePublishState;
699
+ state: SchedulePublishGroupKey;
681
700
  rows: SchedulePublishDiffRow[];
682
701
  /** Rows in this group BEFORE the search filter - the badge count stays honest. */
683
702
  totalCount: number;
@@ -688,18 +707,42 @@ interface SchedulePublishSummary {
688
707
  changedCount: number;
689
708
  removedCount: number;
690
709
  totalCount: number;
710
+ /** Rows the published plan moved under the draft's own edits. */
711
+ conflictCount: number;
691
712
  /** True when there is genuinely nothing to publish (as opposed to never published). */
692
713
  isEmpty: boolean;
714
+ /**
715
+ * The comparison has something to show: publishable changes OR conflicts.
716
+ * A diff of only zero-diff conflict rows is publish-empty but must still
717
+ * render its conflicts section - "nothing to publish" would contradict the
718
+ * request the approver is looking at.
719
+ */
720
+ needsAttention: boolean;
693
721
  }
722
+ /** The server's per-row baseline verdict says the published side also moved. */
723
+ declare function isSchedulePublishConflictRow(row: SchedulePublishDiffRow): boolean;
694
724
  declare function summarizeSchedulePublish(diff: SchedulePublishDiff | null | undefined): SchedulePublishSummary;
695
725
  /**
696
726
  * Group the comparison for display, optionally narrowed by a free-text search.
697
727
  *
728
+ * CONFLICTS LEAD, as their own section holding every conflicted row (whatever
729
+ * its publish state - including the zero-diff `unchanged` convergences the
730
+ * backend ships solely for this section). The approver has no resolution
731
+ * control - the section is informational: the frozen plan they are approving
732
+ * was captured while the live plan had moved under it. The remaining rows
733
+ * group added → changed → removed exactly as before, with non-conflict
734
+ * `unchanged` rows still dropped.
735
+ *
698
736
  * Search matches a row's NAME and its changed FIELD KEYS, so "start" finds every
699
737
  * row whose planned start moved even though that text appears nowhere in a name.
700
738
  * Empty groups are dropped rather than rendered as empty headers.
701
739
  */
702
740
  declare function groupSchedulePublishRows(diff: SchedulePublishDiff | null | undefined, searchText?: string): SchedulePublishGroup[];
741
+ /**
742
+ * The changed-field keys a conflict row ships as one comma-joined string -
743
+ * the same wire shape the schedule read envelope uses.
744
+ */
745
+ declare function parseSchedulePublishChangedFields(changedFields: string | null | undefined): string[];
703
746
  /**
704
747
  * Plan order, falling back to the row id.
705
748
  *
@@ -797,6 +840,12 @@ declare class WorkCenterSchedulePublishType implements OnDestroy {
797
840
  * nothing.
798
841
  */
799
842
  protected isExpandable(row: SchedulePublishDiffRow): boolean;
843
+ /**
844
+ * The published-side field keys of a conflict row, as human labels. Rendered
845
+ * as an informational hint — the approver has no per-row resolution control;
846
+ * the frozen plan they decide on was captured as-is.
847
+ */
848
+ protected publishedMovedFields(row: SchedulePublishDiffRow): string[];
800
849
  protected groupBadgeClass(state: string): string;
801
850
  protected groupLabel(state: string): string;
802
851
  /**
@@ -1015,5 +1064,5 @@ declare class WorkCenterState {
1015
1064
 
1016
1065
  declare const APP_STATES: (typeof WorkCenterState)[];
1017
1066
 
1018
- export { APP_STATES, ApplyColumnFilters, ApplyHeaderFilters, ClearAllFilters, EnterArea, HydrateFromContext, LoadRuntime, SCHEDULE_PUBLISH_GROUP_ORDER, SCHEDULE_PUBLISH_OPERATION_KEY, SelectCard, SetGroupBy, SetLookups, SetParams, WORK_CENTER_EMPTY_LABEL, WORK_CENTER_GROUP_NONE, WORK_CENTER_LEVEL_GROUP_FIELD, WORK_CENTER_LEVEL_NAME_KEY, WORK_CENTER_MAX_FILTERS, WORK_CENTER_MAX_PAGE_SIZE, WORK_CENTER_MAX_SORT, WORK_CENTER_QUERY_VERSION, WORK_CENTER_TYPE_COMPONENTS, WorkCenterActionKey, WorkCenterClientFormModal, WorkCenterFacade, WorkCenterItemModal, WorkCenterItemModalRoute, WorkCenterPage, WorkCenterSchedulePublishType, WorkCenterState, decodeWorkCenterRouteContextKey, encodeWorkCenterRouteContextKey, groupSchedulePublishRows, matchesSchedulePublishSearch, readSchedulePublishChanges, schedulePublishRowKey, sortSchedulePublishRows, summarizeSchedulePublish, windowSchedulePublishRows };
1019
- export type { ApiEnvelope, SchedulePublishDiff, SchedulePublishDiffRow, SchedulePublishFieldChange, SchedulePublishFormLoadResponse, SchedulePublishGroup, SchedulePublishState, SchedulePublishSummary, TranslatableDto, WorkCenterArea, WorkCenterAreaState, WorkCenterBootstrapInputs, WorkCenterClientFormModalData, WorkCenterClientFormModalOptions, WorkCenterColumnsConfig, WorkCenterContext, WorkCenterFilterOperator, WorkCenterFilterRule, WorkCenterHydratePatch, WorkCenterItemActionAfterSuccess, WorkCenterItemActionExecutionResult, WorkCenterItemActionsData, WorkCenterItemBasicInfoData, WorkCenterItemContextKey, WorkCenterItemModalComponentInput, WorkCenterItemModalOptions, WorkCenterLoadReason, WorkCenterLookups, WorkCenterPreviewLevelTarget, WorkCenterRuntimeCard, WorkCenterRuntimeFilterSchema, WorkCenterRuntimeItemAction, WorkCenterRuntimeOperatorOption, WorkCenterRuntimePagination, WorkCenterRuntimeProperty, WorkCenterRuntimeRequest, WorkCenterRuntimeResponseData, WorkCenterRuntimeSelectedCard, WorkCenterRuntimeStatsItem, WorkCenterRuntimeWarningDto, WorkCenterSortRule, WorkCenterStateModel, WorkCenterTypeComponentInputs };
1067
+ export { APP_STATES, ApplyColumnFilters, ApplyHeaderFilters, ClearAllFilters, EnterArea, HydrateFromContext, LoadRuntime, SCHEDULE_PUBLISH_GROUP_ORDER, SCHEDULE_PUBLISH_OPERATION_KEY, SelectCard, SetGroupBy, SetLookups, SetParams, WORK_CENTER_EMPTY_LABEL, WORK_CENTER_GROUP_NONE, WORK_CENTER_LEVEL_GROUP_FIELD, WORK_CENTER_LEVEL_NAME_KEY, WORK_CENTER_MAX_FILTERS, WORK_CENTER_MAX_PAGE_SIZE, WORK_CENTER_MAX_SORT, WORK_CENTER_QUERY_VERSION, WORK_CENTER_TYPE_COMPONENTS, WorkCenterActionKey, WorkCenterClientFormModal, WorkCenterFacade, WorkCenterItemModal, WorkCenterItemModalRoute, WorkCenterPage, WorkCenterSchedulePublishType, WorkCenterState, decodeWorkCenterRouteContextKey, encodeWorkCenterRouteContextKey, groupSchedulePublishRows, isSchedulePublishConflictRow, matchesSchedulePublishSearch, parseSchedulePublishChangedFields, readSchedulePublishChanges, schedulePublishRowKey, sortSchedulePublishRows, summarizeSchedulePublish, windowSchedulePublishRows };
1068
+ export type { ApiEnvelope, SchedulePublishDiff, SchedulePublishDiffRow, SchedulePublishFieldChange, SchedulePublishFormLoadResponse, SchedulePublishGroup, SchedulePublishGroupKey, SchedulePublishState, SchedulePublishSummary, TranslatableDto, WorkCenterArea, WorkCenterAreaState, WorkCenterBootstrapInputs, WorkCenterClientFormModalData, WorkCenterClientFormModalOptions, WorkCenterColumnsConfig, WorkCenterContext, WorkCenterFilterOperator, WorkCenterFilterRule, WorkCenterHydratePatch, WorkCenterItemActionAfterSuccess, WorkCenterItemActionExecutionResult, WorkCenterItemActionsData, WorkCenterItemBasicInfoData, WorkCenterItemContextKey, WorkCenterItemModalComponentInput, WorkCenterItemModalOptions, WorkCenterLoadReason, WorkCenterLookups, WorkCenterPreviewLevelTarget, WorkCenterRuntimeCard, WorkCenterRuntimeFilterSchema, WorkCenterRuntimeItemAction, WorkCenterRuntimeOperatorOption, WorkCenterRuntimePagination, WorkCenterRuntimeProperty, WorkCenterRuntimeRequest, WorkCenterRuntimeResponseData, WorkCenterRuntimeSelectedCard, WorkCenterRuntimeStatsItem, WorkCenterRuntimeWarningDto, WorkCenterSortRule, WorkCenterStateModel, WorkCenterTypeComponentInputs };