@fluentui/react-utilities 0.0.0-nightly-20230515-0418.1 → 0.0.0-nightly-20230516-0417.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.
package/CHANGELOG.json CHANGED
@@ -2,9 +2,9 @@
2
2
  "name": "@fluentui/react-utilities",
3
3
  "entries": [
4
4
  {
5
- "date": "Mon, 15 May 2023 04:23:58 GMT",
6
- "tag": "@fluentui/react-utilities_v0.0.0-nightly-20230515-0418.1",
7
- "version": "0.0.0-nightly-20230515-0418.1",
5
+ "date": "Tue, 16 May 2023 04:22:56 GMT",
6
+ "tag": "@fluentui/react-utilities_v0.0.0-nightly-20230516-0417.1",
7
+ "version": "0.0.0-nightly-20230516-0417.1",
8
8
  "comments": {
9
9
  "prerelease": [
10
10
  {
@@ -16,8 +16,8 @@
16
16
  {
17
17
  "author": "beachball",
18
18
  "package": "@fluentui/react-utilities",
19
- "comment": "Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230515-0418.1",
20
- "commit": "196cac1ccf327c9bc57dcfb25a989094780b50fa"
19
+ "comment": "Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230516-0417.1",
20
+ "commit": "7bb584364b3717b4f08fe4adaa9a8ba7026882f7"
21
21
  }
22
22
  ]
23
23
  }
package/CHANGELOG.md CHANGED
@@ -1,18 +1,18 @@
1
1
  # Change Log - @fluentui/react-utilities
2
2
 
3
- This log was last generated on Mon, 15 May 2023 04:23:58 GMT and should not be manually modified.
3
+ This log was last generated on Tue, 16 May 2023 04:22:56 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## [0.0.0-nightly-20230515-0418.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-utilities_v0.0.0-nightly-20230515-0418.1)
7
+ ## [0.0.0-nightly-20230516-0417.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-utilities_v0.0.0-nightly-20230516-0417.1)
8
8
 
9
- Mon, 15 May 2023 04:23:58 GMT
10
- [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-utilities_v9.8.1..@fluentui/react-utilities_v0.0.0-nightly-20230515-0418.1)
9
+ Tue, 16 May 2023 04:22:56 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-utilities_v9.8.1..@fluentui/react-utilities_v0.0.0-nightly-20230516-0417.1)
11
11
 
12
12
  ### Changes
13
13
 
14
14
  - Release nightly v9 ([commit](https://github.com/microsoft/fluentui/commit/not available) by fluentui-internal@service.microsoft.com)
15
- - Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230515-0418.1 ([commit](https://github.com/microsoft/fluentui/commit/196cac1ccf327c9bc57dcfb25a989094780b50fa) by beachball)
15
+ - Bump @fluentui/keyboard-keys to v0.0.0-nightly-20230516-0417.1 ([commit](https://github.com/microsoft/fluentui/commit/7bb584364b3717b4f08fe4adaa9a8ba7026882f7) by beachball)
16
16
 
17
17
  ## [9.8.1](https://github.com/microsoft/fluentui/tree/@fluentui/react-utilities_v9.8.1)
18
18
 
package/dist/index.d.ts CHANGED
@@ -51,6 +51,13 @@ export declare type ComponentState<Slots extends SlotPropsRecord> = {
51
51
  [Key in keyof Slots]: ReplaceNullWithUndefined<Exclude<Slots[Key], SlotShorthandValue | (Key extends 'root' ? null : never)>>;
52
52
  };
53
53
 
54
+ /**
55
+ * @internal
56
+ * @param compare - comparison function for items
57
+ * @returns Priority queue implemented with a min heap
58
+ */
59
+ export declare function createPriorityQueue<T>(compare: PriorityQueueCompareFn<T>): PriorityQueue<T>;
60
+
54
61
  /**
55
62
  * HTML element types that are not allowed to have children.
56
63
  *
@@ -356,6 +363,25 @@ declare type ObscureEventName = 'onLostPointerCaptureCapture';
356
363
  */
357
364
  export declare function omit<TObj extends Record<string, any>, Exclusions extends (keyof TObj)[]>(obj: TObj, exclusions: Exclusions): Omit<TObj, Exclusions[number]>;
358
365
 
366
+ /**
367
+ * @internal
368
+ */
369
+ export declare interface PriorityQueue<T> {
370
+ all: () => T[];
371
+ clear: () => void;
372
+ contains: (item: T) => boolean;
373
+ dequeue: () => T;
374
+ enqueue: (item: T) => void;
375
+ peek: () => T | null;
376
+ remove: (item: T) => void;
377
+ size: () => number;
378
+ }
379
+
380
+ /**
381
+ * @internal
382
+ */
383
+ declare type PriorityQueueCompareFn<T> = (a: T, b: T) => number;
384
+
359
385
  /**
360
386
  * Removes the 'ref' prop from the given Props type, leaving unions intact (such as the discriminated union created by
361
387
  * IntrinsicSlotProps). This allows IntrinsicSlotProps to be used with React.forwardRef.
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { getSlots, getSlotsNext, resolveShorthand, isResolvedShorthand, SLOT_RENDER_FUNCTION_SYMBOL } from './compose/index';
2
2
  export { IdPrefixProvider, resetIdsForTests, useControllableState, useEventCallback, useFirstMount, useForceUpdate, useId, useIsomorphicLayoutEffect, useMergedRefs, useOnClickOutside, useOnScrollOutside, usePrevious, useScrollbarWidth, useTimeout } from './hooks/index';
3
3
  export { canUseDOM, useIsSSR, SSRProvider } from './ssr/index';
4
- export { clamp, getNativeElementProps, getPartitionedNativeProps, getRTLSafeKey, mergeCallbacks, isHTMLElement, isInteractiveHTMLElement, omit } from './utils/index';
4
+ export { clamp, getNativeElementProps, getPartitionedNativeProps, getRTLSafeKey, mergeCallbacks, isHTMLElement, isInteractiveHTMLElement, omit, createPriorityQueue } from './utils/index';
5
5
  export { applyTriggerPropsToChildren, getTriggerChild, isFluentTrigger } from './trigger/index';
6
6
  export { isTouchEvent, isMouseEvent, getEventClientCoords } from './events/index';
7
7
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["getSlots","getSlotsNext","resolveShorthand","isResolvedShorthand","SLOT_RENDER_FUNCTION_SYMBOL","IdPrefixProvider","resetIdsForTests","useControllableState","useEventCallback","useFirstMount","useForceUpdate","useId","useIsomorphicLayoutEffect","useMergedRefs","useOnClickOutside","useOnScrollOutside","usePrevious","useScrollbarWidth","useTimeout","canUseDOM","useIsSSR","SSRProvider","clamp","getNativeElementProps","getPartitionedNativeProps","getRTLSafeKey","mergeCallbacks","isHTMLElement","isInteractiveHTMLElement","omit","applyTriggerPropsToChildren","getTriggerChild","isFluentTrigger","isTouchEvent","isMouseEvent","getEventClientCoords"],"sources":["../src/index.ts"],"sourcesContent":["export {\n getSlots,\n getSlotsNext,\n resolveShorthand,\n isResolvedShorthand,\n SLOT_RENDER_FUNCTION_SYMBOL,\n} from './compose/index';\nexport type {\n ExtractSlotProps,\n ComponentProps,\n ComponentState,\n ForwardRefComponent,\n ResolveShorthandFunction,\n ResolveShorthandOptions,\n Slot,\n Slots,\n SlotClassNames,\n SlotPropsRecord,\n SlotRenderFunction,\n SlotShorthandValue,\n UnknownSlotProps,\n} from './compose/index';\n\nexport {\n IdPrefixProvider,\n resetIdsForTests,\n useControllableState,\n useEventCallback,\n useFirstMount,\n useForceUpdate,\n useId,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n useOnClickOutside,\n useOnScrollOutside,\n usePrevious,\n useScrollbarWidth,\n useTimeout,\n} from './hooks/index';\nexport type { RefObjectFunction, UseControllableStateOptions, UseOnClickOrScrollOutsideOptions } from './hooks/index';\n\nexport { canUseDOM, useIsSSR, SSRProvider } from './ssr/index';\n\nexport {\n clamp,\n getNativeElementProps,\n getPartitionedNativeProps,\n getRTLSafeKey,\n mergeCallbacks,\n isHTMLElement,\n isInteractiveHTMLElement,\n omit,\n} from './utils/index';\n\nexport { applyTriggerPropsToChildren, getTriggerChild, isFluentTrigger } from './trigger/index';\n\nexport type { FluentTriggerComponent, TriggerProps } from './trigger/index';\n\n/**\n * Event utils\n */\nexport type { NativeTouchOrMouseEvent, ReactTouchOrMouseEvent, TouchOrMouseEvent } from './events/index';\nexport { isTouchEvent, isMouseEvent, getEventClientCoords } from './events/index';\n"],"mappings":"AAAA,SACEA,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,2BAA2B,QACtB;AAiBP,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,oBAAoB,EACpBC,gBAAgB,EAChBC,aAAa,EACbC,cAAc,EACdC,KAAK,EACLC,yBAAyB,EACzBC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,WAAW,EACXC,iBAAiB,EACjBC,UAAU,QACL;AAGP,SAASC,SAAS,EAAEC,QAAQ,EAAEC,WAAW,QAAQ;AAEjD,SACEC,KAAK,EACLC,qBAAqB,EACrBC,yBAAyB,EACzBC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,wBAAwB,EACxBC,IAAI,QACC;AAEP,SAASC,2BAA2B,EAAEC,eAAe,EAAEC,eAAe,QAAQ;AAQ9E,SAASC,YAAY,EAAEC,YAAY,EAAEC,oBAAoB,QAAQ"}
1
+ {"version":3,"names":["getSlots","getSlotsNext","resolveShorthand","isResolvedShorthand","SLOT_RENDER_FUNCTION_SYMBOL","IdPrefixProvider","resetIdsForTests","useControllableState","useEventCallback","useFirstMount","useForceUpdate","useId","useIsomorphicLayoutEffect","useMergedRefs","useOnClickOutside","useOnScrollOutside","usePrevious","useScrollbarWidth","useTimeout","canUseDOM","useIsSSR","SSRProvider","clamp","getNativeElementProps","getPartitionedNativeProps","getRTLSafeKey","mergeCallbacks","isHTMLElement","isInteractiveHTMLElement","omit","createPriorityQueue","applyTriggerPropsToChildren","getTriggerChild","isFluentTrigger","isTouchEvent","isMouseEvent","getEventClientCoords"],"sources":["../src/index.ts"],"sourcesContent":["export {\n getSlots,\n getSlotsNext,\n resolveShorthand,\n isResolvedShorthand,\n SLOT_RENDER_FUNCTION_SYMBOL,\n} from './compose/index';\nexport type {\n ExtractSlotProps,\n ComponentProps,\n ComponentState,\n ForwardRefComponent,\n ResolveShorthandFunction,\n ResolveShorthandOptions,\n Slot,\n Slots,\n SlotClassNames,\n SlotPropsRecord,\n SlotRenderFunction,\n SlotShorthandValue,\n UnknownSlotProps,\n} from './compose/index';\n\nexport {\n IdPrefixProvider,\n resetIdsForTests,\n useControllableState,\n useEventCallback,\n useFirstMount,\n useForceUpdate,\n useId,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n useOnClickOutside,\n useOnScrollOutside,\n usePrevious,\n useScrollbarWidth,\n useTimeout,\n} from './hooks/index';\nexport type { RefObjectFunction, UseControllableStateOptions, UseOnClickOrScrollOutsideOptions } from './hooks/index';\n\nexport { canUseDOM, useIsSSR, SSRProvider } from './ssr/index';\n\nexport {\n clamp,\n getNativeElementProps,\n getPartitionedNativeProps,\n getRTLSafeKey,\n mergeCallbacks,\n isHTMLElement,\n isInteractiveHTMLElement,\n omit,\n createPriorityQueue,\n} from './utils/index';\n\nexport type { PriorityQueue } from './utils/priorityQueue';\n\nexport { applyTriggerPropsToChildren, getTriggerChild, isFluentTrigger } from './trigger/index';\n\nexport type { FluentTriggerComponent, TriggerProps } from './trigger/index';\n\n/**\n * Event utils\n */\nexport type { NativeTouchOrMouseEvent, ReactTouchOrMouseEvent, TouchOrMouseEvent } from './events/index';\nexport { isTouchEvent, isMouseEvent, getEventClientCoords } from './events/index';\n"],"mappings":"AAAA,SACEA,QAAQ,EACRC,YAAY,EACZC,gBAAgB,EAChBC,mBAAmB,EACnBC,2BAA2B,QACtB;AAiBP,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,oBAAoB,EACpBC,gBAAgB,EAChBC,aAAa,EACbC,cAAc,EACdC,KAAK,EACLC,yBAAyB,EACzBC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,WAAW,EACXC,iBAAiB,EACjBC,UAAU,QACL;AAGP,SAASC,SAAS,EAAEC,QAAQ,EAAEC,WAAW,QAAQ;AAEjD,SACEC,KAAK,EACLC,qBAAqB,EACrBC,yBAAyB,EACzBC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,wBAAwB,EACxBC,IAAI,EACJC,mBAAmB,QACd;AAIP,SAASC,2BAA2B,EAAEC,eAAe,EAAEC,eAAe,QAAQ;AAQ9E,SAASC,YAAY,EAAEC,YAAY,EAAEC,oBAAoB,QAAQ"}
@@ -6,4 +6,5 @@ export * from './omit';
6
6
  export * from './properties';
7
7
  export * from './isHTMLElement';
8
8
  export * from './isInteractiveHTMLElement';
9
+ export * from './priorityQueue';
9
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './clamp';\nexport * from './getNativeElementProps';\nexport * from './getRTLSafeKey';\nexport * from './mergeCallbacks';\nexport * from './omit';\nexport * from './properties';\nexport * from './isHTMLElement';\nexport * from './isInteractiveHTMLElement';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
1
+ {"version":3,"names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["export * from './clamp';\nexport * from './getNativeElementProps';\nexport * from './getRTLSafeKey';\nexport * from './mergeCallbacks';\nexport * from './omit';\nexport * from './properties';\nexport * from './isHTMLElement';\nexport * from './isInteractiveHTMLElement';\nexport * from './priorityQueue';\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * @internal
3
+ */ /**
4
+ * @internal
5
+ * @param compare - comparison function for items
6
+ * @returns Priority queue implemented with a min heap
7
+ */export function createPriorityQueue(compare) {
8
+ const arr = [];
9
+ let size = 0;
10
+ const swap = (a, b) => {
11
+ const tmp = arr[a];
12
+ arr[a] = arr[b];
13
+ arr[b] = tmp;
14
+ };
15
+ const heapify = i => {
16
+ let smallest = i;
17
+ const l = left(i);
18
+ const r = right(i);
19
+ if (l < size && compare(arr[l], arr[smallest]) < 0) {
20
+ smallest = l;
21
+ }
22
+ if (r < size && compare(arr[r], arr[smallest]) < 0) {
23
+ smallest = r;
24
+ }
25
+ if (smallest !== i) {
26
+ swap(smallest, i);
27
+ heapify(smallest);
28
+ }
29
+ };
30
+ const dequeue = () => {
31
+ if (size === 0) {
32
+ throw new Error('Priority queue empty');
33
+ }
34
+ const res = arr[0];
35
+ arr[0] = arr[--size];
36
+ heapify(0);
37
+ return res;
38
+ };
39
+ const peek = () => {
40
+ if (size === 0) {
41
+ return null;
42
+ }
43
+ return arr[0];
44
+ };
45
+ const enqueue = item => {
46
+ arr[size++] = item;
47
+ let i = size - 1;
48
+ let p = parent(i);
49
+ while (i > 0 && compare(arr[p], arr[i]) > 0) {
50
+ swap(p, i);
51
+ i = p;
52
+ p = parent(i);
53
+ }
54
+ };
55
+ const contains = item => {
56
+ const index = arr.indexOf(item);
57
+ return index >= 0 && index < size;
58
+ };
59
+ const remove = item => {
60
+ const i = arr.indexOf(item);
61
+ if (i === -1 || i >= size) {
62
+ return;
63
+ }
64
+ arr[i] = arr[--size];
65
+ heapify(i);
66
+ };
67
+ const clear = () => {
68
+ size = 0;
69
+ };
70
+ const all = () => {
71
+ return arr.slice(0, size);
72
+ };
73
+ return {
74
+ all,
75
+ clear,
76
+ contains,
77
+ dequeue,
78
+ enqueue,
79
+ peek,
80
+ remove,
81
+ size: () => size
82
+ };
83
+ }
84
+ const left = i => {
85
+ return 2 * i + 1;
86
+ };
87
+ const right = i => {
88
+ return 2 * i + 2;
89
+ };
90
+ const parent = i => {
91
+ return Math.floor((i - 1) / 2);
92
+ };
93
+ //# sourceMappingURL=priorityQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createPriorityQueue","compare","arr","size","swap","a","b","tmp","heapify","i","smallest","l","left","r","right","dequeue","Error","res","peek","enqueue","item","p","parent","contains","index","indexOf","remove","clear","all","slice","Math","floor"],"sources":["../../src/utils/priorityQueue.ts"],"sourcesContent":["/**\n * @internal\n */\nexport type PriorityQueueCompareFn<T> = (a: T, b: T) => number;\n\n/**\n * @internal\n */\nexport interface PriorityQueue<T> {\n all: () => T[];\n clear: () => void;\n contains: (item: T) => boolean;\n dequeue: () => T;\n enqueue: (item: T) => void;\n peek: () => T | null;\n remove: (item: T) => void;\n size: () => number;\n}\n\n/**\n * @internal\n * @param compare - comparison function for items\n * @returns Priority queue implemented with a min heap\n */\nexport function createPriorityQueue<T>(compare: PriorityQueueCompareFn<T>): PriorityQueue<T> {\n const arr: T[] = [];\n let size = 0;\n\n const swap = (a: number, b: number) => {\n const tmp = arr[a];\n arr[a] = arr[b];\n arr[b] = tmp;\n };\n\n const heapify = (i: number) => {\n let smallest = i;\n const l = left(i);\n const r = right(i);\n\n if (l < size && compare(arr[l], arr[smallest]) < 0) {\n smallest = l;\n }\n\n if (r < size && compare(arr[r], arr[smallest]) < 0) {\n smallest = r;\n }\n\n if (smallest !== i) {\n swap(smallest, i);\n heapify(smallest);\n }\n };\n\n const dequeue = () => {\n if (size === 0) {\n throw new Error('Priority queue empty');\n }\n\n const res = arr[0];\n arr[0] = arr[--size];\n heapify(0);\n\n return res;\n };\n\n const peek = () => {\n if (size === 0) {\n return null;\n }\n\n return arr[0];\n };\n\n const enqueue = (item: T) => {\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\n const contains = (item: T) => {\n const index = arr.indexOf(item);\n return index >= 0 && index < size;\n };\n\n const remove = (item: T) => {\n const i = arr.indexOf(item);\n\n if (i === -1 || i >= size) {\n return;\n }\n\n arr[i] = arr[--size];\n heapify(i);\n };\n\n const clear = () => {\n size = 0;\n };\n\n const all = () => {\n return arr.slice(0, size);\n };\n\n return {\n all,\n clear,\n contains,\n dequeue,\n enqueue,\n peek,\n remove,\n size: () => size,\n };\n}\n\nconst left = (i: number) => {\n return 2 * i + 1;\n};\n\nconst right = (i: number) => {\n return 2 * i + 2;\n};\n\nconst parent = (i: number) => {\n return Math.floor((i - 1) / 2);\n};\n"],"mappings":"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"}
@@ -39,6 +39,7 @@ _export(exports, {
39
39
  isHTMLElement: ()=>_index3.isHTMLElement,
40
40
  isInteractiveHTMLElement: ()=>_index3.isInteractiveHTMLElement,
41
41
  omit: ()=>_index3.omit,
42
+ createPriorityQueue: ()=>_index3.createPriorityQueue,
42
43
  applyTriggerPropsToChildren: ()=>_index4.applyTriggerPropsToChildren,
43
44
  getTriggerChild: ()=>_index4.getTriggerChild,
44
45
  isFluentTrigger: ()=>_index4.isFluentTrigger,
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/index.js"],"sourcesContent":["export { getSlots, getSlotsNext, resolveShorthand, isResolvedShorthand, SLOT_RENDER_FUNCTION_SYMBOL } from './compose/index';\nexport { IdPrefixProvider, resetIdsForTests, useControllableState, useEventCallback, useFirstMount, useForceUpdate, useId, useIsomorphicLayoutEffect, useMergedRefs, useOnClickOutside, useOnScrollOutside, usePrevious, useScrollbarWidth, useTimeout } from './hooks/index';\nexport { canUseDOM, useIsSSR, SSRProvider } from './ssr/index';\nexport { clamp, getNativeElementProps, getPartitionedNativeProps, getRTLSafeKey, mergeCallbacks, isHTMLElement, isInteractiveHTMLElement, omit } from './utils/index';\nexport { applyTriggerPropsToChildren, getTriggerChild, isFluentTrigger } from './trigger/index';\nexport { isTouchEvent, isMouseEvent, getEventClientCoords } from './events/index';\n//# sourceMappingURL=index.js.map"],"names":["getSlots","getSlotsNext","resolveShorthand","isResolvedShorthand","SLOT_RENDER_FUNCTION_SYMBOL","IdPrefixProvider","resetIdsForTests","useControllableState","useEventCallback","useFirstMount","useForceUpdate","useId","useIsomorphicLayoutEffect","useMergedRefs","useOnClickOutside","useOnScrollOutside","usePrevious","useScrollbarWidth","useTimeout","canUseDOM","useIsSSR","SSRProvider","clamp","getNativeElementProps","getPartitionedNativeProps","getRTLSafeKey","mergeCallbacks","isHTMLElement","isInteractiveHTMLElement","omit","applyTriggerPropsToChildren","getTriggerChild","isFluentTrigger","isTouchEvent","isMouseEvent","getEventClientCoords"],"mappings":";;;;;;;;;;;IAASA,QAAQ,MAARA,eAAQ;IAAEC,YAAY,MAAZA,mBAAY;IAAEC,gBAAgB,MAAhBA,uBAAgB;IAAEC,mBAAmB,MAAnBA,0BAAmB;IAAEC,2BAA2B,MAA3BA,kCAA2B;IAC1FC,gBAAgB,MAAhBA,wBAAgB;IAAEC,gBAAgB,MAAhBA,wBAAgB;IAAEC,oBAAoB,MAApBA,4BAAoB;IAAEC,gBAAgB,MAAhBA,wBAAgB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,cAAc,MAAdA,sBAAc;IAAEC,KAAK,MAALA,aAAK;IAAEC,yBAAyB,MAAzBA,iCAAyB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,iBAAiB,MAAjBA,yBAAiB;IAAEC,kBAAkB,MAAlBA,0BAAkB;IAAEC,WAAW,MAAXA,mBAAW;IAAEC,iBAAiB,MAAjBA,yBAAiB;IAAEC,UAAU,MAAVA,kBAAU;IAC7OC,SAAS,MAATA,iBAAS;IAAEC,QAAQ,MAARA,gBAAQ;IAAEC,WAAW,MAAXA,mBAAW;IAChCC,KAAK,MAALA,aAAK;IAAEC,qBAAqB,MAArBA,6BAAqB;IAAEC,yBAAyB,MAAzBA,iCAAyB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,cAAc,MAAdA,sBAAc;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,wBAAwB,MAAxBA,gCAAwB;IAAEC,IAAI,MAAJA,YAAI;IACrIC,2BAA2B,MAA3BA,mCAA2B;IAAEC,eAAe,MAAfA,uBAAe;IAAEC,eAAe,MAAfA,uBAAe;IAC7DC,YAAY,MAAZA,oBAAY;IAAEC,YAAY,MAAZA,oBAAY;IAAEC,oBAAoB,MAApBA,4BAAoB;;uBALkD;wBACmJ;wBAC7M;wBACqG;wBACxE;wBACb;CACjE,iCAAiC"}
1
+ {"version":3,"sources":["../lib/index.js"],"sourcesContent":["export { getSlots, getSlotsNext, resolveShorthand, isResolvedShorthand, SLOT_RENDER_FUNCTION_SYMBOL } from './compose/index';\nexport { IdPrefixProvider, resetIdsForTests, useControllableState, useEventCallback, useFirstMount, useForceUpdate, useId, useIsomorphicLayoutEffect, useMergedRefs, useOnClickOutside, useOnScrollOutside, usePrevious, useScrollbarWidth, useTimeout } from './hooks/index';\nexport { canUseDOM, useIsSSR, SSRProvider } from './ssr/index';\nexport { clamp, getNativeElementProps, getPartitionedNativeProps, getRTLSafeKey, mergeCallbacks, isHTMLElement, isInteractiveHTMLElement, omit, createPriorityQueue } from './utils/index';\nexport { applyTriggerPropsToChildren, getTriggerChild, isFluentTrigger } from './trigger/index';\nexport { isTouchEvent, isMouseEvent, getEventClientCoords } from './events/index';\n//# sourceMappingURL=index.js.map"],"names":["getSlots","getSlotsNext","resolveShorthand","isResolvedShorthand","SLOT_RENDER_FUNCTION_SYMBOL","IdPrefixProvider","resetIdsForTests","useControllableState","useEventCallback","useFirstMount","useForceUpdate","useId","useIsomorphicLayoutEffect","useMergedRefs","useOnClickOutside","useOnScrollOutside","usePrevious","useScrollbarWidth","useTimeout","canUseDOM","useIsSSR","SSRProvider","clamp","getNativeElementProps","getPartitionedNativeProps","getRTLSafeKey","mergeCallbacks","isHTMLElement","isInteractiveHTMLElement","omit","createPriorityQueue","applyTriggerPropsToChildren","getTriggerChild","isFluentTrigger","isTouchEvent","isMouseEvent","getEventClientCoords"],"mappings":";;;;;;;;;;;IAASA,QAAQ,MAARA,eAAQ;IAAEC,YAAY,MAAZA,mBAAY;IAAEC,gBAAgB,MAAhBA,uBAAgB;IAAEC,mBAAmB,MAAnBA,0BAAmB;IAAEC,2BAA2B,MAA3BA,kCAA2B;IAC1FC,gBAAgB,MAAhBA,wBAAgB;IAAEC,gBAAgB,MAAhBA,wBAAgB;IAAEC,oBAAoB,MAApBA,4BAAoB;IAAEC,gBAAgB,MAAhBA,wBAAgB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,cAAc,MAAdA,sBAAc;IAAEC,KAAK,MAALA,aAAK;IAAEC,yBAAyB,MAAzBA,iCAAyB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,iBAAiB,MAAjBA,yBAAiB;IAAEC,kBAAkB,MAAlBA,0BAAkB;IAAEC,WAAW,MAAXA,mBAAW;IAAEC,iBAAiB,MAAjBA,yBAAiB;IAAEC,UAAU,MAAVA,kBAAU;IAC7OC,SAAS,MAATA,iBAAS;IAAEC,QAAQ,MAARA,gBAAQ;IAAEC,WAAW,MAAXA,mBAAW;IAChCC,KAAK,MAALA,aAAK;IAAEC,qBAAqB,MAArBA,6BAAqB;IAAEC,yBAAyB,MAAzBA,iCAAyB;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,cAAc,MAAdA,sBAAc;IAAEC,aAAa,MAAbA,qBAAa;IAAEC,wBAAwB,MAAxBA,gCAAwB;IAAEC,IAAI,MAAJA,YAAI;IAAEC,mBAAmB,MAAnBA,2BAAmB;IAC1JC,2BAA2B,MAA3BA,mCAA2B;IAAEC,eAAe,MAAfA,uBAAe;IAAEC,eAAe,MAAfA,uBAAe;IAC7DC,YAAY,MAAZA,oBAAY;IAAEC,YAAY,MAAZA,oBAAY;IAAEC,oBAAoB,MAApBA,4BAAoB;;uBALkD;wBACmJ;wBAC7M;wBAC0H;wBAC7F;wBACb;CACjE,iCAAiC"}
@@ -11,6 +11,7 @@ _exportStar(require("./omit"), exports);
11
11
  _exportStar(require("./properties"), exports);
12
12
  _exportStar(require("./isHTMLElement"), exports);
13
13
  _exportStar(require("./isInteractiveHTMLElement"), exports);
14
+ _exportStar(require("./priorityQueue"), exports);
14
15
  //# sourceMappingURL=index.js.map
15
16
 
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../lib/utils/index.js"],"sourcesContent":["export * from './clamp';\nexport * from './getNativeElementProps';\nexport * from './getRTLSafeKey';\nexport * from './mergeCallbacks';\nexport * from './omit';\nexport * from './properties';\nexport * from './isHTMLElement';\nexport * from './isInteractiveHTMLElement';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
1
+ {"version":3,"sources":["../../lib/utils/index.js"],"sourcesContent":["export * from './clamp';\nexport * from './getNativeElementProps';\nexport * from './getRTLSafeKey';\nexport * from './mergeCallbacks';\nexport * from './omit';\nexport * from './properties';\nexport * from './isHTMLElement';\nexport * from './isInteractiveHTMLElement';\nexport * from './priorityQueue';\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;oBAAc;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;oBACA;CACd,iCAAiC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @internal
3
+ */ /**
4
+ * @internal
5
+ * @param compare - comparison function for items
6
+ * @returns Priority queue implemented with a min heap
7
+ */ "use strict";
8
+ Object.defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ Object.defineProperty(exports, "createPriorityQueue", {
12
+ enumerable: true,
13
+ get: ()=>createPriorityQueue
14
+ });
15
+ function createPriorityQueue(compare) {
16
+ const arr = [];
17
+ let size = 0;
18
+ const swap = (a, b)=>{
19
+ const tmp = arr[a];
20
+ arr[a] = arr[b];
21
+ arr[b] = tmp;
22
+ };
23
+ const heapify = (i)=>{
24
+ let smallest = i;
25
+ const l = left(i);
26
+ const r = right(i);
27
+ if (l < size && compare(arr[l], arr[smallest]) < 0) {
28
+ smallest = l;
29
+ }
30
+ if (r < size && compare(arr[r], arr[smallest]) < 0) {
31
+ smallest = r;
32
+ }
33
+ if (smallest !== i) {
34
+ swap(smallest, i);
35
+ heapify(smallest);
36
+ }
37
+ };
38
+ const dequeue = ()=>{
39
+ if (size === 0) {
40
+ throw new Error('Priority queue empty');
41
+ }
42
+ const res = arr[0];
43
+ arr[0] = arr[--size];
44
+ heapify(0);
45
+ return res;
46
+ };
47
+ const peek = ()=>{
48
+ if (size === 0) {
49
+ return null;
50
+ }
51
+ return arr[0];
52
+ };
53
+ const enqueue = (item)=>{
54
+ arr[size++] = item;
55
+ let i = size - 1;
56
+ let p = parent(i);
57
+ while(i > 0 && compare(arr[p], arr[i]) > 0){
58
+ swap(p, i);
59
+ i = p;
60
+ p = parent(i);
61
+ }
62
+ };
63
+ const contains = (item)=>{
64
+ const index = arr.indexOf(item);
65
+ return index >= 0 && index < size;
66
+ };
67
+ const remove = (item)=>{
68
+ const i = arr.indexOf(item);
69
+ if (i === -1 || i >= size) {
70
+ return;
71
+ }
72
+ arr[i] = arr[--size];
73
+ heapify(i);
74
+ };
75
+ const clear = ()=>{
76
+ size = 0;
77
+ };
78
+ const all = ()=>{
79
+ return arr.slice(0, size);
80
+ };
81
+ return {
82
+ all,
83
+ clear,
84
+ contains,
85
+ dequeue,
86
+ enqueue,
87
+ peek,
88
+ remove,
89
+ size: ()=>size
90
+ };
91
+ }
92
+ const left = (i)=>{
93
+ return 2 * i + 1;
94
+ };
95
+ const right = (i)=>{
96
+ return 2 * i + 2;
97
+ };
98
+ const parent = (i)=>{
99
+ return Math.floor((i - 1) / 2);
100
+ }; //# sourceMappingURL=priorityQueue.js.map
101
+
102
+ //# sourceMappingURL=priorityQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../lib/utils/priorityQueue.js"],"sourcesContent":["/**\n * @internal\n */ /**\n * @internal\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 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}\nconst left = i => {\n return 2 * i + 1;\n};\nconst right = i => {\n return 2 * i + 2;\n};\nconst parent = i => {\n return Math.floor((i - 1) / 2);\n};\n//# sourceMappingURL=priorityQueue.js.map"],"names":["createPriorityQueue","compare","arr","size","swap","a","b","tmp","heapify","i","smallest","l","left","r","right","dequeue","Error","res","peek","enqueue","item","p","parent","contains","index","indexOf","remove","clear","all","slice","Math","floor"],"mappings":"AAAA;;CAEC,GAAG;;;;IAIA;;;;+BAAkBA;;aAAAA;;AAAT,SAASA,oBAAoBC,OAAO,EAAE;IACjD,MAAMC,MAAM,EAAE;IACd,IAAIC,OAAO;IACX,MAAMC,OAAO,CAACC,GAAGC,IAAM;QACrB,MAAMC,MAAML,GAAG,CAACG,EAAE;QAClBH,GAAG,CAACG,EAAE,GAAGH,GAAG,CAACI,EAAE;QACfJ,GAAG,CAACI,EAAE,GAAGC;IACX;IACA,MAAMC,UAAUC,CAAAA,IAAK;QACnB,IAAIC,WAAWD;QACf,MAAME,IAAIC,KAAKH;QACf,MAAMI,IAAIC,MAAML;QAChB,IAAIE,IAAIR,QAAQF,QAAQC,GAAG,CAACS,EAAE,EAAET,GAAG,CAACQ,SAAS,IAAI,GAAG;YAClDA,WAAWC;QACb,CAAC;QACD,IAAIE,IAAIV,QAAQF,QAAQC,GAAG,CAACW,EAAE,EAAEX,GAAG,CAACQ,SAAS,IAAI,GAAG;YAClDA,WAAWG;QACb,CAAC;QACD,IAAIH,aAAaD,GAAG;YAClBL,KAAKM,UAAUD;YACfD,QAAQE;QACV,CAAC;IACH;IACA,MAAMK,UAAU,IAAM;QACpB,IAAIZ,SAAS,GAAG;YACd,MAAM,IAAIa,MAAM,wBAAwB;QAC1C,CAAC;QACD,MAAMC,MAAMf,GAAG,CAAC,EAAE;QAClBA,GAAG,CAAC,EAAE,GAAGA,GAAG,CAAC,EAAEC,KAAK;QACpBK,QAAQ;QACR,OAAOS;IACT;IACA,MAAMC,OAAO,IAAM;QACjB,IAAIf,SAAS,GAAG;YACd,OAAO,IAAI;QACb,CAAC;QACD,OAAOD,GAAG,CAAC,EAAE;IACf;IACA,MAAMiB,UAAUC,CAAAA,OAAQ;QACtBlB,GAAG,CAACC,OAAO,GAAGiB;QACd,IAAIX,IAAIN,OAAO;QACf,IAAIkB,IAAIC,OAAOb;QACf,MAAOA,IAAI,KAAKR,QAAQC,GAAG,CAACmB,EAAE,EAAEnB,GAAG,CAACO,EAAE,IAAI,EAAG;YAC3CL,KAAKiB,GAAGZ;YACRA,IAAIY;YACJA,IAAIC,OAAOb;QACb;IACF;IACA,MAAMc,WAAWH,CAAAA,OAAQ;QACvB,MAAMI,QAAQtB,IAAIuB,OAAO,CAACL;QAC1B,OAAOI,SAAS,KAAKA,QAAQrB;IAC/B;IACA,MAAMuB,SAASN,CAAAA,OAAQ;QACrB,MAAMX,IAAIP,IAAIuB,OAAO,CAACL;QACtB,IAAIX,MAAM,CAAC,KAAKA,KAAKN,MAAM;YACzB;QACF,CAAC;QACDD,GAAG,CAACO,EAAE,GAAGP,GAAG,CAAC,EAAEC,KAAK;QACpBK,QAAQC;IACV;IACA,MAAMkB,QAAQ,IAAM;QAClBxB,OAAO;IACT;IACA,MAAMyB,MAAM,IAAM;QAChB,OAAO1B,IAAI2B,KAAK,CAAC,GAAG1B;IACtB;IACA,OAAO;QACLyB;QACAD;QACAJ;QACAR;QACAI;QACAD;QACAQ;QACAvB,MAAM,IAAMA;IACd;AACF;AACA,MAAMS,OAAOH,CAAAA,IAAK;IAChB,OAAO,IAAIA,IAAI;AACjB;AACA,MAAMK,QAAQL,CAAAA,IAAK;IACjB,OAAO,IAAIA,IAAI;AACjB;AACA,MAAMa,SAASb,CAAAA,IAAK;IAClB,OAAOqB,KAAKC,KAAK,CAAC,AAACtB,CAAAA,IAAI,CAAA,IAAK;AAC9B,GACA,yCAAyC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-utilities",
3
- "version": "0.0.0-nightly-20230515-0418.1",
3
+ "version": "0.0.0-nightly-20230516-0417.1",
4
4
  "description": "A set of general React-specific utilities.",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "module": "lib/index.js",
@@ -28,7 +28,7 @@
28
28
  "@fluentui/scripts-tasks": "*"
29
29
  },
30
30
  "dependencies": {
31
- "@fluentui/keyboard-keys": "0.0.0-nightly-20230515-0418.1",
31
+ "@fluentui/keyboard-keys": "0.0.0-nightly-20230516-0417.1",
32
32
  "@swc/helpers": "^0.4.14"
33
33
  },
34
34
  "peerDependencies": {