@fluentui/priority-overflow 9.0.3 → 9.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,35 @@ 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
+ function overflowMenuSize() {
171
+ return invisibleItemQueue.size() > 0 && overflowMenu ? getOffsetSize(overflowMenu) : 0;
172
+ }
173
+ const availableSize = getOffsetSize(container) - totalDividersWidth - options.padding;
120
174
  // Snapshot of the visible/invisible state to compare for updates
121
175
  const visibleTop = visibleItemQueue.peek();
122
176
  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);
177
+ let currentWidth = visibleItemQueue.all().map((id)=>overflowItems[id].element).map(getOffsetSize).reduce((prev, current)=>prev + current, 0);
128
178
  // Add items until available width is filled - can result in overflow
129
- while(currentWidth < availableSize && invisibleItemQueue.size() > 0){
130
- currentWidth += makeItemVisible();
179
+ while(currentWidth + overflowMenuSize() < availableSize && invisibleItemQueue.size() > 0){
180
+ currentWidth += showItem();
131
181
  }
132
182
  // 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();
183
+ while(currentWidth + overflowMenuSize() > availableSize && visibleItemQueue.size() > options.minimumVisible){
184
+ currentWidth -= hideItem();
142
185
  }
143
186
  // 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;
187
+ return visibleItemQueue.peek() !== visibleTop || invisibleItemQueue.peek() !== invisibleTop;
148
188
  };
149
189
  const forceUpdate = ()=>{
150
190
  if (processOverflowItems() || forceDispatch) {
@@ -178,22 +218,34 @@ function createOverflowManager() {
178
218
  visibleItemQueue.enqueue(item.id);
179
219
  }
180
220
  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);
221
+ groupManager.addItem(item.id, item.groupId);
222
+ item.element.setAttribute(_consts.DATA_OVERFLOW_GROUP, item.groupId);
188
223
  }
189
224
  update();
190
225
  };
191
226
  const addOverflowMenu = (el)=>{
192
227
  overflowMenu = el;
193
228
  };
229
+ const addDivider = (divider)=>{
230
+ if (!divider.groupId || overflowDividers[divider.groupId]) {
231
+ return;
232
+ }
233
+ divider.element.setAttribute(_consts.DATA_OVERFLOW_GROUP, divider.groupId);
234
+ overflowDividers[divider.groupId] = divider;
235
+ };
194
236
  const removeOverflowMenu = ()=>{
195
237
  overflowMenu = undefined;
196
238
  };
239
+ const removeDivider = (groupId)=>{
240
+ if (!overflowDividers[groupId]) {
241
+ return;
242
+ }
243
+ const divider = overflowDividers[groupId];
244
+ if (divider.groupId) {
245
+ delete overflowDividers[groupId];
246
+ divider.element.removeAttribute(_consts.DATA_OVERFLOW_GROUP);
247
+ }
248
+ };
197
249
  const removeItem = (itemId)=>{
198
250
  if (!overflowItems[itemId]) {
199
251
  return;
@@ -202,8 +254,8 @@ function createOverflowManager() {
202
254
  visibleItemQueue.remove(itemId);
203
255
  invisibleItemQueue.remove(itemId);
204
256
  if (item.groupId) {
205
- overflowGroups[item.groupId].visibleItemIds.delete(item.id);
206
- overflowGroups[item.groupId].invisibleItemIds.delete(item.id);
257
+ groupManager.removeItem(item.id, item.groupId);
258
+ item.element.removeAttribute(_consts.DATA_OVERFLOW_GROUP);
207
259
  }
208
260
  delete overflowItems[itemId];
209
261
  update();
@@ -216,8 +268,8 @@ function createOverflowManager() {
216
268
  removeItem,
217
269
  update,
218
270
  addOverflowMenu,
219
- removeOverflowMenu
271
+ removeOverflowMenu,
272
+ addDivider,
273
+ removeDivider
220
274
  };
221
- } //# sourceMappingURL=overflowManager.js.map
222
-
223
- //# sourceMappingURL=overflowManager.js.map
275
+ }
@@ -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 function overflowMenuSize() {\n return invisibleItemQueue.size() > 0 && overflowMenu ? getOffsetSize(overflowMenu) : 0;\n }\n const availableSize = getOffsetSize(container) - totalDividersWidth - options.padding;\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 + overflowMenuSize() < availableSize && invisibleItemQueue.size() > 0){\n currentWidth += showItem();\n }\n // Remove items until there's no more overflow\n while(currentWidth + overflowMenuSize() > 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","overflowMenuSize","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.1",
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": "*",