@looker/api-explorer 0.9.35 → 0.9.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +56 -1
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.map +1 -1
- package/e2e/MethodScene.spec.ts +80 -0
- package/e2e/diffScene.spec.ts +28 -20
- package/e2e/e2e.spec.ts +45 -7
- package/lib/ApiExplorer.js +24 -5
- package/lib/ApiExplorer.js.map +1 -1
- package/lib/components/DocMarkdown/DocMarkdown.js +9 -7
- package/lib/components/DocMarkdown/DocMarkdown.js.map +1 -1
- package/lib/components/DocSDKs/DocDeclarations.js +10 -15
- package/lib/components/DocSDKs/DocDeclarations.js.map +1 -1
- package/lib/components/SelectorContainer/ApiSpecSelector.js +6 -2
- package/lib/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
- package/lib/components/SelectorContainer/SdkLanguageSelector.js +20 -21
- package/lib/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
- package/lib/components/SelectorContainer/SelectorContainer.js +4 -1
- package/lib/components/SelectorContainer/SelectorContainer.js.map +1 -1
- package/lib/components/SelectorContainer/utils.d.ts +2 -0
- package/lib/components/SelectorContainer/utils.js +32 -0
- package/lib/components/SelectorContainer/utils.js.map +1 -0
- package/lib/components/SideNav/SideNav.js +37 -16
- package/lib/components/SideNav/SideNav.js.map +1 -1
- package/lib/components/SideNav/SideNavMethods.js +9 -6
- package/lib/components/SideNav/SideNavMethods.js.map +1 -1
- package/lib/components/SideNav/SideNavTypes.js +7 -4
- package/lib/components/SideNav/SideNavTypes.js.map +1 -1
- package/lib/components/index.d.ts +0 -1
- package/lib/components/index.js +0 -8
- package/lib/components/index.js.map +1 -1
- package/lib/esm/ApiExplorer.js +26 -7
- package/lib/esm/ApiExplorer.js.map +1 -1
- package/lib/esm/components/DocMarkdown/DocMarkdown.js +6 -4
- package/lib/esm/components/DocMarkdown/DocMarkdown.js.map +1 -1
- package/lib/esm/components/DocSDKs/DocDeclarations.js +9 -14
- package/lib/esm/components/DocSDKs/DocDeclarations.js.map +1 -1
- package/lib/esm/components/SelectorContainer/ApiSpecSelector.js +6 -3
- package/lib/esm/components/SelectorContainer/ApiSpecSelector.js.map +1 -1
- package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js +16 -18
- package/lib/esm/components/SelectorContainer/SdkLanguageSelector.js.map +1 -1
- package/lib/esm/components/SelectorContainer/SelectorContainer.js +5 -2
- package/lib/esm/components/SelectorContainer/SelectorContainer.js.map +1 -1
- package/lib/esm/components/SelectorContainer/utils.js +22 -0
- package/lib/esm/components/SelectorContainer/utils.js.map +1 -0
- package/lib/esm/components/SideNav/SideNav.js +40 -20
- package/lib/esm/components/SideNav/SideNav.js.map +1 -1
- package/lib/esm/components/SideNav/SideNavMethods.js +9 -6
- package/lib/esm/components/SideNav/SideNavMethods.js.map +1 -1
- package/lib/esm/components/SideNav/SideNavTypes.js +9 -6
- package/lib/esm/components/SideNav/SideNavTypes.js.map +1 -1
- package/lib/esm/components/index.js +0 -1
- package/lib/esm/components/index.js.map +1 -1
- package/lib/esm/routes/AppRouter.js +6 -4
- package/lib/esm/routes/AppRouter.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DiffScene.js +11 -9
- package/lib/esm/scenes/DiffScene/DiffScene.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js +5 -4
- package/lib/esm/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
- package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js +4 -4
- package/lib/esm/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
- package/lib/esm/scenes/ErrorDetailScene/ErrorDetailScene.js +31 -0
- package/lib/esm/scenes/ErrorDetailScene/ErrorDetailScene.js.map +1 -0
- package/lib/esm/scenes/ErrorDetailScene/index.js +2 -0
- package/lib/esm/scenes/ErrorDetailScene/index.js.map +1 -0
- package/lib/esm/scenes/MethodScene/MethodScene.js +30 -10
- package/lib/esm/scenes/MethodScene/MethodScene.js.map +1 -1
- package/lib/esm/{components → scenes/MethodScene/components}/DocResponses/DocResponseTypes.js +1 -1
- package/lib/esm/scenes/MethodScene/components/DocResponses/DocResponseTypes.js.map +1 -0
- package/lib/esm/scenes/MethodScene/components/DocResponses/DocResponses.js +73 -0
- package/lib/esm/scenes/MethodScene/components/DocResponses/DocResponses.js.map +1 -0
- package/lib/esm/{components → scenes/MethodScene/components}/DocResponses/index.js +0 -0
- package/lib/esm/scenes/MethodScene/components/DocResponses/index.js.map +1 -0
- package/lib/esm/{components → scenes/MethodScene/components}/DocResponses/utils.js +0 -0
- package/lib/esm/scenes/MethodScene/components/DocResponses/utils.js.map +1 -0
- package/lib/esm/scenes/MethodScene/components/index.js +1 -0
- package/lib/esm/scenes/MethodScene/components/index.js.map +1 -1
- package/lib/esm/scenes/MethodTagScene/MethodTagScene.js +38 -10
- package/lib/esm/scenes/MethodTagScene/MethodTagScene.js.map +1 -1
- package/lib/esm/scenes/TypeScene/TypeScene.js +7 -1
- package/lib/esm/scenes/TypeScene/TypeScene.js.map +1 -1
- package/lib/esm/scenes/TypeTagScene/TypeTagScene.js +39 -12
- package/lib/esm/scenes/TypeTagScene/TypeTagScene.js.map +1 -1
- package/lib/esm/scenes/index.js +1 -0
- package/lib/esm/scenes/index.js.map +1 -1
- package/lib/esm/scenes/utils/hooks/index.js +2 -0
- package/lib/esm/scenes/utils/hooks/index.js.map +1 -0
- package/lib/esm/scenes/utils/hooks/tagStoreSync.js +37 -0
- package/lib/esm/scenes/utils/hooks/tagStoreSync.js.map +1 -0
- package/lib/esm/scenes/utils/index.js +2 -0
- package/lib/esm/scenes/utils/index.js.map +1 -0
- package/lib/esm/state/settings/selectors.js +1 -0
- package/lib/esm/state/settings/selectors.js.map +1 -1
- package/lib/esm/state/settings/slice.js +6 -1
- package/lib/esm/state/settings/slice.js.map +1 -1
- package/lib/esm/utils/hooks/globalStoreSync.js +53 -0
- package/lib/esm/utils/hooks/globalStoreSync.js.map +1 -0
- package/lib/esm/utils/hooks/index.js +4 -0
- package/lib/esm/utils/hooks/index.js.map +1 -0
- package/lib/esm/utils/hooks/navigation.js +72 -0
- package/lib/esm/utils/hooks/navigation.js.map +1 -0
- package/lib/esm/utils/hooks/useQuery.js +9 -0
- package/lib/esm/utils/hooks/useQuery.js.map +1 -0
- package/lib/esm/utils/index.js +2 -0
- package/lib/esm/utils/index.js.map +1 -1
- package/lib/esm/utils/path.js +23 -2
- package/lib/esm/utils/path.js.map +1 -1
- package/lib/esm/utils/sdkLanguage.js +42 -0
- package/lib/esm/utils/sdkLanguage.js.map +1 -0
- package/lib/routes/AppRouter.d.ts +1 -2
- package/lib/routes/AppRouter.js +5 -3
- package/lib/routes/AppRouter.js.map +1 -1
- package/lib/scenes/DiffScene/DiffScene.d.ts +0 -2
- package/lib/scenes/DiffScene/DiffScene.js +8 -6
- package/lib/scenes/DiffScene/DiffScene.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DiffItem.js +4 -4
- package/lib/scenes/DiffScene/DocDiff/DiffItem.js.map +1 -1
- package/lib/scenes/DiffScene/DocDiff/DocDiff.js +4 -4
- package/lib/scenes/DiffScene/DocDiff/DocDiff.js.map +1 -1
- package/lib/scenes/ErrorDetailScene/ErrorDetailScene.d.ts +7 -0
- package/lib/scenes/ErrorDetailScene/ErrorDetailScene.js +47 -0
- package/lib/scenes/ErrorDetailScene/ErrorDetailScene.js.map +1 -0
- package/lib/scenes/ErrorDetailScene/index.d.ts +1 -0
- package/lib/scenes/ErrorDetailScene/index.js +14 -0
- package/lib/{components/DocResponses → scenes/ErrorDetailScene}/index.js.map +1 -1
- package/lib/scenes/MethodScene/MethodScene.js +25 -5
- package/lib/scenes/MethodScene/MethodScene.js.map +1 -1
- package/lib/{components → scenes/MethodScene/components}/DocResponses/DocResponseTypes.d.ts +2 -2
- package/lib/{components → scenes/MethodScene/components}/DocResponses/DocResponseTypes.js +2 -2
- package/lib/scenes/MethodScene/components/DocResponses/DocResponseTypes.js.map +1 -0
- package/lib/scenes/MethodScene/components/DocResponses/DocResponses.d.ts +9 -0
- package/lib/scenes/MethodScene/components/DocResponses/DocResponses.js +93 -0
- package/lib/scenes/MethodScene/components/DocResponses/DocResponses.js.map +1 -0
- package/lib/{components → scenes/MethodScene/components}/DocResponses/index.d.ts +0 -0
- package/lib/{components → scenes/MethodScene/components}/DocResponses/index.js +0 -0
- package/lib/scenes/MethodScene/components/DocResponses/index.js.map +1 -0
- package/lib/{components → scenes/MethodScene/components}/DocResponses/utils.d.ts +0 -0
- package/lib/{components → scenes/MethodScene/components}/DocResponses/utils.js +0 -0
- package/lib/scenes/MethodScene/components/DocResponses/utils.js.map +1 -0
- package/lib/scenes/MethodScene/components/index.d.ts +1 -0
- package/lib/scenes/MethodScene/components/index.js +8 -0
- package/lib/scenes/MethodScene/components/index.js.map +1 -1
- package/lib/scenes/MethodTagScene/MethodTagScene.js +42 -11
- package/lib/scenes/MethodTagScene/MethodTagScene.js.map +1 -1
- package/lib/scenes/TypeScene/TypeScene.js +8 -1
- package/lib/scenes/TypeScene/TypeScene.js.map +1 -1
- package/lib/scenes/TypeTagScene/TypeTagScene.js +42 -12
- package/lib/scenes/TypeTagScene/TypeTagScene.js.map +1 -1
- package/lib/scenes/index.d.ts +1 -0
- package/lib/scenes/index.js +8 -0
- package/lib/scenes/index.js.map +1 -1
- package/lib/scenes/utils/hooks/index.d.ts +1 -0
- package/lib/scenes/utils/hooks/index.js +14 -0
- package/lib/scenes/utils/hooks/index.js.map +1 -0
- package/lib/scenes/utils/hooks/tagStoreSync.d.ts +1 -0
- package/lib/scenes/utils/hooks/tagStoreSync.js +51 -0
- package/lib/scenes/utils/hooks/tagStoreSync.js.map +1 -0
- package/lib/scenes/utils/index.d.ts +1 -0
- package/lib/scenes/utils/index.js +14 -0
- package/lib/scenes/utils/index.js.map +1 -0
- package/lib/state/settings/selectors.d.ts +2 -1
- package/lib/state/settings/selectors.js +5 -1
- package/lib/state/settings/selectors.js.map +1 -1
- package/lib/state/settings/slice.d.ts +7 -1
- package/lib/state/settings/slice.js +6 -1
- package/lib/state/settings/slice.js.map +1 -1
- package/lib/test-data/index.d.ts +1 -0
- package/lib/test-data/index.js +14 -0
- package/lib/test-data/index.js.map +1 -1
- package/lib/test-data/sdkLanguages.d.ts +10 -0
- package/lib/test-data/sdkLanguages.js +19 -0
- package/lib/test-data/sdkLanguages.js.map +1 -0
- package/lib/utils/hooks/globalStoreSync.d.ts +1 -0
- package/lib/utils/hooks/globalStoreSync.js +67 -0
- package/lib/utils/hooks/globalStoreSync.js.map +1 -0
- package/lib/utils/hooks/index.d.ts +3 -0
- package/lib/utils/hooks/index.js +30 -0
- package/lib/utils/hooks/index.js.map +1 -0
- package/lib/utils/hooks/navigation.d.ts +11 -0
- package/lib/utils/hooks/navigation.js +83 -0
- package/lib/utils/hooks/navigation.js.map +1 -0
- package/lib/utils/hooks/useQuery.d.ts +1 -0
- package/lib/utils/hooks/useQuery.js +20 -0
- package/lib/utils/hooks/useQuery.js.map +1 -0
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +38 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/path.d.ts +6 -2
- package/lib/utils/path.js +34 -3
- package/lib/utils/path.js.map +1 -1
- package/lib/utils/sdkLanguage.d.ts +6 -0
- package/lib/utils/sdkLanguage.js +59 -0
- package/lib/utils/sdkLanguage.js.map +1 -0
- package/package.json +14 -14
- package/src/ApiExplorer.tsx +18 -7
- package/src/components/DocMarkdown/DocMarkdown.tsx +4 -4
- package/src/components/DocSDKs/DocDeclarations.tsx +11 -22
- package/src/components/DocSDKs/DocSDKs.spec.tsx +4 -1
- package/src/components/Header/Header.spec.tsx +1 -1
- package/src/components/SelectorContainer/ApiSpecSelector.spec.tsx +5 -2
- package/src/components/SelectorContainer/ApiSpecSelector.tsx +4 -3
- package/src/components/SelectorContainer/SdkLanguageSelector.spec.tsx +60 -33
- package/src/components/SelectorContainer/SdkLanguageSelector.tsx +15 -22
- package/src/components/SelectorContainer/SelectorContainer.spec.tsx +1 -1
- package/src/components/SelectorContainer/SelectorContainer.tsx +18 -15
- package/src/components/SelectorContainer/utils.ts +45 -0
- package/src/components/SideNav/SideNav.spec.tsx +39 -5
- package/src/components/SideNav/SideNav.tsx +42 -29
- package/src/components/SideNav/SideNavMethods.spec.tsx +5 -0
- package/src/components/SideNav/SideNavMethods.tsx +11 -8
- package/src/components/SideNav/SideNavTypes.spec.tsx +9 -2
- package/src/components/SideNav/SideNavTypes.tsx +10 -8
- package/src/components/index.ts +0 -1
- package/src/routes/AppRouter.tsx +7 -5
- package/src/scenes/DiffScene/DiffScene.tsx +10 -10
- package/src/scenes/DiffScene/DocDiff/DiffItem.spec.tsx +4 -3
- package/src/scenes/DiffScene/DocDiff/DiffItem.tsx +3 -4
- package/src/scenes/DiffScene/DocDiff/DocDiff.spec.tsx +73 -2
- package/src/scenes/DiffScene/DocDiff/DocDiff.tsx +4 -4
- package/src/scenes/ErrorDetailScene/ErrorDetailScene.tsx +72 -0
- package/src/scenes/ErrorDetailScene/index.ts +26 -0
- package/src/scenes/MethodScene/MethodScene.tsx +23 -8
- package/src/{components → scenes/MethodScene/components}/DocResponses/DocResponseTypes.tsx +3 -6
- package/src/scenes/MethodScene/components/DocResponses/DocResponses.spec.tsx +153 -0
- package/src/scenes/MethodScene/components/DocResponses/DocResponses.tsx +103 -0
- package/src/{components → scenes/MethodScene/components}/DocResponses/index.ts +0 -0
- package/src/{components → scenes/MethodScene/components}/DocResponses/utils.spec.ts +1 -1
- package/src/{components → scenes/MethodScene/components}/DocResponses/utils.ts +0 -0
- package/src/scenes/MethodScene/components/index.ts +1 -0
- package/src/scenes/MethodTagScene/MethodTagScene.spec.tsx +25 -14
- package/src/scenes/MethodTagScene/MethodTagScene.tsx +42 -10
- package/src/scenes/TypeScene/TypeScene.tsx +8 -2
- package/src/scenes/TypeTagScene/TypeTagScene.spec.tsx +21 -11
- package/src/scenes/TypeTagScene/TypeTagScene.tsx +46 -13
- package/src/scenes/index.ts +1 -0
- package/src/scenes/utils/hooks/index.ts +27 -0
- package/src/scenes/utils/hooks/tagStoreSync.spec.ts +102 -0
- package/src/scenes/utils/hooks/tagStoreSync.ts +68 -0
- package/src/scenes/utils/index.ts +27 -0
- package/src/state/settings/selectors.spec.ts +5 -1
- package/src/state/settings/selectors.ts +3 -0
- package/src/state/settings/slice.ts +6 -0
- package/src/test-data/index.ts +1 -0
- package/src/test-data/sdkLanguages.ts +36 -0
- package/src/utils/hooks/globalStoreSync.spec.tsx +146 -0
- package/src/utils/hooks/globalStoreSync.ts +77 -0
- package/src/utils/hooks/index.ts +28 -0
- package/src/utils/hooks/navigation.spec.ts +118 -0
- package/src/utils/hooks/navigation.ts +121 -0
- package/src/utils/hooks/useQuery.ts +36 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/path.spec.ts +92 -3
- package/src/utils/path.ts +46 -4
- package/src/utils/sdkLanguage.spec.ts +69 -0
- package/src/utils/sdkLanguage.ts +63 -0
- package/lib/components/DocResponses/DocResponseTypes.js.map +0 -1
- package/lib/components/DocResponses/DocResponses.d.ts +0 -8
- package/lib/components/DocResponses/DocResponses.js +0 -46
- package/lib/components/DocResponses/DocResponses.js.map +0 -1
- package/lib/components/DocResponses/utils.js.map +0 -1
- package/lib/esm/components/DocResponses/DocResponseTypes.js.map +0 -1
- package/lib/esm/components/DocResponses/DocResponses.js +0 -30
- package/lib/esm/components/DocResponses/DocResponses.js.map +0 -1
- package/lib/esm/components/DocResponses/index.js.map +0 -1
- package/lib/esm/components/DocResponses/utils.js.map +0 -1
- package/src/components/DocResponses/DocResponses.spec.tsx +0 -60
- package/src/components/DocResponses/DocResponses.tsx +0 -69
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useTagStoreSync = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactRouterDom = require("react-router-dom");
|
|
9
|
+
|
|
10
|
+
var _reactRedux = require("react-redux");
|
|
11
|
+
|
|
12
|
+
var _react = require("react");
|
|
13
|
+
|
|
14
|
+
var _state = require("../../../state");
|
|
15
|
+
|
|
16
|
+
var _utils = require("../../../utils");
|
|
17
|
+
|
|
18
|
+
var useTagStoreSync = () => {
|
|
19
|
+
var location = (0, _reactRouterDom.useLocation)();
|
|
20
|
+
var {
|
|
21
|
+
navigate
|
|
22
|
+
} = (0, _utils.useNavigation)();
|
|
23
|
+
var {
|
|
24
|
+
setTagFilterAction
|
|
25
|
+
} = (0, _state.useSettingActions)();
|
|
26
|
+
var {
|
|
27
|
+
initialized
|
|
28
|
+
} = (0, _state.useSettingStoreState)();
|
|
29
|
+
var selectedTagFilter = (0, _reactRedux.useSelector)(_state.selectTagFilter);
|
|
30
|
+
(0, _react.useEffect)(() => {
|
|
31
|
+
if (initialized) {
|
|
32
|
+
var params = new URLSearchParams(location.search);
|
|
33
|
+
var verbParam = params.get('t') || 'ALL';
|
|
34
|
+
var validVerbParam = (0, _utils.isValidFilter)(location.pathname, verbParam);
|
|
35
|
+
|
|
36
|
+
if (validVerbParam) {
|
|
37
|
+
setTagFilterAction({
|
|
38
|
+
tagFilter: verbParam.toUpperCase()
|
|
39
|
+
});
|
|
40
|
+
} else {
|
|
41
|
+
var verb = (0, _utils.isValidFilter)(location.pathname, selectedTagFilter) ? selectedTagFilter : 'ALL';
|
|
42
|
+
navigate(location.pathname, {
|
|
43
|
+
t: verb === 'ALL' ? null : verb.toLowerCase()
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}, [initialized]);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
exports.useTagStoreSync = useTagStoreSync;
|
|
51
|
+
//# sourceMappingURL=tagStoreSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/scenes/utils/hooks/tagStoreSync.ts"],"names":["useTagStoreSync","location","navigate","setTagFilterAction","initialized","selectedTagFilter","selectTagFilter","params","URLSearchParams","search","verbParam","get","validVerbParam","pathname","tagFilter","toUpperCase","verb","t","toLowerCase"],"mappings":";;;;;;;AAyBA;;AACA;;AACA;;AACA;;AAKA;;AAOO,IAAMA,eAAe,GAAG,MAAM;AACnC,MAAMC,QAAQ,GAAG,kCAAjB;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAe,2BAArB;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAyB,+BAA/B;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAkB,kCAAxB;AACA,MAAMC,iBAAiB,GAAG,6BAAYC,sBAAZ,CAA1B;AAEA,wBAAU,MAAM;AACd,QAAIF,WAAJ,EAAiB;AACf,UAAMG,MAAM,GAAG,IAAIC,eAAJ,CAAoBP,QAAQ,CAACQ,MAA7B,CAAf;AAGA,UAAMC,SAAS,GAAGH,MAAM,CAACI,GAAP,CAAW,GAAX,KAAmB,KAArC;AACA,UAAMC,cAAc,GAAG,0BAAcX,QAAQ,CAACY,QAAvB,EAAiCH,SAAjC,CAAvB;;AACA,UAAIE,cAAJ,EAAoB;AAClBT,QAAAA,kBAAkB,CAAC;AAAEW,UAAAA,SAAS,EAAEJ,SAAS,CAACK,WAAV;AAAb,SAAD,CAAlB;AACD,OAFD,MAEO;AAEL,YAAMC,IAAI,GAAG,0BAAcf,QAAQ,CAACY,QAAvB,EAAiCR,iBAAjC,IACTA,iBADS,GAET,KAFJ;AAGAH,QAAAA,QAAQ,CAACD,QAAQ,CAACY,QAAV,EAAoB;AAC1BI,UAAAA,CAAC,EAAED,IAAI,KAAK,KAAT,GAAiB,IAAjB,GAAwBA,IAAI,CAACE,WAAL;AADD,SAApB,CAAR;AAGD;AACF;AACF,GAnBD,EAmBG,CAACd,WAAD,CAnBH;AAoBD,CA3BM","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 */\nimport { useLocation } from 'react-router-dom'\nimport { useSelector } from 'react-redux'\nimport { useEffect } from 'react'\nimport {\n selectTagFilter,\n useSettingActions,\n useSettingStoreState,\n} from '../../../state'\nimport { isValidFilter, useNavigation } from '../../../utils'\n\n/**\n * Hook for syncing tag scene URL params with the Redux store\n *\n * Tag scene specific search parameters: 't'\n */\nexport const useTagStoreSync = () => {\n const location = useLocation()\n const { navigate } = useNavigation()\n const { setTagFilterAction } = useSettingActions()\n const { initialized } = useSettingStoreState()\n const selectedTagFilter = useSelector(selectTagFilter)\n\n useEffect(() => {\n if (initialized) {\n const params = new URLSearchParams(location.search)\n\n // syncing verb filter on tag scene page\n const verbParam = params.get('t') || 'ALL'\n const validVerbParam = isValidFilter(location.pathname, verbParam)\n if (validVerbParam) {\n setTagFilterAction({ tagFilter: verbParam.toUpperCase() })\n } else {\n // must confirm store tag filter param is valid for tag type before updating\n const verb = isValidFilter(location.pathname, selectedTagFilter)\n ? selectedTagFilter\n : 'ALL'\n navigate(location.pathname, {\n t: verb === 'ALL' ? null : verb.toLowerCase(),\n })\n }\n }\n }, [initialized])\n}\n"],"file":"tagStoreSync.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useTagStoreSync } from './hooks';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useTagStoreSync", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _hooks.useTagStoreSync;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
var _hooks = require("./hooks");
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/scenes/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AA0BA","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 { useTagStoreSync } from './hooks'\n"],"file":"index.js"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { RootState } from '../store';
|
|
2
2
|
export declare const selectSdkLanguage: (state: RootState) => string;
|
|
3
3
|
export declare const selectSearchPattern: (state: RootState) => string;
|
|
4
|
-
export declare const selectSearchCriteria: (state: RootState) => ("title" | "description" | "name" | "type" | "
|
|
4
|
+
export declare const selectSearchCriteria: (state: RootState) => ("title" | "description" | "name" | "type" | "method" | "argument" | "property" | "activityType" | "status" | "response")[];
|
|
5
|
+
export declare const selectTagFilter: (state: RootState) => string;
|
|
5
6
|
export declare const isInitialized: (state: RootState) => boolean;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isInitialized = exports.selectSearchCriteria = exports.selectSearchPattern = exports.selectSdkLanguage = void 0;
|
|
6
|
+
exports.isInitialized = exports.selectTagFilter = exports.selectSearchCriteria = exports.selectSearchPattern = exports.selectSdkLanguage = void 0;
|
|
7
7
|
|
|
8
8
|
var selectSettingsState = state => state.settings;
|
|
9
9
|
|
|
@@ -19,6 +19,10 @@ var selectSearchCriteria = state => selectSettingsState(state).searchCriteria;
|
|
|
19
19
|
|
|
20
20
|
exports.selectSearchCriteria = selectSearchCriteria;
|
|
21
21
|
|
|
22
|
+
var selectTagFilter = state => selectSettingsState(state).tagFilter;
|
|
23
|
+
|
|
24
|
+
exports.selectTagFilter = selectTagFilter;
|
|
25
|
+
|
|
22
26
|
var isInitialized = state => selectSettingsState(state).initialized;
|
|
23
27
|
|
|
24
28
|
exports.isInitialized = isInitialized;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/settings/selectors.ts"],"names":["selectSettingsState","state","settings","selectSdkLanguage","sdkLanguage","selectSearchPattern","searchPattern","selectSearchCriteria","searchCriteria","isInitialized","initialized"],"mappings":";;;;;;;AA2BA,IAAMA,mBAAmB,GAAIC,KAAD,IAAsBA,KAAK,CAACC,QAAxD;;AAEO,IAAMC,iBAAiB,GAAIF,KAAD,IAC/BD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BG,WADtB;;;;AAGA,IAAMC,mBAAmB,GAAIJ,KAAD,IACjCD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BK,aADtB;;;;AAGA,IAAMC,oBAAoB,GAAIN,KAAD,IAClCD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BO,cADtB;;;;AAGA,IAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../src/state/settings/selectors.ts"],"names":["selectSettingsState","state","settings","selectSdkLanguage","sdkLanguage","selectSearchPattern","searchPattern","selectSearchCriteria","searchCriteria","selectTagFilter","tagFilter","isInitialized","initialized"],"mappings":";;;;;;;AA2BA,IAAMA,mBAAmB,GAAIC,KAAD,IAAsBA,KAAK,CAACC,QAAxD;;AAEO,IAAMC,iBAAiB,GAAIF,KAAD,IAC/BD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BG,WADtB;;;;AAGA,IAAMC,mBAAmB,GAAIJ,KAAD,IACjCD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BK,aADtB;;;;AAGA,IAAMC,oBAAoB,GAAIN,KAAD,IAClCD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BO,cADtB;;;;AAGA,IAAMC,eAAe,GAAIR,KAAD,IAC7BD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BS,SADtB;;;;AAGA,IAAMC,aAAa,GAAIV,KAAD,IAC3BD,mBAAmB,CAACC,KAAD,CAAnB,CAA2BW,WADtB","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 */\nimport type { RootState } from '../store'\n\nconst selectSettingsState = (state: RootState) => state.settings\n\nexport const selectSdkLanguage = (state: RootState) =>\n selectSettingsState(state).sdkLanguage\n\nexport const selectSearchPattern = (state: RootState) =>\n selectSettingsState(state).searchPattern\n\nexport const selectSearchCriteria = (state: RootState) =>\n selectSettingsState(state).searchCriteria\n\nexport const selectTagFilter = (state: RootState) =>\n selectSettingsState(state).tagFilter\n\nexport const isInitialized = (state: RootState) =>\n selectSettingsState(state).initialized\n"],"file":"selectors.js"}
|
|
@@ -6,17 +6,20 @@ export interface UserDefinedSettings {
|
|
|
6
6
|
export interface SettingState extends UserDefinedSettings {
|
|
7
7
|
searchPattern: string;
|
|
8
8
|
searchCriteria: SearchCriterionTerm[];
|
|
9
|
+
tagFilter: string;
|
|
9
10
|
initialized: boolean;
|
|
10
11
|
error?: Error;
|
|
11
12
|
}
|
|
12
13
|
export declare const defaultSettings: {
|
|
13
14
|
sdkLanguage: string;
|
|
14
15
|
searchPattern: string;
|
|
15
|
-
searchCriteria: ("title" | "description" | "name" | "type" | "
|
|
16
|
+
searchCriteria: ("title" | "description" | "name" | "type" | "method" | "argument" | "property" | "activityType" | "status" | "response")[];
|
|
17
|
+
tagFilter: string;
|
|
16
18
|
};
|
|
17
19
|
export declare const defaultSettingsState: SettingState;
|
|
18
20
|
declare type SetSearchPatternAction = Pick<SettingState, 'searchPattern'>;
|
|
19
21
|
declare type SetSdkLanguageAction = Pick<SettingState, 'sdkLanguage'>;
|
|
22
|
+
declare type SetTagFilterAction = Pick<SettingState, 'tagFilter'>;
|
|
20
23
|
export declare type InitSuccessPayload = UserDefinedSettings;
|
|
21
24
|
export declare const settingsSlice: import("@reduxjs/toolkit").Slice<SettingState, {
|
|
22
25
|
initSettingsAction(): void;
|
|
@@ -24,6 +27,7 @@ export declare const settingsSlice: import("@reduxjs/toolkit").Slice<SettingStat
|
|
|
24
27
|
initSettingsFailureAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<Error>): void;
|
|
25
28
|
setSdkLanguageAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSdkLanguageAction>): void;
|
|
26
29
|
setSearchPatternAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSearchPatternAction>): void;
|
|
30
|
+
setTagFilterAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetTagFilterAction>): void;
|
|
27
31
|
}, "settings">;
|
|
28
32
|
export declare const settingActions: import("@reduxjs/toolkit").CaseReducerActions<{
|
|
29
33
|
initSettingsAction(): void;
|
|
@@ -31,6 +35,7 @@ export declare const settingActions: import("@reduxjs/toolkit").CaseReducerActio
|
|
|
31
35
|
initSettingsFailureAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<Error>): void;
|
|
32
36
|
setSdkLanguageAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSdkLanguageAction>): void;
|
|
33
37
|
setSearchPatternAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSearchPatternAction>): void;
|
|
38
|
+
setTagFilterAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetTagFilterAction>): void;
|
|
34
39
|
}>;
|
|
35
40
|
export declare const useSettingActions: () => import("@reduxjs/toolkit").CaseReducerActions<{
|
|
36
41
|
initSettingsAction(): void;
|
|
@@ -38,5 +43,6 @@ export declare const useSettingActions: () => import("@reduxjs/toolkit").CaseRed
|
|
|
38
43
|
initSettingsFailureAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<Error>): void;
|
|
39
44
|
setSdkLanguageAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSdkLanguageAction>): void;
|
|
40
45
|
setSearchPatternAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetSearchPatternAction>): void;
|
|
46
|
+
setTagFilterAction(state: import("immer/dist/internal").WritableDraft<SettingState>, action: PayloadAction<SetTagFilterAction>): void;
|
|
41
47
|
}>, useSettingStoreState: () => SettingState;
|
|
42
48
|
export {};
|
|
@@ -22,7 +22,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
22
22
|
var defaultSettings = {
|
|
23
23
|
sdkLanguage: 'Python',
|
|
24
24
|
searchPattern: '',
|
|
25
|
-
searchCriteria: (0, _sdkCodegen.setToCriteria)(_sdkCodegen.SearchAll)
|
|
25
|
+
searchCriteria: (0, _sdkCodegen.setToCriteria)(_sdkCodegen.SearchAll),
|
|
26
|
+
tagFilter: 'ALL'
|
|
26
27
|
};
|
|
27
28
|
exports.defaultSettings = defaultSettings;
|
|
28
29
|
|
|
@@ -53,6 +54,10 @@ var settingsSlice = (0, _toolkit.createSlice)({
|
|
|
53
54
|
|
|
54
55
|
setSearchPatternAction(state, action) {
|
|
55
56
|
state.searchPattern = action.payload.searchPattern;
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
setTagFilterAction(state, action) {
|
|
60
|
+
state.tagFilter = action.payload.tagFilter;
|
|
56
61
|
}
|
|
57
62
|
|
|
58
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/state/settings/slice.ts"],"names":["defaultSettings","sdkLanguage","searchPattern","searchCriteria","SearchAll","defaultSettingsState","initialized","settingsSlice","name","initialState","reducers","initSettingsAction","initSettingsSuccessAction","state","action","payload","initSettingsFailureAction","error","setSdkLanguageAction","setSearchPatternAction","settingActions","actions","useActions","useSettingActions","useStoreState","useSettingStoreState","saga"],"mappings":";;;;;;;AAyBA;;AAEA;;AAEA;;AAEA;;;;;;;;
|
|
1
|
+
{"version":3,"sources":["../../../src/state/settings/slice.ts"],"names":["defaultSettings","sdkLanguage","searchPattern","searchCriteria","SearchAll","tagFilter","defaultSettingsState","initialized","settingsSlice","name","initialState","reducers","initSettingsAction","initSettingsSuccessAction","state","action","payload","initSettingsFailureAction","error","setSdkLanguageAction","setSearchPatternAction","setTagFilterAction","settingActions","actions","useActions","useSettingActions","useStoreState","useSettingStoreState","saga"],"mappings":";;;;;;;AAyBA;;AAEA;;AAEA;;AAEA;;;;;;;;AAcO,IAAMA,eAAe,GAAG;AAC7BC,EAAAA,WAAW,EAAE,QADgB;AAE7BC,EAAAA,aAAa,EAAE,EAFc;AAG7BC,EAAAA,cAAc,EAAE,+BAAcC,qBAAd,CAHa;AAI7BC,EAAAA,SAAS,EAAE;AAJkB,CAAxB;;;AAOA,IAAMC,oBAAkC,mCAC1CN,eAD0C;AAE7CO,EAAAA,WAAW,EAAE;AAFgC,EAAxC;;;AAWA,IAAMC,aAAa,GAAG,0BAAY;AACvCC,EAAAA,IAAI,EAAE,UADiC;AAEvCC,EAAAA,YAAY,EAAEJ,oBAFyB;AAGvCK,EAAAA,QAAQ,EAAE;AAERC,IAAAA,kBAAkB,GAAG,CAAE,CAFf;;AAGRC,IAAAA,yBAAyB,CACvBC,KADuB,EAEvBC,MAFuB,EAGvB;AACAD,MAAAA,KAAK,CAACb,WAAN,GAAoBc,MAAM,CAACC,OAAP,CAAef,WAAnC;AACAa,MAAAA,KAAK,CAACP,WAAN,GAAoB,IAApB;AACD,KATO;;AAURU,IAAAA,yBAAyB,CAACH,KAAD,EAAQC,MAAR,EAAsC;AAC7DD,MAAAA,KAAK,CAACI,KAAN,GAAcH,MAAM,CAACC,OAArB;AACAF,MAAAA,KAAK,CAACP,WAAN,GAAoB,KAApB;AACD,KAbO;;AAcRY,IAAAA,oBAAoB,CAACL,KAAD,EAAQC,MAAR,EAAqD;AACvED,MAAAA,KAAK,CAACb,WAAN,GAAoBc,MAAM,CAACC,OAAP,CAAef,WAAnC;AACD,KAhBO;;AAiBRmB,IAAAA,sBAAsB,CACpBN,KADoB,EAEpBC,MAFoB,EAGpB;AACAD,MAAAA,KAAK,CAACZ,aAAN,GAAsBa,MAAM,CAACC,OAAP,CAAed,aAArC;AACD,KAtBO;;AAuBRmB,IAAAA,kBAAkB,CAACP,KAAD,EAAQC,MAAR,EAAmD;AACnED,MAAAA,KAAK,CAACT,SAAN,GAAkBU,MAAM,CAACC,OAAP,CAAeX,SAAjC;AACD;;AAzBO;AAH6B,CAAZ,CAAtB;;AAgCA,IAAMiB,cAAc,GAAGd,aAAa,CAACe,OAArC;;AACA,IAAM;AACXC,EAAAA,UAAU,EAAEC,iBADD;AAEXC,EAAAA,aAAa,EAAEC;AAFJ,IAGT,6BAAiBnB,aAAjB,EAAgCoB,WAAhC,CAHG","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 */\nimport { createSlice } from '@reduxjs/toolkit'\nimport type { PayloadAction } from '@reduxjs/toolkit'\nimport { createSliceHooks } from '@looker/redux'\nimport type { SearchCriterionTerm } from '@looker/sdk-codegen'\nimport { SearchAll, setToCriteria } from '@looker/sdk-codegen'\n\nimport { saga } from './sagas'\n\nexport interface UserDefinedSettings {\n sdkLanguage: string\n}\n\nexport interface SettingState extends UserDefinedSettings {\n searchPattern: string\n searchCriteria: SearchCriterionTerm[]\n tagFilter: string\n initialized: boolean\n error?: Error\n}\n\nexport const defaultSettings = {\n sdkLanguage: 'Python',\n searchPattern: '',\n searchCriteria: setToCriteria(SearchAll) as SearchCriterionTerm[],\n tagFilter: 'ALL',\n}\n\nexport const defaultSettingsState: SettingState = {\n ...defaultSettings,\n initialized: false,\n}\n\ntype SetSearchPatternAction = Pick<SettingState, 'searchPattern'>\ntype SetSdkLanguageAction = Pick<SettingState, 'sdkLanguage'>\ntype SetTagFilterAction = Pick<SettingState, 'tagFilter'>\n\nexport type InitSuccessPayload = UserDefinedSettings\n\nexport const settingsSlice = createSlice({\n name: 'settings',\n initialState: defaultSettingsState,\n reducers: {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n initSettingsAction() {},\n initSettingsSuccessAction(\n state,\n action: PayloadAction<InitSuccessPayload>\n ) {\n state.sdkLanguage = action.payload.sdkLanguage\n state.initialized = true\n },\n initSettingsFailureAction(state, action: PayloadAction<Error>) {\n state.error = action.payload\n state.initialized = false\n },\n setSdkLanguageAction(state, action: PayloadAction<SetSdkLanguageAction>) {\n state.sdkLanguage = action.payload.sdkLanguage\n },\n setSearchPatternAction(\n state,\n action: PayloadAction<SetSearchPatternAction>\n ) {\n state.searchPattern = action.payload.searchPattern\n },\n setTagFilterAction(state, action: PayloadAction<SetTagFilterAction>) {\n state.tagFilter = action.payload.tagFilter\n },\n },\n})\n\nexport const settingActions = settingsSlice.actions\nexport const {\n useActions: useSettingActions,\n useStoreState: useSettingStoreState,\n} = createSliceHooks(settingsSlice, saga)\n"],"file":"slice.js"}
|
package/lib/test-data/index.d.ts
CHANGED
package/lib/test-data/index.js
CHANGED
|
@@ -42,4 +42,18 @@ Object.keys(_declarations).forEach(function (key) {
|
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
44
|
});
|
|
45
|
+
|
|
46
|
+
var _sdkLanguages = require("./sdkLanguages");
|
|
47
|
+
|
|
48
|
+
Object.keys(_sdkLanguages).forEach(function (key) {
|
|
49
|
+
if (key === "default" || key === "__esModule") return;
|
|
50
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
51
|
+
if (key in exports && exports[key] === _sdkLanguages[key]) return;
|
|
52
|
+
Object.defineProperty(exports, key, {
|
|
53
|
+
enumerable: true,
|
|
54
|
+
get: function get() {
|
|
55
|
+
return _sdkLanguages[key];
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
45
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/test-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyBA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;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 */\nexport * from './specs'\nexport { examples } from './examples'\nexport * from './declarations'\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/test-data/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAyBA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;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 */\nexport * from './specs'\nexport { examples } from './examples'\nexport * from './declarations'\nexport * from './sdkLanguages'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.languages = exports.sdkLanguageMapping = void 0;
|
|
7
|
+
var sdkLanguageMapping = {
|
|
8
|
+
py: 'Python',
|
|
9
|
+
ts: 'TypeScript',
|
|
10
|
+
cs: 'C#',
|
|
11
|
+
kt: 'Kotlin',
|
|
12
|
+
swift: 'Swift',
|
|
13
|
+
go: 'Go',
|
|
14
|
+
all: 'All'
|
|
15
|
+
};
|
|
16
|
+
exports.sdkLanguageMapping = sdkLanguageMapping;
|
|
17
|
+
var languages = Object.values(sdkLanguageMapping);
|
|
18
|
+
exports.languages = languages;
|
|
19
|
+
//# sourceMappingURL=sdkLanguages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/test-data/sdkLanguages.ts"],"names":["sdkLanguageMapping","py","ts","cs","kt","swift","go","all","languages","Object","values"],"mappings":";;;;;;AAyBO,IAAMA,kBAAkB,GAAG;AAChCC,EAAAA,EAAE,EAAE,QAD4B;AAEhCC,EAAAA,EAAE,EAAE,YAF4B;AAGhCC,EAAAA,EAAE,EAAE,IAH4B;AAIhCC,EAAAA,EAAE,EAAE,QAJ4B;AAKhCC,EAAAA,KAAK,EAAE,OALyB;AAMhCC,EAAAA,EAAE,EAAE,IAN4B;AAOhCC,EAAAA,GAAG,EAAE;AAP2B,CAA3B;;AAUA,IAAMC,SAAS,GAAGC,MAAM,CAACC,MAAP,CAAcV,kBAAd,CAAlB","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 */\nexport const sdkLanguageMapping = {\n py: 'Python',\n ts: 'TypeScript',\n cs: 'C#',\n kt: 'Kotlin',\n swift: 'Swift',\n go: 'Go',\n all: 'All',\n}\n\nexport const languages = Object.values(sdkLanguageMapping)\n"],"file":"sdkLanguages.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useGlobalStoreSync: () => void;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useGlobalStoreSync = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactRouterDom = require("react-router-dom");
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var _reactRedux = require("react-redux");
|
|
13
|
+
|
|
14
|
+
var _index = require("../index");
|
|
15
|
+
|
|
16
|
+
var _state = require("../../state");
|
|
17
|
+
|
|
18
|
+
var useGlobalStoreSync = () => {
|
|
19
|
+
var location = (0, _reactRouterDom.useLocation)();
|
|
20
|
+
var {
|
|
21
|
+
navigate
|
|
22
|
+
} = (0, _index.useNavigation)();
|
|
23
|
+
var {
|
|
24
|
+
setSdkLanguageAction,
|
|
25
|
+
setSearchPatternAction
|
|
26
|
+
} = (0, _state.useSettingActions)();
|
|
27
|
+
var {
|
|
28
|
+
initialized
|
|
29
|
+
} = (0, _state.useSettingStoreState)();
|
|
30
|
+
var selectedSdkLanguage = (0, _reactRedux.useSelector)(_state.selectSdkLanguage);
|
|
31
|
+
(0, _react.useEffect)(() => {
|
|
32
|
+
if (initialized) {
|
|
33
|
+
var params = new URLSearchParams(location.search);
|
|
34
|
+
var searchParam = params.get('s');
|
|
35
|
+
|
|
36
|
+
if (searchParam) {
|
|
37
|
+
setSearchPatternAction({
|
|
38
|
+
searchPattern: searchParam
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
var sdkParam = params.get('sdk') || '';
|
|
43
|
+
var sdk = (0, _index.findSdk)(sdkParam);
|
|
44
|
+
var validSdkParam = !sdkParam.localeCompare(sdk.alias, 'en', {
|
|
45
|
+
sensitivity: 'base'
|
|
46
|
+
}) || !sdkParam.localeCompare(sdk.language, 'en', {
|
|
47
|
+
sensitivity: 'base'
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
if (validSdkParam) {
|
|
51
|
+
setSdkLanguageAction({
|
|
52
|
+
sdkLanguage: sdk.language
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
var {
|
|
56
|
+
alias
|
|
57
|
+
} = (0, _index.findSdk)(selectedSdkLanguage);
|
|
58
|
+
navigate(location.pathname, {
|
|
59
|
+
sdk: alias === _index.allAlias ? null : alias
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}, [initialized]);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
exports.useGlobalStoreSync = useGlobalStoreSync;
|
|
67
|
+
//# sourceMappingURL=globalStoreSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/hooks/globalStoreSync.ts"],"names":["useGlobalStoreSync","location","navigate","setSdkLanguageAction","setSearchPatternAction","initialized","selectedSdkLanguage","selectSdkLanguage","params","URLSearchParams","search","searchParam","get","searchPattern","sdkParam","sdk","validSdkParam","localeCompare","alias","sensitivity","language","sdkLanguage","pathname","allAlias"],"mappings":";;;;;;;AAyBA;;AACA;;AACA;;AACA;;AACA;;AAUO,IAAMA,kBAAkB,GAAG,MAAM;AACtC,MAAMC,QAAQ,GAAG,kCAAjB;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAe,2BAArB;AACA,MAAM;AAAEC,IAAAA,oBAAF;AAAwBC,IAAAA;AAAxB,MAAmD,+BAAzD;AACA,MAAM;AAAEC,IAAAA;AAAF,MAAkB,kCAAxB;AACA,MAAMC,mBAAmB,GAAG,6BAAYC,wBAAZ,CAA5B;AAEA,wBAAU,MAAM;AACd,QAAIF,WAAJ,EAAiB;AACf,UAAMG,MAAM,GAAG,IAAIC,eAAJ,CAAoBR,QAAQ,CAACS,MAA7B,CAAf;AAGA,UAAMC,WAAW,GAAGH,MAAM,CAACI,GAAP,CAAW,GAAX,CAApB;;AACA,UAAID,WAAJ,EAAiB;AACfP,QAAAA,sBAAsB,CAAC;AACrBS,UAAAA,aAAa,EAAEF;AADM,SAAD,CAAtB;AAGD;;AAGD,UAAMG,QAAQ,GAAGN,MAAM,CAACI,GAAP,CAAW,KAAX,KAAqB,EAAtC;AACA,UAAMG,GAAG,GAAG,oBAAQD,QAAR,CAAZ;AACA,UAAME,aAAa,GACjB,CAACF,QAAQ,CAACG,aAAT,CAAuBF,GAAG,CAACG,KAA3B,EAAkC,IAAlC,EAAwC;AAAEC,QAAAA,WAAW,EAAE;AAAf,OAAxC,CAAD,IACA,CAACL,QAAQ,CAACG,aAAT,CAAuBF,GAAG,CAACK,QAA3B,EAAqC,IAArC,EAA2C;AAAED,QAAAA,WAAW,EAAE;AAAf,OAA3C,CAFH;;AAGA,UAAIH,aAAJ,EAAmB;AACjBb,QAAAA,oBAAoB,CAAC;AACnBkB,UAAAA,WAAW,EAAEN,GAAG,CAACK;AADE,SAAD,CAApB;AAGD,OAJD,MAIO;AACL,YAAM;AAAEF,UAAAA;AAAF,YAAY,oBAAQZ,mBAAR,CAAlB;AACAJ,QAAAA,QAAQ,CAACD,QAAQ,CAACqB,QAAV,EAAoB;AAC1BP,UAAAA,GAAG,EAAEG,KAAK,KAAKK,eAAV,GAAqB,IAArB,GAA4BL;AADP,SAApB,CAAR;AAGD;AACF;AACF,GA7BD,EA6BG,CAACb,WAAD,CA7BH;AA8BD,CArCM","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 */\nimport { useLocation } from 'react-router-dom'\nimport { useEffect } from 'react'\nimport { useSelector } from 'react-redux'\nimport { allAlias, findSdk, useNavigation } from '../index'\nimport {\n selectSdkLanguage,\n useSettingActions,\n useSettingStoreState,\n} from '../../state'\n\n/**\n * Hook for syncing global URL params with the Redux store\n * Global search parameters: 's', 'sdk'\n */\nexport const useGlobalStoreSync = () => {\n const location = useLocation()\n const { navigate } = useNavigation()\n const { setSdkLanguageAction, setSearchPatternAction } = useSettingActions()\n const { initialized } = useSettingStoreState()\n const selectedSdkLanguage = useSelector(selectSdkLanguage)\n\n useEffect(() => {\n if (initialized) {\n const params = new URLSearchParams(location.search)\n\n // syncing search query\n const searchParam = params.get('s')\n if (searchParam) {\n setSearchPatternAction({\n searchPattern: searchParam,\n })\n }\n\n // syncing SDK language selection\n const sdkParam = params.get('sdk') || ''\n const sdk = findSdk(sdkParam)\n const validSdkParam =\n !sdkParam.localeCompare(sdk.alias, 'en', { sensitivity: 'base' }) ||\n !sdkParam.localeCompare(sdk.language, 'en', { sensitivity: 'base' })\n if (validSdkParam) {\n setSdkLanguageAction({\n sdkLanguage: sdk.language,\n })\n } else {\n const { alias } = findSdk(selectedSdkLanguage)\n navigate(location.pathname, {\n sdk: alias === allAlias ? null : alias,\n })\n }\n }\n }, [initialized])\n}\n"],"file":"globalStoreSync.js"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useNavigation", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _navigation.useNavigation;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useGlobalStoreSync", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _globalStoreSync.useGlobalStoreSync;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useQuery", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _useQuery.useQuery;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
var _navigation = require("./navigation");
|
|
26
|
+
|
|
27
|
+
var _globalStoreSync = require("./globalStoreSync");
|
|
28
|
+
|
|
29
|
+
var _useQuery = require("./useQuery");
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA;;AACA;;AACA","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 */\nexport { useNavigation } from './navigation'\nexport { useGlobalStoreSync } from './globalStoreSync'\nexport { useQuery } from './useQuery'\n"],"file":"index.js"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface QueryParamProps {
|
|
2
|
+
s?: string | null;
|
|
3
|
+
sdk?: string | null;
|
|
4
|
+
t?: string | null;
|
|
5
|
+
}
|
|
6
|
+
export declare const useNavigation: () => {
|
|
7
|
+
navigate: (path: string, queryParams?: QueryParamProps | null | undefined) => void;
|
|
8
|
+
navigateWithGlobalParams: (path: string) => void;
|
|
9
|
+
buildPathWithGlobalParams: (path: string, otherParams?: {}) => string;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useNavigation = void 0;
|
|
7
|
+
|
|
8
|
+
var _reactRouterDom = require("react-router-dom");
|
|
9
|
+
|
|
10
|
+
var GLOBAL_PARAMS = ['s', 'sdk'];
|
|
11
|
+
|
|
12
|
+
var useNavigation = () => {
|
|
13
|
+
var history = (0, _reactRouterDom.useHistory)();
|
|
14
|
+
|
|
15
|
+
var navigate = (path, queryParams) => {
|
|
16
|
+
var urlParams = new URLSearchParams(history.location.search);
|
|
17
|
+
|
|
18
|
+
if (queryParams === undefined) {
|
|
19
|
+
history.push({
|
|
20
|
+
pathname: path,
|
|
21
|
+
search: urlParams.toString()
|
|
22
|
+
});
|
|
23
|
+
} else if (queryParams === null) {
|
|
24
|
+
history.push({
|
|
25
|
+
pathname: path
|
|
26
|
+
});
|
|
27
|
+
} else {
|
|
28
|
+
Object.keys(queryParams).forEach(key => {
|
|
29
|
+
if (queryParams[key] === null || queryParams[key] === '') {
|
|
30
|
+
urlParams.delete(key);
|
|
31
|
+
} else {
|
|
32
|
+
urlParams.set(key, queryParams[key]);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
history.push({
|
|
36
|
+
pathname: path,
|
|
37
|
+
search: urlParams.toString()
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var buildPathWithGlobalParams = function buildPathWithGlobalParams(path) {
|
|
43
|
+
var otherParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
44
|
+
var params = new URLSearchParams(history.location.search);
|
|
45
|
+
|
|
46
|
+
for (var key of params.keys()) {
|
|
47
|
+
if (!GLOBAL_PARAMS.includes(key)) {
|
|
48
|
+
params.delete(key);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
var globalParams = params.toString();
|
|
53
|
+
var additionalParams = '';
|
|
54
|
+
Object.entries(otherParams).forEach(_ref => {
|
|
55
|
+
var [key, value] = _ref;
|
|
56
|
+
additionalParams += "".concat(key, "=").concat(value);
|
|
57
|
+
});
|
|
58
|
+
var queryString = '';
|
|
59
|
+
|
|
60
|
+
if (globalParams) {
|
|
61
|
+
queryString = globalParams;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (additionalParams) {
|
|
65
|
+
queryString += globalParams ? "&".concat(additionalParams) : additionalParams;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return "".concat(path).concat(queryString ? "?".concat(queryString) : '');
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var navigateWithGlobalParams = path => {
|
|
72
|
+
history.push(buildPathWithGlobalParams(path));
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
navigate,
|
|
77
|
+
navigateWithGlobalParams,
|
|
78
|
+
buildPathWithGlobalParams
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
exports.useNavigation = useNavigation;
|
|
83
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/hooks/navigation.ts"],"names":["GLOBAL_PARAMS","useNavigation","history","navigate","path","queryParams","urlParams","URLSearchParams","location","search","undefined","push","pathname","toString","Object","keys","forEach","key","delete","set","buildPathWithGlobalParams","otherParams","params","includes","globalParams","additionalParams","entries","value","queryString","navigateWithGlobalParams"],"mappings":";;;;;;;AAyBA;;AAEA,IAAMA,aAAa,GAAG,CAAC,GAAD,EAAM,KAAN,CAAtB;;AAcO,IAAMC,aAAa,GAAG,MAAM;AACjC,MAAMC,OAAO,GAAG,iCAAhB;;AAQA,MAAMC,QAAQ,GAAG,CAACC,IAAD,EAAeC,WAAf,KAAwD;AACvE,QAAMC,SAAS,GAAG,IAAIC,eAAJ,CAAoBL,OAAO,CAACM,QAAR,CAAiBC,MAArC,CAAlB;;AAEA,QAAIJ,WAAW,KAAKK,SAApB,EAA+B;AAE7BR,MAAAA,OAAO,CAACS,IAAR,CAAa;AAAEC,QAAAA,QAAQ,EAAER,IAAZ;AAAkBK,QAAAA,MAAM,EAAEH,SAAS,CAACO,QAAV;AAA1B,OAAb;AACD,KAHD,MAGO,IAAIR,WAAW,KAAK,IAApB,EAA0B;AAE/BH,MAAAA,OAAO,CAACS,IAAR,CAAa;AAAEC,QAAAA,QAAQ,EAAER;AAAZ,OAAb;AACD,KAHM,MAGA;AAELU,MAAAA,MAAM,CAACC,IAAP,CAAYV,WAAZ,EAAyBW,OAAzB,CAAkCC,GAAD,IAAS;AACxC,YAAIZ,WAAW,CAACY,GAAD,CAAX,KAAqB,IAArB,IAA6BZ,WAAW,CAACY,GAAD,CAAX,KAAqB,EAAtD,EAA0D;AACxDX,UAAAA,SAAS,CAACY,MAAV,CAAiBD,GAAjB;AACD,SAFD,MAEO;AACLX,UAAAA,SAAS,CAACa,GAAV,CAAcF,GAAd,EAAmBZ,WAAW,CAACY,GAAD,CAA9B;AACD;AACF,OAND;AAOAf,MAAAA,OAAO,CAACS,IAAR,CAAa;AAAEC,QAAAA,QAAQ,EAAER,IAAZ;AAAkBK,QAAAA,MAAM,EAAEH,SAAS,CAACO,QAAV;AAA1B,OAAb;AACD;AACF,GApBD;;AA6BA,MAAMO,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAChB,IAAD,EAAoC;AAAA,QAArBiB,WAAqB,uEAAP,EAAO;AACpE,QAAMC,MAAM,GAAG,IAAIf,eAAJ,CAAoBL,OAAO,CAACM,QAAR,CAAiBC,MAArC,CAAf;;AAEA,SAAK,IAAMQ,GAAX,IAAkBK,MAAM,CAACP,IAAP,EAAlB,EAAiC;AAC/B,UAAI,CAACf,aAAa,CAACuB,QAAd,CAAuBN,GAAvB,CAAL,EAAkC;AAChCK,QAAAA,MAAM,CAACJ,MAAP,CAAcD,GAAd;AACD;AACF;;AACD,QAAMO,YAAY,GAAGF,MAAM,CAACT,QAAP,EAArB;AAEA,QAAIY,gBAAgB,GAAG,EAAvB;AACAX,IAAAA,MAAM,CAACY,OAAP,CAAeL,WAAf,EAA4BL,OAA5B,CAAoC,QAAkB;AAAA,UAAjB,CAACC,GAAD,EAAMU,KAAN,CAAiB;AACpDF,MAAAA,gBAAgB,cAAOR,GAAP,cAAcU,KAAd,CAAhB;AACD,KAFD;AAIA,QAAIC,WAAW,GAAG,EAAlB;;AACA,QAAIJ,YAAJ,EAAkB;AAChBI,MAAAA,WAAW,GAAGJ,YAAd;AACD;;AAED,QAAIC,gBAAJ,EAAsB;AACpBG,MAAAA,WAAW,IAAIJ,YAAY,cAAOC,gBAAP,IAA4BA,gBAAvD;AACD;;AAED,qBAAUrB,IAAV,SAAiBwB,WAAW,cAAOA,WAAP,IAAuB,EAAnD;AACD,GAzBD;;AAgCA,MAAMC,wBAAwB,GAAIzB,IAAD,IAAkB;AACjDF,IAAAA,OAAO,CAACS,IAAR,CAAaS,yBAAyB,CAAChB,IAAD,CAAtC;AACD,GAFD;;AAIA,SAAO;AACLD,IAAAA,QADK;AAEL0B,IAAAA,wBAFK;AAGLT,IAAAA;AAHK,GAAP;AAKD,CA/EM","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 */\nimport { useHistory } from 'react-router-dom'\n\nconst GLOBAL_PARAMS = ['s', 'sdk']\n\ninterface QueryParamProps {\n /** Search Query **/\n s?: string | null\n /** Chosen SDK Language **/\n sdk?: string | null\n /** Tag Scene Filter **/\n t?: string | null\n}\n\n/**\n * Hook for navigating to given route with query params\n */\nexport const useNavigation = () => {\n const history = useHistory()\n\n /**\n * Navigates to path including provided search parameters\n *\n * @param path Pathname to navigate to\n * @param queryParams Hash of query param name/value pairs to include in the destination url\n */\n const navigate = (path: string, queryParams?: QueryParamProps | null) => {\n const urlParams = new URLSearchParams(history.location.search)\n\n if (queryParams === undefined) {\n // if params passed in is undefined, maintain existing parameters in the URL\n history.push({ pathname: path, search: urlParams.toString() })\n } else if (queryParams === null) {\n // if params passed in is null, remove all parameters from the URL\n history.push({ pathname: path })\n } else {\n // push each key as new param to URL, excluding entries with value null\n Object.keys(queryParams).forEach((key) => {\n if (queryParams[key] === null || queryParams[key] === '') {\n urlParams.delete(key)\n } else {\n urlParams.set(key, queryParams[key])\n }\n })\n history.push({ pathname: path, search: urlParams.toString() })\n }\n }\n\n /**\n * Builds path to a scene and removes any scene-specific URL parameters\n *\n * @param path the destination path\n * @param otherParams other query parameters to append to url\n * @returns a path excluding scene-specific search parameters\n */\n const buildPathWithGlobalParams = (path: string, otherParams = {}) => {\n const params = new URLSearchParams(history.location.search)\n\n for (const key of params.keys()) {\n if (!GLOBAL_PARAMS.includes(key)) {\n params.delete(key)\n }\n }\n const globalParams = params.toString()\n\n let additionalParams = ''\n Object.entries(otherParams).forEach(([key, value]) => {\n additionalParams += `${key}=${value}`\n })\n\n let queryString = ''\n if (globalParams) {\n queryString = globalParams\n }\n\n if (additionalParams) {\n queryString += globalParams ? `&${additionalParams}` : additionalParams\n }\n\n return `${path}${queryString ? `?${queryString}` : ''}`\n }\n\n /**\n * Navigates to a scene removing any scene-specific URL parameters\n *\n * @param path Pathname to navigate to\n */\n const navigateWithGlobalParams = (path: string) => {\n history.push(buildPathWithGlobalParams(path))\n }\n\n return {\n navigate,\n navigateWithGlobalParams,\n buildPathWithGlobalParams,\n }\n}\n"],"file":"navigation.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useQuery: () => URLSearchParams;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useQuery = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _reactRouterDom = require("react-router-dom");
|
|
11
|
+
|
|
12
|
+
var useQuery = () => {
|
|
13
|
+
var {
|
|
14
|
+
search
|
|
15
|
+
} = (0, _reactRouterDom.useLocation)();
|
|
16
|
+
return (0, _react.useMemo)(() => new URLSearchParams(search), [search]);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.useQuery = useQuery;
|
|
20
|
+
//# sourceMappingURL=useQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/hooks/useQuery.ts"],"names":["useQuery","search","URLSearchParams"],"mappings":";;;;;;;AAyBA;;AACA;;AAKO,IAAMA,QAAQ,GAAG,MAAM;AAC5B,MAAM;AAAEC,IAAAA;AAAF,MAAa,kCAAnB;AAEA,SAAO,oBAAQ,MAAM,IAAIC,eAAJ,CAAoBD,MAApB,CAAd,EAA2C,CAACA,MAAD,CAA3C,CAAP;AACD,CAJM","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 */\nimport { useMemo } from 'react'\nimport { useLocation } from 'react-router-dom'\n\n/**\n * Hook for retrieving query params\n */\nexport const useQuery = () => {\n const { search } = useLocation()\n\n return useMemo(() => new URLSearchParams(search), [search])\n}\n"],"file":"useQuery.js"}
|
package/lib/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export { highlightHTML } from './highlight';
|
|
2
2
|
export * from './path';
|
|
3
|
+
export * from './sdkLanguage';
|
|
3
4
|
export { getLoded } from './lodeUtils';
|
|
4
5
|
export { useWindowSize } from './useWindowSize';
|
|
5
6
|
export * from './apixAdaptor';
|
|
6
7
|
export * from './adaptorUtils';
|
|
8
|
+
export { useNavigation, useGlobalStoreSync, useQuery } from './hooks';
|