@pnp/spfx-controls-react 3.25.0 → 3.26.0-beta.3380159

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.
Files changed (88) hide show
  1. package/.nvmrc +0 -0
  2. package/CHANGELOG.json +9 -0
  3. package/CHANGELOG.md +2 -0
  4. package/jest-output/JUnit.xml +105 -85
  5. package/lib/SPFilePicker.d.ts +2 -0
  6. package/lib/SPFilePicker.d.ts.map +1 -0
  7. package/lib/SPFilePicker.js +2 -0
  8. package/lib/SPFilePicker.js.map +1 -0
  9. package/lib/common/telemetry/version.d.ts.map +1 -1
  10. package/lib/common/telemetry/version.js +1 -1
  11. package/lib/common/telemetry/version.js.map +1 -1
  12. package/lib/controls/SPFilePicker/ISPFilePicker.types.d.ts +152 -0
  13. package/lib/controls/SPFilePicker/ISPFilePicker.types.d.ts.map +1 -0
  14. package/lib/controls/SPFilePicker/ISPFilePicker.types.js +11 -0
  15. package/lib/controls/SPFilePicker/ISPFilePicker.types.js.map +1 -0
  16. package/lib/controls/SPFilePicker/ISPFilePickerProps.d.ts +80 -0
  17. package/lib/controls/SPFilePicker/ISPFilePickerProps.d.ts.map +1 -0
  18. package/lib/controls/SPFilePicker/ISPFilePickerProps.js +2 -0
  19. package/lib/controls/SPFilePicker/ISPFilePickerProps.js.map +1 -0
  20. package/lib/controls/SPFilePicker/SPFilePicker.d.ts +22 -0
  21. package/lib/controls/SPFilePicker/SPFilePicker.d.ts.map +1 -0
  22. package/lib/controls/SPFilePicker/SPFilePicker.js +83 -0
  23. package/lib/controls/SPFilePicker/SPFilePicker.js.map +1 -0
  24. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.d.ts +20 -0
  25. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.d.ts.map +1 -0
  26. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.js +27 -0
  27. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.js.map +1 -0
  28. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.test.d.ts +2 -0
  29. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.test.d.ts.map +1 -0
  30. package/lib/controls/SPFilePicker/hooks/useLogging.d.ts +28 -0
  31. package/lib/controls/SPFilePicker/hooks/useLogging.d.ts.map +1 -0
  32. package/lib/controls/SPFilePicker/hooks/useLogging.js +28 -0
  33. package/lib/controls/SPFilePicker/hooks/useLogging.js.map +1 -0
  34. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.d.ts +68 -0
  35. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.d.ts.map +1 -0
  36. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.js +356 -0
  37. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.js.map +1 -0
  38. package/lib/controls/SPFilePicker/index.d.ts +5 -0
  39. package/lib/controls/SPFilePicker/index.d.ts.map +1 -0
  40. package/lib/controls/SPFilePicker/index.js +5 -0
  41. package/lib/controls/SPFilePicker/index.js.map +1 -0
  42. package/lib/controls/SPFilePicker/useSPFilePickerStyles.d.ts +8 -0
  43. package/lib/controls/SPFilePicker/useSPFilePickerStyles.d.ts.map +1 -0
  44. package/lib/controls/SPFilePicker/useSPFilePickerStyles.js +33 -0
  45. package/lib/controls/SPFilePicker/useSPFilePickerStyles.js.map +1 -0
  46. package/lib/index.d.ts +1 -0
  47. package/lib/index.d.ts.map +1 -1
  48. package/lib/index.js +1 -0
  49. package/lib/index.js.map +1 -1
  50. package/lib/loc/en-us.js +5 -0
  51. package/lib/loc/en-us.js.map +1 -1
  52. package/lib-commonjs/SPFilePicker.js +5 -0
  53. package/lib-commonjs/SPFilePicker.js.map +1 -0
  54. package/lib-commonjs/common/telemetry/version.js +1 -1
  55. package/lib-commonjs/common/telemetry/version.js.map +1 -1
  56. package/lib-commonjs/controls/SPFilePicker/ISPFilePicker.types.js +12 -0
  57. package/lib-commonjs/controls/SPFilePicker/ISPFilePicker.types.js.map +1 -0
  58. package/lib-commonjs/controls/SPFilePicker/ISPFilePickerProps.js +3 -0
  59. package/lib-commonjs/controls/SPFilePicker/ISPFilePickerProps.js.map +1 -0
  60. package/lib-commonjs/controls/SPFilePicker/SPFilePicker.js +88 -0
  61. package/lib-commonjs/controls/SPFilePicker/SPFilePicker.js.map +1 -0
  62. package/lib-commonjs/controls/SPFilePicker/hooks/SPFilePicker.helpers.js +32 -0
  63. package/lib-commonjs/controls/SPFilePicker/hooks/SPFilePicker.helpers.js.map +1 -0
  64. package/lib-commonjs/controls/SPFilePicker/hooks/useLogging.js +31 -0
  65. package/lib-commonjs/controls/SPFilePicker/hooks/useLogging.js.map +1 -0
  66. package/lib-commonjs/controls/SPFilePicker/hooks/useSPFilePicker.js +359 -0
  67. package/lib-commonjs/controls/SPFilePicker/hooks/useSPFilePicker.js.map +1 -0
  68. package/lib-commonjs/controls/SPFilePicker/index.js +8 -0
  69. package/lib-commonjs/controls/SPFilePicker/index.js.map +1 -0
  70. package/lib-commonjs/controls/SPFilePicker/useSPFilePickerStyles.js +37 -0
  71. package/lib-commonjs/controls/SPFilePicker/useSPFilePickerStyles.js.map +1 -0
  72. package/lib-commonjs/index.js +1 -0
  73. package/lib-commonjs/index.js.map +1 -1
  74. package/lib-commonjs/loc/en-us.js +5 -0
  75. package/lib-commonjs/loc/en-us.js.map +1 -1
  76. package/lib-commonjs/webparts/controlsTest/ControlsTestWebPart.manifest.json +1 -0
  77. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js +4 -0
  78. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js.map +1 -1
  79. package/lib-commonjs/webparts/controlsTest/components/TestSPFilePickerControl.js +29 -0
  80. package/lib-commonjs/webparts/controlsTest/components/TestSPFilePickerControl.js.map +1 -0
  81. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js +1 -0
  82. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js.map +1 -1
  83. package/package.json +3 -3
  84. package/release/analysis-logs/lint.sarif +639 -584
  85. package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +5 -4
  86. package/release/manifests/57ebd944-98ed-43f9-b722-e959d6dac6ad.manifest.json +4 -4
  87. package/release/manifests/ca9eac70-7343-4972-88d6-672d50e9cf38.manifest.json +1 -1
  88. package/release/manifests/f9c6b930-8d5d-4550-bfd9-ed5f6ca443a8.manifest.json +4 -4
@@ -0,0 +1,80 @@
1
+ import type { MouseEventHandler, ReactElement } from 'react';
2
+ import type { WebPartContext } from '@microsoft/sp-webpart-base';
3
+ import type { ISPFilePickerEntry, ISPFilePickerError, ISPFilePickerItem, SPFilePickerAuthMode, SPFilePickerItemsMode, SPFilePickerSelectionMode, SPFilePickerTarget, SPFilePickerTokenResolver } from './ISPFilePicker.types';
4
+ export interface ISPFilePickerTriggerProps {
5
+ 'aria-disabled'?: boolean;
6
+ className?: string;
7
+ onClick?: MouseEventHandler<HTMLElement>;
8
+ }
9
+ /**
10
+ * Props for the ready-to-use {@link SPFilePicker} component.
11
+ *
12
+ * The component renders a trigger button that opens the SharePoint / OneDrive
13
+ * File Picker (v8) inside a modal dialog (iframe) or a popup window. For full
14
+ * control over the surface, use the {@link useSPFilePicker} hook directly.
15
+ */
16
+ export interface ISPFilePickerProps {
17
+ /**
18
+ * The SPFx web part context. Used to resolve the default `baseUrl` from
19
+ * `pageContext.web.absoluteUrl` and to acquire SharePoint access tokens via
20
+ * the `aadTokenProviderFactory` when no custom `getToken` is supplied.
21
+ */
22
+ context: WebPartContext;
23
+ /**
24
+ * SharePoint web URL used as the picker host and token resource. When omitted,
25
+ * the component falls back to `context.pageContext.web.absoluteUrl`.
26
+ */
27
+ baseUrl?: string;
28
+ /** Picker entry point. Defaults to `{ sharePoint: {} }`. */
29
+ entry?: ISPFilePickerEntry;
30
+ /** Selection mode. Defaults to `single`. */
31
+ selectionMode?: SPFilePickerSelectionMode;
32
+ /** Kind of items that can be picked. Defaults to `files`. */
33
+ itemsMode?: SPFilePickerItemsMode;
34
+ /** Allowed file extensions (without the dot), e.g. `['docx', 'pdf']`. */
35
+ fileTypes?: string[];
36
+ /** Locale / LCID for the picker UI. Defaults to `en-us`. */
37
+ locale?: string;
38
+ /**
39
+ * How the picker authenticates. Defaults to `token` (SharePoint bearer tokens
40
+ * via the SPFx `aadTokenProviderFactory` or a custom `getToken`), which is
41
+ * REQUIRED for the iframe target and is the correct mode for SPFx web parts.
42
+ * Use `cookie` only with the popup window target (`target: 'window'`).
43
+ */
44
+ authMode?: SPFilePickerAuthMode;
45
+ /** Hosting app identifier (query string `app`). Not set by default. */
46
+ app?: string;
47
+ /** Picker scenario (query string `scenario`). Not set by default. */
48
+ scenario?: string;
49
+ /** Where the picker is hosted. Defaults to `iframe` (rendered in a dialog). */
50
+ target?: SPFilePickerTarget;
51
+ /**
52
+ * Custom token resolver. When omitted, the SPFx `aadTokenProviderFactory`
53
+ * from `context` is used to acquire a token for the SharePoint resource.
54
+ */
55
+ getToken?: SPFilePickerTokenResolver;
56
+ /** Fired with the picked items when the user confirms a selection. */
57
+ onPicked: (items: ISPFilePickerItem[]) => void;
58
+ /** Fired when the picker is cancelled / closed without a selection. */
59
+ onCancel?: () => void;
60
+ /** Fired when an error occurs during the picker workflow. */
61
+ onError?: (error: ISPFilePickerError) => void;
62
+ /**
63
+ * Custom interactive trigger element. When provided it replaces the default
64
+ * button and receives an `onClick` handler that opens the picker.
65
+ */
66
+ trigger?: ReactElement<ISPFilePickerTriggerProps>;
67
+ /** Text for the default trigger button. Defaults to `Select from SharePoint`. */
68
+ buttonText?: string;
69
+ /** Accessible title applied to the picker iframe. Defaults to `Select a file`. */
70
+ dialogTitle?: string;
71
+ /** Disable the trigger. */
72
+ disabled?: boolean;
73
+ /** Dialog width in px (iframe target). Defaults to `1080`. */
74
+ dialogWidth?: number;
75
+ /** Dialog / iframe height in px (iframe target). Defaults to `680`. */
76
+ dialogHeight?: number;
77
+ /** Additional CSS class applied to the trigger element. */
78
+ className?: string;
79
+ }
80
+ //# sourceMappingURL=ISPFilePickerProps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISPFilePickerProps.d.ts","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/ISPFilePickerProps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,yBAAyB;IACxC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,OAAO,EAAE,cAAc,CAAC;IAExB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAE3B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,yBAAyB,CAAC;IAE1C,6DAA6D;IAC7D,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAEhC,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAGrC,sEAAsE;IACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAE/C,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAG9C;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC,yBAAyB,CAAC,CAAC;IAElD,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ISPFilePickerProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ISPFilePickerProps.js","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/ISPFilePickerProps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import type { ISPFilePickerProps } from './ISPFilePickerProps';
3
+ /**
4
+ * Ready-to-use SharePoint / OneDrive File Picker (SDK v8) control.
5
+ *
6
+ * Renders a trigger button that opens the Microsoft-hosted file picker inside a
7
+ * modal dialog (iframe) or a popup window, and returns the selected items via
8
+ * `onPicked`. Tokens are resolved through the SPFx `context`
9
+ * (`aadTokenProviderFactory`) or a custom `getToken`.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <SPFilePicker
14
+ * context={this.context}
15
+ * selectionMode="multiple"
16
+ * fileTypes={['docx', 'pdf']}
17
+ * onPicked={(items) => setFiles(items)}
18
+ * />
19
+ * ```
20
+ */
21
+ export declare const SPFilePicker: React.FunctionComponent<ISPFilePickerProps>;
22
+ //# sourceMappingURL=SPFilePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPFilePicker.d.ts","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/SPFilePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM/D;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,kBAAkB,CAoHpE,CAAC"}
@@ -0,0 +1,83 @@
1
+ import * as React from 'react';
2
+ import { Button, Dialog, DialogSurface, mergeClasses, Spinner, } from '@fluentui/react-components';
3
+ import { useSPFilePicker } from './hooks/useSPFilePicker';
4
+ import { useSPFilePickerStyles } from './useSPFilePickerStyles';
5
+ import * as strings from 'ControlStrings';
6
+ var DEFAULT_WIDTH = 1080;
7
+ var DEFAULT_HEIGHT = 680;
8
+ /**
9
+ * Ready-to-use SharePoint / OneDrive File Picker (SDK v8) control.
10
+ *
11
+ * Renders a trigger button that opens the Microsoft-hosted file picker inside a
12
+ * modal dialog (iframe) or a popup window, and returns the selected items via
13
+ * `onPicked`. Tokens are resolved through the SPFx `context`
14
+ * (`aadTokenProviderFactory`) or a custom `getToken`.
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * <SPFilePicker
19
+ * context={this.context}
20
+ * selectionMode="multiple"
21
+ * fileTypes={['docx', 'pdf']}
22
+ * onPicked={(items) => setFiles(items)}
23
+ * />
24
+ * ```
25
+ */
26
+ export var SPFilePicker = function (props) {
27
+ var _a;
28
+ var context = props.context, baseUrl = props.baseUrl, entry = props.entry, _b = props.selectionMode, selectionMode = _b === void 0 ? 'single' : _b, _c = props.itemsMode, itemsMode = _c === void 0 ? 'files' : _c, fileTypes = props.fileTypes, locale = props.locale, authMode = props.authMode, app = props.app, scenario = props.scenario, _d = props.target, target = _d === void 0 ? 'iframe' : _d, getToken = props.getToken, onPicked = props.onPicked, onCancel = props.onCancel, onError = props.onError, trigger = props.trigger, _e = props.buttonText, buttonText = _e === void 0 ? strings.SPFilePickerButtonText : _e, _f = props.dialogTitle, dialogTitle = _f === void 0 ? strings.SPFilePickerDialogTitle : _f, _g = props.disabled, disabled = _g === void 0 ? false : _g, _h = props.dialogWidth, dialogWidth = _h === void 0 ? DEFAULT_WIDTH : _h, _j = props.dialogHeight, dialogHeight = _j === void 0 ? DEFAULT_HEIGHT : _j, className = props.className;
29
+ var resolvedBaseUrl = (_a = baseUrl !== null && baseUrl !== void 0 ? baseUrl : context.pageContext.web.absoluteUrl) !== null && _a !== void 0 ? _a : '';
30
+ var styles = useSPFilePickerStyles(dialogHeight);
31
+ var _k = useSPFilePicker({
32
+ context: context,
33
+ baseUrl: resolvedBaseUrl,
34
+ entry: entry,
35
+ selectionMode: selectionMode,
36
+ itemsMode: itemsMode,
37
+ fileTypes: fileTypes,
38
+ locale: locale,
39
+ authMode: authMode,
40
+ app: app,
41
+ scenario: scenario,
42
+ target: target,
43
+ getToken: getToken,
44
+ onPicked: onPicked,
45
+ onCancel: onCancel,
46
+ onError: onError,
47
+ }), isOpen = _k.isOpen, isLoading = _k.isLoading, iframeRef = _k.iframeRef, open = _k.open, close = _k.close, markLoaded = _k.markLoaded;
48
+ var renderTrigger = function () {
49
+ if (trigger) {
50
+ var triggerOnClick_1 = trigger.props.onClick;
51
+ return React.cloneElement(trigger, {
52
+ 'aria-disabled': disabled || undefined,
53
+ className: mergeClasses(trigger.props.className, className),
54
+ onClick: function (event) {
55
+ if (disabled) {
56
+ event.preventDefault();
57
+ return;
58
+ }
59
+ triggerOnClick_1 === null || triggerOnClick_1 === void 0 ? void 0 : triggerOnClick_1(event);
60
+ if (!event.defaultPrevented) {
61
+ open();
62
+ }
63
+ },
64
+ });
65
+ }
66
+ return (React.createElement(Button, { className: className, appearance: "primary", disabled: disabled || !resolvedBaseUrl, onClick: open }, buttonText));
67
+ };
68
+ return (React.createElement(React.Fragment, null,
69
+ renderTrigger(),
70
+ target === 'iframe' && (React.createElement(Dialog, { open: isOpen, modalType: "modal", onOpenChange: function (_event, data) {
71
+ if (!data.open) {
72
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
73
+ close();
74
+ }
75
+ } },
76
+ React.createElement(DialogSurface, { className: styles.dialogSurface, style: { maxWidth: dialogWidth, width: dialogWidth } },
77
+ React.createElement("div", { className: styles.iframeWrapper },
78
+ isLoading && (React.createElement("div", { className: styles.spinnerOverlay },
79
+ React.createElement(Spinner, { size: "large" }))),
80
+ React.createElement("iframe", { ref: iframeRef, className: styles.iframe, title: dialogTitle, onLoad: markLoaded })))))));
81
+ };
82
+ SPFilePicker.displayName = 'SPFilePicker';
83
+ //# sourceMappingURL=SPFilePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPFilePicker.js","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/SPFilePicker.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ISPFilePickerEntry, ISPFilePickerRawConfiguration, SPFilePickerAuthMode, SPFilePickerItemsMode, SPFilePickerSelectionMode } from '../ISPFilePicker.types';
2
+ export interface IBuildSPFilePickerConfigurationOptions {
3
+ channelId: string;
4
+ parentOrigin: string;
5
+ entry?: ISPFilePickerEntry;
6
+ selectionMode: SPFilePickerSelectionMode;
7
+ itemsMode: SPFilePickerItemsMode;
8
+ fileTypes?: string[];
9
+ authMode: SPFilePickerAuthMode;
10
+ raw?: Partial<ISPFilePickerRawConfiguration>;
11
+ }
12
+ export interface ISPFilePickerInitializeEvent {
13
+ data: unknown;
14
+ origin: string;
15
+ source: MessageEvent['source'];
16
+ }
17
+ export declare function buildSPFilePickerConfiguration(options: IBuildSPFilePickerConfigurationOptions): ISPFilePickerRawConfiguration;
18
+ export declare function isExpectedPickerInitializeEvent(event: ISPFilePickerInitializeEvent, pickerWindow: Window, channelId: string, expectedOrigin: string): boolean;
19
+ export declare function requireAccessToken(accessToken: string, errorMessage: string): string;
20
+ //# sourceMappingURL=SPFilePicker.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPFilePicker.helpers.d.ts","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/SPFilePicker.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,sCAAsC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,aAAa,EAAE,yBAAyB,CAAC;IACzC,SAAS,EAAE,qBAAqB,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CAChC;AAQD,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,sCAAsC,GAC9C,6BAA6B,CA6B/B;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,4BAA4B,EACnC,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,GACrB,OAAO,CAWT;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpF"}
@@ -0,0 +1,27 @@
1
+ import { __assign } from "tslib";
2
+ var SDK_VERSION = '8.0';
3
+ function isInitializeMessageData(value) {
4
+ return typeof value === 'object' && value !== null;
5
+ }
6
+ export function buildSPFilePickerConfiguration(options) {
7
+ var channelId = options.channelId, parentOrigin = options.parentOrigin, entry = options.entry, selectionMode = options.selectionMode, itemsMode = options.itemsMode, fileTypes = options.fileTypes, authMode = options.authMode, raw = options.raw;
8
+ var useCookies = authMode === 'cookie';
9
+ var configuration = __assign(__assign({ sdk: SDK_VERSION, entry: entry !== null && entry !== void 0 ? entry : { sharePoint: {} } }, (useCookies ? {} : { authentication: {} })), { messaging: __assign({ origin: parentOrigin, channelId: channelId }, (useCookies ? { identifyParent: true } : {})), selection: { mode: selectionMode }, typesAndSources: __assign({ mode: itemsMode }, (fileTypes && fileTypes.length > 0 ? { filters: fileTypes } : {})) });
10
+ return Object.assign(configuration, raw !== null && raw !== void 0 ? raw : {});
11
+ }
12
+ export function isExpectedPickerInitializeEvent(event, pickerWindow, channelId, expectedOrigin) {
13
+ if (!isInitializeMessageData(event.data)) {
14
+ return false;
15
+ }
16
+ return (event.origin === expectedOrigin &&
17
+ event.source === pickerWindow &&
18
+ event.data.type === 'initialize' &&
19
+ event.data.channelId === channelId);
20
+ }
21
+ export function requireAccessToken(accessToken, errorMessage) {
22
+ if (!accessToken) {
23
+ throw new Error(errorMessage);
24
+ }
25
+ return accessToken;
26
+ }
27
+ //# sourceMappingURL=SPFilePicker.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPFilePicker.helpers.js","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/SPFilePicker.helpers.ts"],"names":[],"mappings":";AAQA,IAAM,WAAW,GAAG,KAAK,CAAC;AAmB1B,SAAS,uBAAuB,CAC9B,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,OAA+C;IAG7C,IAAA,SAAS,GAQP,OAAO,UARA,EACT,YAAY,GAOV,OAAO,aAPG,EACZ,KAAK,GAMH,OAAO,MANJ,EACL,aAAa,GAKX,OAAO,cALI,EACb,SAAS,GAIP,OAAO,UAJA,EACT,SAAS,GAGP,OAAO,UAHA,EACT,QAAQ,GAEN,OAAO,SAFD,EACR,GAAG,GACD,OAAO,IADN,CACO;IACZ,IAAM,UAAU,GAAG,QAAQ,KAAK,QAAQ,CAAC;IACzC,IAAM,aAAa,uBACjB,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAC/B,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,KAC7C,SAAS,aACP,MAAM,EAAE,YAAY,EACpB,SAAS,WAAA,IACN,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAEjD,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAClC,eAAe,aACb,IAAI,EAAE,SAAS,IACZ,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAEvE,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAmC,EACnC,YAAoB,EACpB,SAAiB,EACjB,cAAsB;IAEtB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CACL,KAAK,CAAC,MAAM,KAAK,cAAc;QAC/B,KAAK,CAAC,MAAM,KAAK,YAAY;QAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;QAChC,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,WAAmB,EAAE,YAAoB;IAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SPFilePicker.helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SPFilePicker.helpers.test.d.ts","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/SPFilePicker.helpers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Return value of {@link useLogging}.
3
+ */
4
+ export interface IUseLoggingReturn {
5
+ /** Logs an informational message. */
6
+ info: (message: string) => void;
7
+ /** Logs a warning message. */
8
+ warn: (message: string) => void;
9
+ /** Logs an error (string message or `Error`). */
10
+ error: (message: string | Error) => void;
11
+ /** Logs a verbose/debug message. */
12
+ verbose: (message: string) => void;
13
+ }
14
+ /**
15
+ * Thin logging hook built on the SPFx {@link Log} API. It provides a stable,
16
+ * memoized logger scoped to a source name, with no external dependencies.
17
+ *
18
+ * @param source - Log source shown in the SPFx diagnostics. Defaults to `SPFilePicker`.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const { info, error } = useLogging();
23
+ * info('picker launched');
24
+ * error(new Error('token failed'));
25
+ * ```
26
+ */
27
+ export declare function useLogging(source?: string): IUseLoggingReturn;
28
+ //# sourceMappingURL=useLogging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogging.d.ts","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/useLogging.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,8BAA8B;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhC,iDAAiD;IACjD,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC;IAEzC,oCAAoC;IACpC,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAuB,GAAG,iBAAiB,CAW7E"}
@@ -0,0 +1,28 @@
1
+ import { useMemo } from 'react';
2
+ import { Log } from '@microsoft/sp-core-library';
3
+ var DEFAULT_SOURCE = 'SPFilePicker';
4
+ /**
5
+ * Thin logging hook built on the SPFx {@link Log} API. It provides a stable,
6
+ * memoized logger scoped to a source name, with no external dependencies.
7
+ *
8
+ * @param source - Log source shown in the SPFx diagnostics. Defaults to `SPFilePicker`.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const { info, error } = useLogging();
13
+ * info('picker launched');
14
+ * error(new Error('token failed'));
15
+ * ```
16
+ */
17
+ export function useLogging(source) {
18
+ if (source === void 0) { source = DEFAULT_SOURCE; }
19
+ return useMemo(function () { return ({
20
+ info: function (message) { return Log.info(source, message); },
21
+ warn: function (message) { return Log.warn(source, message); },
22
+ error: function (message) {
23
+ return Log.error(source, message instanceof Error ? message : new Error(message));
24
+ },
25
+ verbose: function (message) { return Log.verbose(source, message); },
26
+ }); }, [source]);
27
+ }
28
+ //# sourceMappingURL=useLogging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogging.js","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/useLogging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AAEjD,IAAM,cAAc,GAAG,cAAc,CAAC;AAmBtC;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,UAAU,CAAC,MAA+B;IAA/B,uBAAA,EAAA,uBAA+B;IACxD,OAAO,OAAO,CACZ,cAAM,OAAA,CAAC;QACL,IAAI,EAAE,UAAC,OAAe,IAAK,OAAA,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAzB,CAAyB;QACpD,IAAI,EAAE,UAAC,OAAe,IAAK,OAAA,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAzB,CAAyB;QACpD,KAAK,EAAE,UAAC,OAAuB;YAC7B,OAAA,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAA1E,CAA0E;QAC5E,OAAO,EAAE,UAAC,OAAe,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAA5B,CAA4B;KAC3D,CAAC,EANI,CAMJ,EACF,CAAC,MAAM,CAAC,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,68 @@
1
+ import type { WebPartContext } from '@microsoft/sp-webpart-base';
2
+ import type { ISPFilePickerConfig, ISPFilePickerError, ISPFilePickerItem, SPFilePickerTarget, SPFilePickerTokenResolver } from '../ISPFilePicker.types';
3
+ /**
4
+ * Options accepted by {@link useSPFilePicker}.
5
+ */
6
+ export interface IUseSPFilePickerOptions extends ISPFilePickerConfig {
7
+ /** The SPFx web part context used for token acquisition. */
8
+ context: WebPartContext;
9
+ /** Where the picker is hosted. Defaults to `iframe`. */
10
+ target?: SPFilePickerTarget;
11
+ /**
12
+ * Optional custom token resolver. When omitted, the hook uses the SPFx
13
+ * `aadTokenProviderFactory` from `context` to acquire a token for the
14
+ * SharePoint host origin.
15
+ */
16
+ getToken?: SPFilePickerTokenResolver;
17
+ /** Fired with the picked items when the user confirms a selection. */
18
+ onPicked?: (items: ISPFilePickerItem[]) => void;
19
+ /** Fired when the picker is cancelled / closed without a selection. */
20
+ onCancel?: () => void;
21
+ /** Fired when an error occurs during the picker workflow. */
22
+ onError?: (error: ISPFilePickerError) => void;
23
+ }
24
+ /**
25
+ * Return value of {@link useSPFilePicker}.
26
+ */
27
+ export interface IUseSPFilePickerReturn {
28
+ /** Whether the picker surface is currently open. */
29
+ isOpen: boolean;
30
+ /** Whether the picker is currently being launched / loading. */
31
+ isLoading: boolean;
32
+ /** The last error, if any. */
33
+ error: ISPFilePickerError | undefined;
34
+ /**
35
+ * Ref to attach to the hosting `<iframe>` element when `target === 'iframe'`.
36
+ * The consumer must render the iframe (e.g. inside a dialog) while `isOpen`.
37
+ */
38
+ iframeRef: React.RefObject<HTMLIFrameElement>;
39
+ /** Opens the picker. */
40
+ open: () => void;
41
+ /** Closes the picker and tears down messaging. */
42
+ close: () => void;
43
+ /**
44
+ * Clears the loading state. Attach to the hosting `<iframe onLoad>` so the
45
+ * loading overlay is removed once the picker page has loaded.
46
+ */
47
+ markLoaded: () => void;
48
+ }
49
+ /**
50
+ * Reusable engine hook that drives the SharePoint / OneDrive File Picker (v8).
51
+ *
52
+ * It encapsulates the full workflow — building the configuration, POSTing the
53
+ * form into the iframe (or popup), establishing the `MessageChannel`, and
54
+ * responding to the `authenticate`, `pick` and `close` commands — so any
55
+ * control can offer a SharePoint file picker with just a few lines.
56
+ *
57
+ * @example
58
+ * ```tsx
59
+ * const { isOpen, open, close, iframeRef } = useSPFilePicker({
60
+ * baseUrl: context.pageContext.web.absoluteUrl,
61
+ * selectionMode: 'multiple',
62
+ * fileTypes: ['docx', 'pdf'],
63
+ * onPicked: (items) => console.info(items),
64
+ * });
65
+ * ```
66
+ */
67
+ export declare function useSPFilePicker(options: IUseSPFilePickerOptions): IUseSPFilePickerReturn;
68
+ //# sourceMappingURL=useSPFilePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSPFilePicker.d.ts","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/useSPFilePicker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAShC;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,mBAAmB;IAClE,4DAA4D;IAC5D,OAAO,EAAE,cAAc,CAAC;IAExB,wDAAwD;IACxD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IAErC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IAEhD,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAEtB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAEhB,gEAAgE;IAChE,SAAS,EAAE,OAAO,CAAC;IAEnB,8BAA8B;IAC9B,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAEtC;;;OAGG;IACH,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE9C,wBAAwB;IACxB,IAAI,EAAE,MAAM,IAAI,CAAC;IAEjB,kDAAkD;IAClD,KAAK,EAAE,MAAM,IAAI,CAAC;IAElB;;;OAGG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAoBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,sBAAsB,CAiWxF"}