@looker/extension-sdk-react 22.4.2 → 22.4.3-alpha.1522

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 (40) hide show
  1. package/README.md +17 -22
  2. package/lib/components/ExtensionConnector/ExtensionConnector.js +21 -1
  3. package/lib/components/ExtensionConnector/ExtensionConnector.js.map +1 -1
  4. package/lib/components/ExtensionConnector/types.d.ts +8 -2
  5. package/lib/components/ExtensionProvider/ExtensionProvider.js +17 -1
  6. package/lib/components/ExtensionProvider/ExtensionProvider.js.map +1 -1
  7. package/lib/components/ExtensionProvider2/ExtensionProvider2.d.ts +0 -2
  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.d.ts +10 -0
  11. package/lib/components/ExtensionProvider40/ExtensionProvider40.js +92 -0
  12. package/lib/components/ExtensionProvider40/ExtensionProvider40.js.map +1 -0
  13. package/lib/components/ExtensionProvider40/index.d.ts +1 -0
  14. package/lib/components/ExtensionProvider40/index.js +19 -0
  15. package/lib/components/ExtensionProvider40/index.js.map +1 -0
  16. package/lib/components/ExtensionProviderBase/ExtensionProviderBase.js +17 -1
  17. package/lib/components/ExtensionProviderBase/ExtensionProviderBase.js.map +1 -1
  18. package/lib/components/utils/get_initial_route_entries.d.ts +1 -0
  19. package/lib/components/utils/get_initial_route_entries.js +7 -1
  20. package/lib/components/utils/get_initial_route_entries.js.map +1 -1
  21. package/lib/esm/components/ExtensionConnector/ExtensionConnector.js +21 -1
  22. package/lib/esm/components/ExtensionConnector/ExtensionConnector.js.map +1 -1
  23. package/lib/esm/components/ExtensionProvider/ExtensionProvider.js +17 -1
  24. package/lib/esm/components/ExtensionProvider/ExtensionProvider.js.map +1 -1
  25. package/lib/esm/components/ExtensionProvider2/ExtensionProvider2.js +17 -1
  26. package/lib/esm/components/ExtensionProvider2/ExtensionProvider2.js.map +1 -1
  27. package/lib/esm/components/ExtensionProvider40/ExtensionProvider40.js +72 -0
  28. package/lib/esm/components/ExtensionProvider40/ExtensionProvider40.js.map +1 -0
  29. package/lib/esm/components/ExtensionProvider40/index.js +2 -0
  30. package/lib/esm/components/ExtensionProvider40/index.js.map +1 -0
  31. package/lib/esm/components/ExtensionProviderBase/ExtensionProviderBase.js +17 -1
  32. package/lib/esm/components/ExtensionProviderBase/ExtensionProviderBase.js.map +1 -1
  33. package/lib/esm/components/utils/get_initial_route_entries.js +3 -0
  34. package/lib/esm/components/utils/get_initial_route_entries.js.map +1 -1
  35. package/lib/esm/index.js +1 -0
  36. package/lib/esm/index.js.map +1 -1
  37. package/lib/index.d.ts +1 -0
  38. package/lib/index.js +13 -0
  39. package/lib/index.js.map +1 -1
  40. package/package.json +3 -3
package/README.md CHANGED
@@ -21,34 +21,28 @@ Extension SDK.
21
21
 
22
22
  ### Provider
23
23
 
24
- Add the `ExtensionProvider` near the root of the extension component tree.
24
+ Add the `ExtensionProvider40` near the root of the extension component tree. ExtensionProvider40 exposes the Looker 4.0 sdk.
25
25
 
26
26
  ```tsx
27
- <ExtensionProvider
27
+ <ExtensionProvider40
28
28
  loadingComponent={<div>Loading ...</div>}
29
- requiredLookerVersion=">=7.0.0"
29
+ requiredLookerVersion=">=22.0.0"
30
30
  >
31
31
  <MyComponent />
32
- </ExtensionProvider>
32
+ </ExtensionProvider40>
33
33
  ```
34
34
 
35
- - An optional `loadingComponent` can be passed in to display the while the provider is establishing a connection with the looker host
35
+ - An optional `loadingComponent` can be passed in to display while the provider is establishing a connection with the looker host
36
36
  - `requiredLookerVersion` indicates what version of Looker is required. Check `context.initializeError` to see if a version error was detected.
37
37
 
38
38
  ### Access the Extension SDK
39
39
 
40
40
  ```tsx
41
41
  import React, { useContext } from "react"
42
- import {
43
- ExtensionContext,
44
- ExtensionContextData
45
- } from "@looker/extension-sdk-react"
42
+ import { ExtensionContext40 } from '@looker/extension-sdk-react'
46
43
 
47
44
  export const MyComponent: React.FC<{}> = () => {
48
- const extensionContext = useContext<ExtensionContextData>(ExtensionContext)
49
- const extensionHost = extensionContext.extensionSDK
50
- const sdk = extensionContext.core40SDK
51
- const initializeError = extensionContext.initializeError
45
+ const { extensionSDK, coreSDK, initializeError } = useContext(ExtensionContext40)
52
46
 
53
47
  ```
54
48
 
@@ -60,7 +54,7 @@ the router so you can add `Switch` and `Route` components as childrem. The Looke
60
54
  of changes to the React routes and the child route is appended to he Looker extension
61
55
  route. This means that the route can be restored on a page reload or sent as a link.
62
56
 
63
- The `ExtensionProvider` can also notify the extension of changes to the route using the
57
+ The `ExtensionProvider40` can also notify the extension of changes to the route using the
64
58
  `onPathnameChange` attribute.
65
59
 
66
60
  #### Example
@@ -70,7 +64,7 @@ export const MyExtension: React.FC<{}> = () => {
70
64
  const [pathname, setPathname] = useState("")
71
65
 
72
66
  return (
73
- <ExtensionProvider onPathnameChange={setPathname}>
67
+ <ExtensionProvider40 onPathnameChange={setPathname}>
74
68
  <MyLayout>
75
69
  <MySidebar pathname={pathname} />
76
70
  <Switch>
@@ -82,7 +76,7 @@ export const MyExtension: React.FC<{}> = () => {
82
76
  </Route>
83
77
  </Switch>
84
78
  </MyLayout>
85
- </ExtensionProvider>
79
+ </ExtensionProvider40>
86
80
  )
87
81
  }
88
82
  ```
@@ -96,21 +90,22 @@ The Looker SDK can be accessed as follows:
96
90
 
97
91
  The extension context exposes the following properties:
98
92
 
99
- - `coreSDK` - SDK version 3.1 (kept for backwards compatability)
100
- - `core31SDK` - SDK version 3.1
101
- - `core40SDK` - SDK version 4.0
93
+ - `coreSDK` - SDK version 4.0
102
94
 
103
95
  The following global access methods are available:
104
96
 
105
- - `getCoreSDK()` - SDK version 3.1 (kept for backwards compatability)
106
- - `getCore31SDK()` - SDK version 3.1
107
97
  - `getCore40SDK()` - SDK version 4.0
108
98
 
109
99
  There is no restriction on which SDK can be used within an extension, none, one or all of the above can be used interchangeably, context or global access. The one caveat is that it is recommended that the Looker version support SDK 4.0 if the 4.0 SDK is used (the results may be unpredictable otherwise).
110
100
 
101
+ If you require access to SDK version 3.1, use `<ExtensionProvider/>` or `<ExtensionProvider2 type={Looker31SDK}/>`. SDK version 3.1 will then globally be available through the following methods:
102
+
103
+ - `getCoreSDK()` - SDK version 3.1 (kept for backwards compatibility)
104
+ - `getCore31SDK()` - SDK version 3.1
105
+
111
106
  ### Redux support
112
107
 
113
- The Looker SDK is available outside of the Extension provider using the `getCore40SDK` method. This means that `redux sagas` or `redux thunks` can utilize the SDK from within a `saga` or `thunk`. Note that the Looker connection MUST be established before `getCoreSDK` can be called. An error will be thrown if the method is called to soon. Note that children of the `ExtensionProvider` will not be rendered until after the connection has been established. As such it safe for children of the `ExtensionProvider` to utilize `sagas` or `thunks`.
108
+ The Looker SDK is available outside of the Extension provider using the `getCore40SDK` method. This means that `redux sagas` or `redux thunks` can utilize the SDK from within a `saga` or `thunk`. Note that the Looker connection MUST be established before `getCoreSDK` can be called. An error will be thrown if the method is called too soon. Note that children of the `ExtensionProvider40` will not be rendered until after the connection has been established. As such it is safe for children of the `ExtensionProvider40` to utilize `sagas` or `thunks`.
114
109
 
115
110
  #### Example saga
116
111
 
@@ -82,6 +82,24 @@ var ExtensionConnector = _ref => {
82
82
  }
83
83
  };
84
84
 
85
+ var visualizationDataReceivedCallback = visualizationData => {
86
+ updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
87
+ visualizationData
88
+ }));
89
+ };
90
+
91
+ var tileHostDataChangedCallback = partialHostData => {
92
+ if (contextData.tileSDK) {
93
+ var {
94
+ tileSDK
95
+ } = contextData;
96
+ tileSDK.tileHostDataChanged(partialHostData);
97
+ updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
98
+ tileHostData: tileSDK.tileHostData
99
+ }));
100
+ }
101
+ };
102
+
85
103
  _react.default.useEffect(() => {
86
104
  var initialize = function () {
87
105
  var _ref2 = _asyncToGenerator(function* () {
@@ -90,7 +108,9 @@ var ExtensionConnector = _ref => {
90
108
  setInitialRoute: setInitialRouteAndRouteState,
91
109
  requiredLookerVersion,
92
110
  hostChangedRoute,
93
- chattyTimeout
111
+ chattyTimeout,
112
+ visualizationDataReceivedCallback,
113
+ tileHostDataChangedCallback
94
114
  });
95
115
  connectedCallback(extensionHost);
96
116
  setInitializing(false);
@@ -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","initialRouteData","setInitialRouteData","hostRouteData","setHostRouteData","route","initializing","setInitializing","initializeError","setInitializeError","setInitialRouteAndRouteState","routeState","hostChangedRoute","_route","startsWith","visualizationDataReceivedCallback","visualizationData","tileHostDataChangedCallback","partialHostData","tileSDK","tileHostDataChanged","tileHostData","React","useEffect","initialize","extensionHost","setInitialRoute","error","console","message","undefined","extensionSDK"],"mappings":";;;;;;;AA0BA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AAOO,IAAMA,kBAAqD,GAAG,QAY/D;AAAA,MAZgE;AACpEC,IAAAA,WADoE;AAEpEC,IAAAA,iBAFoE;AAGpEC,IAAAA,iBAHoE;AAIpEC,IAAAA,gBAJoE;AAKpEC,IAAAA,gBALoE;AAMpEC,IAAAA,aANoE;AAOpEC,IAAAA,eAAe,GAAG,IAPkD;AAQpEC,IAAAA,gBARoE;AASpEC,IAAAA,qBAToE;AAUpEC,IAAAA,aAVoE;AAWpEC,IAAAA;AAXoE,GAYhE;AACJ,MAAM,CAACC,gBAAD,EAAmBC,mBAAnB,IAA0C,sBAAhD;AACA,MAAM,CAACC,aAAD,EAAgBC,gBAAhB,IAAoC,qBAAoB;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAApB,CAA1C;AACA,MAAM,CAACC,YAAD,EAAeC,eAAf,IAAkC,qBAAS,IAAT,CAAxC;AACA,MAAM,CAACC,eAAD,EAAkBC,kBAAlB,IAAwC,sBAA9C;;AAEA,MAAMC,4BAA4B,GAAG,CAACL,KAAD,EAAgBM,UAAhB,KAAqC;AACxE,QAAIf,eAAJ,EAAqB;AACnBM,MAAAA,mBAAmB,CAAC;AAAEG,QAAAA,KAAF;AAASM,QAAAA;AAAT,OAAD,CAAnB;AACD;AACF,GAJD;;AAMA,MAAMC,gBAAgB,GAAG,CAACC,MAAD,EAAiBF,UAAjB,KAAsC;AAC7D,QAAMN,KAAK,GAAGQ,MAAM,CAACC,UAAP,CAAkB,GAAlB,IAAyBD,MAAzB,GAAkC,MAAMA,MAAtD;;AACA,QACER,KAAK,KAAKF,aAAa,CAACE,KAAxB,IACA,CAAC,sBAAQM,UAAR,EAAoBR,aAAa,CAACQ,UAAlC,CAFH,EAGE;AACAP,MAAAA,gBAAgB,CAAC;AAAEC,QAAAA,KAAF;AAASM,QAAAA;AAAT,OAAD,CAAhB;AACApB,MAAAA,iBAAiB,iCACZD,WADY;AAEfe,QAAAA,KAFe;AAGfM,QAAAA;AAHe,SAAjB;AAKD;AACF,GAbD;;AAeA,MAAMI,iCAAiC,GACrCC,iBADwC,IAErC;AACHzB,IAAAA,iBAAiB,iCACZD,WADY;AAEf0B,MAAAA;AAFe,OAAjB;AAID,GAPD;;AASA,MAAMC,2BAA2B,GAC/BC,eADkC,IAE/B;AACH,QAAI5B,WAAW,CAAC6B,OAAhB,EAAyB;AACvB,UAAM;AAAEA,QAAAA;AAAF,UAAc7B,WAApB;AACA6B,MAAAA,OAAO,CAACC,mBAAR,CAA4BF,eAA5B;AACA3B,MAAAA,iBAAiB,iCACZD,WADY;AAEf+B,QAAAA,YAAY,EAAEF,OAAO,CAACE;AAFP,SAAjB;AAID;AACF,GAXD;;AAaAC,iBAAMC,SAAN,CAAgB,MAAM;AACpB,QAAMC,UAAU;AAAA,oCAAG,aAAY;AAC7B,YAAI;AACF,cAAMC,aAAa,SAAS,wCAAqB;AAC/CC,YAAAA,eAAe,EAAEhB,4BAD8B;AAE/CZ,YAAAA,qBAF+C;AAG/Cc,YAAAA,gBAH+C;AAI/Cb,YAAAA,aAJ+C;AAK/CgB,YAAAA,iCAL+C;AAM/CE,YAAAA;AAN+C,WAArB,CAA5B;AAQAzB,UAAAA,iBAAiB,CAACiC,aAAD,CAAjB;AACAlB,UAAAA,eAAe,CAAC,KAAD,CAAf;AACD,SAXD,CAWE,OAAOoB,KAAP,EAAmB;AAEnBC,UAAAA,OAAO,CAACD,KAAR,CAAcA,KAAd;AACAlB,UAAAA,kBAAkB,CAACkB,KAAK,CAACE,OAAN,IAAiB,iCAAlB,CAAlB;AACAtB,UAAAA,eAAe,CAAC,KAAD,CAAf;AACD;AACF,OAlBe;;AAAA,sBAAViB,UAAU;AAAA;AAAA;AAAA,OAAhB;;AAmBAA,IAAAA,UAAU;AACV,WAAO,MAAM;AACX/B,MAAAA,gBAAgB;AACjB,KAFD;AAGD,GAxBD,EAwBG,EAxBH;;AA0BA6B,iBAAMC,SAAN,CAAgB,MAAM;AACpB,WAAOjB,YAAY,GACfwB,SADe,GAEf,sDAA2BxC,WAAW,CAACyC,YAAvC,CAFJ;AAGD,GAJD,EAIG,CAACzB,YAAD,CAJH;;AAMA,SACE,4DACGA,YAAY,GACXT,gBADW,GAGX,4DACGW,eAAe,GACd,6BAAC,0BAAD;AAAc,IAAA,YAAY,EAAEA;AAA5B,IADc,GAGd,4DACGZ,eAAe,GACd,6BAAC,4BAAD;AACE,IAAA,cAAc,EAAE,uDAAuBK,gBAAvB;AADlB,KAGE,6BAAC,wCAAD;AACE,IAAA,aAAa,EAAEN,aADjB;AAEE,IAAA,gBAAgB,EAAED,gBAFpB;AAGE,IAAA,aAAa,EAAEJ,WAAW,CAAEyC,YAH9B;AAIE,IAAA,SAAS,EAAE5B,aAAa,CAACE,KAJ3B;AAKE,IAAA,cAAc,EAAEF,aAAa,CAACQ;AALhC,IAHF,EAUGX,QAVH,CADc,GAcd,4DAAGA,QAAH,CAfJ,CAJJ,CAJJ,CADF;AAgCD,CA7HM","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 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 [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 const visualizationDataReceivedCallback = (\n visualizationData: RawVisualizationData\n ) => {\n updateContextData({\n ...contextData,\n visualizationData,\n })\n }\n\n const tileHostDataChangedCallback = (\n partialHostData: Partial<TileHostData>\n ) => {\n if (contextData.tileSDK) {\n const { tileSDK } = contextData\n tileSDK.tileHostDataChanged(partialHostData)\n updateContextData({\n ...contextData,\n tileHostData: tileSDK.tileHostData,\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 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 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,10 +1,15 @@
1
- /// <reference types="react" />
2
- import type { ExtensionHostApi, ExtensionSDK } from '@looker/extension-sdk';
1
+ import type { ReactNode } from 'react';
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;
@@ -17,6 +22,7 @@ export interface ExtensionProviderProps {
17
22
  loadingComponent?: JSX.Element;
18
23
  requiredLookerVersion?: string;
19
24
  chattyTimeout?: number;
25
+ children?: ReactNode;
20
26
  }
21
27
  export interface ExtensionConnectorProps extends ExtensionProviderProps {
22
28
  contextData: BaseExtensionContextData;
@@ -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,GAAIC,kBAAD,IAAkD;AAC1ElB,IAAAA,gBAAgB,CAAEa,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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,CA7DM","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 = (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,4 +1,3 @@
1
- import type { ReactNode } from 'react';
2
1
  import React from 'react';
3
2
  import type { BaseExtensionContextData, ExtensionProviderProps } from '../ExtensionConnector';
4
3
  export interface ExtensionContextData2<T> extends BaseExtensionContextData {
@@ -7,6 +6,5 @@ export interface ExtensionContextData2<T> extends BaseExtensionContextData {
7
6
  export declare const ExtensionContext2: React.Context<ExtensionContextData2<any>>;
8
7
  export interface ExtensionProvider2Props<T> extends ExtensionProviderProps {
9
8
  type: T;
10
- children?: ReactNode;
11
9
  }
12
10
  export declare function ExtensionProvider2<T>(props: ExtensionProvider2Props<T>): JSX.Element;
@@ -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":";;;;;;;;AA2BA;;AAEA;;AACA;;AAKA;;AACA;;;;;;;;;;;;;;;;;;AASO,IAAMA,iBAAiB,GAAGC,eAAMC,aAAN,CAG/BC,SAH+B,CAA1B;;;;AAeA,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 type { ReactNode } from 'react'\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 children?: ReactNode\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,GAAIC,kBAAD,IAAkD;AAC1ElB,IAAAA,gBAAgB,CAAEc,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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 = (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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { ILooker40SDK } from '@looker/sdk';
3
+ import type { BaseExtensionContextData, ExtensionProviderProps } from '../ExtensionConnector';
4
+ export interface ExtensionContextData40 extends BaseExtensionContextData {
5
+ coreSDK: ILooker40SDK;
6
+ }
7
+ export declare const ExtensionContext40: React.Context<ExtensionContextData40>;
8
+ export interface ExtensionProvider40Props extends ExtensionProviderProps {
9
+ }
10
+ export declare function ExtensionProvider40(props: ExtensionProvider40Props): JSX.Element;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ExtensionProvider40 = ExtensionProvider40;
7
+ exports.ExtensionContext40 = void 0;
8
+
9
+ var _react = _interopRequireWildcard(require("react"));
10
+
11
+ var _extensionSdk = require("@looker/extension-sdk");
12
+
13
+ var _ExtensionConnector = require("../ExtensionConnector");
14
+
15
+ var _core_sdk_ = require("../../sdk/core_sdk_40");
16
+
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+
21
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
22
+
23
+ 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; }
24
+
25
+ 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; }
26
+
27
+ 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; }
28
+
29
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
30
+
31
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
32
+
33
+ var ExtensionContext40 = _react.default.createContext(undefined);
34
+
35
+ exports.ExtensionContext40 = ExtensionContext40;
36
+
37
+ function ExtensionProvider40(props) {
38
+ var {
39
+ children
40
+ } = props,
41
+ rest = _objectWithoutProperties(props, ["children"]);
42
+
43
+ var [extensionData, setExtensionData] = (0, _react.useState)({});
44
+
45
+ var connectedCallback = extensionHost => {
46
+ var coreSDK = _extensionSdk.LookerExtensionSDK.create40Client(extensionHost);
47
+
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;
60
+ setExtensionData(previousState => {
61
+ return _objectSpread(_objectSpread({}, previousState), {}, {
62
+ extensionSDK: extensionHost,
63
+ coreSDK,
64
+ visualizationSDK,
65
+ tileSDK,
66
+ visualizationData,
67
+ tileHostData,
68
+ lookerHostData
69
+ });
70
+ });
71
+ };
72
+
73
+ var unloadedCallback = () => {
74
+ (0, _core_sdk_.unregisterCore40SDK)();
75
+ };
76
+
77
+ var updateContextData = updatedContextData => {
78
+ setExtensionData(previousState => {
79
+ return _objectSpread(_objectSpread({}, previousState), updatedContextData);
80
+ });
81
+ };
82
+
83
+ return _react.default.createElement(ExtensionContext40.Provider, {
84
+ value: extensionData
85
+ }, _react.default.createElement(_ExtensionConnector.ExtensionConnector, _extends({}, rest, {
86
+ contextData: extensionData,
87
+ connectedCallback: connectedCallback,
88
+ updateContextData: updateContextData,
89
+ unloadedCallback: unloadedCallback
90
+ }), children));
91
+ }
92
+ //# sourceMappingURL=ExtensionProvider40.js.map
@@ -0,0 +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","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,GAAIC,kBAAD,IAAkD;AAC1Ef,IAAAA,gBAAgB,CAAEW,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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 = (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"}
@@ -0,0 +1 @@
1
+ export * from './ExtensionProvider40';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _ExtensionProvider = require("./ExtensionProvider40");
8
+
9
+ Object.keys(_ExtensionProvider).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _ExtensionProvider[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _ExtensionProvider[key];
16
+ }
17
+ });
18
+ });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/ExtensionProvider40/index.ts"],"names":[],"mappings":";;;;;;AA0BA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","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\nexport * from './ExtensionProvider40'\n"],"file":"index.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
  };
@@ -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"],"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,GAAIC,WAAD,IAA2C;AACnEZ,IAAAA,gBAAgB,CAACY,WAAD,CAAhB;AACD,GAFD;;AAIA,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,CA9CM","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 = (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,3 +1,4 @@
1
1
  import * as H from 'history';
2
2
  import type { RouteData } from '../ExtensionConnector/types';
3
3
  export declare const getInitialRouteEntries: (initialRouteData?: RouteData | undefined) => H.LocationDescriptor<unknown>[] | undefined;
4
+ export declare const dummyExtensionSdkReact: () => string;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getInitialRouteEntries = void 0;
6
+ exports.dummyExtensionSdkReact = exports.getInitialRouteEntries = void 0;
7
7
 
8
8
  var H = _interopRequireWildcard(require("history"));
9
9
 
@@ -34,4 +34,10 @@ var getInitialRouteEntries = initialRouteData => {
34
34
  };
35
35
 
36
36
  exports.getInitialRouteEntries = getInitialRouteEntries;
37
+
38
+ var dummyExtensionSdkReact = () => {
39
+ return 'dummy';
40
+ };
41
+
42
+ exports.dummyExtensionSdkReact = dummyExtensionSdkReact;
37
43
  //# sourceMappingURL=get_initial_route_entries.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/utils/get_initial_route_entries.ts"],"names":["getInitialRouteEntries","initialRouteData","initialEntries","route","routeState","H","parsePath","state"],"mappings":";;;;;;;AA0BA;;;;;;;;;;;;AAGO,IAAMA,sBAAsB,GAAIC,gBAAD,IAAkC;AACtE,MAAIC,cAAJ;;AACA,MAAID,gBAAJ,EAAsB;AACpB,QAAM;AAAEE,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAwBH,gBAA9B;AACAC,IAAAA,cAAc,GAAG,iCAAMG,CAAC,CAACC,SAAF,CAAYH,KAAZ,CAAN;AAA0BI,MAAAA,KAAK,EAAEH;AAAjC,OAAjB;AACD;;AACD,SAAOF,cAAP;AACD,CAPM","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 * as H from 'history'\nimport type { RouteData } from '../ExtensionConnector/types'\n\nexport const getInitialRouteEntries = (initialRouteData?: RouteData) => {\n let initialEntries: H.LocationDescriptor[] | undefined\n if (initialRouteData) {\n const { route, routeState } = initialRouteData\n initialEntries = [{ ...H.parsePath(route), state: routeState }]\n }\n return initialEntries\n}\n"],"file":"get_initial_route_entries.js"}
1
+ {"version":3,"sources":["../../../src/components/utils/get_initial_route_entries.ts"],"names":["getInitialRouteEntries","initialRouteData","initialEntries","route","routeState","H","parsePath","state","dummyExtensionSdkReact"],"mappings":";;;;;;;AA0BA;;;;;;;;;;;;AAGO,IAAMA,sBAAsB,GAAIC,gBAAD,IAAkC;AACtE,MAAIC,cAAJ;;AACA,MAAID,gBAAJ,EAAsB;AACpB,QAAM;AAAEE,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAwBH,gBAA9B;AACAC,IAAAA,cAAc,GAAG,iCAAMG,CAAC,CAACC,SAAF,CAAYH,KAAZ,CAAN;AAA0BI,MAAAA,KAAK,EAAEH;AAAjC,OAAjB;AACD;;AACD,SAAOF,cAAP;AACD,CAPM;;;;AASA,IAAMM,sBAAsB,GAAG,MAAM;AAE1C,SAAO,OAAP;AACD,CAHM","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 * as H from 'history'\nimport type { RouteData } from '../ExtensionConnector/types'\n\nexport const getInitialRouteEntries = (initialRouteData?: RouteData) => {\n let initialEntries: H.LocationDescriptor[] | undefined\n if (initialRouteData) {\n const { route, routeState } = initialRouteData\n initialEntries = [{ ...H.parsePath(route), state: routeState }]\n }\n return initialEntries\n}\n\nexport const dummyExtensionSdkReact = () => {\n // Force publish - to be deleted\n return 'dummy'\n}\n"],"file":"get_initial_route_entries.js"}
@@ -61,6 +61,24 @@ export var ExtensionConnector = _ref => {
61
61
  }
62
62
  };
63
63
 
64
+ var visualizationDataReceivedCallback = visualizationData => {
65
+ updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
66
+ visualizationData
67
+ }));
68
+ };
69
+
70
+ var tileHostDataChangedCallback = partialHostData => {
71
+ if (contextData.tileSDK) {
72
+ var {
73
+ tileSDK
74
+ } = contextData;
75
+ tileSDK.tileHostDataChanged(partialHostData);
76
+ updateContextData(_objectSpread(_objectSpread({}, contextData), {}, {
77
+ tileHostData: tileSDK.tileHostData
78
+ }));
79
+ }
80
+ };
81
+
64
82
  React.useEffect(() => {
65
83
  var initialize = function () {
66
84
  var _ref2 = _asyncToGenerator(function* () {
@@ -69,7 +87,9 @@ export var ExtensionConnector = _ref => {
69
87
  setInitialRoute: setInitialRouteAndRouteState,
70
88
  requiredLookerVersion,
71
89
  hostChangedRoute,
72
- chattyTimeout
90
+ chattyTimeout,
91
+ visualizationDataReceivedCallback,
92
+ tileHostDataChangedCallback
73
93
  });
74
94
  connectedCallback(extensionHost);
75
95
  setInitializing(false);
@@ -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","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","visualizationDataReceivedCallback","visualizationData","tileHostDataChangedCallback","partialHostData","tileSDK","tileHostDataChanged","tileHostData","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 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 [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 const visualizationDataReceivedCallback = (\n visualizationData: RawVisualizationData\n ) => {\n updateContextData({\n ...contextData,\n visualizationData,\n })\n }\n\n const tileHostDataChangedCallback = (\n partialHostData: Partial<TileHostData>\n ) => {\n if (contextData.tileSDK) {\n const { tileSDK } = contextData\n tileSDK.tileHostDataChanged(partialHostData)\n updateContextData({\n ...contextData,\n tileHostData: tileSDK.tileHostData,\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 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 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"}
@@ -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,GAAIC,kBAAD,IAAkD;AAC1EjB,IAAAA,gBAAgB,CAAEY,aAAD,IAAyC;AACxD,6CACKA,aADL,GAEKK,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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,CA7DM","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 = (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"}
@@ -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":";;;;;;;;;;;;AA2BA,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;AAeP,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 type { ReactNode } from 'react'\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 children?: ReactNode\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,GAAIC,kBAAD,IAAkD;AAC1EhB,IAAAA,gBAAgB,CAAEY,aAAD,IAA6C;AAC5D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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 = (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"}
@@ -0,0 +1,72 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ 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; }
4
+
5
+ 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; }
6
+
7
+ 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; }
8
+
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+
11
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
12
+
13
+ import React, { useState } from 'react';
14
+ import { LookerExtensionSDK } from '@looker/extension-sdk';
15
+ import { ExtensionConnector } from '../ExtensionConnector';
16
+ import { registerCore40SDK, unregisterCore40SDK } from '../../sdk/core_sdk_40';
17
+ export var ExtensionContext40 = React.createContext(undefined);
18
+ export function ExtensionProvider40(props) {
19
+ var {
20
+ children
21
+ } = props,
22
+ rest = _objectWithoutProperties(props, ["children"]);
23
+
24
+ var [extensionData, setExtensionData] = useState({});
25
+
26
+ var connectedCallback = extensionHost => {
27
+ var coreSDK = LookerExtensionSDK.create40Client(extensionHost);
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;
40
+ setExtensionData(previousState => {
41
+ return _objectSpread(_objectSpread({}, previousState), {}, {
42
+ extensionSDK: extensionHost,
43
+ coreSDK,
44
+ visualizationSDK,
45
+ tileSDK,
46
+ visualizationData,
47
+ tileHostData,
48
+ lookerHostData
49
+ });
50
+ });
51
+ };
52
+
53
+ var unloadedCallback = () => {
54
+ unregisterCore40SDK();
55
+ };
56
+
57
+ var updateContextData = updatedContextData => {
58
+ setExtensionData(previousState => {
59
+ return _objectSpread(_objectSpread({}, previousState), updatedContextData);
60
+ });
61
+ };
62
+
63
+ return React.createElement(ExtensionContext40.Provider, {
64
+ value: extensionData
65
+ }, React.createElement(ExtensionConnector, _extends({}, rest, {
66
+ contextData: extensionData,
67
+ connectedCallback: connectedCallback,
68
+ updateContextData: updateContextData,
69
+ unloadedCallback: unloadedCallback
70
+ }), children));
71
+ }
72
+ //# sourceMappingURL=ExtensionProvider40.js.map
@@ -0,0 +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","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,GAAIC,kBAAD,IAAkD;AAC1Ed,IAAAA,gBAAgB,CAAEU,aAAD,IAA2C;AAC1D,6CACKA,aADL,GAEKI,kBAFL;AAID,KALe,CAAhB;AAMD,GAPD;;AASA,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 = (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"}
@@ -0,0 +1,2 @@
1
+ export * from './ExtensionProvider40';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/ExtensionProvider40/index.ts"],"names":[],"mappings":"AA0BA,cAAc,uBAAd","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\nexport * from './ExtensionProvider40'\n"],"file":"index.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
  };
@@ -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"],"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,GAAIC,WAAD,IAA2C;AACnEZ,IAAAA,gBAAgB,CAACY,WAAD,CAAhB;AACD,GAFD;;AAIA,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,CA9CM","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 = (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"}
@@ -20,4 +20,7 @@ export var getInitialRouteEntries = initialRouteData => {
20
20
 
21
21
  return initialEntries;
22
22
  };
23
+ export var dummyExtensionSdkReact = () => {
24
+ return 'dummy';
25
+ };
23
26
  //# sourceMappingURL=get_initial_route_entries.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/utils/get_initial_route_entries.ts"],"names":["H","getInitialRouteEntries","initialRouteData","initialEntries","route","routeState","parsePath","state"],"mappings":";;;;;;AA0BA,OAAO,KAAKA,CAAZ,MAAmB,SAAnB;AAGA,OAAO,IAAMC,sBAAsB,GAAIC,gBAAD,IAAkC;AACtE,MAAIC,cAAJ;;AACA,MAAID,gBAAJ,EAAsB;AACpB,QAAM;AAAEE,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAwBH,gBAA9B;AACAC,IAAAA,cAAc,GAAG,iCAAMH,CAAC,CAACM,SAAF,CAAYF,KAAZ,CAAN;AAA0BG,MAAAA,KAAK,EAAEF;AAAjC,OAAjB;AACD;;AACD,SAAOF,cAAP;AACD,CAPM","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 * as H from 'history'\nimport type { RouteData } from '../ExtensionConnector/types'\n\nexport const getInitialRouteEntries = (initialRouteData?: RouteData) => {\n let initialEntries: H.LocationDescriptor[] | undefined\n if (initialRouteData) {\n const { route, routeState } = initialRouteData\n initialEntries = [{ ...H.parsePath(route), state: routeState }]\n }\n return initialEntries\n}\n"],"file":"get_initial_route_entries.js"}
1
+ {"version":3,"sources":["../../../../src/components/utils/get_initial_route_entries.ts"],"names":["H","getInitialRouteEntries","initialRouteData","initialEntries","route","routeState","parsePath","state","dummyExtensionSdkReact"],"mappings":";;;;;;AA0BA,OAAO,KAAKA,CAAZ,MAAmB,SAAnB;AAGA,OAAO,IAAMC,sBAAsB,GAAIC,gBAAD,IAAkC;AACtE,MAAIC,cAAJ;;AACA,MAAID,gBAAJ,EAAsB;AACpB,QAAM;AAAEE,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAwBH,gBAA9B;AACAC,IAAAA,cAAc,GAAG,iCAAMH,CAAC,CAACM,SAAF,CAAYF,KAAZ,CAAN;AAA0BG,MAAAA,KAAK,EAAEF;AAAjC,OAAjB;AACD;;AACD,SAAOF,cAAP;AACD,CAPM;AASP,OAAO,IAAMK,sBAAsB,GAAG,MAAM;AAE1C,SAAO,OAAP;AACD,CAHM","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 * as H from 'history'\nimport type { RouteData } from '../ExtensionConnector/types'\n\nexport const getInitialRouteEntries = (initialRouteData?: RouteData) => {\n let initialEntries: H.LocationDescriptor[] | undefined\n if (initialRouteData) {\n const { route, routeState } = initialRouteData\n initialEntries = [{ ...H.parsePath(route), state: routeState }]\n }\n return initialEntries\n}\n\nexport const dummyExtensionSdkReact = () => {\n // Force publish - to be deleted\n return 'dummy'\n}\n"],"file":"get_initial_route_entries.js"}
package/lib/esm/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './components/ExtensionProvider/ExtensionProvider';
2
2
  export * from './components/ExtensionProvider/types';
3
3
  export * from './components/ExtensionProvider2/ExtensionProvider2';
4
4
  export * from './components/ExtensionProviderBase/ExtensionProviderBase';
5
+ export * from './components/ExtensionProvider40/ExtensionProvider40';
5
6
  export * from './components/ExtensionConnector/types';
6
7
  export * from './sdk/core_sdk_31';
7
8
  export * from './sdk/core_sdk_40';
@@ -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,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/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,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"}
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './components/ExtensionProvider/ExtensionProvider';
2
2
  export * from './components/ExtensionProvider/types';
3
3
  export * from './components/ExtensionProvider2/ExtensionProvider2';
4
4
  export * from './components/ExtensionProviderBase/ExtensionProviderBase';
5
+ export * from './components/ExtensionProvider40/ExtensionProvider40';
5
6
  export * from './components/ExtensionConnector/types';
6
7
  export * from './sdk/core_sdk_31';
7
8
  export * from './sdk/core_sdk_40';
package/lib/index.js CHANGED
@@ -56,6 +56,19 @@ Object.keys(_ExtensionProviderBase).forEach(function (key) {
56
56
  });
57
57
  });
58
58
 
59
+ var _ExtensionProvider3 = require("./components/ExtensionProvider40/ExtensionProvider40");
60
+
61
+ Object.keys(_ExtensionProvider3).forEach(function (key) {
62
+ if (key === "default" || key === "__esModule") return;
63
+ if (key in exports && exports[key] === _ExtensionProvider3[key]) return;
64
+ Object.defineProperty(exports, key, {
65
+ enumerable: true,
66
+ get: function get() {
67
+ return _ExtensionProvider3[key];
68
+ }
69
+ });
70
+ });
71
+
59
72
  var _types2 = require("./components/ExtensionConnector/types");
60
73
 
61
74
  Object.keys(_types2).forEach(function (key) {
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","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/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_sdk2'\nexport * from './sdk/core_sdk'\n"],"file":"index.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@looker/extension-sdk-react",
3
- "version": "22.4.2",
3
+ "version": "22.4.3-alpha.1522+a9ab180f",
4
4
  "description": "Looker Extension SDK for React",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -43,7 +43,7 @@
43
43
  "react-router-dom": "^5.1.2"
44
44
  },
45
45
  "dependencies": {
46
- "@looker/extension-sdk": "^22.4.2",
46
+ "@looker/extension-sdk": "^22.4.3-alpha.1522+a9ab180f",
47
47
  "@looker/sdk": "^22.4.2",
48
48
  "@looker/sdk-rtl": "^21.3.3",
49
49
  "history": "^4.9.0",
@@ -58,5 +58,5 @@
58
58
  "Looker",
59
59
  "extension-sdk"
60
60
  ],
61
- "gitHead": "79b245fdf08c08faf46e120f0961bc820199dccd"
61
+ "gitHead": "a9ab180fd4f5651720da87bd051f3f0fa9a06c23"
62
62
  }