@design.estate/dees-catalog 4.10.0 → 4.11.1

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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-catalog',
6
- version: '4.10.0',
6
+ version: '4.11.1',
7
7
  description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsNkJBQTZCO0lBQ25DLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxzSkFBc0o7Q0FDcEssQ0FBQSJ9
@@ -42,9 +42,21 @@ export declare class DeesHarnessSessionList extends DeesElement {
42
42
  accessor draggedItemHeight: number;
43
43
  accessor expandedSessionIds: ReadonlySet<string>;
44
44
  accessor collapsedGroupIds: ReadonlySet<string>;
45
+ private accessor topScrollShadowVisible;
46
+ private accessor bottomScrollShadowVisible;
47
+ private accessor moveAnnouncement;
45
48
  private reflowGeneration;
46
49
  private readonly reflowAnimations;
47
- private dragSourceElement;
50
+ private pointerDragGesture;
51
+ private keyboardMoveFocus;
52
+ private scrollResizeObserver;
53
+ private observedScrollContainer;
54
+ private observedScrollContent;
55
+ private dragAutoScrollFrame;
56
+ private dragAutoScrollClientX;
57
+ private dragAutoScrollClientY;
58
+ private dragAutoScrollVelocity;
59
+ private dragAutoScrollLastFrame;
48
60
  static styles: import("@design.estate/dees-element").CSSResult[];
49
61
  private get sessionsById();
50
62
  private get groupedSessionIds();
@@ -53,6 +65,7 @@ export declare class DeesHarnessSessionList extends DeesElement {
53
65
  private get filteredSessions();
54
66
  focusSearch(): void;
55
67
  updated(changedProperties: Map<PropertyKey, unknown>): void;
68
+ connectedCallback(): Promise<void>;
56
69
  disconnectedCallback(): Promise<void>;
57
70
  render(): TemplateResult;
58
71
  private renderFlatList;
@@ -61,19 +74,37 @@ export declare class DeesHarnessSessionList extends DeesElement {
61
74
  private renderDropPlaceholder;
62
75
  private renderItem;
63
76
  private eventTargetsExpandToggle;
77
+ private eventTargetsDragHandle;
64
78
  private sessionStateLabel;
65
79
  private toggleSessionExpanded;
66
80
  private toggleGroupCollapsed;
67
81
  private sortableSessions;
68
82
  private sessionsForGroup;
69
- private handleDragStart;
83
+ private handlePointerDown;
84
+ private readonly handlePointerMove;
85
+ private readonly handlePointerUp;
86
+ private readonly handlePointerCancel;
87
+ private readonly handleLostPointerCapture;
88
+ private readonly handleDragKeyDown;
89
+ private readonly handleDragWindowBlur;
90
+ private startPointerDrag;
91
+ private moveDragPreview;
70
92
  private setDropSlot;
71
- private handleDragOverSlot;
72
- private handleDrop;
93
+ private clearDropSlot;
94
+ private updateDragAutoScrollVelocity;
95
+ private readonly runDragAutoScroll;
96
+ private updateDropSlotFromPointer;
97
+ private get scrollContainer();
98
+ private observeScrollGeometry;
99
+ private readonly syncScrollShadowState;
100
+ private stopDragAutoScroll;
101
+ private createMoveDetail;
102
+ private handleKeyboardMove;
73
103
  private captureCardRects;
104
+ private restoreKeyboardMoveFocus;
74
105
  private animateCardReflow;
75
106
  private cancelReflowAnimations;
76
- private clearDragState;
107
+ private finishPointerDrag;
77
108
  private emit;
78
109
  }
79
110
  export {};
@@ -20,11 +20,34 @@ const demoGroups = [
20
20
  { id: 'active', name: 'Active work', sessionIds: ['session-0', 'session-1', 'session-2'] },
21
21
  { id: 'review', name: 'Review', sessionIds: ['session-3', 'session-4'] },
22
22
  ];
23
+ const handleSessionSelect = (event) => {
24
+ const list = event.currentTarget;
25
+ list.selectedSessionId = event.detail.session.id;
26
+ };
27
+ const handleSessionMove = (event) => {
28
+ const list = event.currentTarget;
29
+ const { sessionId, groupId, beforeSessionId } = event.detail;
30
+ const groups = list.groups.map((group) => ({
31
+ ...group,
32
+ sessionIds: group.sessionIds.filter((id) => id !== sessionId),
33
+ }));
34
+ const ungroupedSessionIds = list.ungroupedSessionIds.filter((id) => id !== sessionId);
35
+ const targetIds = groupId === null
36
+ ? ungroupedSessionIds
37
+ : groups.find((group) => group.id === groupId)?.sessionIds;
38
+ if (!targetIds)
39
+ return;
40
+ const anchorIndex = beforeSessionId ? targetIds.indexOf(beforeSessionId) : -1;
41
+ targetIds.splice(anchorIndex >= 0 ? anchorIndex : targetIds.length, 0, sessionId);
42
+ list.groups = groups;
43
+ list.ungroupedSessionIds = ungroupedSessionIds;
44
+ };
23
45
  const openModal = async () => {
24
46
  const { DeesModal } = await import('../../00group-overlay/dees-modal/dees-modal.js');
25
47
  const content = document.createElement('dees-harness-session-list');
26
48
  content.sessions = demoSessions;
27
49
  content.style.height = '420px';
50
+ content.addEventListener('harness-session-select', handleSessionSelect);
28
51
  content.addEventListener('harness-session-open', (event) => {
29
52
  console.log('open session', event.detail.session);
30
53
  });
@@ -38,7 +61,7 @@ export const demoFunc = () => html `
38
61
  <style>
39
62
  .sessionDemo {
40
63
  display: grid;
41
- grid-template-rows: auto minmax(0, 1fr);
64
+ grid-template-rows: auto auto minmax(0, 1fr);
42
65
  gap: 12px;
43
66
  height: 480px;
44
67
  max-width: 420px;
@@ -48,18 +71,24 @@ export const demoFunc = () => html `
48
71
  border: 1px solid var(--dees-color-border-subtle);
49
72
  background: var(--dees-color-bg-secondary);
50
73
  }
74
+ .demoHint {
75
+ color: var(--dees-color-text-secondary);
76
+ font-size: var(--dees-font-caption1-size, 11px);
77
+ }
51
78
  .sessionDemo dees-harness-session-list { min-height: 0; }
52
79
  </style>
53
80
  <div class="sessionDemo">
54
81
  <dees-button @clicked=${openModal}>Open in a DeesModal</dees-button>
82
+ <div class="demoHint">Drag the grip to reorder conversations or move them between groups.</div>
55
83
  <dees-harness-session-list
56
84
  .sessions=${demoSessions}
57
85
  .groups=${demoGroups}
58
86
  .ungroupedSessionIds=${demoSessions.slice(5).map((session) => session.id)}
59
87
  .enableGrouping=${true}
60
88
  selectedSessionId="session-2"
61
- @harness-session-select=${(event) => console.log('select', event.detail.session)}
89
+ @harness-session-select=${handleSessionSelect}
90
+ @harness-session-move=${handleSessionMove}
62
91
  ></dees-harness-session-list>
63
92
  </div>
64
93
  `;
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tbGlzdC5kZW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1saXN0L2RlZXMtaGFybmVzcy1zZXNzaW9uLWxpc3QuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHbkQsTUFBTSxZQUFZLEdBQTBCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRTtJQUN0QixLQUFLLEVBQUU7UUFDTCx1QkFBdUI7UUFDdkIsc0NBQXNDO1FBQ3RDLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLHFDQUFxQztLQUN0QyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVM7SUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTO0lBQy9DLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sRUFBRSx3RUFBd0U7SUFDakYsS0FBSyxFQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztDQUN6QixDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUU7SUFDMUYsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFO0NBQ3pFLENBQUM7QUFFRixNQUFNLFNBQVMsR0FBRyxLQUFLLElBQUksRUFBRTtJQUMzQixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUNyRixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDcEUsT0FBTyxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFHLEtBQXFCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsU0FBUyxDQUFDLGFBQWEsQ0FBQztRQUN0QixPQUFPLEVBQUUsZUFBZTtRQUN4QixPQUFPLEVBQUUsSUFBSSxDQUFBLEdBQUcsT0FBTyxFQUFFO1FBQ3pCLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7OzRCQWlCTixTQUFTOztrQkFFbkIsWUFBWTtnQkFDZCxVQUFVOzZCQUNHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO3dCQUN2RCxJQUFJOztnQ0FFSSxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDOzs7Q0FHbEcsQ0FBQyJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1oYXJuZXNzLXNlc3Npb24tbGlzdC5kZW1vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtaGFybmVzcy9kZWVzLWhhcm5lc3Mtc2Vzc2lvbi1saXN0L2RlZXMtaGFybmVzcy1zZXNzaW9uLWxpc3QuZGVtby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFPbkQsTUFBTSxZQUFZLEdBQTBCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLEVBQUUsRUFBRSxXQUFXLEtBQUssRUFBRTtJQUN0QixLQUFLLEVBQUU7UUFDTCx1QkFBdUI7UUFDdkIsc0NBQXNDO1FBQ3RDLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IsZ0JBQWdCO1FBQ2hCLHFDQUFxQztLQUN0QyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDWixTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVM7SUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTO0lBQy9DLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sRUFBRSx3RUFBd0U7SUFDakYsS0FBSyxFQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sQ0FBVyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDcEYsT0FBTyxFQUFFLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQztDQUN6QixDQUFDLENBQUMs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