@looker/extension-sdk-react 22.20.0 → 22.20.2-alpha.1647

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 (29) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +14 -0
  3. package/lib/components/ExtensionConnector/ExtensionConnector.js +31 -20
  4. package/lib/components/ExtensionConnector/ExtensionConnector.js.map +1 -1
  5. package/lib/components/ExtensionConnector/types.d.ts +7 -2
  6. package/lib/components/ExtensionProvider/ExtensionProvider.js +17 -1
  7. package/lib/components/ExtensionProvider/ExtensionProvider.js.map +1 -1
  8. package/lib/components/ExtensionProvider2/ExtensionProvider2.js +17 -1
  9. package/lib/components/ExtensionProvider2/ExtensionProvider2.js.map +1 -1
  10. package/lib/components/ExtensionProvider40/ExtensionProvider40.js +17 -1
  11. package/lib/components/ExtensionProvider40/ExtensionProvider40.js.map +1 -1
  12. package/lib/components/ExtensionProviderBase/ExtensionProviderBase.js +18 -2
  13. package/lib/components/ExtensionProviderBase/ExtensionProviderBase.js.map +1 -1
  14. package/lib/esm/components/ExtensionConnector/ExtensionConnector.js +32 -19
  15. package/lib/esm/components/ExtensionConnector/ExtensionConnector.js.map +1 -1
  16. package/lib/esm/components/ExtensionProvider/ExtensionProvider.js +17 -1
  17. package/lib/esm/components/ExtensionProvider/ExtensionProvider.js.map +1 -1
  18. package/lib/esm/components/ExtensionProvider2/ExtensionProvider2.js +17 -1
  19. package/lib/esm/components/ExtensionProvider2/ExtensionProvider2.js.map +1 -1
  20. package/lib/esm/components/ExtensionProvider40/ExtensionProvider40.js +17 -1
  21. package/lib/esm/components/ExtensionProvider40/ExtensionProvider40.js.map +1 -1
  22. package/lib/esm/components/ExtensionProviderBase/ExtensionProviderBase.js +18 -2
  23. package/lib/esm/components/ExtensionProviderBase/ExtensionProviderBase.js.map +1 -1
  24. package/lib/esm/index.js +1 -1
  25. package/lib/esm/index.js.map +1 -1
  26. package/lib/index.d.ts +1 -1
  27. package/lib/index.js +2 -2
  28. package/lib/index.js.map +1 -1
  29. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ### [22.20.1](https://www.github.com/looker-open-source/sdk-codegen/compare/extension-sdk-react-v22.20.0...extension-sdk-react-v22.20.1) (2022-12-09)
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @looker/extension-sdk bumped from ^22.20.0 to ^22.20.1
16
+ * @looker/sdk bumped from ^22.20.0 to ^22.20.1
17
+ * @looker/sdk-rtl bumped from ^21.4.0 to ^21.5.0
18
+
8
19
  ## [22.20.0](https://www.github.com/looker-open-source/sdk-codegen/compare/extension-sdk-react-v22.18.0...extension-sdk-react-v22.20.0) (2022-11-10)
9
20
 
10
21
 
package/README.md CHANGED
@@ -138,6 +138,20 @@ export function* sagaCallbacks() {
138
138
  }
139
139
  ```
140
140
 
141
+ ### Tile Extension Context Data
142
+
143
+ ```ts
144
+ import { ExtensionContext40 } from '@looker/extension-sdk-react'
145
+
146
+ export const MyExtension: React.FC = () => {
147
+ const {
148
+ extensionSDK,
149
+ tileSDK,
150
+ tileHostData: { dashboardFilters },
151
+ } = useContext(ExtensionContext40)
152
+
153
+ ```
154
+
141
155
  ## Related Projects
142
156
 
143
157
  - [Looker extension examples](https://github.com/looker-open-source/extension-examples).
@@ -31,12 +31,6 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
31
31
 
32
32
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
33
33
 
34
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
35
-
36
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
37
-
38
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
-
40
34
  var ExtensionConnector = _ref => {
41
35
  var {
42
36
  contextData,
@@ -51,23 +45,25 @@ var ExtensionConnector = _ref => {
51
45
  chattyTimeout,
52
46
  children
53
47
  } = _ref;
48
+ var contextDataRef = (0, _react.useRef)(contextData);
54
49
  var [initialRouteData, setInitialRouteData] = (0, _react.useState)();
55
50
  var [hostRouteData, setHostRouteData] = (0, _react.useState)({
56
51
  route: ''
57
52
  });
58
53
  var [initializing, setInitializing] = (0, _react.useState)(true);
59
54
  var [initializeError, setInitializeError] = (0, _react.useState)();
60
-
61
- var setInitialRouteAndRouteState = (route, routeState) => {
55
+ (0, _react.useEffect)(() => {
56
+ contextDataRef.current = contextData;
57
+ }, [contextData]);
58
+ var setInitialRouteAndRouteState = (0, _react.useCallback)((route, routeState) => {
62
59
  if (hostTracksRoute) {
63
60
  setInitialRouteData({
64
61
  route,
65
62
  routeState
66
63
  });
67
64
  }
68
- };
69
-
70
- var hostChangedRoute = (_route, routeState) => {
65
+ }, [hostTracksRoute, setInitialRouteData]);
66
+ var hostChangedRoute = (0, _react.useCallback)((_route, routeState) => {
71
67
  var route = _route.startsWith('/') ? _route : '/' + _route;
72
68
 
73
69
  if (route !== hostRouteData.route || !(0, _isEqual.default)(routeState, hostRouteData.routeState)) {
@@ -75,14 +71,29 @@ var ExtensionConnector = _ref => {
75
71
  route,
76
72
  routeState
77
73
  });
78
- updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
74
+ updateContextData({
79
75
  route,
80
76
  routeState
81
- }));
77
+ });
82
78
  }
83
- };
84
-
85
- _react.default.useEffect(() => {
79
+ }, [setHostRouteData, updateContextData]);
80
+ var visualizationDataReceivedCallback = (0, _react.useCallback)(visualizationData => {
81
+ updateContextData({
82
+ visualizationData
83
+ });
84
+ }, [updateContextData]);
85
+ var tileHostDataChangedCallback = (0, _react.useCallback)(partialHostData => {
86
+ if (contextDataRef.current.tileSDK) {
87
+ var {
88
+ tileSDK
89
+ } = contextDataRef.current;
90
+ tileSDK.tileHostDataChanged(partialHostData);
91
+ updateContextData({
92
+ tileHostData: tileSDK.tileHostData
93
+ });
94
+ }
95
+ }, [updateContextData]);
96
+ (0, _react.useEffect)(() => {
86
97
  var initialize = function () {
87
98
  var _ref2 = _asyncToGenerator(function* () {
88
99
  try {
@@ -90,7 +101,9 @@ var ExtensionConnector = _ref => {
90
101
  setInitialRoute: setInitialRouteAndRouteState,
91
102
  requiredLookerVersion,
92
103
  hostChangedRoute,
93
- chattyTimeout
104
+ chattyTimeout,
105
+ visualizationDataReceivedCallback,
106
+ tileHostDataChangedCallback
94
107
  });
95
108
  connectedCallback(extensionHost);
96
109
  setInitializing(false);
@@ -111,11 +124,9 @@ var ExtensionConnector = _ref => {
111
124
  unloadedCallback();
112
125
  };
113
126
  }, []);
114
-
115
- _react.default.useEffect(() => {
127
+ (0, _react.useEffect)(() => {
116
128
  return initializing ? undefined : (0, _setup_close_popovers.setupClosePopoversListener)(contextData.extensionSDK);
117
129
  }, [initializing]);
118
-
119
130
  return _react.default.createElement(_react.default.Fragment, null, initializing ? loadingComponent : _react.default.createElement(_react.default.Fragment, null, initializeError ? _react.default.createElement(_ErrorMessage.ErrorMessage, {
120
131
  errorMessage: initializeError
121
132
  }) : _react.default.createElement(_react.default.Fragment, null, hostTracksRoute ? _react.default.createElement(_reactRouterDom.MemoryRouter, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExtensionConnector/ExtensionConnector.tsx"],"names":["ExtensionConnector","contextData","updateContextData","connectedCallback","unloadedCallback","onPathnameChange","onRouteChange","hostTracksRoute","loadingComponent","requiredLookerVersion","chattyTimeout","children","initialRouteData","setInitialRouteData","hostRouteData","setHostRouteData","route","initializing","setInitializing","initializeError","setInitializeError","setInitialRouteAndRouteState","routeState","hostChangedRoute","_route","startsWith","React","useEffect","initialize","extensionHost","setInitialRoute","error","console","message","undefined","extensionSDK"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport isEqual from 'lodash/isEqual'\nimport React, { useState } from 'react'\nimport { MemoryRouter } from 'react-router-dom'\nimport { connectExtensionHost } from '@looker/extension-sdk'\nimport { ErrorMessage } from '../ErrorMessage'\nimport { RouteChangeListener } from '../RouteChangeListener'\nimport { getInitialRouteEntries } from '../utils/get_initial_route_entries'\nimport { setupClosePopoversListener } from '../utils/setup_close_popovers'\nimport type { ExtensionConnectorProps, RouteData } from './types'\n\n/**\n * ExtensionConnector component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionConnector: React.FC<ExtensionConnectorProps> = ({\n contextData,\n updateContextData,\n connectedCallback,\n unloadedCallback,\n onPathnameChange,\n onRouteChange,\n hostTracksRoute = true,\n loadingComponent,\n requiredLookerVersion,\n chattyTimeout,\n children,\n}) => {\n const [initialRouteData, setInitialRouteData] = useState<RouteData>()\n const [hostRouteData, setHostRouteData] = useState<RouteData>({ route: '' })\n const [initializing, setInitializing] = useState(true)\n const [initializeError, setInitializeError] = useState<string>()\n\n const setInitialRouteAndRouteState = (route: string, routeState?: any) => {\n if (hostTracksRoute) {\n setInitialRouteData({ route, routeState })\n }\n }\n\n const hostChangedRoute = (_route: string, routeState?: any) => {\n const route = _route.startsWith('/') ? _route : '/' + _route\n if (\n route !== hostRouteData.route ||\n !isEqual(routeState, hostRouteData.routeState)\n ) {\n setHostRouteData({ route, routeState })\n updateContextData({\n ...contextData,\n route,\n routeState,\n })\n }\n }\n\n React.useEffect(() => {\n const initialize = async () => {\n try {\n const extensionHost = await connectExtensionHost({\n setInitialRoute: setInitialRouteAndRouteState,\n requiredLookerVersion,\n hostChangedRoute,\n chattyTimeout,\n })\n connectedCallback(extensionHost)\n setInitializing(false)\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error)\n setInitializeError(error.message || 'Extension failed to initialize.')\n setInitializing(false)\n }\n }\n initialize()\n return () => {\n unloadedCallback()\n }\n }, [])\n\n React.useEffect(() => {\n return initializing\n ? undefined\n : setupClosePopoversListener(contextData.extensionSDK)\n }, [initializing])\n\n return (\n <>\n {initializing ? (\n loadingComponent\n ) : (\n <>\n {initializeError ? (\n <ErrorMessage errorMessage={initializeError} />\n ) : (\n <>\n {hostTracksRoute ? (\n <MemoryRouter\n initialEntries={getInitialRouteEntries(initialRouteData)}\n >\n <RouteChangeListener\n onRouteChange={onRouteChange}\n onPathnameChange={onPathnameChange}\n extensionHost={contextData!.extensionSDK}\n hostRoute={hostRouteData.route}\n hostRouteState={hostRouteData.routeState}\n />\n {children}\n </MemoryRouter>\n ) : (\n <>{children}</>\n )}\n </>\n )}\n </>\n )}\n </>\n )\n}\n"],"file":"ExtensionConnector.js"}
1
+ {"version":3,"sources":["../../../src/components/ExtensionConnector/ExtensionConnector.tsx"],"names":["ExtensionConnector","contextData","updateContextData","connectedCallback","unloadedCallback","onPathnameChange","onRouteChange","hostTracksRoute","loadingComponent","requiredLookerVersion","chattyTimeout","children","contextDataRef","initialRouteData","setInitialRouteData","hostRouteData","setHostRouteData","route","initializing","setInitializing","initializeError","setInitializeError","current","setInitialRouteAndRouteState","routeState","hostChangedRoute","_route","startsWith","visualizationDataReceivedCallback","visualizationData","tileHostDataChangedCallback","partialHostData","tileSDK","tileHostDataChanged","tileHostData","initialize","extensionHost","setInitialRoute","error","console","message","undefined","extensionSDK"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport isEqual from 'lodash/isEqual'\nimport React, { useEffect, useState, useCallback, useRef } from 'react'\nimport { MemoryRouter } from 'react-router-dom'\nimport type { RawVisualizationData, TileHostData } from '@looker/extension-sdk'\nimport { connectExtensionHost } from '@looker/extension-sdk'\nimport { ErrorMessage } from '../ErrorMessage'\nimport { RouteChangeListener } from '../RouteChangeListener'\nimport { getInitialRouteEntries } from '../utils/get_initial_route_entries'\nimport { setupClosePopoversListener } from '../utils/setup_close_popovers'\nimport type { ExtensionConnectorProps, RouteData } from './types'\n\n/**\n * ExtensionConnector component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionConnector: React.FC<ExtensionConnectorProps> = ({\n contextData,\n updateContextData,\n connectedCallback,\n unloadedCallback,\n onPathnameChange,\n onRouteChange,\n hostTracksRoute = true,\n loadingComponent,\n requiredLookerVersion,\n chattyTimeout,\n children,\n}) => {\n const contextDataRef = useRef(contextData)\n const [initialRouteData, setInitialRouteData] = useState<RouteData>()\n const [hostRouteData, setHostRouteData] = useState<RouteData>({ route: '' })\n const [initializing, setInitializing] = useState(true)\n const [initializeError, setInitializeError] = useState<string>()\n\n useEffect(() => {\n contextDataRef.current = contextData\n }, [contextData])\n\n const setInitialRouteAndRouteState = useCallback(\n (route: string, routeState?: any) => {\n if (hostTracksRoute) {\n setInitialRouteData({ route, routeState })\n }\n },\n [hostTracksRoute, setInitialRouteData]\n )\n\n const hostChangedRoute = useCallback(\n (_route: string, routeState?: any) => {\n const route = _route.startsWith('/') ? _route : '/' + _route\n if (\n route !== hostRouteData.route ||\n !isEqual(routeState, hostRouteData.routeState)\n ) {\n setHostRouteData({ route, routeState })\n updateContextData({\n route,\n routeState,\n })\n }\n },\n [setHostRouteData, updateContextData]\n )\n\n const visualizationDataReceivedCallback = useCallback(\n (visualizationData: RawVisualizationData) => {\n updateContextData({\n visualizationData,\n })\n },\n [updateContextData]\n )\n\n const tileHostDataChangedCallback = useCallback(\n (partialHostData: Partial<TileHostData>) => {\n if (contextDataRef.current.tileSDK) {\n const { tileSDK } = contextDataRef.current\n tileSDK.tileHostDataChanged(partialHostData)\n updateContextData({\n tileHostData: tileSDK.tileHostData,\n })\n }\n },\n [updateContextData]\n )\n\n useEffect(() => {\n const initialize = async () => {\n try {\n const extensionHost = await connectExtensionHost({\n setInitialRoute: setInitialRouteAndRouteState,\n requiredLookerVersion,\n hostChangedRoute,\n chattyTimeout,\n visualizationDataReceivedCallback,\n tileHostDataChangedCallback,\n })\n connectedCallback(extensionHost)\n setInitializing(false)\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error)\n setInitializeError(error.message || 'Extension failed to initialize.')\n setInitializing(false)\n }\n }\n initialize()\n return () => {\n unloadedCallback()\n }\n }, [])\n\n useEffect(() => {\n return initializing\n ? undefined\n : setupClosePopoversListener(contextData.extensionSDK)\n }, [initializing])\n\n return (\n <>\n {initializing ? (\n loadingComponent\n ) : (\n <>\n {initializeError ? (\n <ErrorMessage errorMessage={initializeError} />\n ) : (\n <>\n {hostTracksRoute ? (\n <MemoryRouter\n initialEntries={getInitialRouteEntries(initialRouteData)}\n >\n <RouteChangeListener\n onRouteChange={onRouteChange}\n onPathnameChange={onPathnameChange}\n extensionHost={contextData!.extensionSDK}\n hostRoute={hostRouteData.route}\n hostRouteState={hostRouteData.routeState}\n />\n {children}\n </MemoryRouter>\n ) : (\n <>{children}</>\n )}\n </>\n )}\n </>\n )}\n </>\n )\n}\n"],"file":"ExtensionConnector.js"}
@@ -1,10 +1,15 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { ExtensionHostApi, ExtensionSDK } from '@looker/extension-sdk';
2
+ import type { ExtensionHostApi, ExtensionSDK, RawVisualizationData, TileHostData, TileSDK, VisualizationSDK, LookerHostData } from '@looker/extension-sdk';
3
3
  export interface BaseExtensionContextData {
4
4
  extensionSDK: ExtensionSDK;
5
+ lookerHostData?: Readonly<LookerHostData>;
5
6
  initializeError?: string;
6
7
  route: string;
7
8
  routeState?: any;
9
+ visualizationData?: Readonly<RawVisualizationData>;
10
+ visualizationSDK: VisualizationSDK;
11
+ tileHostData: Readonly<TileHostData>;
12
+ tileSDK: TileSDK;
8
13
  }
9
14
  export interface RouteData {
10
15
  route: string;
@@ -22,6 +27,6 @@ export interface ExtensionProviderProps {
22
27
  export interface ExtensionConnectorProps extends ExtensionProviderProps {
23
28
  contextData: BaseExtensionContextData;
24
29
  connectedCallback: (extensionSDK: ExtensionHostApi) => void;
25
- updateContextData: (contextData: BaseExtensionContextData) => void;
30
+ updateContextData: (contextData: Partial<BaseExtensionContextData>) => void;
26
31
  unloadedCallback: () => void;
27
32
  }
@@ -50,12 +50,28 @@ var ExtensionProvider = _ref => {
50
50
 
51
51
  (0, _core_sdk_.registerCore31SDK)(core31SDK);
52
52
  (0, _core_sdk_2.registerCore40SDK)(core40SDK);
53
+ var {
54
+ visualizationSDK,
55
+ tileSDK,
56
+ lookerHostData
57
+ } = extensionHost;
58
+ var {
59
+ visualizationData
60
+ } = visualizationSDK;
61
+ var {
62
+ tileHostData
63
+ } = tileSDK;
53
64
  setExtensionData(previousState => {
54
65
  return _objectSpread(_objectSpread({}, previousState), {}, {
55
66
  extensionSDK: extensionHost,
56
67
  coreSDK: core31SDK,
57
68
  core31SDK,
58
- core40SDK
69
+ core40SDK,
70
+ visualizationSDK,
71
+ tileSDK,
72
+ visualizationData,
73
+ tileHostData,
74
+ lookerHostData
59
75
  });
60
76
  });
61
77
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExtensionProvider/ExtensionProvider.tsx"],"names":["ExtensionContext","React","createContext","undefined","ExtensionProvider","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","core31SDK","LookerExtensionSDK","create31Client","core40SDK","create40Client","previousState","extensionSDK","coreSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;AA0BA;;AAEA;;AAMA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAgB,GAAGC,eAAMC,aAAN,CAC9BC,SAD8B,CAAzB;;;;AAQA,IAAMC,iBAAmD,GAAG,QAG7D;AAAA,MAH8D;AAClEC,IAAAA;AADkE,GAG9D;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAGA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,SAAsB,GAC1BC,iCAAmBC,cAAnB,CAAkCH,aAAlC,CADF;;AAEA,QAAMI,SAAsB,GAC1BF,iCAAmBG,cAAnB,CAAkCL,aAAlC,CADF;;AAGA,sCAAkBC,SAAlB;AACA,uCAAkBG,SAAlB;AACAN,IAAAA,gBAAgB,CAAEQ,aAAD,IAAyC;AACxD,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEP,aAFhB;AAGEQ,QAAAA,OAAO,EAAEP,SAHX;AAIEA,QAAAA,SAJF;AAKEG,QAAAA;AALF;AAOD,KARe,CAAhB;AASD,GAjBD;;AAmBA,MAAMK,gBAAgB,GAAG,MAAM;AAC7B;AACA;AACD,GAHD;;AAKA,MAAMC,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1Eb,IAAAA,gBAAgB,CAAEQ,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,6BAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAEd;AAAlC,KACE,6BAAC,sCAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEW,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGd,QAPH,CADF,CADF;AAaD,CArDM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { Looker31SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore31SDK, unregisterCore31SDK } from '../../sdk/core_sdk_31'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\nimport type { ExtensionContextData } from './types'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext = React.createContext<ExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n)\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionProvider: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<ExtensionContextData>(\n {} as ExtensionContextData\n )\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const core31SDK: Looker31SDK =\n LookerExtensionSDK.create31Client(extensionHost)\n const core40SDK: Looker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n // Provide global access for use by redux if needed\n registerCore31SDK(core31SDK)\n registerCore40SDK(core40SDK)\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK: core31SDK,\n core31SDK,\n core40SDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore31SDK()\n unregisterCore40SDK()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext.Provider value={extensionData!}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext.Provider>\n )\n}\n"],"file":"ExtensionProvider.js"}
1
+ {"version":3,"sources":["../../../src/components/ExtensionProvider/ExtensionProvider.tsx"],"names":["ExtensionContext","React","createContext","undefined","ExtensionProvider","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","core31SDK","LookerExtensionSDK","create31Client","core40SDK","create40Client","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","coreSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;AA0BA;;AAEA;;AAMA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AAMO,IAAMA,gBAAgB,GAAGC,eAAMC,aAAN,CAC9BC,SAD8B,CAAzB;;;;AASA,IAAMC,iBAAmD,GAAG,QAG7D;AAAA,MAH8D;AAClEC,IAAAA;AADkE,GAG9D;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAGA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,SAAsB,GAC1BC,iCAAmBC,cAAnB,CAAkCH,aAAlC,CADF;;AAEA,QAAMI,SAAsB,GAC1BF,iCAAmBG,cAAnB,CAAkCL,aAAlC,CADF;;AAGA,sCAAkBC,SAAlB;AACA,uCAAkBG,SAAlB;AACA,QAAM;AAAEE,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDR,aAAtD;AACA,QAAM;AAAES,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAT,IAAAA,gBAAgB,CAAEa,aAAD,IAAyC;AACxD,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEZ,aAFhB;AAGEa,QAAAA,OAAO,EAAEZ,SAHX;AAIEA,QAAAA,SAJF;AAKEG,QAAAA,SALF;AAMEE,QAAAA,gBANF;AAOEC,QAAAA,OAPF;AAQEE,QAAAA,iBARF;AASEC,QAAAA,YATF;AAUEF,QAAAA;AAVF;AAYD,KAbe,CAAhB;AAcD,GAzBD;;AA2BA,MAAMM,gBAAgB,GAAG,MAAM;AAC7B;AACA;AACD,GAHD;;AAKA,MAAMC,iBAAiB,GACrBC,kBADwB,IAErB;AACHlB,IAAAA,gBAAgB,CAAEa,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,6BAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAEnB;AAAlC,KACE,6BAAC,sCAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEgB,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGnB,QAPH,CADF,CADF;AAaD,CA/DM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { Looker31SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore31SDK, unregisterCore31SDK } from '../../sdk/core_sdk_31'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\nimport type { ExtensionContextData } from './types'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext = React.createContext<ExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n)\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n * @deprecated use ExtensionProvider40\n */\nexport const ExtensionProvider: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<ExtensionContextData>(\n {} as ExtensionContextData\n )\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const core31SDK: Looker31SDK =\n LookerExtensionSDK.create31Client(extensionHost)\n const core40SDK: Looker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n // Provide global access for use by redux if needed\n registerCore31SDK(core31SDK)\n registerCore40SDK(core40SDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK: core31SDK,\n core31SDK,\n core40SDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore31SDK()\n unregisterCore40SDK()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext.Provider value={extensionData}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext.Provider>\n )\n}\n"],"file":"ExtensionProvider.js"}
@@ -54,10 +54,26 @@ function ExtensionProvider2(props) {
54
54
  }
55
55
 
56
56
  (0, _core_sdk.registerCoreSDK2)(coreSDK);
57
+ var {
58
+ visualizationSDK,
59
+ tileSDK,
60
+ lookerHostData
61
+ } = extensionHost;
62
+ var {
63
+ visualizationData
64
+ } = visualizationSDK;
65
+ var {
66
+ tileHostData
67
+ } = tileSDK;
57
68
  setExtensionData(previousState => {
58
69
  return _objectSpread(_objectSpread({}, previousState), {}, {
59
70
  extensionSDK: extensionHost,
60
- coreSDK
71
+ coreSDK,
72
+ visualizationSDK,
73
+ tileSDK,
74
+ visualizationData,
75
+ tileHostData,
76
+ lookerHostData
61
77
  });
62
78
  });
63
79
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExtensionProvider2/ExtensionProvider2.tsx"],"names":["ExtensionContext2","React","createContext","undefined","ExtensionProvider2","props","children","type","rest","extensionData","setExtensionData","apiVersion","ApiVersion","connectedCallback","extensionHost","coreSDK","LookerExtensionSDK","createClient","SdkConnection","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;AA0BA;;AAEA;;AACA;;AAKA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,iBAAiB,GAAGC,eAAMC,aAAN,CAG/BC,SAH+B,CAA1B;;;;AAcA,SAASC,kBAAT,CAA+BC,KAA/B,EAAkE;AACvE,MAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,KAApC;AAAA,MAA2BG,IAA3B,4BAAoCH,KAApC;;AACA,MAAM,CAACI,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;AAGA,MAAMC,UAAU,GAAIJ,IAAD,CAAcK,UAAjC;;AAEA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAIC,OAAJ;;AACA,QAAIJ,UAAJ,EAAgB;AACdI,MAAAA,OAAO,GAAGC,wBAAmBC,YAAnB,CACR,IAAIC,2BAAJ,CAAkBJ,aAAlB,EAAiCH,UAAjC,CADQ,EAERJ,IAFQ,CAAV;AAID;;AACD,oCAAiBQ,OAAjB;AACAL,IAAAA,gBAAgB,CAAES,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEN,aAFhB;AAGEC,QAAAA;AAHF;AAKD,KANe,CAAhB;AAOD,GAhBD;;AAkBA,MAAMM,gBAAgB,GAAG,MAAM;AAC7B;AACD,GAFD;;AAIA,MAAMC,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1Eb,IAAAA,gBAAgB,CAAES,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,6BAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEd;AAAnC,KACE,6BAAC,sCAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEI,iBAHrB;AAIE,IAAA,iBAAiB,EAAES,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGf,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { SdkConnection } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCoreSDK2, unregisterCoreSDK2 } from '../../sdk/core_sdk2'\n\nexport interface ExtensionContextData2<T> extends BaseExtensionContextData {\n coreSDK: T\n}\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext2 = React.createContext<\n ExtensionContextData2<any>\n>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider2Props<T> extends ExtensionProviderProps {\n type: T\n}\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport function ExtensionProvider2<T>(props: ExtensionProvider2Props<T>) {\n const { children, type, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData2<T>>(\n {} as ExtensionContextData2<T>\n )\n const apiVersion = (type as any).ApiVersion\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n let coreSDK: any\n if (apiVersion) {\n coreSDK = LookerExtensionSDK.createClient(\n new SdkConnection(extensionHost, apiVersion),\n type as any\n )\n }\n registerCoreSDK2(coreSDK)\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCoreSDK2()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData2<T>) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext2.Provider value={extensionData!}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext2.Provider>\n )\n}\n"],"file":"ExtensionProvider2.js"}
1
+ {"version":3,"sources":["../../../src/components/ExtensionProvider2/ExtensionProvider2.tsx"],"names":["ExtensionContext2","React","createContext","undefined","ExtensionProvider2","props","children","type","rest","extensionData","setExtensionData","apiVersion","ApiVersion","connectedCallback","extensionHost","coreSDK","LookerExtensionSDK","createClient","SdkConnection","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;AA0BA;;AAEA;;AACA;;AAKA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,iBAAiB,GAAGC,eAAMC,aAAN,CAG/BC,SAH+B,CAA1B;;;;AAcA,SAASC,kBAAT,CAA+BC,KAA/B,EAAkE;AACvE,MAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,KAApC;AAAA,MAA2BG,IAA3B,4BAAoCH,KAApC;;AACA,MAAM,CAACI,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;AAGA,MAAMC,UAAU,GAAIJ,IAAD,CAAcK,UAAjC;;AAEA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAIC,OAAJ;;AACA,QAAIJ,UAAJ,EAAgB;AACdI,MAAAA,OAAO,GAAGC,wBAAmBC,YAAnB,CACR,IAAIC,2BAAJ,CAAkBJ,aAAlB,EAAiCH,UAAjC,CADQ,EAERJ,IAFQ,CAAV;AAID;;AACD,oCAAiBQ,OAAjB;AACA,QAAM;AAAEI,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDP,aAAtD;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAV,IAAAA,gBAAgB,CAAEc,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEX,aAFhB;AAGEC,QAAAA,OAHF;AAIEI,QAAAA,gBAJF;AAKEC,QAAAA,OALF;AAMEE,QAAAA,iBANF;AAOEC,QAAAA,YAPF;AAQEF,QAAAA;AARF;AAUD,KAXe,CAAhB;AAYD,GAxBD;;AA0BA,MAAMK,gBAAgB,GAAG,MAAM;AAC7B;AACD,GAFD;;AAIA,MAAMC,iBAAiB,GACrBC,kBADwB,IAErB;AACHlB,IAAAA,gBAAgB,CAAEc,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,6BAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEnB;AAAnC,KACE,6BAAC,sCAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEI,iBAHrB;AAIE,IAAA,iBAAiB,EAAEc,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGpB,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { SdkConnection } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCoreSDK2, unregisterCoreSDK2 } from '../../sdk/core_sdk2'\n\nexport interface ExtensionContextData2<T> extends BaseExtensionContextData {\n coreSDK: T\n}\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext2 = React.createContext<\n ExtensionContextData2<any>\n>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider2Props<T> extends ExtensionProviderProps {\n type: T\n}\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport function ExtensionProvider2<T>(props: ExtensionProvider2Props<T>) {\n const { children, type, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData2<T>>(\n {} as ExtensionContextData2<T>\n )\n const apiVersion = (type as any).ApiVersion\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n let coreSDK: any\n if (apiVersion) {\n coreSDK = LookerExtensionSDK.createClient(\n new SdkConnection(extensionHost, apiVersion),\n type as any\n )\n }\n registerCoreSDK2(coreSDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCoreSDK2()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData2<T>) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext2.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext2.Provider>\n )\n}\n"],"file":"ExtensionProvider2.js"}
@@ -46,10 +46,26 @@ function ExtensionProvider40(props) {
46
46
  var coreSDK = _extensionSdk.LookerExtensionSDK.create40Client(extensionHost);
47
47
 
48
48
  (0, _core_sdk_.registerCore40SDK)(coreSDK);
49
+ var {
50
+ visualizationSDK,
51
+ tileSDK,
52
+ lookerHostData
53
+ } = extensionHost;
54
+ var {
55
+ visualizationData
56
+ } = visualizationSDK;
57
+ var {
58
+ tileHostData
59
+ } = tileSDK;
49
60
  setExtensionData(previousState => {
50
61
  return _objectSpread(_objectSpread({}, previousState), {}, {
51
62
  extensionSDK: extensionHost,
52
- coreSDK
63
+ coreSDK,
64
+ visualizationSDK,
65
+ tileSDK,
66
+ visualizationData,
67
+ tileHostData,
68
+ lookerHostData
53
69
  });
54
70
  });
55
71
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExtensionProvider40/ExtensionProvider40.tsx"],"names":["ExtensionContext40","React","createContext","undefined","ExtensionProvider40","props","children","rest","extensionData","setExtensionData","connectedCallback","extensionHost","coreSDK","LookerExtensionSDK","create40Client","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;AA0BA;;AAEA;;AAMA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,kBAAkB,GAAGC,eAAMC,aAAN,CAChCC,SADgC,CAA3B;;;;AAUA,SAASC,mBAAT,CAA6BC,KAA7B,EAA8D;AACnE,MAAM;AAAEC,IAAAA;AAAF,MAAwBD,KAA9B;AAAA,MAAqBE,IAArB,4BAA8BF,KAA9B;;AACA,MAAM,CAACG,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAIA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,OAAqB,GACzBC,iCAAmBC,cAAnB,CAAkCH,aAAlC,CADF;;AAEA,sCAAkBC,OAAlB;AACAH,IAAAA,gBAAgB,CAAEM,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEL,aAFhB;AAGEC,QAAAA;AAHF;AAKD,KANe,CAAhB;AAOD,GAXD;;AAaA,MAAMK,gBAAgB,GAAG,MAAM;AAC7B;AACD,GAFD;;AAIA,MAAMC,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1EV,IAAAA,gBAAgB,CAAEM,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,6BAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEX;AAApC,KACE,6BAAC,sCAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEQ,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGX,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { ILooker40SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\n\nexport interface ExtensionContextData40 extends BaseExtensionContextData {\n coreSDK: ILooker40SDK\n}\n\n/**\n * React context provider for extension API and Looker SDK 4.0.\n */\nexport const ExtensionContext40 = React.createContext<ExtensionContextData40>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider40Props extends ExtensionProviderProps {}\n\n/**\n * ExtensionProvider40 component. Provides access to the extension API and SDK (use\n * ExtensionContext40) and react routing services.\n */\nexport function ExtensionProvider40(props: ExtensionProvider40Props) {\n const { children, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData40>(\n {} as ExtensionContextData40\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const coreSDK: ILooker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n registerCore40SDK(coreSDK as Looker40SDK)\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore40SDK()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData40) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext40.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext40.Provider>\n )\n}\n"],"file":"ExtensionProvider40.js"}
1
+ {"version":3,"sources":["../../../src/components/ExtensionProvider40/ExtensionProvider40.tsx"],"names":["ExtensionContext40","React","createContext","undefined","ExtensionProvider40","props","children","rest","extensionData","setExtensionData","connectedCallback","extensionHost","coreSDK","LookerExtensionSDK","create40Client","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;AA0BA;;AAEA;;AAMA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,kBAAkB,GAAGC,eAAMC,aAAN,CAChCC,SADgC,CAA3B;;;;AAUA,SAASC,mBAAT,CAA6BC,KAA7B,EAA8D;AACnE,MAAM;AAAEC,IAAAA;AAAF,MAAwBD,KAA9B;AAAA,MAAqBE,IAArB,4BAA8BF,KAA9B;;AACA,MAAM,CAACG,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAIA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,OAAqB,GACzBC,iCAAmBC,cAAnB,CAAkCH,aAAlC,CADF;;AAEA,sCAAkBC,OAAlB;AACA,QAAM;AAAEG,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDN,aAAtD;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAP,IAAAA,gBAAgB,CAAEW,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEV,aAFhB;AAGEC,QAAAA,OAHF;AAIEG,QAAAA,gBAJF;AAKEC,QAAAA,OALF;AAMEE,QAAAA,iBANF;AAOEC,QAAAA,YAPF;AAQEF,QAAAA;AARF;AAUD,KAXe,CAAhB;AAYD,GAnBD;;AAqBA,MAAMK,gBAAgB,GAAG,MAAM;AAC7B;AACD,GAFD;;AAIA,MAAMC,iBAAiB,GACrBC,kBADwB,IAErB;AACHf,IAAAA,gBAAgB,CAAEW,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,6BAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEhB;AAApC,KACE,6BAAC,sCAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEa,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGhB,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { ILooker40SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\n\nexport interface ExtensionContextData40 extends BaseExtensionContextData {\n coreSDK: ILooker40SDK\n}\n\n/**\n * React context provider for extension API and Looker SDK 4.0.\n */\nexport const ExtensionContext40 = React.createContext<ExtensionContextData40>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider40Props extends ExtensionProviderProps {}\n\n/**\n * ExtensionProvider40 component. Provides access to the extension API and SDK (use\n * ExtensionContext40) and react routing services.\n */\nexport function ExtensionProvider40(props: ExtensionProvider40Props) {\n const { children, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData40>(\n {} as ExtensionContextData40\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const coreSDK: ILooker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n registerCore40SDK(coreSDK as Looker40SDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore40SDK()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData40) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext40.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext40.Provider>\n )\n}\n"],"file":"ExtensionProvider40.js"}
@@ -38,9 +38,25 @@ var ExtensionProviderBase = _ref => {
38
38
  var [extensionData, setExtensionData] = (0, _react.useState)({});
39
39
 
40
40
  var connectedCallback = extensionHost => {
41
+ var {
42
+ visualizationSDK,
43
+ tileSDK,
44
+ lookerHostData
45
+ } = extensionHost;
46
+ var {
47
+ visualizationData
48
+ } = visualizationSDK;
49
+ var {
50
+ tileHostData
51
+ } = tileSDK;
41
52
  setExtensionData(previousState => {
42
53
  return _objectSpread(_objectSpread({}, previousState), {}, {
43
- extensionSDK: extensionHost
54
+ extensionSDK: extensionHost,
55
+ visualizationSDK,
56
+ tileSDK,
57
+ visualizationData,
58
+ tileHostData,
59
+ lookerHostData
44
60
  });
45
61
  });
46
62
  };
@@ -48,7 +64,7 @@ var ExtensionProviderBase = _ref => {
48
64
  var unloadedCallback = () => {};
49
65
 
50
66
  var updateContextData = contextData => {
51
- setExtensionData(contextData);
67
+ setExtensionData(previousContextData => _objectSpread(_objectSpread({}, previousContextData), contextData));
52
68
  };
53
69
 
54
70
  return _react.default.createElement(ExtensionContextBase.Provider, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ExtensionProviderBase/ExtensionProviderBase.tsx"],"names":["ExtensionContextBase","React","createContext","undefined","ExtensionProviderBase","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","previousState","extensionSDK","unloadedCallback","updateContextData","contextData"],"mappings":";;;;;;;AA0BA;;AAMA;;;;;;;;;;;;;;;;;;AAKO,IAAMA,oBAAoB,GAC/BC,eAAMC,aAAN,CACEC,SADF,CADK;;;;AASA,IAAMC,qBAAuD,GAAG,QAGjE;AAAA,MAHkE;AACtEC,IAAAA;AADsE,GAGlE;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAIA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7DF,IAAAA,gBAAgB,CAAEG,aAAD,IAA6C;AAC5D,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEF;AAFhB;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,MAAMG,gBAAgB,GAAG,MAAM,CAE9B,CAFD;;AAIA,MAAMC,iBAAiB,GAAIC,WAAD,IAA2C;AACnEP,IAAAA,gBAAgB,CAACO,WAAD,CAAhB;AACD,GAFD;;AAIA,SACE,6BAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAER;AAAtC,KACE,6BAAC,sCAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEK,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGR,QAPH,CADF,CADF;AAaD,CAtCM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContextBase =\n React.createContext<BaseExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n )\n\n/**\n * ExtensionProviderBase component. Provides access to the extension API but no SDK is\n * provided.\n */\nexport const ExtensionProviderBase: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<BaseExtensionContextData>(\n {} as BaseExtensionContextData\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n setExtensionData((previousState: BaseExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n }\n })\n }\n\n const unloadedCallback = () => {\n // noop\n }\n\n const updateContextData = (contextData: BaseExtensionContextData) => {\n setExtensionData(contextData)\n }\n\n return (\n <ExtensionContextBase.Provider value={extensionData!}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContextBase.Provider>\n )\n}\n"],"file":"ExtensionProviderBase.js"}
1
+ {"version":3,"sources":["../../../src/components/ExtensionProviderBase/ExtensionProviderBase.tsx"],"names":["ExtensionContextBase","React","createContext","undefined","ExtensionProviderBase","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","contextData","previousContextData"],"mappings":";;;;;;;AA0BA;;AAMA;;;;;;;;;;;;;;;;;;AAKO,IAAMA,oBAAoB,GAC/BC,eAAMC,aAAN,CACEC,SADF,CADK;;;;AASA,IAAMC,qBAAuD,GAAG,QAGjE;AAAA,MAHkE;AACtEC,IAAAA;AADsE,GAGlE;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBACxC,EADwC,CAA1C;;AAIA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDH,aAAtD;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAJ,IAAAA,gBAAgB,CAAEQ,aAAD,IAA6C;AAC5D,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEP,aAFhB;AAGEC,QAAAA,gBAHF;AAIEC,QAAAA,OAJF;AAKEE,QAAAA,iBALF;AAMEC,QAAAA,YANF;AAOEF,QAAAA;AAPF;AASD,KAVe,CAAhB;AAWD,GAfD;;AAiBA,MAAMK,gBAAgB,GAAG,MAAM,CAE9B,CAFD;;AAIA,MAAMC,iBAAiB,GACrBC,WADwB,IAErB;AACHZ,IAAAA,gBAAgB,CAAEa,mBAAD,oCACZA,mBADY,GAEZD,WAFY,CAAD,CAAhB;AAID,GAPD;;AASA,SACE,6BAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAEb;AAAtC,KACE,6BAAC,sCAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEU,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGb,QAPH,CADF,CADF;AAaD,CAnDM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContextBase =\n React.createContext<BaseExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n )\n\n/**\n * ExtensionProviderBase component. Provides access to the extension API but no SDK is\n * provided.\n */\nexport const ExtensionProviderBase: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<BaseExtensionContextData>(\n {} as BaseExtensionContextData\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: BaseExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n // noop\n }\n\n const updateContextData = (\n contextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousContextData) => ({\n ...previousContextData,\n ...contextData,\n }))\n }\n\n return (\n <ExtensionContextBase.Provider value={extensionData}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContextBase.Provider>\n )\n}\n"],"file":"ExtensionProviderBase.js"}
@@ -2,14 +2,8 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
2
2
 
3
3
  function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
4
4
 
5
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
6
-
7
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
8
-
9
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
-
11
5
  import isEqual from 'lodash/isEqual';
12
- import React, { useState } from 'react';
6
+ import React, { useEffect, useState, useCallback, useRef } from 'react';
13
7
  import { MemoryRouter } from 'react-router-dom';
14
8
  import { connectExtensionHost } from '@looker/extension-sdk';
15
9
  import { ErrorMessage } from '../ErrorMessage';
@@ -30,23 +24,25 @@ export var ExtensionConnector = _ref => {
30
24
  chattyTimeout,
31
25
  children
32
26
  } = _ref;
27
+ var contextDataRef = useRef(contextData);
33
28
  var [initialRouteData, setInitialRouteData] = useState();
34
29
  var [hostRouteData, setHostRouteData] = useState({
35
30
  route: ''
36
31
  });
37
32
  var [initializing, setInitializing] = useState(true);
38
33
  var [initializeError, setInitializeError] = useState();
39
-
40
- var setInitialRouteAndRouteState = (route, routeState) => {
34
+ useEffect(() => {
35
+ contextDataRef.current = contextData;
36
+ }, [contextData]);
37
+ var setInitialRouteAndRouteState = useCallback((route, routeState) => {
41
38
  if (hostTracksRoute) {
42
39
  setInitialRouteData({
43
40
  route,
44
41
  routeState
45
42
  });
46
43
  }
47
- };
48
-
49
- var hostChangedRoute = (_route, routeState) => {
44
+ }, [hostTracksRoute, setInitialRouteData]);
45
+ var hostChangedRoute = useCallback((_route, routeState) => {
50
46
  var route = _route.startsWith('/') ? _route : '/' + _route;
51
47
 
52
48
  if (route !== hostRouteData.route || !isEqual(routeState, hostRouteData.routeState)) {
@@ -54,14 +50,29 @@ export var ExtensionConnector = _ref => {
54
50
  route,
55
51
  routeState
56
52
  });
57
- updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
53
+ updateContextData({
58
54
  route,
59
55
  routeState
60
- }));
56
+ });
61
57
  }
62
- };
63
-
64
- React.useEffect(() => {
58
+ }, [setHostRouteData, updateContextData]);
59
+ var visualizationDataReceivedCallback = useCallback(visualizationData => {
60
+ updateContextData({
61
+ visualizationData
62
+ });
63
+ }, [updateContextData]);
64
+ var tileHostDataChangedCallback = useCallback(partialHostData => {
65
+ if (contextDataRef.current.tileSDK) {
66
+ var {
67
+ tileSDK
68
+ } = contextDataRef.current;
69
+ tileSDK.tileHostDataChanged(partialHostData);
70
+ updateContextData({
71
+ tileHostData: tileSDK.tileHostData
72
+ });
73
+ }
74
+ }, [updateContextData]);
75
+ useEffect(() => {
65
76
  var initialize = function () {
66
77
  var _ref2 = _asyncToGenerator(function* () {
67
78
  try {
@@ -69,7 +80,9 @@ export var ExtensionConnector = _ref => {
69
80
  setInitialRoute: setInitialRouteAndRouteState,
70
81
  requiredLookerVersion,
71
82
  hostChangedRoute,
72
- chattyTimeout
83
+ chattyTimeout,
84
+ visualizationDataReceivedCallback,
85
+ tileHostDataChangedCallback
73
86
  });
74
87
  connectedCallback(extensionHost);
75
88
  setInitializing(false);
@@ -90,7 +103,7 @@ export var ExtensionConnector = _ref => {
90
103
  unloadedCallback();
91
104
  };
92
105
  }, []);
93
- React.useEffect(() => {
106
+ useEffect(() => {
94
107
  return initializing ? undefined : setupClosePopoversListener(contextData.extensionSDK);
95
108
  }, [initializing]);
96
109
  return React.createElement(React.Fragment, null, initializing ? loadingComponent : React.createElement(React.Fragment, null, initializeError ? React.createElement(ErrorMessage, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ExtensionConnector/ExtensionConnector.tsx"],"names":["isEqual","React","useState","MemoryRouter","connectExtensionHost","ErrorMessage","RouteChangeListener","getInitialRouteEntries","setupClosePopoversListener","ExtensionConnector","contextData","updateContextData","connectedCallback","unloadedCallback","onPathnameChange","onRouteChange","hostTracksRoute","loadingComponent","requiredLookerVersion","chattyTimeout","children","initialRouteData","setInitialRouteData","hostRouteData","setHostRouteData","route","initializing","setInitializing","initializeError","setInitializeError","setInitialRouteAndRouteState","routeState","hostChangedRoute","_route","startsWith","useEffect","initialize","extensionHost","setInitialRoute","error","console","message","undefined","extensionSDK"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport isEqual from 'lodash/isEqual'\nimport React, { useState } from 'react'\nimport { MemoryRouter } from 'react-router-dom'\nimport { connectExtensionHost } from '@looker/extension-sdk'\nimport { ErrorMessage } from '../ErrorMessage'\nimport { RouteChangeListener } from '../RouteChangeListener'\nimport { getInitialRouteEntries } from '../utils/get_initial_route_entries'\nimport { setupClosePopoversListener } from '../utils/setup_close_popovers'\nimport type { ExtensionConnectorProps, RouteData } from './types'\n\n/**\n * ExtensionConnector component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionConnector: React.FC<ExtensionConnectorProps> = ({\n contextData,\n updateContextData,\n connectedCallback,\n unloadedCallback,\n onPathnameChange,\n onRouteChange,\n hostTracksRoute = true,\n loadingComponent,\n requiredLookerVersion,\n chattyTimeout,\n children,\n}) => {\n const [initialRouteData, setInitialRouteData] = useState<RouteData>()\n const [hostRouteData, setHostRouteData] = useState<RouteData>({ route: '' })\n const [initializing, setInitializing] = useState(true)\n const [initializeError, setInitializeError] = useState<string>()\n\n const setInitialRouteAndRouteState = (route: string, routeState?: any) => {\n if (hostTracksRoute) {\n setInitialRouteData({ route, routeState })\n }\n }\n\n const hostChangedRoute = (_route: string, routeState?: any) => {\n const route = _route.startsWith('/') ? _route : '/' + _route\n if (\n route !== hostRouteData.route ||\n !isEqual(routeState, hostRouteData.routeState)\n ) {\n setHostRouteData({ route, routeState })\n updateContextData({\n ...contextData,\n route,\n routeState,\n })\n }\n }\n\n React.useEffect(() => {\n const initialize = async () => {\n try {\n const extensionHost = await connectExtensionHost({\n setInitialRoute: setInitialRouteAndRouteState,\n requiredLookerVersion,\n hostChangedRoute,\n chattyTimeout,\n })\n connectedCallback(extensionHost)\n setInitializing(false)\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error)\n setInitializeError(error.message || 'Extension failed to initialize.')\n setInitializing(false)\n }\n }\n initialize()\n return () => {\n unloadedCallback()\n }\n }, [])\n\n React.useEffect(() => {\n return initializing\n ? undefined\n : setupClosePopoversListener(contextData.extensionSDK)\n }, [initializing])\n\n return (\n <>\n {initializing ? (\n loadingComponent\n ) : (\n <>\n {initializeError ? (\n <ErrorMessage errorMessage={initializeError} />\n ) : (\n <>\n {hostTracksRoute ? (\n <MemoryRouter\n initialEntries={getInitialRouteEntries(initialRouteData)}\n >\n <RouteChangeListener\n onRouteChange={onRouteChange}\n onPathnameChange={onPathnameChange}\n extensionHost={contextData!.extensionSDK}\n hostRoute={hostRouteData.route}\n hostRouteState={hostRouteData.routeState}\n />\n {children}\n </MemoryRouter>\n ) : (\n <>{children}</>\n )}\n </>\n )}\n </>\n )}\n </>\n )\n}\n"],"file":"ExtensionConnector.js"}
1
+ {"version":3,"sources":["../../../../src/components/ExtensionConnector/ExtensionConnector.tsx"],"names":["isEqual","React","useEffect","useState","useCallback","useRef","MemoryRouter","connectExtensionHost","ErrorMessage","RouteChangeListener","getInitialRouteEntries","setupClosePopoversListener","ExtensionConnector","contextData","updateContextData","connectedCallback","unloadedCallback","onPathnameChange","onRouteChange","hostTracksRoute","loadingComponent","requiredLookerVersion","chattyTimeout","children","contextDataRef","initialRouteData","setInitialRouteData","hostRouteData","setHostRouteData","route","initializing","setInitializing","initializeError","setInitializeError","current","setInitialRouteAndRouteState","routeState","hostChangedRoute","_route","startsWith","visualizationDataReceivedCallback","visualizationData","tileHostDataChangedCallback","partialHostData","tileSDK","tileHostDataChanged","tileHostData","initialize","extensionHost","setInitialRoute","error","console","message","undefined","extensionSDK"],"mappings":"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","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport isEqual from 'lodash/isEqual'\nimport React, { useEffect, useState, useCallback, useRef } from 'react'\nimport { MemoryRouter } from 'react-router-dom'\nimport type { RawVisualizationData, TileHostData } from '@looker/extension-sdk'\nimport { connectExtensionHost } from '@looker/extension-sdk'\nimport { ErrorMessage } from '../ErrorMessage'\nimport { RouteChangeListener } from '../RouteChangeListener'\nimport { getInitialRouteEntries } from '../utils/get_initial_route_entries'\nimport { setupClosePopoversListener } from '../utils/setup_close_popovers'\nimport type { ExtensionConnectorProps, RouteData } from './types'\n\n/**\n * ExtensionConnector component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionConnector: React.FC<ExtensionConnectorProps> = ({\n contextData,\n updateContextData,\n connectedCallback,\n unloadedCallback,\n onPathnameChange,\n onRouteChange,\n hostTracksRoute = true,\n loadingComponent,\n requiredLookerVersion,\n chattyTimeout,\n children,\n}) => {\n const contextDataRef = useRef(contextData)\n const [initialRouteData, setInitialRouteData] = useState<RouteData>()\n const [hostRouteData, setHostRouteData] = useState<RouteData>({ route: '' })\n const [initializing, setInitializing] = useState(true)\n const [initializeError, setInitializeError] = useState<string>()\n\n useEffect(() => {\n contextDataRef.current = contextData\n }, [contextData])\n\n const setInitialRouteAndRouteState = useCallback(\n (route: string, routeState?: any) => {\n if (hostTracksRoute) {\n setInitialRouteData({ route, routeState })\n }\n },\n [hostTracksRoute, setInitialRouteData]\n )\n\n const hostChangedRoute = useCallback(\n (_route: string, routeState?: any) => {\n const route = _route.startsWith('/') ? _route : '/' + _route\n if (\n route !== hostRouteData.route ||\n !isEqual(routeState, hostRouteData.routeState)\n ) {\n setHostRouteData({ route, routeState })\n updateContextData({\n route,\n routeState,\n })\n }\n },\n [setHostRouteData, updateContextData]\n )\n\n const visualizationDataReceivedCallback = useCallback(\n (visualizationData: RawVisualizationData) => {\n updateContextData({\n visualizationData,\n })\n },\n [updateContextData]\n )\n\n const tileHostDataChangedCallback = useCallback(\n (partialHostData: Partial<TileHostData>) => {\n if (contextDataRef.current.tileSDK) {\n const { tileSDK } = contextDataRef.current\n tileSDK.tileHostDataChanged(partialHostData)\n updateContextData({\n tileHostData: tileSDK.tileHostData,\n })\n }\n },\n [updateContextData]\n )\n\n useEffect(() => {\n const initialize = async () => {\n try {\n const extensionHost = await connectExtensionHost({\n setInitialRoute: setInitialRouteAndRouteState,\n requiredLookerVersion,\n hostChangedRoute,\n chattyTimeout,\n visualizationDataReceivedCallback,\n tileHostDataChangedCallback,\n })\n connectedCallback(extensionHost)\n setInitializing(false)\n } catch (error: any) {\n // eslint-disable-next-line no-console\n console.error(error)\n setInitializeError(error.message || 'Extension failed to initialize.')\n setInitializing(false)\n }\n }\n initialize()\n return () => {\n unloadedCallback()\n }\n }, [])\n\n useEffect(() => {\n return initializing\n ? undefined\n : setupClosePopoversListener(contextData.extensionSDK)\n }, [initializing])\n\n return (\n <>\n {initializing ? (\n loadingComponent\n ) : (\n <>\n {initializeError ? (\n <ErrorMessage errorMessage={initializeError} />\n ) : (\n <>\n {hostTracksRoute ? (\n <MemoryRouter\n initialEntries={getInitialRouteEntries(initialRouteData)}\n >\n <RouteChangeListener\n onRouteChange={onRouteChange}\n onPathnameChange={onPathnameChange}\n extensionHost={contextData!.extensionSDK}\n hostRoute={hostRouteData.route}\n hostRouteState={hostRouteData.routeState}\n />\n {children}\n </MemoryRouter>\n ) : (\n <>{children}</>\n )}\n </>\n )}\n </>\n )}\n </>\n )\n}\n"],"file":"ExtensionConnector.js"}
@@ -29,12 +29,28 @@ export var ExtensionProvider = _ref => {
29
29
  var core40SDK = LookerExtensionSDK.create40Client(extensionHost);
30
30
  registerCore31SDK(core31SDK);
31
31
  registerCore40SDK(core40SDK);
32
+ var {
33
+ visualizationSDK,
34
+ tileSDK,
35
+ lookerHostData
36
+ } = extensionHost;
37
+ var {
38
+ visualizationData
39
+ } = visualizationSDK;
40
+ var {
41
+ tileHostData
42
+ } = tileSDK;
32
43
  setExtensionData(previousState => {
33
44
  return _objectSpread(_objectSpread({}, previousState), {}, {
34
45
  extensionSDK: extensionHost,
35
46
  coreSDK: core31SDK,
36
47
  core31SDK,
37
- core40SDK
48
+ core40SDK,
49
+ visualizationSDK,
50
+ tileSDK,
51
+ visualizationData,
52
+ tileHostData,
53
+ lookerHostData
38
54
  });
39
55
  });
40
56
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ExtensionProvider/ExtensionProvider.tsx"],"names":["React","useState","LookerExtensionSDK","ExtensionConnector","registerCore31SDK","unregisterCore31SDK","registerCore40SDK","unregisterCore40SDK","ExtensionContext","createContext","undefined","ExtensionProvider","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","core31SDK","create31Client","core40SDK","create40Client","previousState","extensionSDK","coreSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,kBAAT,QAAmC,uBAAnC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AAMA,OAAO,IAAMC,gBAAgB,GAAGR,KAAK,CAACS,aAAN,CAC9BC,SAD8B,CAAzB;AAQP,OAAO,IAAMC,iBAAmD,GAAG,QAG7D;AAAA,MAH8D;AAClEC,IAAAA;AADkE,GAG9D;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCd,QAAQ,CAChD,EADgD,CAAlD;;AAGA,MAAMe,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,SAAsB,GAC1BhB,kBAAkB,CAACiB,cAAnB,CAAkCF,aAAlC,CADF;AAEA,QAAMG,SAAsB,GAC1BlB,kBAAkB,CAACmB,cAAnB,CAAkCJ,aAAlC,CADF;AAGAb,IAAAA,iBAAiB,CAACc,SAAD,CAAjB;AACAZ,IAAAA,iBAAiB,CAACc,SAAD,CAAjB;AACAL,IAAAA,gBAAgB,CAAEO,aAAD,IAAyC;AACxD,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEN,aAFhB;AAGEO,QAAAA,OAAO,EAAEN,SAHX;AAIEA,QAAAA,SAJF;AAKEE,QAAAA;AALF;AAOD,KARe,CAAhB;AASD,GAjBD;;AAmBA,MAAMK,gBAAgB,GAAG,MAAM;AAC7BpB,IAAAA,mBAAmB;AACnBE,IAAAA,mBAAmB;AACpB,GAHD;;AAKA,MAAMmB,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1EZ,IAAAA,gBAAgB,CAAEO,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,oBAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAEb;AAAlC,KACE,oBAAC,kBAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEU,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGb,QAPH,CADF,CADF;AAaD,CArDM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { Looker31SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore31SDK, unregisterCore31SDK } from '../../sdk/core_sdk_31'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\nimport type { ExtensionContextData } from './types'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext = React.createContext<ExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n)\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport const ExtensionProvider: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<ExtensionContextData>(\n {} as ExtensionContextData\n )\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const core31SDK: Looker31SDK =\n LookerExtensionSDK.create31Client(extensionHost)\n const core40SDK: Looker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n // Provide global access for use by redux if needed\n registerCore31SDK(core31SDK)\n registerCore40SDK(core40SDK)\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK: core31SDK,\n core31SDK,\n core40SDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore31SDK()\n unregisterCore40SDK()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext.Provider value={extensionData!}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext.Provider>\n )\n}\n"],"file":"ExtensionProvider.js"}
1
+ {"version":3,"sources":["../../../../src/components/ExtensionProvider/ExtensionProvider.tsx"],"names":["React","useState","LookerExtensionSDK","ExtensionConnector","registerCore31SDK","unregisterCore31SDK","registerCore40SDK","unregisterCore40SDK","ExtensionContext","createContext","undefined","ExtensionProvider","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","core31SDK","create31Client","core40SDK","create40Client","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","coreSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,kBAAT,QAAmC,uBAAnC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AAMA,OAAO,IAAMC,gBAAgB,GAAGR,KAAK,CAACS,aAAN,CAC9BC,SAD8B,CAAzB;AASP,OAAO,IAAMC,iBAAmD,GAAG,QAG7D;AAAA,MAH8D;AAClEC,IAAAA;AADkE,GAG9D;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCd,QAAQ,CAChD,EADgD,CAAlD;;AAGA,MAAMe,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,SAAsB,GAC1BhB,kBAAkB,CAACiB,cAAnB,CAAkCF,aAAlC,CADF;AAEA,QAAMG,SAAsB,GAC1BlB,kBAAkB,CAACmB,cAAnB,CAAkCJ,aAAlC,CADF;AAGAb,IAAAA,iBAAiB,CAACc,SAAD,CAAjB;AACAZ,IAAAA,iBAAiB,CAACc,SAAD,CAAjB;AACA,QAAM;AAAEE,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDP,aAAtD;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAR,IAAAA,gBAAgB,CAAEY,aAAD,IAAyC;AACxD,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEX,aAFhB;AAGEY,QAAAA,OAAO,EAAEX,SAHX;AAIEA,QAAAA,SAJF;AAKEE,QAAAA,SALF;AAMEE,QAAAA,gBANF;AAOEC,QAAAA,OAPF;AAQEE,QAAAA,iBARF;AASEC,QAAAA,YATF;AAUEF,QAAAA;AAVF;AAYD,KAbe,CAAhB;AAcD,GAzBD;;AA2BA,MAAMM,gBAAgB,GAAG,MAAM;AAC7BzB,IAAAA,mBAAmB;AACnBE,IAAAA,mBAAmB;AACpB,GAHD;;AAKA,MAAMwB,iBAAiB,GACrBC,kBADwB,IAErB;AACHjB,IAAAA,gBAAgB,CAAEY,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,oBAAC,gBAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAElB;AAAlC,KACE,oBAAC,kBAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEe,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGlB,QAPH,CADF,CADF;AAaD,CA/DM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { Looker31SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore31SDK, unregisterCore31SDK } from '../../sdk/core_sdk_31'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\nimport type { ExtensionContextData } from './types'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext = React.createContext<ExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n)\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n * @deprecated use ExtensionProvider40\n */\nexport const ExtensionProvider: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<ExtensionContextData>(\n {} as ExtensionContextData\n )\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const core31SDK: Looker31SDK =\n LookerExtensionSDK.create31Client(extensionHost)\n const core40SDK: Looker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n // Provide global access for use by redux if needed\n registerCore31SDK(core31SDK)\n registerCore40SDK(core40SDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK: core31SDK,\n core31SDK,\n core40SDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore31SDK()\n unregisterCore40SDK()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext.Provider value={extensionData}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext.Provider>\n )\n}\n"],"file":"ExtensionProvider.js"}
@@ -34,10 +34,26 @@ export function ExtensionProvider2(props) {
34
34
  }
35
35
 
36
36
  registerCoreSDK2(coreSDK);
37
+ var {
38
+ visualizationSDK,
39
+ tileSDK,
40
+ lookerHostData
41
+ } = extensionHost;
42
+ var {
43
+ visualizationData
44
+ } = visualizationSDK;
45
+ var {
46
+ tileHostData
47
+ } = tileSDK;
37
48
  setExtensionData(previousState => {
38
49
  return _objectSpread(_objectSpread({}, previousState), {}, {
39
50
  extensionSDK: extensionHost,
40
- coreSDK
51
+ coreSDK,
52
+ visualizationSDK,
53
+ tileSDK,
54
+ visualizationData,
55
+ tileHostData,
56
+ lookerHostData
41
57
  });
42
58
  });
43
59
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ExtensionProvider2/ExtensionProvider2.tsx"],"names":["React","useState","SdkConnection","LookerExtensionSDK","ExtensionConnector","registerCoreSDK2","unregisterCoreSDK2","ExtensionContext2","createContext","undefined","ExtensionProvider2","props","children","type","rest","extensionData","setExtensionData","apiVersion","ApiVersion","connectedCallback","extensionHost","coreSDK","createClient","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,kBAAT,QAAmC,aAAnC;AAKA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,gBAAT,EAA2BC,kBAA3B,QAAqD,qBAArD;AASA,OAAO,IAAMC,iBAAiB,GAAGP,KAAK,CAACQ,aAAN,CAG/BC,SAH+B,CAA1B;AAcP,OAAO,SAASC,kBAAT,CAA+BC,KAA/B,EAAkE;AACvE,MAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,KAApC;AAAA,MAA2BG,IAA3B,4BAAoCH,KAApC;;AACA,MAAM,CAACI,aAAD,EAAgBC,gBAAhB,IAAoCf,QAAQ,CAChD,EADgD,CAAlD;AAGA,MAAMgB,UAAU,GAAIJ,IAAD,CAAcK,UAAjC;;AAEA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAIC,OAAJ;;AACA,QAAIJ,UAAJ,EAAgB;AACdI,MAAAA,OAAO,GAAGlB,kBAAkB,CAACmB,YAAnB,CACR,IAAIpB,aAAJ,CAAkBkB,aAAlB,EAAiCH,UAAjC,CADQ,EAERJ,IAFQ,CAAV;AAID;;AACDR,IAAAA,gBAAgB,CAACgB,OAAD,CAAhB;AACAL,IAAAA,gBAAgB,CAAEO,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEJ,aAFhB;AAGEC,QAAAA;AAHF;AAKD,KANe,CAAhB;AAOD,GAhBD;;AAkBA,MAAMI,gBAAgB,GAAG,MAAM;AAC7BnB,IAAAA,kBAAkB;AACnB,GAFD;;AAIA,MAAMoB,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1EX,IAAAA,gBAAgB,CAAEO,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,oBAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEZ;AAAnC,KACE,oBAAC,kBAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEI,iBAHrB;AAIE,IAAA,iBAAiB,EAAEO,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGb,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { SdkConnection } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCoreSDK2, unregisterCoreSDK2 } from '../../sdk/core_sdk2'\n\nexport interface ExtensionContextData2<T> extends BaseExtensionContextData {\n coreSDK: T\n}\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext2 = React.createContext<\n ExtensionContextData2<any>\n>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider2Props<T> extends ExtensionProviderProps {\n type: T\n}\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport function ExtensionProvider2<T>(props: ExtensionProvider2Props<T>) {\n const { children, type, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData2<T>>(\n {} as ExtensionContextData2<T>\n )\n const apiVersion = (type as any).ApiVersion\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n let coreSDK: any\n if (apiVersion) {\n coreSDK = LookerExtensionSDK.createClient(\n new SdkConnection(extensionHost, apiVersion),\n type as any\n )\n }\n registerCoreSDK2(coreSDK)\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCoreSDK2()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData2<T>) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext2.Provider value={extensionData!}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext2.Provider>\n )\n}\n"],"file":"ExtensionProvider2.js"}
1
+ {"version":3,"sources":["../../../../src/components/ExtensionProvider2/ExtensionProvider2.tsx"],"names":["React","useState","SdkConnection","LookerExtensionSDK","ExtensionConnector","registerCoreSDK2","unregisterCoreSDK2","ExtensionContext2","createContext","undefined","ExtensionProvider2","props","children","type","rest","extensionData","setExtensionData","apiVersion","ApiVersion","connectedCallback","extensionHost","coreSDK","createClient","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,aAAT,QAA8B,uBAA9B;AACA,SAASC,kBAAT,QAAmC,aAAnC;AAKA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,gBAAT,EAA2BC,kBAA3B,QAAqD,qBAArD;AASA,OAAO,IAAMC,iBAAiB,GAAGP,KAAK,CAACQ,aAAN,CAG/BC,SAH+B,CAA1B;AAcP,OAAO,SAASC,kBAAT,CAA+BC,KAA/B,EAAkE;AACvE,MAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAA8BF,KAApC;AAAA,MAA2BG,IAA3B,4BAAoCH,KAApC;;AACA,MAAM,CAACI,aAAD,EAAgBC,gBAAhB,IAAoCf,QAAQ,CAChD,EADgD,CAAlD;AAGA,MAAMgB,UAAU,GAAIJ,IAAD,CAAcK,UAAjC;;AAEA,MAAMC,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAIC,OAAJ;;AACA,QAAIJ,UAAJ,EAAgB;AACdI,MAAAA,OAAO,GAAGlB,kBAAkB,CAACmB,YAAnB,CACR,IAAIpB,aAAJ,CAAkBkB,aAAlB,EAAiCH,UAAjC,CADQ,EAERJ,IAFQ,CAAV;AAID;;AACDR,IAAAA,gBAAgB,CAACgB,OAAD,CAAhB;AACA,QAAM;AAAEE,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDL,aAAtD;AACA,QAAM;AAAEM,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAR,IAAAA,gBAAgB,CAAEY,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAET,aAFhB;AAGEC,QAAAA,OAHF;AAIEE,QAAAA,gBAJF;AAKEC,QAAAA,OALF;AAMEE,QAAAA,iBANF;AAOEC,QAAAA,YAPF;AAQEF,QAAAA;AARF;AAUD,KAXe,CAAhB;AAYD,GAxBD;;AA0BA,MAAMK,gBAAgB,GAAG,MAAM;AAC7BxB,IAAAA,kBAAkB;AACnB,GAFD;;AAIA,MAAMyB,iBAAiB,GACrBC,kBADwB,IAErB;AACHhB,IAAAA,gBAAgB,CAAEY,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,oBAAC,iBAAD,CAAmB,QAAnB;AAA4B,IAAA,KAAK,EAAEjB;AAAnC,KACE,oBAAC,kBAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEI,iBAHrB;AAIE,IAAA,iBAAiB,EAAEY,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGlB,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { SdkConnection } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCoreSDK2, unregisterCoreSDK2 } from '../../sdk/core_sdk2'\n\nexport interface ExtensionContextData2<T> extends BaseExtensionContextData {\n coreSDK: T\n}\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContext2 = React.createContext<\n ExtensionContextData2<any>\n>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider2Props<T> extends ExtensionProviderProps {\n type: T\n}\n\n/**\n * ExtensionProvider component. Provides access to the extension API and SDK (use\n * ExtensionContext) and react routing services.\n */\nexport function ExtensionProvider2<T>(props: ExtensionProvider2Props<T>) {\n const { children, type, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData2<T>>(\n {} as ExtensionContextData2<T>\n )\n const apiVersion = (type as any).ApiVersion\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n let coreSDK: any\n if (apiVersion) {\n coreSDK = LookerExtensionSDK.createClient(\n new SdkConnection(extensionHost, apiVersion),\n type as any\n )\n }\n registerCoreSDK2(coreSDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCoreSDK2()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData2<T>) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext2.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext2.Provider>\n )\n}\n"],"file":"ExtensionProvider2.js"}
@@ -26,10 +26,26 @@ export function ExtensionProvider40(props) {
26
26
  var connectedCallback = extensionHost => {
27
27
  var coreSDK = LookerExtensionSDK.create40Client(extensionHost);
28
28
  registerCore40SDK(coreSDK);
29
+ var {
30
+ visualizationSDK,
31
+ tileSDK,
32
+ lookerHostData
33
+ } = extensionHost;
34
+ var {
35
+ visualizationData
36
+ } = visualizationSDK;
37
+ var {
38
+ tileHostData
39
+ } = tileSDK;
29
40
  setExtensionData(previousState => {
30
41
  return _objectSpread(_objectSpread({}, previousState), {}, {
31
42
  extensionSDK: extensionHost,
32
- coreSDK
43
+ coreSDK,
44
+ visualizationSDK,
45
+ tileSDK,
46
+ visualizationData,
47
+ tileHostData,
48
+ lookerHostData
33
49
  });
34
50
  });
35
51
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ExtensionProvider40/ExtensionProvider40.tsx"],"names":["React","useState","LookerExtensionSDK","ExtensionConnector","registerCore40SDK","unregisterCore40SDK","ExtensionContext40","createContext","undefined","ExtensionProvider40","props","children","rest","extensionData","setExtensionData","connectedCallback","extensionHost","coreSDK","create40Client","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,kBAAT,QAAmC,uBAAnC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AASA,OAAO,IAAMC,kBAAkB,GAAGN,KAAK,CAACO,aAAN,CAChCC,SADgC,CAA3B;AAUP,OAAO,SAASC,mBAAT,CAA6BC,KAA7B,EAA8D;AACnE,MAAM;AAAEC,IAAAA;AAAF,MAAwBD,KAA9B;AAAA,MAAqBE,IAArB,4BAA8BF,KAA9B;;AACA,MAAM,CAACG,aAAD,EAAgBC,gBAAhB,IAAoCb,QAAQ,CAChD,EADgD,CAAlD;;AAIA,MAAMc,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,OAAqB,GACzBf,kBAAkB,CAACgB,cAAnB,CAAkCF,aAAlC,CADF;AAEAZ,IAAAA,iBAAiB,CAACa,OAAD,CAAjB;AACAH,IAAAA,gBAAgB,CAAEK,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEJ,aAFhB;AAGEC,QAAAA;AAHF;AAKD,KANe,CAAhB;AAOD,GAXD;;AAaA,MAAMI,gBAAgB,GAAG,MAAM;AAC7BhB,IAAAA,mBAAmB;AACpB,GAFD;;AAIA,MAAMiB,iBAAiB,GAAIC,kBAAD,IAAkD;AAC1ET,IAAAA,gBAAgB,CAAEK,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,SACE,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEV;AAApC,KACE,oBAAC,kBAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEO,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGV,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { ILooker40SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\n\nexport interface ExtensionContextData40 extends BaseExtensionContextData {\n coreSDK: ILooker40SDK\n}\n\n/**\n * React context provider for extension API and Looker SDK 4.0.\n */\nexport const ExtensionContext40 = React.createContext<ExtensionContextData40>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider40Props extends ExtensionProviderProps {}\n\n/**\n * ExtensionProvider40 component. Provides access to the extension API and SDK (use\n * ExtensionContext40) and react routing services.\n */\nexport function ExtensionProvider40(props: ExtensionProvider40Props) {\n const { children, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData40>(\n {} as ExtensionContextData40\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const coreSDK: ILooker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n registerCore40SDK(coreSDK as Looker40SDK)\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore40SDK()\n }\n\n const updateContextData = (updatedContextData: BaseExtensionContextData) => {\n setExtensionData((previousState: ExtensionContextData40) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext40.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext40.Provider>\n )\n}\n"],"file":"ExtensionProvider40.js"}
1
+ {"version":3,"sources":["../../../../src/components/ExtensionProvider40/ExtensionProvider40.tsx"],"names":["React","useState","LookerExtensionSDK","ExtensionConnector","registerCore40SDK","unregisterCore40SDK","ExtensionContext40","createContext","undefined","ExtensionProvider40","props","children","rest","extensionData","setExtensionData","connectedCallback","extensionHost","coreSDK","create40Client","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","updatedContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAEA,SAASC,kBAAT,QAAmC,uBAAnC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AACA,SAASC,iBAAT,EAA4BC,mBAA5B,QAAuD,uBAAvD;AASA,OAAO,IAAMC,kBAAkB,GAAGN,KAAK,CAACO,aAAN,CAChCC,SADgC,CAA3B;AAUP,OAAO,SAASC,mBAAT,CAA6BC,KAA7B,EAA8D;AACnE,MAAM;AAAEC,IAAAA;AAAF,MAAwBD,KAA9B;AAAA,MAAqBE,IAArB,4BAA8BF,KAA9B;;AACA,MAAM,CAACG,aAAD,EAAgBC,gBAAhB,IAAoCb,QAAQ,CAChD,EADgD,CAAlD;;AAIA,MAAMc,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAMC,OAAqB,GACzBf,kBAAkB,CAACgB,cAAnB,CAAkCF,aAAlC,CADF;AAEAZ,IAAAA,iBAAiB,CAACa,OAAD,CAAjB;AACA,QAAM;AAAEE,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDL,aAAtD;AACA,QAAM;AAAEM,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAN,IAAAA,gBAAgB,CAAEU,aAAD,IAAwB;AACvC,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAET,aAFhB;AAGEC,QAAAA,OAHF;AAIEE,QAAAA,gBAJF;AAKEC,QAAAA,OALF;AAMEE,QAAAA,iBANF;AAOEC,QAAAA,YAPF;AAQEF,QAAAA;AARF;AAUD,KAXe,CAAhB;AAYD,GAnBD;;AAqBA,MAAMK,gBAAgB,GAAG,MAAM;AAC7BrB,IAAAA,mBAAmB;AACpB,GAFD;;AAIA,MAAMsB,iBAAiB,GACrBC,kBADwB,IAErB;AACHd,IAAAA,gBAAgB,CAAEU,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GATD;;AAWA,SACE,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEf;AAApC,KACE,oBAAC,kBAAD,eACMD,IADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEY,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGf,QAPH,CADF,CADF;AAaD","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2022 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport { LookerExtensionSDK } from '@looker/extension-sdk'\nimport type { ILooker40SDK, Looker40SDK } from '@looker/sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\nimport { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40'\n\nexport interface ExtensionContextData40 extends BaseExtensionContextData {\n coreSDK: ILooker40SDK\n}\n\n/**\n * React context provider for extension API and Looker SDK 4.0.\n */\nexport const ExtensionContext40 = React.createContext<ExtensionContextData40>(\n undefined as any // no one will ever see this undefined!\n)\n\nexport interface ExtensionProvider40Props extends ExtensionProviderProps {}\n\n/**\n * ExtensionProvider40 component. Provides access to the extension API and SDK (use\n * ExtensionContext40) and react routing services.\n */\nexport function ExtensionProvider40(props: ExtensionProvider40Props) {\n const { children, ...rest } = props\n const [extensionData, setExtensionData] = useState<ExtensionContextData40>(\n {} as ExtensionContextData40\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const coreSDK: ILooker40SDK =\n LookerExtensionSDK.create40Client(extensionHost)\n registerCore40SDK(coreSDK as Looker40SDK)\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: any) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n coreSDK,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n unregisterCore40SDK()\n }\n\n const updateContextData = (\n updatedContextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousState: ExtensionContextData40) => {\n return {\n ...previousState,\n ...updatedContextData,\n }\n })\n }\n\n return (\n <ExtensionContext40.Provider value={extensionData}>\n <ExtensionConnector\n {...rest}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContext40.Provider>\n )\n}\n"],"file":"ExtensionProvider40.js"}
@@ -22,9 +22,25 @@ export var ExtensionProviderBase = _ref => {
22
22
  var [extensionData, setExtensionData] = useState({});
23
23
 
24
24
  var connectedCallback = extensionHost => {
25
+ var {
26
+ visualizationSDK,
27
+ tileSDK,
28
+ lookerHostData
29
+ } = extensionHost;
30
+ var {
31
+ visualizationData
32
+ } = visualizationSDK;
33
+ var {
34
+ tileHostData
35
+ } = tileSDK;
25
36
  setExtensionData(previousState => {
26
37
  return _objectSpread(_objectSpread({}, previousState), {}, {
27
- extensionSDK: extensionHost
38
+ extensionSDK: extensionHost,
39
+ visualizationSDK,
40
+ tileSDK,
41
+ visualizationData,
42
+ tileHostData,
43
+ lookerHostData
28
44
  });
29
45
  });
30
46
  };
@@ -32,7 +48,7 @@ export var ExtensionProviderBase = _ref => {
32
48
  var unloadedCallback = () => {};
33
49
 
34
50
  var updateContextData = contextData => {
35
- setExtensionData(contextData);
51
+ setExtensionData(previousContextData => _objectSpread(_objectSpread({}, previousContextData), contextData));
36
52
  };
37
53
 
38
54
  return React.createElement(ExtensionContextBase.Provider, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ExtensionProviderBase/ExtensionProviderBase.tsx"],"names":["React","useState","ExtensionConnector","ExtensionContextBase","createContext","undefined","ExtensionProviderBase","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","previousState","extensionSDK","unloadedCallback","updateContextData","contextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AAKA,OAAO,IAAMC,oBAAoB,GAC/BH,KAAK,CAACI,aAAN,CACEC,SADF,CADK;AASP,OAAO,IAAMC,qBAAuD,GAAG,QAGjE;AAAA,MAHkE;AACtEC,IAAAA;AADsE,GAGlE;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCT,QAAQ,CAChD,EADgD,CAAlD;;AAIA,MAAMU,iBAAiB,GAAIC,aAAD,IAAqC;AAC7DF,IAAAA,gBAAgB,CAAEG,aAAD,IAA6C;AAC5D,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEF;AAFhB;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,MAAMG,gBAAgB,GAAG,MAAM,CAE9B,CAFD;;AAIA,MAAMC,iBAAiB,GAAIC,WAAD,IAA2C;AACnEP,IAAAA,gBAAgB,CAACO,WAAD,CAAhB;AACD,GAFD;;AAIA,SACE,oBAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAER;AAAtC,KACE,oBAAC,kBAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEK,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGR,QAPH,CADF,CADF;AAaD,CAtCM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContextBase =\n React.createContext<BaseExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n )\n\n/**\n * ExtensionProviderBase component. Provides access to the extension API but no SDK is\n * provided.\n */\nexport const ExtensionProviderBase: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<BaseExtensionContextData>(\n {} as BaseExtensionContextData\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n setExtensionData((previousState: BaseExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n }\n })\n }\n\n const unloadedCallback = () => {\n // noop\n }\n\n const updateContextData = (contextData: BaseExtensionContextData) => {\n setExtensionData(contextData)\n }\n\n return (\n <ExtensionContextBase.Provider value={extensionData!}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContextBase.Provider>\n )\n}\n"],"file":"ExtensionProviderBase.js"}
1
+ {"version":3,"sources":["../../../../src/components/ExtensionProviderBase/ExtensionProviderBase.tsx"],"names":["React","useState","ExtensionConnector","ExtensionContextBase","createContext","undefined","ExtensionProviderBase","children","props","extensionData","setExtensionData","connectedCallback","extensionHost","visualizationSDK","tileSDK","lookerHostData","visualizationData","tileHostData","previousState","extensionSDK","unloadedCallback","updateContextData","contextData","previousContextData"],"mappings":";;;;;;;;;;;;AA0BA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AAMA,SAASC,kBAAT,QAAmC,uBAAnC;AAKA,OAAO,IAAMC,oBAAoB,GAC/BH,KAAK,CAACI,aAAN,CACEC,SADF,CADK;AASP,OAAO,IAAMC,qBAAuD,GAAG,QAGjE;AAAA,MAHkE;AACtEC,IAAAA;AADsE,GAGlE;AAAA,MADDC,KACC;;AACJ,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoCT,QAAQ,CAChD,EADgD,CAAlD;;AAIA,MAAMU,iBAAiB,GAAIC,aAAD,IAAqC;AAC7D,QAAM;AAAEC,MAAAA,gBAAF;AAAoBC,MAAAA,OAApB;AAA6BC,MAAAA;AAA7B,QAAgDH,aAAtD;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAwBH,gBAA9B;AACA,QAAM;AAAEI,MAAAA;AAAF,QAAmBH,OAAzB;AACAJ,IAAAA,gBAAgB,CAAEQ,aAAD,IAA6C;AAC5D,6CACKA,aADL;AAEEC,QAAAA,YAAY,EAAEP,aAFhB;AAGEC,QAAAA,gBAHF;AAIEC,QAAAA,OAJF;AAKEE,QAAAA,iBALF;AAMEC,QAAAA,YANF;AAOEF,QAAAA;AAPF;AASD,KAVe,CAAhB;AAWD,GAfD;;AAiBA,MAAMK,gBAAgB,GAAG,MAAM,CAE9B,CAFD;;AAIA,MAAMC,iBAAiB,GACrBC,WADwB,IAErB;AACHZ,IAAAA,gBAAgB,CAAEa,mBAAD,oCACZA,mBADY,GAEZD,WAFY,CAAD,CAAhB;AAID,GAPD;;AASA,SACE,oBAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAEb;AAAtC,KACE,oBAAC,kBAAD,eACMD,KADN;AAEE,IAAA,WAAW,EAAEC,aAFf;AAGE,IAAA,iBAAiB,EAAEE,iBAHrB;AAIE,IAAA,iBAAiB,EAAEU,iBAJrB;AAKE,IAAA,gBAAgB,EAAED;AALpB,MAOGb,QAPH,CADF,CADF;AAaD,CAnDM","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nimport React, { useState } from 'react'\nimport type { ExtensionHostApi } from '@looker/extension-sdk'\nimport type {\n BaseExtensionContextData,\n ExtensionProviderProps,\n} from '../ExtensionConnector'\nimport { ExtensionConnector } from '../ExtensionConnector'\n\n/**\n * React context provider for extension API and SDK\n */\nexport const ExtensionContextBase =\n React.createContext<BaseExtensionContextData>(\n undefined as any // no one will ever see this undefined!\n )\n\n/**\n * ExtensionProviderBase component. Provides access to the extension API but no SDK is\n * provided.\n */\nexport const ExtensionProviderBase: React.FC<ExtensionProviderProps> = ({\n children,\n ...props\n}) => {\n const [extensionData, setExtensionData] = useState<BaseExtensionContextData>(\n {} as BaseExtensionContextData\n )\n\n const connectedCallback = (extensionHost: ExtensionHostApi) => {\n const { visualizationSDK, tileSDK, lookerHostData } = extensionHost\n const { visualizationData } = visualizationSDK\n const { tileHostData } = tileSDK\n setExtensionData((previousState: BaseExtensionContextData) => {\n return {\n ...previousState,\n extensionSDK: extensionHost,\n visualizationSDK,\n tileSDK,\n visualizationData,\n tileHostData,\n lookerHostData,\n }\n })\n }\n\n const unloadedCallback = () => {\n // noop\n }\n\n const updateContextData = (\n contextData: Partial<BaseExtensionContextData>\n ) => {\n setExtensionData((previousContextData) => ({\n ...previousContextData,\n ...contextData,\n }))\n }\n\n return (\n <ExtensionContextBase.Provider value={extensionData}>\n <ExtensionConnector\n {...props}\n contextData={extensionData}\n connectedCallback={connectedCallback}\n updateContextData={updateContextData}\n unloadedCallback={unloadedCallback}\n >\n {children}\n </ExtensionConnector>\n </ExtensionContextBase.Provider>\n )\n}\n"],"file":"ExtensionProviderBase.js"}
package/lib/esm/index.js CHANGED
@@ -6,6 +6,6 @@ export * from './components/ExtensionProvider40/ExtensionProvider40';
6
6
  export * from './components/ExtensionConnector/types';
7
7
  export * from './sdk/core_sdk_31';
8
8
  export * from './sdk/core_sdk_40';
9
- export * from './sdk/core_sdk2';
10
9
  export * from './sdk/core_sdk';
10
+ export * from './sdk/core_sdk2';
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.tsx"],"names":[],"mappings":"AA0BA,cAAc,kDAAd;AACA,cAAc,sCAAd;AACA,cAAc,oDAAd;AACA,cAAc,0DAAd;AACA,cAAc,sDAAd;AACA,cAAc,uCAAd;AACA,cAAc,mBAAd;AACA,cAAc,mBAAd;AACA,cAAc,iBAAd;AACA,cAAc,gBAAd","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './components/ExtensionProvider/ExtensionProvider'\nexport * from './components/ExtensionProvider/types'\nexport * from './components/ExtensionProvider2/ExtensionProvider2'\nexport * from './components/ExtensionProviderBase/ExtensionProviderBase'\nexport * from './components/ExtensionProvider40/ExtensionProvider40'\nexport * from './components/ExtensionConnector/types'\nexport * from './sdk/core_sdk_31'\nexport * from './sdk/core_sdk_40'\nexport * from './sdk/core_sdk2'\nexport * from './sdk/core_sdk'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.tsx"],"names":[],"mappings":"AA0BA,cAAc,kDAAd;AACA,cAAc,sCAAd;AACA,cAAc,oDAAd;AACA,cAAc,0DAAd;AACA,cAAc,sDAAd;AACA,cAAc,uCAAd;AACA,cAAc,mBAAd;AACA,cAAc,mBAAd;AACA,cAAc,gBAAd;AACA,cAAc,iBAAd","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './components/ExtensionProvider/ExtensionProvider'\nexport * from './components/ExtensionProvider/types'\nexport * from './components/ExtensionProvider2/ExtensionProvider2'\nexport * from './components/ExtensionProviderBase/ExtensionProviderBase'\nexport * from './components/ExtensionProvider40/ExtensionProvider40'\nexport * from './components/ExtensionConnector/types'\nexport * from './sdk/core_sdk_31'\nexport * from './sdk/core_sdk_40'\nexport * from './sdk/core_sdk'\nexport * from './sdk/core_sdk2'\n"],"file":"index.js"}
package/lib/index.d.ts CHANGED
@@ -6,5 +6,5 @@ export * from './components/ExtensionProvider40/ExtensionProvider40';
6
6
  export * from './components/ExtensionConnector/types';
7
7
  export * from './sdk/core_sdk_31';
8
8
  export * from './sdk/core_sdk_40';
9
- export * from './sdk/core_sdk2';
10
9
  export * from './sdk/core_sdk';
10
+ export * from './sdk/core_sdk2';
package/lib/index.js CHANGED
@@ -108,7 +108,7 @@ Object.keys(_core_sdk_2).forEach(function (key) {
108
108
  });
109
109
  });
110
110
 
111
- var _core_sdk = require("./sdk/core_sdk2");
111
+ var _core_sdk = require("./sdk/core_sdk");
112
112
 
113
113
  Object.keys(_core_sdk).forEach(function (key) {
114
114
  if (key === "default" || key === "__esModule") return;
@@ -121,7 +121,7 @@ Object.keys(_core_sdk).forEach(function (key) {
121
121
  });
122
122
  });
123
123
 
124
- var _core_sdk2 = require("./sdk/core_sdk");
124
+ var _core_sdk2 = require("./sdk/core_sdk2");
125
125
 
126
126
  Object.keys(_core_sdk2).forEach(function (key) {
127
127
  if (key === "default" || key === "__esModule") return;
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;AA0BA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './components/ExtensionProvider/ExtensionProvider'\nexport * from './components/ExtensionProvider/types'\nexport * from './components/ExtensionProvider2/ExtensionProvider2'\nexport * from './components/ExtensionProviderBase/ExtensionProviderBase'\nexport * from './components/ExtensionProvider40/ExtensionProvider40'\nexport * from './components/ExtensionConnector/types'\nexport * from './sdk/core_sdk_31'\nexport * from './sdk/core_sdk_40'\nexport * from './sdk/core_sdk2'\nexport * from './sdk/core_sdk'\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;AA0BA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["/*\n\n MIT License\n\n Copyright (c) 2021 Looker Data Sciences, Inc.\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n\n */\n\nexport * from './components/ExtensionProvider/ExtensionProvider'\nexport * from './components/ExtensionProvider/types'\nexport * from './components/ExtensionProvider2/ExtensionProvider2'\nexport * from './components/ExtensionProviderBase/ExtensionProviderBase'\nexport * from './components/ExtensionProvider40/ExtensionProvider40'\nexport * from './components/ExtensionConnector/types'\nexport * from './sdk/core_sdk_31'\nexport * from './sdk/core_sdk_40'\nexport * from './sdk/core_sdk'\nexport * from './sdk/core_sdk2'\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@looker/extension-sdk-react",
3
- "version": "22.20.0",
3
+ "version": "22.20.2-alpha.1647+eef6cd92",
4
4
  "description": "Looker Extension SDK for React",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -43,9 +43,9 @@
43
43
  "react-router-dom": "^5.1.2"
44
44
  },
45
45
  "dependencies": {
46
- "@looker/extension-sdk": "^22.20.0",
47
- "@looker/sdk": "^22.20.0",
48
- "@looker/sdk-rtl": "^21.4.0",
46
+ "@looker/extension-sdk": "^22.20.2-alpha.1647+eef6cd92",
47
+ "@looker/sdk": "^22.20.1",
48
+ "@looker/sdk-rtl": "^21.5.0",
49
49
  "history": "^4.9.0",
50
50
  "lodash": "^4.17.20"
51
51
  },
@@ -58,5 +58,5 @@
58
58
  "Looker",
59
59
  "extension-sdk"
60
60
  ],
61
- "gitHead": "9c51de7916a40fd112b88db56f3ab9fc075a84d0"
61
+ "gitHead": "eef6cd92039ffb1a47e4e4bf678be73b45e61969"
62
62
  }