@pnp/spfx-controls-react 3.25.0-beta.2845356 → 3.25.0-beta.3152906

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 (81) hide show
  1. package/jest-output/JUnit.xml +103 -83
  2. package/lib/SPFilePicker.d.ts +2 -0
  3. package/lib/SPFilePicker.d.ts.map +1 -0
  4. package/lib/SPFilePicker.js +2 -0
  5. package/lib/SPFilePicker.js.map +1 -0
  6. package/lib/common/telemetry/version.js +1 -1
  7. package/lib/controls/SPFilePicker/ISPFilePicker.types.d.ts +152 -0
  8. package/lib/controls/SPFilePicker/ISPFilePicker.types.d.ts.map +1 -0
  9. package/lib/controls/SPFilePicker/ISPFilePicker.types.js +11 -0
  10. package/lib/controls/SPFilePicker/ISPFilePicker.types.js.map +1 -0
  11. package/lib/controls/SPFilePicker/ISPFilePickerProps.d.ts +80 -0
  12. package/lib/controls/SPFilePicker/ISPFilePickerProps.d.ts.map +1 -0
  13. package/lib/controls/SPFilePicker/ISPFilePickerProps.js +2 -0
  14. package/lib/controls/SPFilePicker/ISPFilePickerProps.js.map +1 -0
  15. package/lib/controls/SPFilePicker/SPFilePicker.d.ts +22 -0
  16. package/lib/controls/SPFilePicker/SPFilePicker.d.ts.map +1 -0
  17. package/lib/controls/SPFilePicker/SPFilePicker.js +83 -0
  18. package/lib/controls/SPFilePicker/SPFilePicker.js.map +1 -0
  19. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.d.ts +20 -0
  20. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.d.ts.map +1 -0
  21. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.js +27 -0
  22. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.js.map +1 -0
  23. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.test.d.ts +2 -0
  24. package/lib/controls/SPFilePicker/hooks/SPFilePicker.helpers.test.d.ts.map +1 -0
  25. package/lib/controls/SPFilePicker/hooks/useLogging.d.ts +28 -0
  26. package/lib/controls/SPFilePicker/hooks/useLogging.d.ts.map +1 -0
  27. package/lib/controls/SPFilePicker/hooks/useLogging.js +28 -0
  28. package/lib/controls/SPFilePicker/hooks/useLogging.js.map +1 -0
  29. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.d.ts +68 -0
  30. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.d.ts.map +1 -0
  31. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.js +356 -0
  32. package/lib/controls/SPFilePicker/hooks/useSPFilePicker.js.map +1 -0
  33. package/lib/controls/SPFilePicker/index.d.ts +5 -0
  34. package/lib/controls/SPFilePicker/index.d.ts.map +1 -0
  35. package/lib/controls/SPFilePicker/index.js +5 -0
  36. package/lib/controls/SPFilePicker/index.js.map +1 -0
  37. package/lib/controls/SPFilePicker/useSPFilePickerStyles.d.ts +8 -0
  38. package/lib/controls/SPFilePicker/useSPFilePickerStyles.d.ts.map +1 -0
  39. package/lib/controls/SPFilePicker/useSPFilePickerStyles.js +33 -0
  40. package/lib/controls/SPFilePicker/useSPFilePickerStyles.js.map +1 -0
  41. package/lib/index.d.ts +1 -0
  42. package/lib/index.d.ts.map +1 -1
  43. package/lib/index.js +1 -0
  44. package/lib/index.js.map +1 -1
  45. package/lib/loc/en-us.js +5 -0
  46. package/lib/loc/en-us.js.map +1 -1
  47. package/lib-commonjs/SPFilePicker.js +5 -0
  48. package/lib-commonjs/SPFilePicker.js.map +1 -0
  49. package/lib-commonjs/common/telemetry/version.js +1 -1
  50. package/lib-commonjs/controls/SPFilePicker/ISPFilePicker.types.js +12 -0
  51. package/lib-commonjs/controls/SPFilePicker/ISPFilePicker.types.js.map +1 -0
  52. package/lib-commonjs/controls/SPFilePicker/ISPFilePickerProps.js +3 -0
  53. package/lib-commonjs/controls/SPFilePicker/ISPFilePickerProps.js.map +1 -0
  54. package/lib-commonjs/controls/SPFilePicker/SPFilePicker.js +88 -0
  55. package/lib-commonjs/controls/SPFilePicker/SPFilePicker.js.map +1 -0
  56. package/lib-commonjs/controls/SPFilePicker/hooks/SPFilePicker.helpers.js +32 -0
  57. package/lib-commonjs/controls/SPFilePicker/hooks/SPFilePicker.helpers.js.map +1 -0
  58. package/lib-commonjs/controls/SPFilePicker/hooks/useLogging.js +31 -0
  59. package/lib-commonjs/controls/SPFilePicker/hooks/useLogging.js.map +1 -0
  60. package/lib-commonjs/controls/SPFilePicker/hooks/useSPFilePicker.js +359 -0
  61. package/lib-commonjs/controls/SPFilePicker/hooks/useSPFilePicker.js.map +1 -0
  62. package/lib-commonjs/controls/SPFilePicker/index.js +8 -0
  63. package/lib-commonjs/controls/SPFilePicker/index.js.map +1 -0
  64. package/lib-commonjs/controls/SPFilePicker/useSPFilePickerStyles.js +37 -0
  65. package/lib-commonjs/controls/SPFilePicker/useSPFilePickerStyles.js.map +1 -0
  66. package/lib-commonjs/index.js +1 -0
  67. package/lib-commonjs/index.js.map +1 -1
  68. package/lib-commonjs/loc/en-us.js +5 -0
  69. package/lib-commonjs/loc/en-us.js.map +1 -1
  70. package/lib-commonjs/webparts/controlsTest/ControlsTestWebPart.manifest.json +1 -0
  71. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js +4 -0
  72. package/lib-commonjs/webparts/controlsTest/components/ControlsTest.js.map +1 -1
  73. package/lib-commonjs/webparts/controlsTest/components/TestSPFilePickerControl.js +29 -0
  74. package/lib-commonjs/webparts/controlsTest/components/TestSPFilePickerControl.js.map +1 -0
  75. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js +1 -0
  76. package/lib-commonjs/webparts/controlsTest/propertyPane/controls/ControlToggles.js.map +1 -1
  77. package/package.json +1 -1
  78. package/release/analysis-logs/lint.sarif +639 -584
  79. package/release/manifests/45165954-80f9-44c1-9967-cd38ae92a33b.manifest.json +4 -3
  80. package/release/manifests/57ebd944-98ed-43f9-b722-e959d6dac6ad.manifest.json +3 -3
  81. package/release/manifests/f9c6b930-8d5d-4550-bfd9-ed5f6ca443a8.manifest.json +3 -3
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SPFilePicker = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var React = tslib_1.__importStar(require("react"));
6
+ var react_components_1 = require("@fluentui/react-components");
7
+ var useSPFilePicker_1 = require("./hooks/useSPFilePicker");
8
+ var useSPFilePickerStyles_1 = require("./useSPFilePickerStyles");
9
+ var strings = tslib_1.__importStar(require("ControlStrings"));
10
+ var DEFAULT_WIDTH = 1080;
11
+ var DEFAULT_HEIGHT = 680;
12
+ /**
13
+ * Ready-to-use SharePoint / OneDrive File Picker (SDK v8) control.
14
+ *
15
+ * Renders a trigger button that opens the Microsoft-hosted file picker inside a
16
+ * modal dialog (iframe) or a popup window, and returns the selected items via
17
+ * `onPicked`. Tokens are resolved through the SPFx `context`
18
+ * (`aadTokenProviderFactory`) or a custom `getToken`.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <SPFilePicker
23
+ * context={this.context}
24
+ * selectionMode="multiple"
25
+ * fileTypes={['docx', 'pdf']}
26
+ * onPicked={(items) => setFiles(items)}
27
+ * />
28
+ * ```
29
+ */
30
+ var SPFilePicker = function (props) {
31
+ var _a;
32
+ 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;
33
+ var resolvedBaseUrl = (_a = baseUrl !== null && baseUrl !== void 0 ? baseUrl : context.pageContext.web.absoluteUrl) !== null && _a !== void 0 ? _a : '';
34
+ var styles = (0, useSPFilePickerStyles_1.useSPFilePickerStyles)(dialogHeight);
35
+ var _k = (0, useSPFilePicker_1.useSPFilePicker)({
36
+ context: context,
37
+ baseUrl: resolvedBaseUrl,
38
+ entry: entry,
39
+ selectionMode: selectionMode,
40
+ itemsMode: itemsMode,
41
+ fileTypes: fileTypes,
42
+ locale: locale,
43
+ authMode: authMode,
44
+ app: app,
45
+ scenario: scenario,
46
+ target: target,
47
+ getToken: getToken,
48
+ onPicked: onPicked,
49
+ onCancel: onCancel,
50
+ onError: onError,
51
+ }), isOpen = _k.isOpen, isLoading = _k.isLoading, iframeRef = _k.iframeRef, open = _k.open, close = _k.close, markLoaded = _k.markLoaded;
52
+ var renderTrigger = function () {
53
+ if (trigger) {
54
+ var triggerOnClick_1 = trigger.props.onClick;
55
+ return React.cloneElement(trigger, {
56
+ 'aria-disabled': disabled || undefined,
57
+ className: (0, react_components_1.mergeClasses)(trigger.props.className, className),
58
+ onClick: function (event) {
59
+ if (disabled) {
60
+ event.preventDefault();
61
+ return;
62
+ }
63
+ triggerOnClick_1 === null || triggerOnClick_1 === void 0 ? void 0 : triggerOnClick_1(event);
64
+ if (!event.defaultPrevented) {
65
+ open();
66
+ }
67
+ },
68
+ });
69
+ }
70
+ return (React.createElement(react_components_1.Button, { className: className, appearance: "primary", disabled: disabled || !resolvedBaseUrl, onClick: open }, buttonText));
71
+ };
72
+ return (React.createElement(React.Fragment, null,
73
+ renderTrigger(),
74
+ target === 'iframe' && (React.createElement(react_components_1.Dialog, { open: isOpen, modalType: "modal", onOpenChange: function (_event, data) {
75
+ if (!data.open) {
76
+ onCancel === null || onCancel === void 0 ? void 0 : onCancel();
77
+ close();
78
+ }
79
+ } },
80
+ React.createElement(react_components_1.DialogSurface, { className: styles.dialogSurface, style: { maxWidth: dialogWidth, width: dialogWidth } },
81
+ React.createElement("div", { className: styles.iframeWrapper },
82
+ isLoading && (React.createElement("div", { className: styles.spinnerOverlay },
83
+ React.createElement(react_components_1.Spinner, { size: "large" }))),
84
+ React.createElement("iframe", { ref: iframeRef, className: styles.iframe, title: dialogTitle, onLoad: markLoaded })))))));
85
+ };
86
+ exports.SPFilePicker = SPFilePicker;
87
+ exports.SPFilePicker.displayName = 'SPFilePicker';
88
+ //# 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,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildSPFilePickerConfiguration = buildSPFilePickerConfiguration;
4
+ exports.isExpectedPickerInitializeEvent = isExpectedPickerInitializeEvent;
5
+ exports.requireAccessToken = requireAccessToken;
6
+ var tslib_1 = require("tslib");
7
+ var SDK_VERSION = '8.0';
8
+ function isInitializeMessageData(value) {
9
+ return typeof value === 'object' && value !== null;
10
+ }
11
+ function buildSPFilePickerConfiguration(options) {
12
+ 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;
13
+ var useCookies = authMode === 'cookie';
14
+ var configuration = tslib_1.__assign(tslib_1.__assign({ sdk: SDK_VERSION, entry: entry !== null && entry !== void 0 ? entry : { sharePoint: {} } }, (useCookies ? {} : { authentication: {} })), { messaging: tslib_1.__assign({ origin: parentOrigin, channelId: channelId }, (useCookies ? { identifyParent: true } : {})), selection: { mode: selectionMode }, typesAndSources: tslib_1.__assign({ mode: itemsMode }, (fileTypes && fileTypes.length > 0 ? { filters: fileTypes } : {})) });
15
+ return Object.assign(configuration, raw !== null && raw !== void 0 ? raw : {});
16
+ }
17
+ function isExpectedPickerInitializeEvent(event, pickerWindow, channelId, expectedOrigin) {
18
+ if (!isInitializeMessageData(event.data)) {
19
+ return false;
20
+ }
21
+ return (event.origin === expectedOrigin &&
22
+ event.source === pickerWindow &&
23
+ event.data.type === 'initialize' &&
24
+ event.data.channelId === channelId);
25
+ }
26
+ function requireAccessToken(accessToken, errorMessage) {
27
+ if (!accessToken) {
28
+ throw new Error(errorMessage);
29
+ }
30
+ return accessToken;
31
+ }
32
+ //# 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":";;AAiCA,wEA+BC;AAED,0EAgBC;AAED,gDAMC;;AAlFD,IAAM,WAAW,GAAG,KAAK,CAAC;AAmB1B,SAAS,uBAAuB,CAC9B,KAAc;IAEd,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,SAAgB,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,uCACjB,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,qBACP,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,qBACb,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,SAAgB,+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,SAAgB,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,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useLogging = useLogging;
4
+ var react_1 = require("react");
5
+ var sp_core_library_1 = require("@microsoft/sp-core-library");
6
+ var DEFAULT_SOURCE = 'SPFilePicker';
7
+ /**
8
+ * Thin logging hook built on the SPFx {@link Log} API. It provides a stable,
9
+ * memoized logger scoped to a source name, with no external dependencies.
10
+ *
11
+ * @param source - Log source shown in the SPFx diagnostics. Defaults to `SPFilePicker`.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const { info, error } = useLogging();
16
+ * info('picker launched');
17
+ * error(new Error('token failed'));
18
+ * ```
19
+ */
20
+ function useLogging(source) {
21
+ if (source === void 0) { source = DEFAULT_SOURCE; }
22
+ return (0, react_1.useMemo)(function () { return ({
23
+ info: function (message) { return sp_core_library_1.Log.info(source, message); },
24
+ warn: function (message) { return sp_core_library_1.Log.warn(source, message); },
25
+ error: function (message) {
26
+ return sp_core_library_1.Log.error(source, message instanceof Error ? message : new Error(message));
27
+ },
28
+ verbose: function (message) { return sp_core_library_1.Log.verbose(source, message); },
29
+ }); }, [source]);
30
+ }
31
+ //# sourceMappingURL=useLogging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLogging.js","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/useLogging.ts"],"names":[],"mappings":";;AAmCA,gCAWC;AA9CD,+BAAgC;AAChC,8DAAiD;AAEjD,IAAM,cAAc,GAAG,cAAc,CAAC;AAmBtC;;;;;;;;;;;;GAYG;AACH,SAAgB,UAAU,CAAC,MAA+B;IAA/B,uBAAA,EAAA,uBAA+B;IACxD,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CAAC;QACL,IAAI,EAAE,UAAC,OAAe,IAAK,OAAA,qBAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAzB,CAAyB;QACpD,IAAI,EAAE,UAAC,OAAe,IAAK,OAAA,qBAAG,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAzB,CAAyB;QACpD,KAAK,EAAE,UAAC,OAAuB;YAC7B,OAAA,qBAAG,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,qBAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAA5B,CAA4B;KAC3D,CAAC,EANI,CAMJ,EACF,CAAC,MAAM,CAAC,CACT,CAAC;AACJ,CAAC"}
@@ -0,0 +1,359 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSPFilePicker = useSPFilePicker;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var useLogging_1 = require("./useLogging");
7
+ var SPFilePicker_helpers_1 = require("./SPFilePicker.helpers");
8
+ var strings = tslib_1.__importStar(require("ControlStrings"));
9
+ /** Small RFC-4122-ish unique id used for the picker channel. */
10
+ function createChannelId() {
11
+ var cryptoObj = typeof globalThis !== 'undefined' ? globalThis.crypto : undefined;
12
+ if (cryptoObj === null || cryptoObj === void 0 ? void 0 : cryptoObj.randomUUID) {
13
+ return cryptoObj.randomUUID();
14
+ }
15
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
16
+ var r = (Math.random() * 16) | 0;
17
+ var v = c === 'x' ? r : (r & 0x3) | 0x8;
18
+ return v.toString(16);
19
+ });
20
+ }
21
+ /** Removes any trailing slash so the resource can be combined with `.default`. */
22
+ function trimTrailingSlash(value) {
23
+ return value.replace(/\/+$/, '');
24
+ }
25
+ /**
26
+ * Reusable engine hook that drives the SharePoint / OneDrive File Picker (v8).
27
+ *
28
+ * It encapsulates the full workflow — building the configuration, POSTing the
29
+ * form into the iframe (or popup), establishing the `MessageChannel`, and
30
+ * responding to the `authenticate`, `pick` and `close` commands — so any
31
+ * control can offer a SharePoint file picker with just a few lines.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * const { isOpen, open, close, iframeRef } = useSPFilePicker({
36
+ * baseUrl: context.pageContext.web.absoluteUrl,
37
+ * selectionMode: 'multiple',
38
+ * fileTypes: ['docx', 'pdf'],
39
+ * onPicked: (items) => console.info(items),
40
+ * });
41
+ * ```
42
+ */
43
+ function useSPFilePicker(options) {
44
+ var _this = this;
45
+ var context = options.context, baseUrl = options.baseUrl, entry = options.entry, _a = options.selectionMode, selectionMode = _a === void 0 ? 'single' : _a, _b = options.itemsMode, itemsMode = _b === void 0 ? 'files' : _b, fileTypes = options.fileTypes, _c = options.locale, locale = _c === void 0 ? 'en-us' : _c, _d = options.authMode, authMode = _d === void 0 ? 'token' : _d, app = options.app, scenario = options.scenario, raw = options.raw, _e = options.target, target = _e === void 0 ? 'iframe' : _e, getToken = options.getToken, onPicked = options.onPicked, onCancel = options.onCancel, onError = options.onError;
46
+ var _f = (0, react_1.useState)(false), isOpen = _f[0], setIsOpen = _f[1];
47
+ var _g = (0, react_1.useState)(false), isLoading = _g[0], setIsLoading = _g[1];
48
+ var _h = (0, react_1.useState)(undefined), error = _h[0], setError = _h[1];
49
+ var _j = (0, useLogging_1.useLogging)(), logError = _j.error, info = _j.info;
50
+ var iframeRef = (0, react_1.useRef)(null);
51
+ // Mutable refs so the message listeners always see the latest values.
52
+ var portRef = (0, react_1.useRef)(undefined);
53
+ var popupRef = (0, react_1.useRef)(null);
54
+ var channelIdRef = (0, react_1.useRef)('');
55
+ var windowListenerRef = (0, react_1.useRef)(undefined);
56
+ // Keep the callbacks in refs so the messaging handlers are stable.
57
+ var callbacksRef = (0, react_1.useRef)({ onPicked: onPicked, onCancel: onCancel, onError: onError, getToken: getToken });
58
+ callbacksRef.current = { onPicked: onPicked, onCancel: onCancel, onError: onError, getToken: getToken };
59
+ var raiseError = (0, react_1.useCallback)(function (code, message) {
60
+ var _a, _b;
61
+ var err = { code: code, message: message };
62
+ setError(err);
63
+ logError("".concat(code, ": ").concat(message));
64
+ (_b = (_a = callbacksRef.current).onError) === null || _b === void 0 ? void 0 : _b.call(_a, err);
65
+ }, [logError]);
66
+ /** Resolves a SharePoint token for the requested resource. */
67
+ var resolveToken = (0, react_1.useCallback)(function (resource) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
68
+ var custom, origin, tokenProvider;
69
+ return tslib_1.__generator(this, function (_a) {
70
+ switch (_a.label) {
71
+ case 0:
72
+ custom = callbacksRef.current.getToken;
73
+ if (custom) {
74
+ return [2 /*return*/, custom(resource)];
75
+ }
76
+ origin = trimTrailingSlash(resource);
77
+ try {
78
+ origin = new URL(resource).origin;
79
+ }
80
+ catch (_b) {
81
+ /* keep the trimmed value */
82
+ }
83
+ return [4 /*yield*/, context.aadTokenProviderFactory.getTokenProvider()];
84
+ case 1:
85
+ tokenProvider = _a.sent();
86
+ return [2 /*return*/, tokenProvider.getToken(origin)];
87
+ }
88
+ });
89
+ }); }, [context]);
90
+ /** Builds the v8 picker configuration object. */
91
+ var buildConfiguration = (0, react_1.useCallback)(function (channelId) {
92
+ return (0, SPFilePicker_helpers_1.buildSPFilePickerConfiguration)({
93
+ channelId: channelId,
94
+ parentOrigin: window.location.origin,
95
+ entry: entry,
96
+ selectionMode: selectionMode,
97
+ itemsMode: itemsMode,
98
+ fileTypes: fileTypes,
99
+ authMode: authMode,
100
+ raw: raw,
101
+ });
102
+ }, [entry, selectionMode, itemsMode, fileTypes, raw, authMode]);
103
+ /** Tears down the message channel, listeners, and popup. */
104
+ var teardown = (0, react_1.useCallback)(function () {
105
+ if (windowListenerRef.current) {
106
+ window.removeEventListener('message', windowListenerRef.current);
107
+ windowListenerRef.current = undefined;
108
+ }
109
+ if (portRef.current) {
110
+ try {
111
+ portRef.current.close();
112
+ }
113
+ catch (_a) {
114
+ /* no-op */
115
+ }
116
+ portRef.current = undefined;
117
+ }
118
+ if (popupRef.current && !popupRef.current.closed) {
119
+ popupRef.current.close();
120
+ }
121
+ popupRef.current = null;
122
+ channelIdRef.current = '';
123
+ }, []);
124
+ var close = (0, react_1.useCallback)(function () {
125
+ teardown();
126
+ setIsOpen(false);
127
+ setIsLoading(false);
128
+ }, [teardown]);
129
+ /** Handles a single message received on the picker's message port. */
130
+ var handlePortMessage = (0, react_1.useCallback)(function (message) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
131
+ var port, payload, command, _a, token, _b, e_1, messageText, items, messageText;
132
+ var _c, _d, _e, _f, _g, _h, _j;
133
+ return tslib_1.__generator(this, function (_k) {
134
+ switch (_k.label) {
135
+ case 0:
136
+ port = portRef.current;
137
+ if (!port)
138
+ return [2 /*return*/];
139
+ payload = message.data;
140
+ if ((payload === null || payload === void 0 ? void 0 : payload.type) === 'notification') {
141
+ if (((_c = payload.data) === null || _c === void 0 ? void 0 : _c.notification) === 'page-loaded') {
142
+ setIsLoading(false);
143
+ }
144
+ return [2 /*return*/];
145
+ }
146
+ if ((payload === null || payload === void 0 ? void 0 : payload.type) !== 'command')
147
+ return [2 /*return*/];
148
+ // All commands must be acknowledged.
149
+ port.postMessage({ type: 'acknowledge', id: payload.id });
150
+ command = payload.data;
151
+ _a = command === null || command === void 0 ? void 0 : command.command;
152
+ switch (_a) {
153
+ case 'authenticate': return [3 /*break*/, 1];
154
+ case 'pick': return [3 /*break*/, 5];
155
+ case 'close': return [3 /*break*/, 6];
156
+ }
157
+ return [3 /*break*/, 7];
158
+ case 1:
159
+ _k.trys.push([1, 3, , 4]);
160
+ _b = SPFilePicker_helpers_1.requireAccessToken;
161
+ return [4 /*yield*/, resolveToken(command.resource)];
162
+ case 2:
163
+ token = _b.apply(void 0, [_k.sent(), strings.SPFilePickerUnableToObtainTokenError]);
164
+ port.postMessage({
165
+ type: 'result',
166
+ id: payload.id,
167
+ data: { result: 'token', token: token },
168
+ });
169
+ return [3 /*break*/, 4];
170
+ case 3:
171
+ e_1 = _k.sent();
172
+ messageText = e_1 instanceof Error ? e_1.message : String(e_1);
173
+ port.postMessage({
174
+ type: 'result',
175
+ id: payload.id,
176
+ data: { result: 'error', error: { code: 'unableToObtainToken', message: messageText } },
177
+ });
178
+ raiseError('unableToObtainToken', messageText);
179
+ return [3 /*break*/, 4];
180
+ case 4: return [3 /*break*/, 8];
181
+ case 5:
182
+ {
183
+ try {
184
+ items = (_d = command.items) !== null && _d !== void 0 ? _d : [];
185
+ (_f = (_e = callbacksRef.current).onPicked) === null || _f === void 0 ? void 0 : _f.call(_e, items);
186
+ port.postMessage({
187
+ type: 'result',
188
+ id: payload.id,
189
+ data: { result: 'success' },
190
+ });
191
+ close();
192
+ }
193
+ catch (e) {
194
+ messageText = e instanceof Error ? e.message : String(e);
195
+ port.postMessage({
196
+ type: 'result',
197
+ id: payload.id,
198
+ data: { result: 'error', error: { code: 'unusableItem', message: messageText } },
199
+ });
200
+ raiseError('unusableItem', messageText);
201
+ }
202
+ return [3 /*break*/, 8];
203
+ }
204
+ _k.label = 6;
205
+ case 6:
206
+ {
207
+ (_h = (_g = callbacksRef.current).onCancel) === null || _h === void 0 ? void 0 : _h.call(_g);
208
+ close();
209
+ return [3 /*break*/, 8];
210
+ }
211
+ _k.label = 7;
212
+ case 7:
213
+ {
214
+ port.postMessage({
215
+ type: 'result',
216
+ id: payload.id,
217
+ data: {
218
+ result: 'error',
219
+ error: { code: 'unsupportedCommand', message: (_j = command === null || command === void 0 ? void 0 : command.command) !== null && _j !== void 0 ? _j : 'unknown' },
220
+ },
221
+ });
222
+ return [3 /*break*/, 8];
223
+ }
224
+ _k.label = 8;
225
+ case 8: return [2 /*return*/];
226
+ }
227
+ });
228
+ }); }, [resolveToken, close, raiseError]);
229
+ /** Wires the `initialize` handshake to the picker window. */
230
+ var attachWindowListener = (0, react_1.useCallback)(function (pickerWindow, channelId) {
231
+ var expectedOrigin = new URL(baseUrl).origin;
232
+ var listener = function (event) {
233
+ var _a;
234
+ if ((0, SPFilePicker_helpers_1.isExpectedPickerInitializeEvent)(event, pickerWindow, channelId, expectedOrigin)) {
235
+ var port = (_a = event.ports) === null || _a === void 0 ? void 0 : _a[0];
236
+ if (!port)
237
+ return;
238
+ window.removeEventListener('message', listener);
239
+ windowListenerRef.current = undefined;
240
+ portRef.current = port;
241
+ port.addEventListener('message', function (m) {
242
+ handlePortMessage(m).catch(function (e) {
243
+ var messageText = e instanceof Error ? e.message : String(e);
244
+ raiseError('messageHandlingFailed', messageText);
245
+ });
246
+ });
247
+ port.start();
248
+ port.postMessage({ type: 'activate' });
249
+ }
250
+ };
251
+ windowListenerRef.current = listener;
252
+ window.addEventListener('message', listener);
253
+ }, [baseUrl, handlePortMessage, raiseError]);
254
+ /** Loads the picker into the given window. */
255
+ var submitPickerForm = (0, react_1.useCallback)(function (pickerWindow, channelId) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
256
+ var useCookies, configuration, params, url, accessToken, _a, doc, form, tokenInput;
257
+ return tslib_1.__generator(this, function (_b) {
258
+ switch (_b.label) {
259
+ case 0:
260
+ useCookies = authMode === 'cookie';
261
+ configuration = buildConfiguration(channelId);
262
+ params = new URLSearchParams();
263
+ if (app)
264
+ params.set('app', app);
265
+ if (scenario)
266
+ params.set('scenario', scenario);
267
+ params.set('filePicker', JSON.stringify(configuration));
268
+ params.set('locale', locale);
269
+ // Cookie mode uses the existing SharePoint session; no bearer token.
270
+ if (useCookies)
271
+ params.set('auth', 'none');
272
+ url = "".concat(trimTrailingSlash(baseUrl), "/_layouts/15/FilePicker.aspx?").concat(params.toString());
273
+ if (useCookies) {
274
+ // GET navigation — the browser sends the user's SharePoint cookies.
275
+ pickerWindow.location.href = url;
276
+ return [2 /*return*/];
277
+ }
278
+ _a = SPFilePicker_helpers_1.requireAccessToken;
279
+ return [4 /*yield*/, resolveToken(baseUrl)];
280
+ case 1:
281
+ accessToken = _a.apply(void 0, [_b.sent(), strings.SPFilePickerUnableToObtainTokenError]);
282
+ doc = pickerWindow.document;
283
+ form = doc.createElement('form');
284
+ form.setAttribute('action', url);
285
+ form.setAttribute('method', 'POST');
286
+ tokenInput = doc.createElement('input');
287
+ tokenInput.setAttribute('type', 'hidden');
288
+ tokenInput.setAttribute('name', 'access_token');
289
+ tokenInput.setAttribute('value', accessToken);
290
+ form.appendChild(tokenInput);
291
+ doc.body.append(form);
292
+ form.submit();
293
+ return [2 /*return*/];
294
+ }
295
+ });
296
+ }); }, [authMode, buildConfiguration, app, scenario, locale, baseUrl, resolveToken]);
297
+ /** Performs the launch once a target window is available. */
298
+ var launch = (0, react_1.useCallback)(function (pickerWindow) {
299
+ var channelId = createChannelId();
300
+ channelIdRef.current = channelId;
301
+ var handleLaunchError = function (e) {
302
+ var messageText = e instanceof Error ? e.message : String(e);
303
+ raiseError('launchFailed', messageText);
304
+ close();
305
+ };
306
+ try {
307
+ attachWindowListener(pickerWindow, channelId);
308
+ }
309
+ catch (e) {
310
+ handleLaunchError(e);
311
+ return;
312
+ }
313
+ submitPickerForm(pickerWindow, channelId).catch(handleLaunchError);
314
+ }, [attachWindowListener, submitPickerForm, raiseError, close]);
315
+ var open = (0, react_1.useCallback)(function () {
316
+ if (!baseUrl) {
317
+ raiseError('missingBaseUrl', strings.SPFilePickerMissingBaseUrlError);
318
+ return;
319
+ }
320
+ setError(undefined);
321
+ setIsLoading(true);
322
+ setIsOpen(true);
323
+ if (target === 'window') {
324
+ var win = window.open('', 'SPFilePicker', 'width=1080,height=680');
325
+ if (!win) {
326
+ raiseError('popupBlocked', strings.SPFilePickerPopupBlockedError);
327
+ setIsOpen(false);
328
+ setIsLoading(false);
329
+ return;
330
+ }
331
+ popupRef.current = win;
332
+ launch(win);
333
+ }
334
+ // For iframe target the launch happens in the effect below once the
335
+ // iframe has been rendered by the consumer.
336
+ }, [baseUrl, target, launch, raiseError]);
337
+ // Launch into the iframe once it is mounted and open.
338
+ (0, react_1.useEffect)(function () {
339
+ var _a;
340
+ if (!isOpen || target !== 'iframe')
341
+ return;
342
+ var win = (_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow;
343
+ if (!win)
344
+ return;
345
+ // Avoid re-launching if a channel is already established.
346
+ if (channelIdRef.current)
347
+ return;
348
+ info('launching picker into iframe');
349
+ launch(win);
350
+ }, [isOpen, target, launch, info]);
351
+ // Clean up on unmount.
352
+ (0, react_1.useEffect)(function () { return teardown; }, [teardown]);
353
+ /** Clears the loading state — call from the iframe's `onLoad`. */
354
+ var markLoaded = (0, react_1.useCallback)(function () {
355
+ setIsLoading(false);
356
+ }, []);
357
+ return (0, react_1.useMemo)(function () { return ({ isOpen: isOpen, isLoading: isLoading, error: error, iframeRef: iframeRef, open: open, close: close, markLoaded: markLoaded }); }, [isOpen, isLoading, error, open, close, markLoaded]);
358
+ }
359
+ //# sourceMappingURL=useSPFilePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSPFilePicker.js","sourceRoot":"","sources":["../../../../src/controls/SPFilePicker/hooks/useSPFilePicker.ts"],"names":[],"mappings":";;AAiHA,0CAiWC;;AAldD,+BAA0E;AAU1E,2CAA0C;AAC1C,+DAIgC;AAChC,8DAA0C;AA6D1C,gEAAgE;AAChE,SAAS,eAAe;IACtB,IAAM,SAAS,GAAG,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,UAAC,CAAC;QAC/D,IAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,IAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,kFAAkF;AAClF,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAgB,eAAe,CAAC,OAAgC;IAAhE,iBAiWC;IA/VG,IAAA,OAAO,GAgBL,OAAO,QAhBF,EACP,OAAO,GAeL,OAAO,QAfF,EACP,KAAK,GAcH,OAAO,MAdJ,EACL,KAaE,OAAO,cAbe,EAAxB,aAAa,mBAAG,QAAQ,KAAA,EACxB,KAYE,OAAO,UAZU,EAAnB,SAAS,mBAAG,OAAO,KAAA,EACnB,SAAS,GAWP,OAAO,UAXA,EACT,KAUE,OAAO,OAVO,EAAhB,MAAM,mBAAG,OAAO,KAAA,EAChB,KASE,OAAO,SATS,EAAlB,QAAQ,mBAAG,OAAO,KAAA,EAClB,GAAG,GAQD,OAAO,IARN,EACH,QAAQ,GAON,OAAO,SAPD,EACR,GAAG,GAMD,OAAO,IANN,EACH,KAKE,OAAO,OALQ,EAAjB,MAAM,mBAAG,QAAQ,KAAA,EACjB,QAAQ,GAIN,OAAO,SAJD,EACR,QAAQ,GAGN,OAAO,SAHD,EACR,QAAQ,GAEN,OAAO,SAFD,EACR,OAAO,GACL,OAAO,QADF,CACG;IAEN,IAAA,KAAsB,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAApC,MAAM,QAAA,EAAE,SAAS,QAAmB,CAAC;IACtC,IAAA,KAA4B,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAA1C,SAAS,QAAA,EAAE,YAAY,QAAmB,CAAC;IAC5C,IAAA,KAAoB,IAAA,gBAAQ,EAAiC,SAAS,CAAC,EAAtE,KAAK,QAAA,EAAE,QAAQ,QAAuD,CAAC;IAExE,IAAA,KAA4B,IAAA,uBAAU,GAAE,EAA/B,QAAQ,WAAA,EAAE,IAAI,UAAiB,CAAC;IAE/C,IAAM,SAAS,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IAElD,sEAAsE;IACtE,IAAM,OAAO,GAAG,IAAA,cAAM,EAA0B,SAAS,CAAC,CAAC;IAC3D,IAAM,QAAQ,GAAG,IAAA,cAAM,EAAgB,IAAI,CAAC,CAAC;IAC7C,IAAM,YAAY,GAAG,IAAA,cAAM,EAAS,EAAE,CAAC,CAAC;IACxC,IAAM,iBAAiB,GAAG,IAAA,cAAM,EAA8C,SAAS,CAAC,CAAC;IAEzF,mEAAmE;IACnE,IAAM,YAAY,GAAG,IAAA,cAAM,EAAC,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC,CAAC;IACvE,YAAY,CAAC,OAAO,GAAG,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,OAAO,SAAA,EAAE,QAAQ,UAAA,EAAE,CAAC;IAEjE,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,IAAY,EAAE,OAAe;;QAC5B,IAAM,GAAG,GAAuB,EAAE,IAAI,MAAA,EAAE,OAAO,SAAA,EAAE,CAAC;QAClD,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,CAAC,UAAG,IAAI,eAAK,OAAO,CAAE,CAAC,CAAC;QAChC,MAAA,MAAA,YAAY,CAAC,OAAO,EAAC,OAAO,mDAAG,GAAG,CAAC,CAAC;IACtC,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,8DAA8D;IAC9D,IAAM,YAAY,GAAG,IAAA,mBAAW,EAC9B,UAAO,QAAgB;;;;;oBACf,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC7C,IAAI,MAAM,EAAE,CAAC;wBACX,sBAAO,MAAM,CAAC,QAAQ,CAAC,EAAC;oBAC1B,CAAC;oBAGG,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;oBACzC,IAAI,CAAC;wBACH,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;oBACpC,CAAC;oBAAC,WAAM,CAAC;wBACP,4BAA4B;oBAC9B,CAAC;oBACqB,qBAAM,OAAO,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,EAAA;;oBAAxE,aAAa,GAAG,SAAwD;oBAC9E,sBAAO,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAC;;;SACvC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,iDAAiD;IACjD,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,UAAC,SAAiB;QAChB,OAAA,IAAA,qDAA8B,EAAC;YAC7B,SAAS,WAAA;YACT,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YACpC,KAAK,OAAA;YACL,aAAa,eAAA;YACb,SAAS,WAAA;YACT,SAAS,WAAA;YACT,QAAQ,UAAA;YACR,GAAG,KAAA;SACJ,CAAC;IATF,CASE,EACJ,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAC5D,CAAC;IAEF,4DAA4D;IAC5D,IAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC;QAC3B,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjE,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;QACxC,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YAAC,WAAM,CAAC;gBACP,WAAW;YACb,CAAC;YACD,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACjD,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,YAAY,CAAC,OAAO,GAAG,EAAE,CAAC;IAC5B,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC;QACxB,QAAQ,EAAE,CAAC;QACX,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,sEAAsE;IACtE,IAAM,iBAAiB,GAAG,IAAA,mBAAW,EACnC,UAAO,OAAqB;;;;;;oBACpB,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC7B,IAAI,CAAC,IAAI;wBAAE,sBAAO;oBAEZ,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;oBAE7B,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,cAAc,EAAE,CAAC;wBACrC,IAAI,CAAA,MAAA,OAAO,CAAC,IAAI,0CAAE,YAAY,MAAK,aAAa,EAAE,CAAC;4BACjD,YAAY,CAAC,KAAK,CAAC,CAAC;wBACtB,CAAC;wBACD,sBAAO;oBACT,CAAC;oBAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,SAAS;wBAAE,sBAAO;oBAExC,qCAAqC;oBACrC,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;oBAEpD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;oBAErB,KAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA;;6BACjB,cAAc,CAAC,CAAf,wBAAc;6BAuBd,MAAM,CAAC,CAAP,wBAAM;6BAsBN,OAAO,CAAC,CAAR,wBAAO;;;;;oBA3CM,KAAA,yCAAkB,CAAA;oBAC9B,qBAAM,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAA;;oBADhC,KAAK,GAAG,kBACZ,SAAoC,EACpC,OAAO,CAAC,oCAAoC,EAC7C;oBACD,IAAI,CAAC,WAAW,CAAC;wBACf,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,OAAA,EAAE;qBACjC,CAAC,CAAC;;;;oBAEG,WAAW,GAAG,GAAC,YAAY,KAAK,CAAC,CAAC,CAAC,GAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAC,CAAC,CAAC;oBAC/D,IAAI,CAAC,WAAW,CAAC;wBACf,IAAI,EAAE,QAAQ;wBACd,EAAE,EAAE,OAAO,CAAC,EAAE;wBACd,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;qBACxF,CAAC,CAAC;oBACH,UAAU,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;;wBAEjD,wBAAM;;oBAGK,CAAC;wBACZ,IAAI,CAAC;4BACG,KAAK,GAAwB,MAAA,OAAO,CAAC,KAAK,mCAAI,EAAE,CAAC;4BACvD,MAAA,MAAA,YAAY,CAAC,OAAO,EAAC,QAAQ,mDAAG,KAAK,CAAC,CAAC;4BACvC,IAAI,CAAC,WAAW,CAAC;gCACf,IAAI,EAAE,QAAQ;gCACd,EAAE,EAAE,OAAO,CAAC,EAAE;gCACd,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;6BAC5B,CAAC,CAAC;4BACH,KAAK,EAAE,CAAC;wBACV,CAAC;wBAAC,OAAO,CAAC,EAAE,CAAC;4BACL,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;4BAC/D,IAAI,CAAC,WAAW,CAAC;gCACf,IAAI,EAAE,QAAQ;gCACd,EAAE,EAAE,OAAO,CAAC,EAAE;gCACd,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE;6BACjF,CAAC,CAAC;4BACH,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;wBAC1C,CAAC;wBACD,wBAAM;oBACR,CAAC;;;oBAEa,CAAC;wBACb,MAAA,MAAA,YAAY,CAAC,OAAO,EAAC,QAAQ,kDAAI,CAAC;wBAClC,KAAK,EAAE,CAAC;wBACR,wBAAM;oBACR,CAAC;;;oBAEQ,CAAC;wBACR,IAAI,CAAC,WAAW,CAAC;4BACf,IAAI,EAAE,QAAQ;4BACd,EAAE,EAAE,OAAO,CAAC,EAAE;4BACd,IAAI,EAAE;gCACJ,MAAM,EAAE,OAAO;gCACf,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,mCAAI,SAAS,EAAE;6BAC9E;yBACF,CAAC,CAAC;wBACH,wBAAM;oBACR,CAAC;;;;;SAEJ,EACD,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAClC,CAAC;IAEF,6DAA6D;IAC7D,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,UAAC,YAAoB,EAAE,SAAiB;QACtC,IAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAC/C,IAAM,QAAQ,GAAG,UAAC,KAAmB;;YACnC,IACE,IAAA,sDAA+B,EAC7B,KAAK,EACL,YAAY,EACZ,SAAS,EACT,cAAc,CACf,EACD,CAAC;gBACD,IAAM,IAAI,GAAG,MAAA,KAAK,CAAC,KAAK,0CAAG,CAAC,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAElB,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBAChD,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAC;gBACtC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAC,CAAC;oBACjC,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAC,CAAC;wBAC3B,IAAM,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC/D,UAAU,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;oBACnD,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC;QAEF,iBAAiB,CAAC,OAAO,GAAG,QAAQ,CAAC;QACrC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,CAAC,CACzC,CAAC;IAEF,8CAA8C;IAC9C,IAAM,gBAAgB,GAAG,IAAA,mBAAW,EAClC,UAAO,YAAoB,EAAE,SAAiB;;;;;oBACtC,UAAU,GAAG,QAAQ,KAAK,QAAQ,CAAC;oBACnC,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAE9C,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;oBACrC,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBAChC,IAAI,QAAQ;wBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAC/C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;oBACxD,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAC7B,qEAAqE;oBACrE,IAAI,UAAU;wBAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAErC,GAAG,GAAG,UAAG,iBAAiB,CAAC,OAAO,CAAC,0CAAgC,MAAM,CAAC,QAAQ,EAAE,CAAE,CAAC;oBAE7F,IAAI,UAAU,EAAE,CAAC;wBACf,oEAAoE;wBACpE,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;wBACjC,sBAAO;oBACT,CAAC;oBAGmB,KAAA,yCAAkB,CAAA;oBACpC,qBAAM,YAAY,CAAC,OAAO,CAAC,EAAA;;oBADvB,WAAW,GAAG,kBAClB,SAA2B,EAC3B,OAAO,CAAC,oCAAoC,EAC7C;oBACK,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC;oBAC5B,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;oBACjC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBAE9B,UAAU,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAC9C,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC1C,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;oBAChD,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAE7B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtB,IAAI,CAAC,MAAM,EAAE,CAAC;;;;SACf,EACD,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAC7E,CAAC;IAEF,6DAA6D;IAC7D,IAAM,MAAM,GAAG,IAAA,mBAAW,EACxB,UAAC,YAAoB;QACnB,IAAM,SAAS,GAAG,eAAe,EAAE,CAAC;QACpC,YAAY,CAAC,OAAO,GAAG,SAAS,CAAC;QAEjC,IAAM,iBAAiB,GAAG,UAAC,CAAU;YACnC,IAAM,WAAW,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC/D,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YACxC,KAAK,EAAE,CAAC;QACV,CAAC,CAAC;QAEF,IAAI,CAAC;YACH,oBAAoB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC,EACD,CAAC,oBAAoB,EAAE,gBAAgB,EAAE,UAAU,EAAE,KAAK,CAAC,CAC5D,CAAC;IAEF,IAAM,IAAI,GAAG,IAAA,mBAAW,EAAC;QACvB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,UAAU,CAAC,gBAAgB,EAAE,OAAO,CAAC,+BAA+B,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,QAAQ,CAAC,SAAS,CAAC,CAAC;QACpB,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,SAAS,CAAC,IAAI,CAAC,CAAC;QAEhB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;gBAClE,SAAS,CAAC,KAAK,CAAC,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO;YACT,CAAC;YACD,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QACD,oEAAoE;QACpE,4CAA4C;IAC9C,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAE1C,sDAAsD;IACtD,IAAA,iBAAS,EAAC;;QACR,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,QAAQ;YAAE,OAAO;QAC3C,IAAM,GAAG,GAAG,MAAA,SAAS,CAAC,OAAO,0CAAE,aAAa,CAAC;QAC7C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,0DAA0D;QAC1D,IAAI,YAAY,CAAC,OAAO;YAAE,OAAO;QACjC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnC,uBAAuB;IACvB,IAAA,iBAAS,EAAC,cAAM,OAAA,QAAQ,EAAR,CAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEtC,kEAAkE;IAClE,IAAM,UAAU,GAAG,IAAA,mBAAW,EAAC;QAC7B,YAAY,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CAAC,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,KAAK,OAAA,EAAE,SAAS,WAAA,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,UAAU,YAAA,EAAE,CAAC,EAAlE,CAAkE,EACxE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./ISPFilePicker.types"), exports);
5
+ tslib_1.__exportStar(require("./ISPFilePickerProps"), exports);
6
+ tslib_1.__exportStar(require("./hooks/useSPFilePicker"), exports);
7
+ tslib_1.__exportStar(require("./SPFilePicker"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,+DAAqC;AACrC,kEAAwC;AACxC,yDAA+B"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSPFilePickerStyles = void 0;
4
+ var css_1 = require("@emotion/css");
5
+ var react_components_1 = require("@fluentui/react-components");
6
+ var useSPFilePickerStyles = function (height) { return ({
7
+ dialogSurface: (0, css_1.css)({
8
+ padding: 0,
9
+ overflow: 'hidden',
10
+ }),
11
+ iframeWrapper: (0, css_1.css)({
12
+ position: 'relative',
13
+ width: '100%',
14
+ height: height,
15
+ minHeight: 230,
16
+ borderRadius: react_components_1.tokens.borderRadiusMedium,
17
+ overflow: 'hidden',
18
+ backgroundColor: react_components_1.tokens.colorNeutralBackground1,
19
+ }),
20
+ iframe: (0, css_1.css)({
21
+ width: '100%',
22
+ height: '100%',
23
+ border: 'none',
24
+ display: 'block',
25
+ }),
26
+ spinnerOverlay: (0, css_1.css)({
27
+ position: 'absolute',
28
+ inset: 0,
29
+ display: 'flex',
30
+ alignItems: 'center',
31
+ justifyContent: 'center',
32
+ backgroundColor: react_components_1.tokens.colorNeutralBackground1,
33
+ zIndex: 1,
34
+ }),
35
+ }); };
36
+ exports.useSPFilePickerStyles = useSPFilePickerStyles;
37
+ //# sourceMappingURL=useSPFilePickerStyles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSPFilePickerStyles.js","sourceRoot":"","sources":["../../../src/controls/SPFilePicker/useSPFilePickerStyles.ts"],"names":[],"mappings":";;;AAAA,oCAAmC;AACnC,+DAAoD;AAS7C,IAAM,qBAAqB,GAAG,UAAC,MAAc,IAA0B,OAAA,CAAC;IAC7E,aAAa,EAAE,IAAA,SAAG,EAAC;QACjB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,QAAQ;KACnB,CAAC;IAEF,aAAa,EAAE,IAAA,SAAG,EAAC;QACjB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,MAAM;QACb,MAAM,QAAA;QACN,SAAS,EAAE,GAAG;QACd,YAAY,EAAE,yBAAM,CAAC,kBAAkB;QACvC,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE,yBAAM,CAAC,uBAAuB;KAChD,CAAC;IAEF,MAAM,EAAE,IAAA,SAAG,EAAC;QACV,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,OAAO;KACjB,CAAC;IAEF,cAAc,EAAE,IAAA,SAAG,EAAC;QAClB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,cAAc,EAAE,QAAQ;QACxB,eAAe,EAAE,yBAAM,CAAC,uBAAuB;QAC/C,MAAM,EAAE,CAAC;KACV,CAAC;CACH,CAAC,EAhC4E,CAgC5E,CAAC;AAhCU,QAAA,qBAAqB,yBAgC/B"}
@@ -15,6 +15,7 @@ tslib_1.__exportStar(require("./Progress"), exports);
15
15
  tslib_1.__exportStar(require("./ProgressStepsIndicator"), exports);
16
16
  tslib_1.__exportStar(require("./DateTimePicker"), exports);
17
17
  tslib_1.__exportStar(require("./FilePicker"), exports);
18
+ tslib_1.__exportStar(require("./SPFilePicker"), exports);
18
19
  tslib_1.__exportStar(require("./FolderExplorer"), exports);
19
20
  tslib_1.__exportStar(require("./FolderPicker"), exports);
20
21
  tslib_1.__exportStar(require("./IconPicker"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,qDAA2B;AAC3B,wDAA8B;AAC9B,2DAAiC;AACjC,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,2DAAiC;AACjC,gEAAsC;AACtC,yDAA+B;AAC/B,qDAA2B;AAC3B,mEAAyC;AACzC,2DAAiC;AACjC,uDAA6B;AAC7B,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,uDAA6B;AAC7B,8DAAoC;AAEpC,yDAA+B;AAC/B,wDAA8B;AAC9B,mDAAyB;AACzB,sDAA4B;AAC5B,wDAA8B;AAC9B,wDAA8B;AAC9B,qEAA2C;AAC3C,kEAAwC;AACxC,8DAAoC;AACpC,kEAAwC;AACxC,gEAAsC;AACtC,8DAAoC;AACpC,kEAAwC;AACxC,8DAAoC;AACpC,+DAAqC;AACrC,6DAAmC;AACnC,8DAAoC;AACpC,sDAA4B;AAC5B,2DAAiC;AACjC,wDAA8B;AAC9B,qDAA2B;AAC3B,iEAAuC;AACvC,wDAA8B;AAC9B,wDAA8B;AAC9B,yDAA+B;AAC/B,wDAA8B;AAC9B,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B;AAC/B,qDAA2B;AAC3B,wDAA8B;AAC9B,2DAAiC;AACjC,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,2DAAiC;AACjC,gEAAsC;AACtC,yDAA+B;AAC/B,qDAA2B;AAC3B,mEAAyC;AACzC,2DAAiC;AACjC,uDAA6B;AAC7B,yDAA+B;AAC/B,2DAAiC;AACjC,yDAA+B;AAC/B,uDAA6B;AAC7B,uDAA6B;AAC7B,8DAAoC;AAEpC,yDAA+B;AAC/B,wDAA8B;AAC9B,mDAAyB;AACzB,sDAA4B;AAC5B,wDAA8B;AAC9B,wDAA8B;AAC9B,qEAA2C;AAC3C,kEAAwC;AACxC,8DAAoC;AACpC,kEAAwC;AACxC,gEAAsC;AACtC,8DAAoC;AACpC,kEAAwC;AACxC,8DAAoC;AACpC,+DAAqC;AACrC,6DAAmC;AACnC,8DAAoC;AACpC,sDAA4B;AAC5B,2DAAiC;AACjC,wDAA8B;AAC9B,qDAA2B;AAC3B,iEAAuC;AACvC,wDAA8B;AAC9B,wDAA8B;AAC9B,yDAA+B;AAC/B,wDAA8B;AAC9B,wDAA8B;AAC9B,qDAA2B;AAC3B,wDAA8B"}
@@ -419,6 +419,11 @@ define([], function () {
419
419
  ClearFilterTitle: "Clear filter",
420
420
  ClearAllFiltersText: "Clear filters",
421
421
  FilterOverflowAriaLabel: "More",
422
+ SPFilePickerButtonText: "Select from SharePoint",
423
+ SPFilePickerDialogTitle: "Select a file",
424
+ SPFilePickerMissingBaseUrlError: "A base URL is required to open the file picker.",
425
+ SPFilePickerPopupBlockedError: "The picker popup was blocked by the browser.",
426
+ SPFilePickerUnableToObtainTokenError: "Unable to obtain a token.",
422
427
  CalendarControlDayOfWeekSunday: "Sunday",
423
428
  CalendarControlDayOfWeekMonday: "Monday",
424
429
  CalendarControlDayOfWeekTuesday: "Tuesday",