@fluentui/priority-overflow 9.0.3 → 9.1.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.
@@ -6,8 +6,10 @@ Object.defineProperty(exports, "createOverflowManager", {
6
6
  enumerable: true,
7
7
  get: ()=>createOverflowManager
8
8
  });
9
+ const _consts = require("./consts");
9
10
  const _debounce = require("./debounce");
10
11
  const _priorityQueue = require("./priorityQueue");
12
+ var _groups, _groupId;
11
13
  function createOverflowManager() {
12
14
  let container;
13
15
  let overflowMenu;
@@ -25,13 +27,66 @@ function createOverflowManager() {
25
27
  onUpdateOverflow: ()=>undefined
26
28
  };
27
29
  const overflowItems = {};
28
- const overflowGroups = {};
30
+ const overflowDividers = {};
29
31
  const resizeObserver = new ResizeObserver((entries)=>{
30
32
  if (!entries[0] || !container) {
31
33
  return;
32
34
  }
33
35
  update();
34
36
  });
37
+ const getNextItem = (queueToDequeue, queueToEnqueue)=>{
38
+ const nextItem = queueToDequeue.dequeue();
39
+ queueToEnqueue.enqueue(nextItem);
40
+ return overflowItems[nextItem];
41
+ };
42
+ const createGroupManager = ()=>{
43
+ const groupVisibility = {};
44
+ const groups = {};
45
+ function updateGroupVisibility(groupId) {
46
+ const group = groups[groupId];
47
+ if (group.invisibleItemIds.size && group.visibleItemIds.size) {
48
+ groupVisibility[groupId] = 'overflow';
49
+ } else if (group.visibleItemIds.size === 0) {
50
+ groupVisibility[groupId] = 'hidden';
51
+ } else {
52
+ groupVisibility[groupId] = 'visible';
53
+ }
54
+ }
55
+ function isGroupVisible(groupId) {
56
+ return groupVisibility[groupId] === 'visible' || groupVisibility[groupId] === 'overflow';
57
+ }
58
+ return {
59
+ groupVisibility: ()=>groupVisibility,
60
+ isSingleItemVisible (itemId, groupId) {
61
+ return isGroupVisible(groupId) && groups[groupId].visibleItemIds.has(itemId) && groups[groupId].visibleItemIds.size === 1;
62
+ },
63
+ addItem (itemId, groupId) {
64
+ var _;
65
+ (_ = (_groups = groups)[_groupId = groupId]) !== null && _ !== void 0 ? _ : _groups[_groupId] = {
66
+ visibleItemIds: new Set(),
67
+ invisibleItemIds: new Set()
68
+ };
69
+ groups[groupId].visibleItemIds.add(itemId);
70
+ updateGroupVisibility(groupId);
71
+ },
72
+ removeItem (itemId, groupId) {
73
+ groups[groupId].invisibleItemIds.delete(itemId);
74
+ groups[groupId].visibleItemIds.delete(itemId);
75
+ updateGroupVisibility(groupId);
76
+ },
77
+ showItem (itemId, groupId) {
78
+ groups[groupId].invisibleItemIds.delete(itemId);
79
+ groups[groupId].visibleItemIds.add(itemId);
80
+ updateGroupVisibility(groupId);
81
+ },
82
+ hideItem (itemId, groupId) {
83
+ groups[groupId].invisibleItemIds.add(itemId);
84
+ groups[groupId].visibleItemIds.delete(itemId);
85
+ updateGroupVisibility(groupId);
86
+ }
87
+ };
88
+ };
89
+ const groupManager = createGroupManager();
35
90
  const invisibleItemQueue = (0, _priorityQueue.createPriorityQueue)((a, b)=>{
36
91
  const itemA = overflowItems[a];
37
92
  const itemB = overflowItems[b];
@@ -61,32 +116,38 @@ function createOverflowManager() {
61
116
  const getOffsetSize = (el)=>{
62
117
  return options.overflowAxis === 'horizontal' ? el.offsetWidth : el.offsetHeight;
63
118
  };
64
- const makeItemVisible = ()=>{
65
- const nextVisible = invisibleItemQueue.dequeue();
66
- visibleItemQueue.enqueue(nextVisible);
67
- const item = overflowItems[nextVisible];
119
+ function computeSizeChange(entry) {
120
+ const dividerWidth = entry.groupId && groupManager.isSingleItemVisible(entry.id, entry.groupId) && overflowDividers[entry.groupId] ? getOffsetSize(overflowDividers[entry.groupId].element) : 0;
121
+ return getOffsetSize(entry.element) + dividerWidth;
122
+ }
123
+ const showItem = ()=>{
124
+ const item = getNextItem(invisibleItemQueue, visibleItemQueue);
68
125
  options.onUpdateItemVisibility({
69
126
  item,
70
127
  visible: true
71
128
  });
72
129
  if (item.groupId) {
73
- overflowGroups[item.groupId].invisibleItemIds.delete(item.id);
74
- overflowGroups[item.groupId].visibleItemIds.add(item.id);
130
+ groupManager.showItem(item.id, item.groupId);
131
+ if (groupManager.isSingleItemVisible(item.id, item.groupId)) {
132
+ var _overflowDividers_item_groupId;
133
+ (_overflowDividers_item_groupId = overflowDividers[item.groupId]) === null || _overflowDividers_item_groupId === void 0 ? void 0 : _overflowDividers_item_groupId.element.removeAttribute(_consts.DATA_OVERFLOWING);
134
+ }
75
135
  }
76
- return getOffsetSize(item.element);
136
+ return computeSizeChange(item);
77
137
  };
78
- const makeItemInvisible = ()=>{
79
- const nextInvisible = visibleItemQueue.dequeue();
80
- invisibleItemQueue.enqueue(nextInvisible);
81
- const item = overflowItems[nextInvisible];
82
- const width = getOffsetSize(item.element);
138
+ const hideItem = ()=>{
139
+ const item = getNextItem(visibleItemQueue, invisibleItemQueue);
140
+ const width = computeSizeChange(item);
83
141
  options.onUpdateItemVisibility({
84
142
  item,
85
143
  visible: false
86
144
  });
87
145
  if (item.groupId) {
88
- overflowGroups[item.groupId].visibleItemIds.delete(item.id);
89
- overflowGroups[item.groupId].invisibleItemIds.add(item.id);
146
+ if (groupManager.isSingleItemVisible(item.id, item.groupId)) {
147
+ var _overflowDividers_item_groupId;
148
+ (_overflowDividers_item_groupId = overflowDividers[item.groupId]) === null || _overflowDividers_item_groupId === void 0 ? void 0 : _overflowDividers_item_groupId.element.setAttribute(_consts.DATA_OVERFLOWING, '');
149
+ }
150
+ groupManager.hideItem(item.id, item.groupId);
90
151
  }
91
152
  return width;
92
153
  };
@@ -95,56 +156,32 @@ function createOverflowManager() {
95
156
  const invisibleItemIds = invisibleItemQueue.all();
96
157
  const visibleItems = visibleItemIds.map((itemId)=>overflowItems[itemId]);
97
158
  const invisibleItems = invisibleItemIds.map((itemId)=>overflowItems[itemId]);
98
- const groupVisibility = {};
99
- Object.entries(overflowGroups).forEach(([groupId, groupState])=>{
100
- if (groupState.invisibleItemIds.size && groupState.visibleItemIds.size) {
101
- groupVisibility[groupId] = 'overflow';
102
- } else if (groupState.visibleItemIds.size === 0) {
103
- groupVisibility[groupId] = 'hidden';
104
- } else {
105
- groupVisibility[groupId] = 'visible';
106
- }
107
- });
108
159
  options.onUpdateOverflow({
109
160
  visibleItems,
110
161
  invisibleItems,
111
- groupVisibility
162
+ groupVisibility: groupManager.groupVisibility()
112
163
  });
113
164
  };
114
165
  const processOverflowItems = ()=>{
115
166
  if (!container) {
116
167
  return false;
117
168
  }
118
- const availableSize = getOffsetSize(container) - options.padding;
119
- const overflowMenuOffset = overflowMenu ? getOffsetSize(overflowMenu) : 0;
169
+ const totalDividersWidth = Object.values(overflowDividers).map((dvdr)=>dvdr.groupId ? getOffsetSize(dvdr.element) : 0).reduce((prev, current)=>prev + current, 0);
170
+ const availableSize = getOffsetSize(container) - options.padding - totalDividersWidth - (overflowMenu ? getOffsetSize(overflowMenu) : 0);
120
171
  // Snapshot of the visible/invisible state to compare for updates
121
172
  const visibleTop = visibleItemQueue.peek();
122
173
  const invisibleTop = invisibleItemQueue.peek();
123
- const visibleItemIds = visibleItemQueue.all();
124
- let currentWidth = visibleItemIds.reduce((sum, visibleItemId)=>{
125
- const child = overflowItems[visibleItemId].element;
126
- return sum + getOffsetSize(child);
127
- }, 0);
174
+ let currentWidth = visibleItemQueue.all().map((id)=>overflowItems[id].element).map(getOffsetSize).reduce((prev, current)=>prev + current, 0);
128
175
  // Add items until available width is filled - can result in overflow
129
176
  while(currentWidth < availableSize && invisibleItemQueue.size() > 0){
130
- currentWidth += makeItemVisible();
177
+ currentWidth += showItem();
131
178
  }
132
179
  // Remove items until there's no more overflow
133
- while(currentWidth > availableSize && visibleItemQueue.size() > 0){
134
- if (visibleItemQueue.size() <= options.minimumVisible) {
135
- break;
136
- }
137
- currentWidth -= makeItemInvisible();
138
- }
139
- // make sure the overflow menu can fit
140
- if (visibleItemQueue.size() > options.minimumVisible && invisibleItemQueue.size() > 0 && currentWidth + overflowMenuOffset > availableSize) {
141
- makeItemInvisible();
180
+ while(currentWidth > availableSize && visibleItemQueue.size() > options.minimumVisible){
181
+ currentWidth -= hideItem();
142
182
  }
143
183
  // only update when the state of visible/invisible items has changed
144
- if (visibleItemQueue.peek() !== visibleTop || invisibleItemQueue.peek() !== invisibleTop) {
145
- return true;
146
- }
147
- return false;
184
+ return visibleItemQueue.peek() !== visibleTop || invisibleItemQueue.peek() !== invisibleTop;
148
185
  };
149
186
  const forceUpdate = ()=>{
150
187
  if (processOverflowItems() || forceDispatch) {
@@ -178,22 +215,34 @@ function createOverflowManager() {
178
215
  visibleItemQueue.enqueue(item.id);
179
216
  }
180
217
  if (item.groupId) {
181
- if (!overflowGroups[item.groupId]) {
182
- overflowGroups[item.groupId] = {
183
- visibleItemIds: new Set(),
184
- invisibleItemIds: new Set()
185
- };
186
- }
187
- overflowGroups[item.groupId].visibleItemIds.add(item.id);
218
+ groupManager.addItem(item.id, item.groupId);
219
+ item.element.setAttribute(_consts.DATA_OVERFLOW_GROUP, item.groupId);
188
220
  }
189
221
  update();
190
222
  };
191
223
  const addOverflowMenu = (el)=>{
192
224
  overflowMenu = el;
193
225
  };
226
+ const addDivider = (divider)=>{
227
+ if (!divider.groupId || overflowDividers[divider.groupId]) {
228
+ return;
229
+ }
230
+ divider.element.setAttribute(_consts.DATA_OVERFLOW_GROUP, divider.groupId);
231
+ overflowDividers[divider.groupId] = divider;
232
+ };
194
233
  const removeOverflowMenu = ()=>{
195
234
  overflowMenu = undefined;
196
235
  };
236
+ const removeDivider = (groupId)=>{
237
+ if (!overflowDividers[groupId]) {
238
+ return;
239
+ }
240
+ const divider = overflowDividers[groupId];
241
+ if (divider.groupId) {
242
+ delete overflowDividers[groupId];
243
+ divider.element.removeAttribute(_consts.DATA_OVERFLOW_GROUP);
244
+ }
245
+ };
197
246
  const removeItem = (itemId)=>{
198
247
  if (!overflowItems[itemId]) {
199
248
  return;
@@ -202,8 +251,8 @@ function createOverflowManager() {
202
251
  visibleItemQueue.remove(itemId);
203
252
  invisibleItemQueue.remove(itemId);
204
253
  if (item.groupId) {
205
- overflowGroups[item.groupId].visibleItemIds.delete(item.id);
206
- overflowGroups[item.groupId].invisibleItemIds.delete(item.id);
254
+ groupManager.removeItem(item.id, item.groupId);
255
+ item.element.removeAttribute(_consts.DATA_OVERFLOW_GROUP);
207
256
  }
208
257
  delete overflowItems[itemId];
209
258
  update();
@@ -216,8 +265,8 @@ function createOverflowManager() {
216
265
  removeItem,
217
266
  update,
218
267
  addOverflowMenu,
219
- removeOverflowMenu
268
+ removeOverflowMenu,
269
+ addDivider,
270
+ removeDivider
220
271
  };
221
- } //# sourceMappingURL=overflowManager.js.map
222
-
223
- //# sourceMappingURL=overflowManager.js.map
272
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/overflowManager.js"],"sourcesContent":["import { debounce } from './debounce';\nimport { createPriorityQueue } from './priorityQueue';\n/**\n * @internal\n * @returns overflow manager instance\n */\nexport function createOverflowManager() {\n let container;\n let overflowMenu;\n // Set as true when resize observer is observing\n let observing = false;\n // If true, next update will dispatch to onUpdateOverflow even if queue top states don't change\n // Initially true to force dispatch on first mount\n let forceDispatch = true;\n const options = {\n padding: 10,\n overflowAxis: 'horizontal',\n overflowDirection: 'end',\n minimumVisible: 0,\n onUpdateItemVisibility: () => undefined,\n onUpdateOverflow: () => undefined\n };\n const overflowItems = {};\n const overflowGroups = {};\n const resizeObserver = new ResizeObserver(entries => {\n if (!entries[0] || !container) {\n return;\n }\n update();\n });\n const invisibleItemQueue = createPriorityQueue((a, b) => {\n const itemA = overflowItems[a];\n const itemB = overflowItems[b];\n // Higher priority at the top of the queue\n const priority = itemB.priority - itemA.priority;\n if (priority !== 0) {\n return priority;\n }\n const positionStatusBit = options.overflowDirection === 'end' ? Node.DOCUMENT_POSITION_FOLLOWING : Node.DOCUMENT_POSITION_PRECEDING;\n // equal priority, use DOM order\n // eslint-disable-next-line no-bitwise\n return itemA.element.compareDocumentPosition(itemB.element) & positionStatusBit ? -1 : 1;\n });\n const visibleItemQueue = createPriorityQueue((a, b) => {\n const itemA = overflowItems[a];\n const itemB = overflowItems[b];\n // Lower priority at the top of the queue\n const priority = itemA.priority - itemB.priority;\n if (priority !== 0) {\n return priority;\n }\n const positionStatusBit = options.overflowDirection === 'end' ? Node.DOCUMENT_POSITION_PRECEDING : Node.DOCUMENT_POSITION_FOLLOWING;\n // equal priority, use DOM order\n // eslint-disable-next-line no-bitwise\n return itemA.element.compareDocumentPosition(itemB.element) & positionStatusBit ? -1 : 1;\n });\n const getOffsetSize = el => {\n return options.overflowAxis === 'horizontal' ? el.offsetWidth : el.offsetHeight;\n };\n const makeItemVisible = () => {\n const nextVisible = invisibleItemQueue.dequeue();\n visibleItemQueue.enqueue(nextVisible);\n const item = overflowItems[nextVisible];\n options.onUpdateItemVisibility({\n item,\n visible: true\n });\n if (item.groupId) {\n overflowGroups[item.groupId].invisibleItemIds.delete(item.id);\n overflowGroups[item.groupId].visibleItemIds.add(item.id);\n }\n return getOffsetSize(item.element);\n };\n const makeItemInvisible = () => {\n const nextInvisible = visibleItemQueue.dequeue();\n invisibleItemQueue.enqueue(nextInvisible);\n const item = overflowItems[nextInvisible];\n const width = getOffsetSize(item.element);\n options.onUpdateItemVisibility({\n item,\n visible: false\n });\n if (item.groupId) {\n overflowGroups[item.groupId].visibleItemIds.delete(item.id);\n overflowGroups[item.groupId].invisibleItemIds.add(item.id);\n }\n return width;\n };\n const dispatchOverflowUpdate = () => {\n const visibleItemIds = visibleItemQueue.all();\n const invisibleItemIds = invisibleItemQueue.all();\n const visibleItems = visibleItemIds.map(itemId => overflowItems[itemId]);\n const invisibleItems = invisibleItemIds.map(itemId => overflowItems[itemId]);\n const groupVisibility = {};\n Object.entries(overflowGroups).forEach(([groupId, groupState]) => {\n if (groupState.invisibleItemIds.size && groupState.visibleItemIds.size) {\n groupVisibility[groupId] = 'overflow';\n } else if (groupState.visibleItemIds.size === 0) {\n groupVisibility[groupId] = 'hidden';\n } else {\n groupVisibility[groupId] = 'visible';\n }\n });\n options.onUpdateOverflow({\n visibleItems,\n invisibleItems,\n groupVisibility\n });\n };\n const processOverflowItems = () => {\n if (!container) {\n return false;\n }\n const availableSize = getOffsetSize(container) - options.padding;\n const overflowMenuOffset = overflowMenu ? getOffsetSize(overflowMenu) : 0;\n // Snapshot of the visible/invisible state to compare for updates\n const visibleTop = visibleItemQueue.peek();\n const invisibleTop = invisibleItemQueue.peek();\n const visibleItemIds = visibleItemQueue.all();\n let currentWidth = visibleItemIds.reduce((sum, visibleItemId) => {\n const child = overflowItems[visibleItemId].element;\n return sum + getOffsetSize(child);\n }, 0);\n // Add items until available width is filled - can result in overflow\n while (currentWidth < availableSize && invisibleItemQueue.size() > 0) {\n currentWidth += makeItemVisible();\n }\n // Remove items until there's no more overflow\n while (currentWidth > availableSize && visibleItemQueue.size() > 0) {\n if (visibleItemQueue.size() <= options.minimumVisible) {\n break;\n }\n currentWidth -= makeItemInvisible();\n }\n // make sure the overflow menu can fit\n if (visibleItemQueue.size() > options.minimumVisible && invisibleItemQueue.size() > 0 && currentWidth + overflowMenuOffset > availableSize) {\n makeItemInvisible();\n }\n // only update when the state of visible/invisible items has changed\n if (visibleItemQueue.peek() !== visibleTop || invisibleItemQueue.peek() !== invisibleTop) {\n return true;\n }\n return false;\n };\n const forceUpdate = () => {\n if (processOverflowItems() || forceDispatch) {\n forceDispatch = false;\n dispatchOverflowUpdate();\n }\n };\n const update = debounce(forceUpdate);\n const observe = (observedContainer, userOptions) => {\n Object.assign(options, userOptions);\n observing = true;\n Object.values(overflowItems).forEach(item => visibleItemQueue.enqueue(item.id));\n container = observedContainer;\n resizeObserver.observe(container);\n };\n const disconnect = () => {\n observing = false;\n resizeObserver.disconnect();\n };\n const addItem = item => {\n if (overflowItems[item.id]) {\n return;\n }\n overflowItems[item.id] = item;\n // some options can affect priority which are only set on `observe`\n if (observing) {\n // Updates to elements might not change the queue tops\n // i.e. new element is enqueued but the top of the queue stays the same\n // force a dispatch on the next batched update\n forceDispatch = true;\n visibleItemQueue.enqueue(item.id);\n }\n if (item.groupId) {\n if (!overflowGroups[item.groupId]) {\n overflowGroups[item.groupId] = {\n visibleItemIds: new Set(),\n invisibleItemIds: new Set()\n };\n }\n overflowGroups[item.groupId].visibleItemIds.add(item.id);\n }\n update();\n };\n const addOverflowMenu = el => {\n overflowMenu = el;\n };\n const removeOverflowMenu = () => {\n overflowMenu = undefined;\n };\n const removeItem = itemId => {\n if (!overflowItems[itemId]) {\n return;\n }\n const item = overflowItems[itemId];\n visibleItemQueue.remove(itemId);\n invisibleItemQueue.remove(itemId);\n if (item.groupId) {\n overflowGroups[item.groupId].visibleItemIds.delete(item.id);\n overflowGroups[item.groupId].invisibleItemIds.delete(item.id);\n }\n delete overflowItems[itemId];\n update();\n };\n return {\n addItem,\n disconnect,\n forceUpdate,\n observe,\n removeItem,\n update,\n addOverflowMenu,\n removeOverflowMenu\n };\n}\n//# sourceMappingURL=overflowManager.js.map"],"names":["createOverflowManager","container","overflowMenu","observing","forceDispatch","options","padding","overflowAxis","overflowDirection","minimumVisible","onUpdateItemVisibility","undefined","onUpdateOverflow","overflowItems","overflowGroups","resizeObserver","ResizeObserver","entries","update","invisibleItemQueue","createPriorityQueue","a","b","itemA","itemB","priority","positionStatusBit","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","element","compareDocumentPosition","visibleItemQueue","getOffsetSize","el","offsetWidth","offsetHeight","makeItemVisible","nextVisible","dequeue","enqueue","item","visible","groupId","invisibleItemIds","delete","id","visibleItemIds","add","makeItemInvisible","nextInvisible","width","dispatchOverflowUpdate","all","visibleItems","map","itemId","invisibleItems","groupVisibility","Object","forEach","groupState","size","processOverflowItems","availableSize","overflowMenuOffset","visibleTop","peek","invisibleTop","currentWidth","reduce","sum","visibleItemId","child","forceUpdate","debounce","observe","observedContainer","userOptions","assign","values","disconnect","addItem","Set","addOverflowMenu","removeOverflowMenu","removeItem","remove"],"mappings":"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"}
1
+ {"version":3,"sources":["overflowManager.js"],"sourcesContent":["var _groups, _groupId;\nimport { DATA_OVERFLOWING, DATA_OVERFLOW_GROUP } from './consts';\nimport { debounce } from './debounce';\nimport { createPriorityQueue } from './priorityQueue';\n/**\n * @internal\n * @returns overflow manager instance\n */ export function createOverflowManager() {\n let container;\n let overflowMenu;\n // Set as true when resize observer is observing\n let observing = false;\n // If true, next update will dispatch to onUpdateOverflow even if queue top states don't change\n // Initially true to force dispatch on first mount\n let forceDispatch = true;\n const options = {\n padding: 10,\n overflowAxis: 'horizontal',\n overflowDirection: 'end',\n minimumVisible: 0,\n onUpdateItemVisibility: ()=>undefined,\n onUpdateOverflow: ()=>undefined\n };\n const overflowItems = {};\n const overflowDividers = {};\n const resizeObserver = new ResizeObserver((entries)=>{\n if (!entries[0] || !container) {\n return;\n }\n update();\n });\n const getNextItem = (queueToDequeue, queueToEnqueue)=>{\n const nextItem = queueToDequeue.dequeue();\n queueToEnqueue.enqueue(nextItem);\n return overflowItems[nextItem];\n };\n const createGroupManager = ()=>{\n const groupVisibility = {};\n const groups = {};\n function updateGroupVisibility(groupId) {\n const group = groups[groupId];\n if (group.invisibleItemIds.size && group.visibleItemIds.size) {\n groupVisibility[groupId] = 'overflow';\n } else if (group.visibleItemIds.size === 0) {\n groupVisibility[groupId] = 'hidden';\n } else {\n groupVisibility[groupId] = 'visible';\n }\n }\n function isGroupVisible(groupId) {\n return groupVisibility[groupId] === 'visible' || groupVisibility[groupId] === 'overflow';\n }\n return {\n groupVisibility: ()=>groupVisibility,\n isSingleItemVisible (itemId, groupId) {\n return isGroupVisible(groupId) && groups[groupId].visibleItemIds.has(itemId) && groups[groupId].visibleItemIds.size === 1;\n },\n addItem (itemId, groupId) {\n var _;\n (_ = (_groups = groups)[_groupId = groupId]) !== null && _ !== void 0 ? _ : _groups[_groupId] = {\n visibleItemIds: new Set(),\n invisibleItemIds: new Set()\n };\n groups[groupId].visibleItemIds.add(itemId);\n updateGroupVisibility(groupId);\n },\n removeItem (itemId, groupId) {\n groups[groupId].invisibleItemIds.delete(itemId);\n groups[groupId].visibleItemIds.delete(itemId);\n updateGroupVisibility(groupId);\n },\n showItem (itemId, groupId) {\n groups[groupId].invisibleItemIds.delete(itemId);\n groups[groupId].visibleItemIds.add(itemId);\n updateGroupVisibility(groupId);\n },\n hideItem (itemId, groupId) {\n groups[groupId].invisibleItemIds.add(itemId);\n groups[groupId].visibleItemIds.delete(itemId);\n updateGroupVisibility(groupId);\n }\n };\n };\n const groupManager = createGroupManager();\n const invisibleItemQueue = createPriorityQueue((a, b)=>{\n const itemA = overflowItems[a];\n const itemB = overflowItems[b];\n // Higher priority at the top of the queue\n const priority = itemB.priority - itemA.priority;\n if (priority !== 0) {\n return priority;\n }\n const positionStatusBit = options.overflowDirection === 'end' ? Node.DOCUMENT_POSITION_FOLLOWING : Node.DOCUMENT_POSITION_PRECEDING;\n // equal priority, use DOM order\n // eslint-disable-next-line no-bitwise\n return itemA.element.compareDocumentPosition(itemB.element) & positionStatusBit ? -1 : 1;\n });\n const visibleItemQueue = createPriorityQueue((a, b)=>{\n const itemA = overflowItems[a];\n const itemB = overflowItems[b];\n // Lower priority at the top of the queue\n const priority = itemA.priority - itemB.priority;\n if (priority !== 0) {\n return priority;\n }\n const positionStatusBit = options.overflowDirection === 'end' ? Node.DOCUMENT_POSITION_PRECEDING : Node.DOCUMENT_POSITION_FOLLOWING;\n // equal priority, use DOM order\n // eslint-disable-next-line no-bitwise\n return itemA.element.compareDocumentPosition(itemB.element) & positionStatusBit ? -1 : 1;\n });\n const getOffsetSize = (el)=>{\n return options.overflowAxis === 'horizontal' ? el.offsetWidth : el.offsetHeight;\n };\n function computeSizeChange(entry) {\n const dividerWidth = entry.groupId && groupManager.isSingleItemVisible(entry.id, entry.groupId) && overflowDividers[entry.groupId] ? getOffsetSize(overflowDividers[entry.groupId].element) : 0;\n return getOffsetSize(entry.element) + dividerWidth;\n }\n const showItem = ()=>{\n const item = getNextItem(invisibleItemQueue, visibleItemQueue);\n options.onUpdateItemVisibility({\n item,\n visible: true\n });\n if (item.groupId) {\n groupManager.showItem(item.id, item.groupId);\n if (groupManager.isSingleItemVisible(item.id, item.groupId)) {\n var _overflowDividers_item_groupId;\n (_overflowDividers_item_groupId = overflowDividers[item.groupId]) === null || _overflowDividers_item_groupId === void 0 ? void 0 : _overflowDividers_item_groupId.element.removeAttribute(DATA_OVERFLOWING);\n }\n }\n return computeSizeChange(item);\n };\n const hideItem = ()=>{\n const item = getNextItem(visibleItemQueue, invisibleItemQueue);\n const width = computeSizeChange(item);\n options.onUpdateItemVisibility({\n item,\n visible: false\n });\n if (item.groupId) {\n if (groupManager.isSingleItemVisible(item.id, item.groupId)) {\n var _overflowDividers_item_groupId;\n (_overflowDividers_item_groupId = overflowDividers[item.groupId]) === null || _overflowDividers_item_groupId === void 0 ? void 0 : _overflowDividers_item_groupId.element.setAttribute(DATA_OVERFLOWING, '');\n }\n groupManager.hideItem(item.id, item.groupId);\n }\n return width;\n };\n const dispatchOverflowUpdate = ()=>{\n const visibleItemIds = visibleItemQueue.all();\n const invisibleItemIds = invisibleItemQueue.all();\n const visibleItems = visibleItemIds.map((itemId)=>overflowItems[itemId]);\n const invisibleItems = invisibleItemIds.map((itemId)=>overflowItems[itemId]);\n options.onUpdateOverflow({\n visibleItems,\n invisibleItems,\n groupVisibility: groupManager.groupVisibility()\n });\n };\n const processOverflowItems = ()=>{\n if (!container) {\n return false;\n }\n const totalDividersWidth = Object.values(overflowDividers).map((dvdr)=>dvdr.groupId ? getOffsetSize(dvdr.element) : 0).reduce((prev, current)=>prev + current, 0);\n const availableSize = getOffsetSize(container) - options.padding - totalDividersWidth - (overflowMenu ? getOffsetSize(overflowMenu) : 0);\n // Snapshot of the visible/invisible state to compare for updates\n const visibleTop = visibleItemQueue.peek();\n const invisibleTop = invisibleItemQueue.peek();\n let currentWidth = visibleItemQueue.all().map((id)=>overflowItems[id].element).map(getOffsetSize).reduce((prev, current)=>prev + current, 0);\n // Add items until available width is filled - can result in overflow\n while(currentWidth < availableSize && invisibleItemQueue.size() > 0){\n currentWidth += showItem();\n }\n // Remove items until there's no more overflow\n while(currentWidth > availableSize && visibleItemQueue.size() > options.minimumVisible){\n currentWidth -= hideItem();\n }\n // only update when the state of visible/invisible items has changed\n return visibleItemQueue.peek() !== visibleTop || invisibleItemQueue.peek() !== invisibleTop;\n };\n const forceUpdate = ()=>{\n if (processOverflowItems() || forceDispatch) {\n forceDispatch = false;\n dispatchOverflowUpdate();\n }\n };\n const update = debounce(forceUpdate);\n const observe = (observedContainer, userOptions)=>{\n Object.assign(options, userOptions);\n observing = true;\n Object.values(overflowItems).forEach((item)=>visibleItemQueue.enqueue(item.id));\n container = observedContainer;\n resizeObserver.observe(container);\n };\n const disconnect = ()=>{\n observing = false;\n resizeObserver.disconnect();\n };\n const addItem = (item)=>{\n if (overflowItems[item.id]) {\n return;\n }\n overflowItems[item.id] = item;\n // some options can affect priority which are only set on `observe`\n if (observing) {\n // Updates to elements might not change the queue tops\n // i.e. new element is enqueued but the top of the queue stays the same\n // force a dispatch on the next batched update\n forceDispatch = true;\n visibleItemQueue.enqueue(item.id);\n }\n if (item.groupId) {\n groupManager.addItem(item.id, item.groupId);\n item.element.setAttribute(DATA_OVERFLOW_GROUP, item.groupId);\n }\n update();\n };\n const addOverflowMenu = (el)=>{\n overflowMenu = el;\n };\n const addDivider = (divider)=>{\n if (!divider.groupId || overflowDividers[divider.groupId]) {\n return;\n }\n divider.element.setAttribute(DATA_OVERFLOW_GROUP, divider.groupId);\n overflowDividers[divider.groupId] = divider;\n };\n const removeOverflowMenu = ()=>{\n overflowMenu = undefined;\n };\n const removeDivider = (groupId)=>{\n if (!overflowDividers[groupId]) {\n return;\n }\n const divider = overflowDividers[groupId];\n if (divider.groupId) {\n delete overflowDividers[groupId];\n divider.element.removeAttribute(DATA_OVERFLOW_GROUP);\n }\n };\n const removeItem = (itemId)=>{\n if (!overflowItems[itemId]) {\n return;\n }\n const item = overflowItems[itemId];\n visibleItemQueue.remove(itemId);\n invisibleItemQueue.remove(itemId);\n if (item.groupId) {\n groupManager.removeItem(item.id, item.groupId);\n item.element.removeAttribute(DATA_OVERFLOW_GROUP);\n }\n delete overflowItems[itemId];\n update();\n };\n return {\n addItem,\n disconnect,\n forceUpdate,\n observe,\n removeItem,\n update,\n addOverflowMenu,\n removeOverflowMenu,\n addDivider,\n removeDivider\n };\n}\n"],"names":["createOverflowManager","_groups","_groupId","container","overflowMenu","observing","forceDispatch","options","padding","overflowAxis","overflowDirection","minimumVisible","onUpdateItemVisibility","undefined","onUpdateOverflow","overflowItems","overflowDividers","resizeObserver","ResizeObserver","entries","update","getNextItem","queueToDequeue","queueToEnqueue","nextItem","dequeue","enqueue","createGroupManager","groupVisibility","groups","updateGroupVisibility","groupId","group","invisibleItemIds","size","visibleItemIds","isGroupVisible","isSingleItemVisible","itemId","has","addItem","_","Set","add","removeItem","delete","showItem","hideItem","groupManager","invisibleItemQueue","createPriorityQueue","a","b","itemA","itemB","priority","positionStatusBit","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_PRECEDING","element","compareDocumentPosition","visibleItemQueue","getOffsetSize","el","offsetWidth","offsetHeight","computeSizeChange","entry","dividerWidth","id","item","visible","_overflowDividers_item_groupId","removeAttribute","DATA_OVERFLOWING","width","setAttribute","dispatchOverflowUpdate","all","visibleItems","map","invisibleItems","processOverflowItems","totalDividersWidth","Object","values","dvdr","reduce","prev","current","availableSize","visibleTop","peek","invisibleTop","currentWidth","forceUpdate","debounce","observe","observedContainer","userOptions","assign","forEach","disconnect","DATA_OVERFLOW_GROUP","addOverflowMenu","addDivider","divider","removeOverflowMenu","removeDivider","remove"],"mappings":"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"}
@@ -94,6 +94,4 @@ function createPriorityQueue(compare) {
94
94
  remove,
95
95
  size: ()=>size
96
96
  };
97
- } //# sourceMappingURL=priorityQueue.js.map
98
-
99
- //# sourceMappingURL=priorityQueue.js.map
97
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/priorityQueue.js"],"sourcesContent":["/**\n * @param compare - comparison function for items\n * @returns Priority queue implemented with a min heap\n */export function createPriorityQueue(compare) {\n const arr = [];\n let size = 0;\n const left = i => {\n return 2 * i + 1;\n };\n const right = i => {\n return 2 * i + 2;\n };\n const parent = i => {\n return Math.floor((i - 1) / 2);\n };\n const swap = (a, b) => {\n const tmp = arr[a];\n arr[a] = arr[b];\n arr[b] = tmp;\n };\n const heapify = i => {\n let smallest = i;\n const l = left(i);\n const r = right(i);\n if (l < size && compare(arr[l], arr[smallest]) < 0) {\n smallest = l;\n }\n if (r < size && compare(arr[r], arr[smallest]) < 0) {\n smallest = r;\n }\n if (smallest !== i) {\n swap(smallest, i);\n heapify(smallest);\n }\n };\n const dequeue = () => {\n if (size === 0) {\n throw new Error('Priority queue empty');\n }\n const res = arr[0];\n arr[0] = arr[--size];\n heapify(0);\n return res;\n };\n const peek = () => {\n if (size === 0) {\n return null;\n }\n return arr[0];\n };\n const enqueue = item => {\n arr[size++] = item;\n let i = size - 1;\n let p = parent(i);\n while (i > 0 && compare(arr[p], arr[i]) > 0) {\n swap(p, i);\n i = p;\n p = parent(i);\n }\n };\n const contains = item => {\n const index = arr.indexOf(item);\n return index >= 0 && index < size;\n };\n const remove = item => {\n const i = arr.indexOf(item);\n if (i === -1 || i >= size) {\n return;\n }\n arr[i] = arr[--size];\n heapify(i);\n };\n const clear = () => {\n size = 0;\n };\n const all = () => {\n return arr.slice(0, size);\n };\n return {\n all,\n clear,\n contains,\n dequeue,\n enqueue,\n peek,\n remove,\n size: () => size\n };\n}\n//# sourceMappingURL=priorityQueue.js.map"],"names":["createPriorityQueue","compare","arr","size","left","i","right","parent","Math","floor","swap","a","b","tmp","heapify","smallest","l","r","dequeue","Error","res","peek","enqueue","item","p","contains","index","indexOf","remove","clear","all","slice"],"mappings":"AAAA;;;CAGC;;;;+BAAkBA;;aAAAA;;AAAT,SAASA,oBAAoBC,OAAO,EAAE;IAC9C,MAAMC,MAAM,EAAE;IACd,IAAIC,OAAO;IACX,MAAMC,OAAOC,CAAAA,IAAK;QAChB,OAAO,IAAIA,IAAI;IACjB;IACA,MAAMC,QAAQD,CAAAA,IAAK;QACjB,OAAO,IAAIA,IAAI;IACjB;IACA,MAAME,SAASF,CAAAA,IAAK;QAClB,OAAOG,KAAKC,KAAK,CAAC,AAACJ,CAAAA,IAAI,CAAA,IAAK;IAC9B;IACA,MAAMK,OAAO,CAACC,GAAGC,IAAM;QACrB,MAAMC,MAAMX,GAAG,CAACS,EAAE;QAClBT,GAAG,CAACS,EAAE,GAAGT,GAAG,CAACU,EAAE;QACfV,GAAG,CAACU,EAAE,GAAGC;IACX;IACA,MAAMC,UAAUT,CAAAA,IAAK;QACnB,IAAIU,WAAWV;QACf,MAAMW,IAAIZ,KAAKC;QACf,MAAMY,IAAIX,MAAMD;QAChB,IAAIW,IAAIb,QAAQF,QAAQC,GAAG,CAACc,EAAE,EAAEd,GAAG,CAACa,SAAS,IAAI,GAAG;YAClDA,WAAWC;QACb,CAAC;QACD,IAAIC,IAAId,QAAQF,QAAQC,GAAG,CAACe,EAAE,EAAEf,GAAG,CAACa,SAAS,IAAI,GAAG;YAClDA,WAAWE;QACb,CAAC;QACD,IAAIF,aAAaV,GAAG;YAClBK,KAAKK,UAAUV;YACfS,QAAQC;QACV,CAAC;IACH;IACA,MAAMG,UAAU,IAAM;QACpB,IAAIf,SAAS,GAAG;YACd,MAAM,IAAIgB,MAAM,wBAAwB;QAC1C,CAAC;QACD,MAAMC,MAAMlB,GAAG,CAAC,EAAE;QAClBA,GAAG,CAAC,EAAE,GAAGA,GAAG,CAAC,EAAEC,KAAK;QACpBW,QAAQ;QACR,OAAOM;IACT;IACA,MAAMC,OAAO,IAAM;QACjB,IAAIlB,SAAS,GAAG;YACd,OAAO,IAAI;QACb,CAAC;QACD,OAAOD,GAAG,CAAC,EAAE;IACf;IACA,MAAMoB,UAAUC,CAAAA,OAAQ;QACtBrB,GAAG,CAACC,OAAO,GAAGoB;QACd,IAAIlB,IAAIF,OAAO;QACf,IAAIqB,IAAIjB,OAAOF;QACf,MAAOA,IAAI,KAAKJ,QAAQC,GAAG,CAACsB,EAAE,EAAEtB,GAAG,CAACG,EAAE,IAAI,EAAG;YAC3CK,KAAKc,GAAGnB;YACRA,IAAImB;YACJA,IAAIjB,OAAOF;QACb;IACF;IACA,MAAMoB,WAAWF,CAAAA,OAAQ;QACvB,MAAMG,QAAQxB,IAAIyB,OAAO,CAACJ;QAC1B,OAAOG,SAAS,KAAKA,QAAQvB;IAC/B;IACA,MAAMyB,SAASL,CAAAA,OAAQ;QACrB,MAAMlB,IAAIH,IAAIyB,OAAO,CAACJ;QACtB,IAAIlB,MAAM,CAAC,KAAKA,KAAKF,MAAM;YACzB;QACF,CAAC;QACDD,GAAG,CAACG,EAAE,GAAGH,GAAG,CAAC,EAAEC,KAAK;QACpBW,QAAQT;IACV;IACA,MAAMwB,QAAQ,IAAM;QAClB1B,OAAO;IACT;IACA,MAAM2B,MAAM,IAAM;QAChB,OAAO5B,IAAI6B,KAAK,CAAC,GAAG5B;IACtB;IACA,OAAO;QACL2B;QACAD;QACAJ;QACAP;QACAI;QACAD;QACAO;QACAzB,MAAM,IAAMA;IACd;AACF,EACA,yCAAyC"}
1
+ {"version":3,"sources":["priorityQueue.js"],"sourcesContent":["/**\n * @param compare - comparison function for items\n * @returns Priority queue implemented with a min heap\n */ export function createPriorityQueue(compare) {\n const arr = [];\n let size = 0;\n const left = (i)=>{\n return 2 * i + 1;\n };\n const right = (i)=>{\n return 2 * i + 2;\n };\n const parent = (i)=>{\n return Math.floor((i - 1) / 2);\n };\n const swap = (a, b)=>{\n const tmp = arr[a];\n arr[a] = arr[b];\n arr[b] = tmp;\n };\n const heapify = (i)=>{\n let smallest = i;\n const l = left(i);\n const r = right(i);\n if (l < size && compare(arr[l], arr[smallest]) < 0) {\n smallest = l;\n }\n if (r < size && compare(arr[r], arr[smallest]) < 0) {\n smallest = r;\n }\n if (smallest !== i) {\n swap(smallest, i);\n heapify(smallest);\n }\n };\n const dequeue = ()=>{\n if (size === 0) {\n throw new Error('Priority queue empty');\n }\n const res = arr[0];\n arr[0] = arr[--size];\n heapify(0);\n return res;\n };\n const peek = ()=>{\n if (size === 0) {\n return null;\n }\n return arr[0];\n };\n const enqueue = (item)=>{\n arr[size++] = item;\n let i = size - 1;\n let p = parent(i);\n while(i > 0 && compare(arr[p], arr[i]) > 0){\n swap(p, i);\n i = p;\n p = parent(i);\n }\n };\n const contains = (item)=>{\n const index = arr.indexOf(item);\n return index >= 0 && index < size;\n };\n const remove = (item)=>{\n const i = arr.indexOf(item);\n if (i === -1 || i >= size) {\n return;\n }\n arr[i] = arr[--size];\n heapify(i);\n };\n const clear = ()=>{\n size = 0;\n };\n const all = ()=>{\n return arr.slice(0, size);\n };\n return {\n all,\n clear,\n contains,\n dequeue,\n enqueue,\n peek,\n remove,\n size: ()=>size\n };\n}\n"],"names":["createPriorityQueue","compare","arr","size","left","i","right","parent","Math","floor","swap","a","b","tmp","heapify","smallest","l","r","dequeue","Error","res","peek","enqueue","item","p","contains","index","indexOf","remove","clear","all","slice"],"mappings":"AAAA;;;CAGC;;;;+BAAmBA;;aAAAA;;AAAT,SAASA,oBAAoBC,OAAO,EAAE;IAC7C,MAAMC,MAAM,EAAE;IACd,IAAIC,OAAO;IACX,MAAMC,OAAO,CAACC,IAAI;QACd,OAAO,IAAIA,IAAI;IACnB;IACA,MAAMC,QAAQ,CAACD,IAAI;QACf,OAAO,IAAIA,IAAI;IACnB;IACA,MAAME,SAAS,CAACF,IAAI;QAChB,OAAOG,KAAKC,KAAK,CAAC,AAACJ,CAAAA,IAAI,CAAA,IAAK;IAChC;IACA,MAAMK,OAAO,CAACC,GAAGC,IAAI;QACjB,MAAMC,MAAMX,GAAG,CAACS,EAAE;QAClBT,GAAG,CAACS,EAAE,GAAGT,GAAG,CAACU,EAAE;QACfV,GAAG,CAACU,EAAE,GAAGC;IACb;IACA,MAAMC,UAAU,CAACT,IAAI;QACjB,IAAIU,WAAWV;QACf,MAAMW,IAAIZ,KAAKC;QACf,MAAMY,IAAIX,MAAMD;QAChB,IAAIW,IAAIb,QAAQF,QAAQC,GAAG,CAACc,EAAE,EAAEd,GAAG,CAACa,SAAS,IAAI,GAAG;YAChDA,WAAWC;QACf,CAAC;QACD,IAAIC,IAAId,QAAQF,QAAQC,GAAG,CAACe,EAAE,EAAEf,GAAG,CAACa,SAAS,IAAI,GAAG;YAChDA,WAAWE;QACf,CAAC;QACD,IAAIF,aAAaV,GAAG;YAChBK,KAAKK,UAAUV;YACfS,QAAQC;QACZ,CAAC;IACL;IACA,MAAMG,UAAU,IAAI;QAChB,IAAIf,SAAS,GAAG;YACZ,MAAM,IAAIgB,MAAM,wBAAwB;QAC5C,CAAC;QACD,MAAMC,MAAMlB,GAAG,CAAC,EAAE;QAClBA,GAAG,CAAC,EAAE,GAAGA,GAAG,CAAC,EAAEC,KAAK;QACpBW,QAAQ;QACR,OAAOM;IACX;IACA,MAAMC,OAAO,IAAI;QACb,IAAIlB,SAAS,GAAG;YACZ,OAAO,IAAI;QACf,CAAC;QACD,OAAOD,GAAG,CAAC,EAAE;IACjB;IACA,MAAMoB,UAAU,CAACC,OAAO;QACpBrB,GAAG,CAACC,OAAO,GAAGoB;QACd,IAAIlB,IAAIF,OAAO;QACf,IAAIqB,IAAIjB,OAAOF;QACf,MAAMA,IAAI,KAAKJ,QAAQC,GAAG,CAACsB,EAAE,EAAEtB,GAAG,CAACG,EAAE,IAAI,EAAE;YACvCK,KAAKc,GAAGnB;YACRA,IAAImB;YACJA,IAAIjB,OAAOF;QACf;IACJ;IACA,MAAMoB,WAAW,CAACF,OAAO;QACrB,MAAMG,QAAQxB,IAAIyB,OAAO,CAACJ;QAC1B,OAAOG,SAAS,KAAKA,QAAQvB;IACjC;IACA,MAAMyB,SAAS,CAACL,OAAO;QACnB,MAAMlB,IAAIH,IAAIyB,OAAO,CAACJ;QACtB,IAAIlB,MAAM,CAAC,KAAKA,KAAKF,MAAM;YACvB;QACJ,CAAC;QACDD,GAAG,CAACG,EAAE,GAAGH,GAAG,CAAC,EAAEC,KAAK;QACpBW,QAAQT;IACZ;IACA,MAAMwB,QAAQ,IAAI;QACd1B,OAAO;IACX;IACA,MAAM2B,MAAM,IAAI;QACZ,OAAO5B,IAAI6B,KAAK,CAAC,GAAG5B;IACxB;IACA,OAAO;QACH2B;QACAD;QACAJ;QACAP;QACAI;QACAD;QACAO;QACAzB,MAAM,IAAIA;IACd;AACJ"}
@@ -2,6 +2,3 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- //# sourceMappingURL=types.js.map
6
-
7
- //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/types.js"],"sourcesContent":["export {};\n//# sourceMappingURL=types.js.map"],"names":[],"mappings":";;;;CACA,iCAAiC"}
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/priority-overflow",
3
- "version": "9.0.3",
3
+ "version": "9.1.0",
4
4
  "description": "Vanilla JS utilities to implement overflow menus",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -20,7 +20,8 @@
20
20
  "lint": "just-scripts lint",
21
21
  "test": "jest --passWithNoTests",
22
22
  "type-check": "tsc -b tsconfig.json",
23
- "generate-api": "just-scripts generate-api"
23
+ "generate-api": "just-scripts generate-api",
24
+ "test-ssr": "test-ssr \"./stories/**/*.stories.tsx\""
24
25
  },
25
26
  "devDependencies": {
26
27
  "@fluentui/eslint-plugin": "*",