@bynder/compact-view 5.1.2 → 5.1.4
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/ActiveFilter.js +33 -0
- package/ActiveFilter.js.map +1 -0
- package/ActiveFilters.js +81 -0
- package/ActiveFilters.js.map +1 -0
- package/AddMedia.js +90 -0
- package/AddMedia.js.map +1 -0
- package/Advanced.js +66 -0
- package/Advanced.js.map +1 -0
- package/App.d.ts +1 -1
- package/App.js +89 -0
- package/App.js.map +1 -0
- package/AssetCard.js +172 -0
- package/AssetCard.js.map +1 -0
- package/AssetCardMetaproperties.js +47 -0
- package/AssetCardMetaproperties.js.map +1 -0
- package/AssetFilter.js +158 -0
- package/AssetFilter.js.map +1 -0
- package/AssetFilterContext.js +162 -0
- package/AssetFilterContext.js.map +1 -0
- package/AssetItem.js +40 -0
- package/AssetItem.js.map +1 -0
- package/AssetList.js +158 -0
- package/AssetList.js.map +1 -0
- package/AssetTypeItem.js +34 -0
- package/AssetTypeItem.js.map +1 -0
- package/AssetsView.js +61 -0
- package/AssetsView.js.map +1 -0
- package/Autocomplete.js +148 -0
- package/Autocomplete.js.map +1 -0
- package/ButtonAction.js +14 -0
- package/ButtonAction.js.map +1 -0
- package/CardSkeleton.js +31 -0
- package/CardSkeleton.js.map +1 -0
- package/Checkbox.styles.js +38 -0
- package/Checkbox.styles.js.map +1 -0
- package/Chip.js +43 -0
- package/Chip.js.map +1 -0
- package/CollectionCard.js +56 -0
- package/CollectionCard.js.map +1 -0
- package/CollectionItem.js +41 -0
- package/CollectionItem.js.map +1 -0
- package/CollectionList.js +53 -0
- package/CollectionList.js.map +1 -0
- package/CollectionView.js +73 -0
- package/CollectionView.js.map +1 -0
- package/CollectionsView.js +58 -0
- package/CollectionsView.js.map +1 -0
- package/ConfigContext.js +18 -0
- package/ConfigContext.js.map +1 -0
- package/ConnectButton.js +20 -0
- package/ConnectButton.js.map +1 -0
- package/Container.js +52 -0
- package/Container.js.map +1 -0
- package/ContextAction.js +42 -0
- package/ContextAction.js.map +1 -0
- package/Dat/Dat.d.ts +2 -12
- package/Dat/DatDropdownItem.d.ts +1 -1
- package/Dat/index.d.ts +0 -1
- package/Dat/types.d.ts +1 -1
- package/Dat.js +90 -0
- package/Dat.js.map +1 -0
- package/DatDropdownItem.js +47 -0
- package/DatDropdownItem.js.map +1 -0
- package/DesignSystemContext.js +12 -0
- package/DesignSystemContext.js.map +1 -0
- package/DirectionSelect.js +43 -0
- package/DirectionSelect.js.map +1 -0
- package/DocumentIcon.js +69 -0
- package/DocumentIcon.js.map +1 -0
- package/DomainInput.js +39 -0
- package/DomainInput.js.map +1 -0
- package/DragSelect.js +144 -0
- package/DragSelect.js.map +1 -0
- package/Dropdown.js +72 -0
- package/Dropdown.js.map +1 -0
- package/DropdownContent.js +59 -0
- package/DropdownContent.js.map +1 -0
- package/DropdownListItem.js +52 -0
- package/DropdownListItem.js.map +1 -0
- package/ErrorIcon.js +48 -0
- package/ErrorIcon.js.map +1 -0
- package/ErrorMessage.js +40 -0
- package/ErrorMessage.js.map +1 -0
- package/FieldSelect.js +74 -0
- package/FieldSelect.js.map +1 -0
- package/FileSelector.js +239 -0
- package/FileSelector.js.map +1 -0
- package/Header.js +42 -0
- package/Header.js.map +1 -0
- package/HorizontalScroll.js +51 -0
- package/HorizontalScroll.js.map +1 -0
- package/InfiniteScroll.js +26 -0
- package/InfiniteScroll.js.map +1 -0
- package/LeftArrow.js +31 -0
- package/LeftArrow.js.map +1 -0
- package/LoginComponent.js +32 -0
- package/LoginComponent.js.map +1 -0
- package/LoginContext.js +85 -0
- package/LoginContext.js.map +1 -0
- package/MetapropertyFilterContent.js +25 -0
- package/MetapropertyFilterContent.js.map +1 -0
- package/MetapropertyOption.js +24 -0
- package/MetapropertyOption.js.map +1 -0
- package/Modal.js +48 -0
- package/Modal.js.map +1 -0
- package/NoResults.js +51 -0
- package/NoResults.js.map +1 -0
- package/Oops.js +54 -0
- package/Oops.js.map +1 -0
- package/Option.js +50 -0
- package/Option.js.map +1 -0
- package/RefreshingSpinner.js +22 -0
- package/RefreshingSpinner.js.map +1 -0
- package/ReportModal.js +51 -0
- package/ReportModal.js.map +1 -0
- package/RightArrow.js +31 -0
- package/RightArrow.js.map +1 -0
- package/RootElementContext.js +12 -0
- package/RootElementContext.js.map +1 -0
- package/SearchInput.js +76 -0
- package/SearchInput.js.map +1 -0
- package/SelectedItemContainer.js +44 -0
- package/SelectedItemContainer.js.map +1 -0
- package/SelectedItems.js +27 -0
- package/SelectedItems.js.map +1 -0
- package/SelectionContext.js +144 -0
- package/SelectionContext.js.map +1 -0
- package/SelectionFooter.js +65 -0
- package/SelectionFooter.js.map +1 -0
- package/ShadowRoot.js +11 -0
- package/ShadowRoot.js.map +1 -0
- package/ShadowRootInternal.js +78 -0
- package/ShadowRootInternal.js.map +1 -0
- package/Shield.js +25 -0
- package/Shield.js.map +1 -0
- package/Skeleton.js +43 -0
- package/Skeleton.js.map +1 -0
- package/SmartFilterContent.js +11 -0
- package/SmartFilterContent.js.map +1 -0
- package/SmartFilterSelect.js +91 -0
- package/SmartFilterSelect.js.map +1 -0
- package/Smartfilters.js +186 -0
- package/Smartfilters.js.map +1 -0
- package/Spinner.js +32 -0
- package/Spinner.js.map +1 -0
- package/StatefulAssetList.js +100 -0
- package/StatefulAssetList.js.map +1 -0
- package/Styles.css.js +5 -0
- package/Styles.css.js.map +1 -0
- package/SwitchNLS.js +80 -0
- package/SwitchNLS.js.map +1 -0
- package/TagItem.js +38 -0
- package/TagItem.js.map +1 -0
- package/Tags.js +48 -0
- package/Tags.js.map +1 -0
- package/Theming.js +30 -0
- package/Theming.js.map +1 -0
- package/Toolbar.js +53 -0
- package/Toolbar.js.map +1 -0
- package/Tooltip.js +81 -0
- package/Tooltip.js.map +1 -0
- package/ViewSwitch.js +45 -0
- package/ViewSwitch.js.map +1 -0
- package/api/filterAssets.d.ts +1 -1
- package/api/getCollections.d.ts +1 -1
- package/api/getFilters.d.ts +1 -1
- package/api/getSimilarityAssets.d.ts +1 -1
- package/api/index.d.ts +2 -2
- package/api/rest/autocomplete.d.ts +1 -1
- package/api/rest/getAssetCounts.d.ts +2 -2
- package/api/rest/getInitialFilters.d.ts +2 -2
- package/api/rest/getMetapropertiesOptions.d.ts +1 -1
- package/app-config/ConfigContext.d.ts +3 -4
- package/app-config/appConfig.type.guard.d.ts +1 -1
- package/asset.type.js +31 -0
- package/asset.type.js.map +1 -0
- package/asyncDebounce.js +14 -0
- package/asyncDebounce.js.map +1 -0
- package/auth.js +35 -0
- package/auth.js.map +1 -0
- package/autocomplete2.js +25 -0
- package/autocomplete2.js.map +1 -0
- package/base64Converter.js +15 -0
- package/base64Converter.js.map +1 -0
- package/chunk.js +10 -0
- package/chunk.js.map +1 -0
- package/class.js +7 -0
- package/class.js.map +1 -0
- package/combineFilters.js +9 -0
- package/combineFilters.js.map +1 -0
- package/combineMetaproperties.js +25 -0
- package/combineMetaproperties.js.map +1 -0
- package/common/components/CardSkeleton.d.ts +1 -1
- package/common/components/Checkbox.styles.d.ts +4 -4
- package/common/components/Chip.d.ts +1 -1
- package/common/components/DocumentIcon.d.ts +1 -1
- package/common/components/DragSelect.d.ts +1 -1
- package/common/components/HorizontalScroll.d.ts +1 -1
- package/common/components/InfiniteScroll.d.ts +1 -1
- package/common/components/LeftArrow.d.ts +1 -1
- package/common/components/Modal.d.ts +1 -1
- package/common/components/NoResults.d.ts +1 -1
- package/common/components/RightArrow.d.ts +1 -1
- package/common/components/Skeleton.d.ts +1 -1
- package/common/components/Spinner.d.ts +1 -1
- package/common/components/Tooltip.d.ts +1 -1
- package/common/components/dropdown/Dropdown.d.ts +1 -1
- package/common/components/dropdown/DropdownContent.d.ts +1 -1
- package/common/components/dropdown/DropdownListItem.d.ts +1 -1
- package/common/hooks/useClickOutside.d.ts +1 -1
- package/constants.js +15 -0
- package/constants.js.map +1 -0
- package/createSelectors.js +11 -0
- package/createSelectors.js.map +1 -0
- package/crypto.js +21 -0
- package/crypto.js.map +1 -0
- package/error-handling/ErrorIcon.d.ts +1 -1
- package/error-handling/ErrorMessage.d.ts +1 -1
- package/error-handling/Oops.d.ts +1 -1
- package/error-handling/ReportModal.d.ts +1 -1
- package/error-handling/Shield.d.ts +1 -1
- package/filter/AssetFilter.d.ts +1 -1
- package/filter/AssetFilterContext.d.ts +3 -3
- package/filter/active-filters/ActiveFilter.d.ts +1 -1
- package/filter/active-filters/ActiveFilters.d.ts +1 -1
- package/filter/filters/advanced/Advanced.d.ts +1 -1
- package/filter/filters/advanced/AssetTypeItem.d.ts +1 -1
- package/filter/filters/metaproperty/Metaproperty.d.ts +1 -1
- package/filter/filters/metaproperty/MetapropertyFilterContent.d.ts +1 -1
- package/filter/filters/metaproperty/MetapropertyOption.d.ts +1 -1
- package/filter/filters/metaproperty/SmartFilterContent.d.ts +1 -1
- package/filter/filters/smartfilters/Metaproperties/Autocomplete.d.ts +3 -3
- package/filter/filters/smartfilters/Metaproperties/Option.d.ts +2 -2
- package/filter/filters/smartfilters/Metaproperties/SmartFilterSelect.d.ts +2 -2
- package/filter/filters/smartfilters/Smartfilters.d.ts +2 -2
- package/filter/filters/tags/TagItem.d.ts +1 -1
- package/filter/filters/tags/Tags.d.ts +1 -1
- package/filterAssets.js +175 -0
- package/filterAssets.js.map +1 -0
- package/filterEmptyMetaproperties.js +11 -0
- package/filterEmptyMetaproperties.js.map +1 -0
- package/getAsset.js +70 -0
- package/getAsset.js.map +1 -0
- package/getAssetCounts.js +27 -0
- package/getAssetCounts.js.map +1 -0
- package/getAssets.js +137 -0
- package/getAssets.js.map +1 -0
- package/getCollections.js +78 -0
- package/getCollections.js.map +1 -0
- package/getFilters.js +84 -0
- package/getFilters.js.map +1 -0
- package/getInitialFilters.js +51 -0
- package/getInitialFilters.js.map +1 -0
- package/getMetapropertiesOptions.js +31 -0
- package/getMetapropertiesOptions.js.map +1 -0
- package/getSimilarityAssets.js +141 -0
- package/getSimilarityAssets.js.map +1 -0
- package/handlers.js +11 -0
- package/handlers.js.map +1 -0
- package/helpers.js +7 -0
- package/helpers.js.map +1 -0
- package/index.js +9 -1162
- package/index.js.map +1 -0
- package/index2.js +18 -0
- package/index2.js.map +1 -0
- package/index3.js +36 -0
- package/index3.js.map +1 -0
- package/index4.js +20 -0
- package/index4.js.map +1 -0
- package/logger.js +7 -0
- package/logger.js.map +1 -0
- package/login/LoginComponent.d.ts +1 -1
- package/login/LoginContext.d.ts +1 -1
- package/login/components/ConnectButton.d.ts +1 -1
- package/login/components/Container.d.ts +1 -1
- package/login/components/DomainInput.d.ts +1 -1
- package/login/components/Header.d.ts +1 -1
- package/login/components/RefreshingSpinner.d.ts +1 -1
- package/loginwindow.js +84 -0
- package/loginwindow.js.map +1 -0
- package/normalizeResponse.js +31 -0
- package/normalizeResponse.js.map +1 -0
- package/oauth2.js +87 -0
- package/oauth2.js.map +1 -0
- package/order/DirectionSelect.d.ts +1 -1
- package/order/FieldSelect.d.ts +2 -2
- package/package.json +2 -9
- package/result.type.js +25 -0
- package/result.type.js.map +1 -0
- package/router/RouterContext.d.ts +1 -1
- package/search/SearchInput.d.ts +1 -1
- package/search/SwitchNLS.d.ts +1 -1
- package/search/index.d.ts +0 -2
- package/select/FileSelector.d.ts +1 -1
- package/select/SelectionContext.d.ts +1 -1
- package/select/SelectionFooter.d.ts +1 -1
- package/select/add-media/AddMedia.d.ts +1 -1
- package/select/add-media/ButtonAction.d.ts +1 -1
- package/select/current-selection/AssetItem.d.ts +1 -1
- package/select/current-selection/CollectionItem.d.ts +1 -1
- package/select/current-selection/SelectedItemContainer.d.ts +1 -1
- package/select/current-selection/SelectedItems.d.ts +1 -1
- package/store/useDatStore.d.ts +73 -0
- package/store/useOrderingStore.d.ts +2 -2
- package/store/useRouterStore.d.ts +4 -4
- package/store/useSearchStore.d.ts +69 -0
- package/store/useSimilaritySearchStore.d.ts +67 -0
- package/style/DesignSystemContext.d.ts +1 -1
- package/style/RootElementContext.d.ts +1 -1
- package/style/Theming.d.ts +1 -1
- package/style/shadowroot/ShadowRoot.d.ts +1 -1
- package/style/shadowroot/ShadowRootInternal.d.ts +1 -1
- package/text.js +9 -0
- package/text.js.map +1 -0
- package/toolbar/Toolbar.d.ts +1 -1
- package/toolbar/ViewSwitch.d.ts +1 -1
- package/trimMetapropertyValue.js +6 -0
- package/trimMetapropertyValue.js.map +1 -0
- package/url.js +7 -0
- package/url.js.map +1 -0
- package/useAccountDomain.js +33 -0
- package/useAccountDomain.js.map +1 -0
- package/useAuthInformation.js +42 -0
- package/useAuthInformation.js.map +1 -0
- package/useClickOutside.js +16 -0
- package/useClickOutside.js.map +1 -0
- package/useDatStore.js +62 -0
- package/useDatStore.js.map +1 -0
- package/useDimensions.js +31 -0
- package/useDimensions.js.map +1 -0
- package/useOrderingStore.js +27 -0
- package/useOrderingStore.js.map +1 -0
- package/useRouterStore.js +21 -0
- package/useRouterStore.js.map +1 -0
- package/useSearchStore.js +49 -0
- package/useSearchStore.js.map +1 -0
- package/useSimilaritySearchStore.js +28 -0
- package/useSimilaritySearchStore.js.map +1 -0
- package/utils/base64Converter.d.ts +1 -1
- package/utils/combineFilters.d.ts +1 -1
- package/utils/combineMetaproperties.d.ts +2 -2
- package/utils/filterEmptyMetaproperties.d.ts +1 -1
- package/utils/getMetaPropertiesForFilter.d.ts +1 -1
- package/utils/normalizeResponse.d.ts +1 -1
- package/utils.js +49 -0
- package/utils.js.map +1 -0
- package/utils2.js +51 -0
- package/utils2.js.map +1 -0
- package/views/asset/AssetList.d.ts +5 -3
- package/views/asset/AssetsView.d.ts +1 -1
- package/views/asset/StatefulAssetList.d.ts +2 -2
- package/views/asset/asset-card/AssetCard.d.ts +1 -1
- package/views/asset/asset-card/AssetCardMetaproperties.d.ts +3 -3
- package/views/asset/asset-card/ContextAction.d.ts +1 -1
- package/views/collection/CollectionView.d.ts +1 -1
- package/views/collections/CollectionCard.d.ts +1 -1
- package/views/collections/CollectionList.d.ts +1 -1
- package/views/collections/CollectionsView.d.ts +1 -1
- package/Dat/DatContext.d.ts +0 -12
- package/__tests__/utils/index.d.ts +0 -116
- package/api/__tests__/testMocks/mocks.d.ts +0 -14
- package/api/__tests__/utils.d.ts +0 -10
- package/common/components/__mocks__/Tooltip.d.ts +0 -6
- package/common/components/__tests__/utils.d.ts +0 -34
- package/error-handling/__tests__/utils.d.ts +0 -56
- package/filter/__tests__/utils.d.ts +0 -13
- package/index.mjs +0 -1163
- package/login/__tests__/mocks.d.ts +0 -1
- package/login/__tests__/utils.d.ts +0 -41
- package/search/SearchContext.d.ts +0 -25
- package/search/SimilaritySearchContext.d.ts +0 -21
- package/search/__mocks__/SimilaritySearchContext.d.ts +0 -5
- package/select/__tests__/utils.d.ts +0 -11
- package/style/shadowroot/__mocks__/ShadowRoot.d.ts +0 -4
- package/utils/__mocks__/logger.d.ts +0 -4
- package/views/asset/__tests__/utils.d.ts +0 -7
- package/views/collections/__tests__/utils.d.ts +0 -5
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/index2.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useEffect as c } from "react";
|
|
2
|
+
function a(t) {
|
|
3
|
+
return n[t] ?? t;
|
|
4
|
+
}
|
|
5
|
+
let n = {};
|
|
6
|
+
function r(t) {
|
|
7
|
+
c(() => {
|
|
8
|
+
const e = `https://d8ejoa1fys2rk.cloudfront.net/5.0.5/modules/compactview/i18n/${t.slice(0, 2).toLowerCase()}.json`;
|
|
9
|
+
fetch(e).then((o) => o.json()).then((o) => {
|
|
10
|
+
n = o;
|
|
11
|
+
});
|
|
12
|
+
}, [t]);
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
a as __,
|
|
16
|
+
r as useLocalization
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=index2.js.map
|
package/index2.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index2.js","sources":["../../src/localization/index.ts"],"sourcesContent":["import { useEffect } from 'react';\n\nexport function __(key: string): string {\n\treturn dictionary[key] ?? key;\n}\n\nlet dictionary: Record<string, string> = {};\n\nexport function useLocalization(locale: string) {\n\tuseEffect(() => {\n\t\tconst languageKey = locale.slice(0, 2).toLowerCase();\n\t\t// The i18n folder is dpeloyed to this url\n\t\tconst localisationUrl = `${process.env.COMPACT_VIEW_CLOUDFRONT_URL}/5.0.5/modules/compactview/i18n/${languageKey}.json`;\n\n\t\tfetch(localisationUrl)\n\t\t\t.then((response) => response.json())\n\t\t\t.then((localisationData) => {\n\t\t\t\tdictionary = localisationData;\n\t\t\t});\n\t}, [locale]);\n}\n"],"names":["__","key","dictionary","useLocalization","locale","useEffect","localisationUrl","response","localisationData"],"mappings":";AAEO,SAASA,EAAGC,GAAqB;AACvC,SAAOC,EAAWD,CAAG,KAAKA;AAC3B;AAEA,IAAIC,IAAqC,CAAA;AAElC,SAASC,EAAgBC,GAAgB;AAC/C,EAAAC,EAAU,MAAM;AAGf,UAAMC,IAAkB,uEAFJF,EAAO,MAAM,GAAG,CAAC,EAAE,YAAA,CAEyE;AAEhH,UAAME,CAAe,EACnB,KAAK,CAACC,MAAaA,EAAS,MAAM,EAClC,KAAK,CAACC,MAAqB;AAC3B,MAAAN,IAAaM;AAAA,IACd,CAAC;AAAA,EACH,GAAG,CAACJ,CAAM,CAAC;AACZ;"}
|
package/index3.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { err as c, ok as f } from "./result.type.js";
|
|
2
|
+
import { ensureValidUrl as v } from "./url.js";
|
|
3
|
+
import { normalizeAssetsResponse as w } from "./normalizeResponse.js";
|
|
4
|
+
const t = /* @__PURE__ */ new Map();
|
|
5
|
+
async function N(m) {
|
|
6
|
+
const { query: p, variables: h, auth: o, noCache: l, isNewGQL: u } = m;
|
|
7
|
+
if (!o) return c("No authentication provided");
|
|
8
|
+
const r = o.getAccessToken && o.getAccessToken(), g = "5.1.4";
|
|
9
|
+
let e = o.accountDomain !== void 0 ? v(o.accountDomain.trim()) : `https://${window.location.host}`;
|
|
10
|
+
e.charAt(e.length - 1) === "/" && (e = e.slice(0, -1));
|
|
11
|
+
const a = `${e}:${p}:${JSON.stringify(h)}:${r}`;
|
|
12
|
+
if (t.has(a) && !l)
|
|
13
|
+
return f(t.get(a));
|
|
14
|
+
const d = {
|
|
15
|
+
Accept: "application/json",
|
|
16
|
+
"Content-Type": "application/json",
|
|
17
|
+
// Custom header for UCV analytics tracking
|
|
18
|
+
"X-Bynder-Integration": `UCV/v${g}`
|
|
19
|
+
}, y = {
|
|
20
|
+
method: "post",
|
|
21
|
+
headers: r === void 0 ? d : { ...d, Authorization: `Bearer ${r}` },
|
|
22
|
+
body: JSON.stringify({ query: p, variables: h })
|
|
23
|
+
};
|
|
24
|
+
let n, i;
|
|
25
|
+
const $ = u ? "/v7/api/graphql" : "/graphql";
|
|
26
|
+
try {
|
|
27
|
+
n = await (await fetch(`${e}${$}`, y)).json(), i = w(n.data);
|
|
28
|
+
} catch (s) {
|
|
29
|
+
return c(s);
|
|
30
|
+
}
|
|
31
|
+
return n.errors !== void 0 ? c(n.errors.map((s) => s.message).join(",")) : (l || (t.set(a, i), t.size > 50 && t.delete(t.keys().next().value)), f(i));
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
N as fetchWithGraphql
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=index3.js.map
|
package/index3.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index3.js","sources":["../../src/api/index.ts"],"sourcesContent":["import { err, ok } from '@src/auth/result.type';\nimport { AuthInformationState } from '@src/auth/useAuthInformation';\nimport { ensureValidUrl } from '@src/utils/url';\nimport { normalizeAssetsResponse } from '@src/utils/normalizeResponse';\n\ninterface ResponseJson {\n\tdata: unknown;\n\terrors: { message: string }[];\n}\n\nconst cache: Map<string, unknown> = new Map();\n\nexport async function fetchWithGraphql(options: {\n\tquery: string;\n\tvariables: Record<string, unknown>;\n\tauth: AuthInformationState | null;\n\tnoCache?: boolean;\n\tisNewGQL?: boolean;\n}) {\n\tconst { query, variables, auth, noCache, isNewGQL } = options;\n\n\tif (!auth) return err('No authentication provided');\n\n\tconst accessToken = auth.getAccessToken && auth.getAccessToken();\n\n\tconst VERSION = process.env.BYNDER_UCV_VERSION;\n\n\tlet host =\n\t\tauth.accountDomain !== undefined\n\t\t\t? ensureValidUrl(auth.accountDomain.trim())\n\t\t\t: `https://${window.location.host}`;\n\n\t// For the sake of consistency, check if last char is a slash\n\t// and remove it\n\tif (host.charAt(host.length - 1) === '/') {\n\t\thost = host.slice(0, -1);\n\t}\n\n\tconst cacheKey = `${host}:${query}:${JSON.stringify(variables)}:${accessToken}`;\n\n\tif (cache.has(cacheKey) && !noCache) {\n\t\treturn ok(cache.get(cacheKey));\n\t}\n\n\tconst baseHeaders = {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t\t// Custom header for UCV analytics tracking\n\t\t'X-Bynder-Integration': `UCV/v${VERSION}`,\n\t};\n\n\tconst headers =\n\t\taccessToken === undefined\n\t\t\t? baseHeaders\n\t\t\t: { ...baseHeaders, Authorization: `Bearer ${accessToken}` };\n\n\tconst fetchParameters = {\n\t\tmethod: 'post',\n\t\theaders,\n\t\tbody: JSON.stringify({ query, variables }),\n\t};\n\n\tlet json: ResponseJson;\n\tlet normalizedResponse;\n\n\tconst graphqlEndpoint = isNewGQL ? '/v7/api/graphql' : '/graphql';\n\n\ttry {\n\t\tconst response = await fetch(`${host}${graphqlEndpoint}`, fetchParameters);\n\t\tjson = await response.json();\n\t\tnormalizedResponse = normalizeAssetsResponse(json.data);\n\t} catch (e) {\n\t\treturn err(e);\n\t}\n\n\tif (json.errors !== undefined) {\n\t\treturn err(json.errors.map((error) => error.message).join(','));\n\t}\n\n\tif (!noCache) {\n\t\tcache.set(cacheKey, normalizedResponse);\n\n\t\tif (cache.size > 50) {\n\t\t\t// Delete first item from cache to prevent\n\t\t\t// cache taking up too much memory.\n\t\t\tcache.delete(cache.keys().next().value);\n\t\t}\n\t}\n\n\treturn ok(normalizedResponse);\n}\n"],"names":["cache","fetchWithGraphql","options","query","variables","auth","noCache","isNewGQL","err","accessToken","VERSION","host","ensureValidUrl","cacheKey","ok","baseHeaders","fetchParameters","json","normalizedResponse","graphqlEndpoint","normalizeAssetsResponse","e","error"],"mappings":";;;AAUA,MAAMA,wBAAkC,IAAA;AAExC,eAAsBC,EAAiBC,GAMpC;AACF,QAAM,EAAE,OAAAC,GAAO,WAAAC,GAAW,MAAAC,GAAM,SAAAC,GAAS,UAAAC,MAAaL;AAEtD,MAAI,CAACG,EAAM,QAAOG,EAAI,4BAA4B;AAElD,QAAMC,IAAcJ,EAAK,kBAAkBA,EAAK,eAAA,GAE1CK,IAAU;AAEhB,MAAIC,IACHN,EAAK,kBAAkB,SACpBO,EAAeP,EAAK,cAAc,KAAA,CAAM,IACxC,WAAW,OAAO,SAAS,IAAI;AAInC,EAAIM,EAAK,OAAOA,EAAK,SAAS,CAAC,MAAM,QACpCA,IAAOA,EAAK,MAAM,GAAG,EAAE;AAGxB,QAAME,IAAW,GAAGF,CAAI,IAAIR,CAAK,IAAI,KAAK,UAAUC,CAAS,CAAC,IAAIK,CAAW;AAE7E,MAAIT,EAAM,IAAIa,CAAQ,KAAK,CAACP;AAC3B,WAAOQ,EAAGd,EAAM,IAAIa,CAAQ,CAAC;AAG9B,QAAME,IAAc;AAAA,IACnB,QAAQ;AAAA,IACR,gBAAgB;AAAA;AAAA,IAEhB,wBAAwB,QAAQL,CAAO;AAAA,EAAA,GAQlCM,IAAkB;AAAA,IACvB,QAAQ;AAAA,IACR,SANAP,MAAgB,SACbM,IACA,EAAE,GAAGA,GAAa,eAAe,UAAUN,CAAW,GAAA;AAAA,IAKzD,MAAM,KAAK,UAAU,EAAE,OAAAN,GAAO,WAAAC,GAAW;AAAA,EAAA;AAG1C,MAAIa,GACAC;AAEJ,QAAMC,IAAkBZ,IAAW,oBAAoB;AAEvD,MAAI;AAEH,IAAAU,IAAO,OADU,MAAM,MAAM,GAAGN,CAAI,GAAGQ,CAAe,IAAIH,CAAe,GACnD,KAAA,GACtBE,IAAqBE,EAAwBH,EAAK,IAAI;AAAA,EACvD,SAASI,GAAG;AACX,WAAOb,EAAIa,CAAC;AAAA,EACb;AAEA,SAAIJ,EAAK,WAAW,SACZT,EAAIS,EAAK,OAAO,IAAI,CAACK,MAAUA,EAAM,OAAO,EAAE,KAAK,GAAG,CAAC,KAG1DhB,MACJN,EAAM,IAAIa,GAAUK,CAAkB,GAElClB,EAAM,OAAO,MAGhBA,EAAM,OAAOA,EAAM,KAAA,EAAO,KAAA,EAAO,KAAK,IAIjCc,EAAGI,CAAkB;AAC7B;"}
|
package/index4.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import r from "axios";
|
|
2
|
+
const n = (t) => t.data, s = r.create({
|
|
3
|
+
timeout: 1e4,
|
|
4
|
+
headers: {
|
|
5
|
+
Accept: "application/json",
|
|
6
|
+
"Content-Type": "application/json"
|
|
7
|
+
}
|
|
8
|
+
}), a = async (t, o) => {
|
|
9
|
+
try {
|
|
10
|
+
const e = await s.get(t, o);
|
|
11
|
+
return n(e);
|
|
12
|
+
} catch (e) {
|
|
13
|
+
throw console.error("GET request error:", e), e;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
a as getRequest,
|
|
18
|
+
n as onSuccess
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index4.js.map
|
package/index4.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index4.js","sources":["../../src/api/rest/index.ts"],"sourcesContent":["import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport const onSuccess = <T>(response: AxiosResponse<T>) => response.data;\nexport const onError = (error: AxiosError) => {\n\tif (error.response) {\n\t\t// The request was made and the server responded with a status code\n\t\t// that falls out of the range of 2xx\n\t\tconst responseData = error.response.data as Record<'error' | string, unknown>;\n\n\t\tif (responseData?.error) {\n\t\t\tthrow responseData.error;\n\t\t}\n\n\t\tthrow responseData;\n\t} else if (error.request) {\n\t\t// The request was made but no response was received\n\t\t// `error.request` is aninstance of XMLHttpRequest\n\t\tthrow new Error('Server is not responding, please try again');\n\t}\n\n\t// Something happened in setting up the request that triggered an Error\n\tthrow error.message;\n};\n\nconst apiClient = axios.create({\n\ttimeout: 10000,\n\theaders: {\n\t\tAccept: 'application/json',\n\t\t'Content-Type': 'application/json',\n\t},\n});\n\nconst getRequest = async <T>(endpoint: string, params?: AxiosRequestConfig): Promise<T> => {\n\ttry {\n\t\tconst response = await apiClient.get(endpoint, params);\n\n\t\treturn onSuccess(response);\n\t} catch (error) {\n\t\tconsole.error('GET request error:', error);\n\t\tthrow error;\n\t}\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst postRequest = async <T>(\n\tendpoint: string,\n\tdata: unknown,\n\tconfig?: AxiosRequestConfig,\n): Promise<T> => {\n\ttry {\n\t\tconst response = await apiClient.post(endpoint, data, config);\n\n\t\treturn onSuccess(response);\n\t} catch (error) {\n\t\tconsole.error('POST request error:', error);\n\t\tthrow error;\n\t}\n};\n\nexport { getRequest, postRequest };\n"],"names":["onSuccess","response","apiClient","axios","getRequest","endpoint","params","error"],"mappings":";AAEO,MAAMA,IAAY,CAAIC,MAA+BA,EAAS,MAsB/DC,IAAYC,EAAM,OAAO;AAAA,EAC9B,SAAS;AAAA,EACT,SAAS;AAAA,IACR,QAAQ;AAAA,IACR,gBAAgB;AAAA,EAAA;AAElB,CAAC,GAEKC,IAAa,OAAUC,GAAkBC,MAA4C;AAC1F,MAAI;AACH,UAAML,IAAW,MAAMC,EAAU,IAAIG,GAAUC,CAAM;AAErD,WAAON,EAAUC,CAAQ;AAAA,EAC1B,SAASM,GAAO;AACf,kBAAQ,MAAM,sBAAsBA,CAAK,GACnCA;AAAA,EACP;AACD;"}
|
package/logger.js
ADDED
package/logger.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sources":["../../src/utils/logger.ts"],"sourcesContent":["/* This module is a wrapper around the console error function.\n *\n * Why is this wrapper needed?\n *\n * There are times when the compact view prints errors to the console intentionally\n * when expected errors occur, For example, if incorrect configuration options are\n * passed to the compact view. We don't want these expected errors to appear in the\n * Jest test runner output, and we also want to be able to make assertions in the\n * tests that the correct messages were printed. However, mocking console.error\n * directly interferes with other errors that we might want to see in our Jest test\n * runner if actual, unexpected errors occur. By having a separate module for\n * expected error logging, this module can be mocked while console.error is left to\n * its default implementation.\n */\n\nexport const logger = {\n\terror: console.error,\n};\n"],"names":["logger"],"mappings":"AAeO,MAAMA,IAAS;AAAA,EACrB,OAAO,QAAQ;AAChB;"}
|
package/login/LoginContext.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
export declare function Header(): React.JSX.Element;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
export declare function RefreshingSpinner(): React.JSX.Element;
|
package/loginwindow.js
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { redirectOrigin as p } from "./oauth2.js";
|
|
2
|
+
import { err as s, isErr as w, ok as d } from "./result.type.js";
|
|
3
|
+
async function x(e) {
|
|
4
|
+
const n = window.screen, t = 570, o = 700, c = n.width / 2 - t / 2 + window.screenX, l = n.height / 2 - o / 2 + window.screenY, i = window.open(
|
|
5
|
+
"",
|
|
6
|
+
"Bynder Brand Portal",
|
|
7
|
+
`height=${o},width=${t},left=${c},top=${l}`
|
|
8
|
+
);
|
|
9
|
+
if (i === null)
|
|
10
|
+
return s("Error opening login window");
|
|
11
|
+
i.document.head.innerHTML = f, i.document.body.innerHTML = h, i.location.href = e;
|
|
12
|
+
const r = await Promise.race([
|
|
13
|
+
u(),
|
|
14
|
+
g(),
|
|
15
|
+
m(i)
|
|
16
|
+
]);
|
|
17
|
+
if (w(r))
|
|
18
|
+
return r;
|
|
19
|
+
const a = new URLSearchParams(r.value.data);
|
|
20
|
+
return d({
|
|
21
|
+
state: a.get("state"),
|
|
22
|
+
code: a.get("code")
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function u() {
|
|
26
|
+
return new Promise((e) => {
|
|
27
|
+
window.addEventListener("message", (n) => {
|
|
28
|
+
n.origin === p && e(d(n));
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function g() {
|
|
33
|
+
return new Promise((e) => {
|
|
34
|
+
setTimeout(() => e(s("Timeout")), 6e5);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
function m(e) {
|
|
38
|
+
return new Promise((n) => {
|
|
39
|
+
function t() {
|
|
40
|
+
e.closed && (clearInterval(o), n(s("Login window closed")));
|
|
41
|
+
}
|
|
42
|
+
const o = setInterval(t, 1e3);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const f = `
|
|
46
|
+
<title>Redirecting...</title>
|
|
47
|
+
<style>
|
|
48
|
+
@keyframes cv-spinner-animation {
|
|
49
|
+
to {
|
|
50
|
+
transform:rotate(1turn)
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.cv-spinner {
|
|
55
|
+
position: relative;
|
|
56
|
+
display: inline-block;
|
|
57
|
+
padding: 175px 0 100px;
|
|
58
|
+
width: 100%;
|
|
59
|
+
height: auto;
|
|
60
|
+
background: #fff;
|
|
61
|
+
box-sizing: border-box;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.cv-spinner:before {
|
|
65
|
+
position: absolute;
|
|
66
|
+
top: 50%;
|
|
67
|
+
left: 50%;
|
|
68
|
+
width: 40px;
|
|
69
|
+
height: 40px;
|
|
70
|
+
margin-top: -20px;
|
|
71
|
+
margin-left: -20px;
|
|
72
|
+
box-sizing: border-box;
|
|
73
|
+
border-top: 3px solid #7e8890;
|
|
74
|
+
border-right: 3px solid transparent;
|
|
75
|
+
border-radius: 50%;
|
|
76
|
+
content: "";
|
|
77
|
+
animation: cv-spinner-animation .8s linear infinite;
|
|
78
|
+
z-index: 3;
|
|
79
|
+
}
|
|
80
|
+
</style>`, h = '<div class="cv-spinner"></div>';
|
|
81
|
+
export {
|
|
82
|
+
x as waitForAuthorizationFromLoginWindow
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=loginwindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loginwindow.js","sources":["../../src/auth/loginwindow.ts"],"sourcesContent":["import { redirectOrigin } from './oauth2';\nimport { err, Err, isErr, ok, Ok, Result } from './result.type';\n\ninterface LoginWindowResponse {\n\tstate: string | null;\n\tcode: string | null;\n}\n\nexport async function waitForAuthorizationFromLoginWindow(\n\turl: string,\n): Promise<Result<LoginWindowResponse, string>> {\n\tconst screen = window.screen;\n\tconst width = 570;\n\tconst height = 700;\n\n\tconst popupLeft = screen.width / 2 - width / 2 + window.screenX;\n\tconst popupTop = screen.height / 2 - height / 2 + window.screenY;\n\n\tconst loginWindow = window.open(\n\t\t'',\n\t\t'Bynder Brand Portal',\n\t\t`height=${height},width=${width},left=${popupLeft},top=${popupTop}`,\n\t);\n\n\tif (loginWindow === null) {\n\t\treturn err('Error opening login window');\n\t}\n\n\tloginWindow.document.head.innerHTML = redirectingPageHeadHtml;\n\tloginWindow.document.body.innerHTML = redirectingPageBodyHtml;\n\tloginWindow.location.href = url;\n\n\tconst result = await Promise.race([\n\t\twaitForMessage(),\n\t\twaitForTimeout(),\n\t\twaitForWindowToClose(loginWindow),\n\t]);\n\n\tif (isErr(result)) {\n\t\treturn result;\n\t}\n\n\tconst queryParameters = new URLSearchParams(result.value.data);\n\n\treturn ok({\n\t\tstate: queryParameters.get('state'),\n\t\tcode: queryParameters.get('code'),\n\t});\n}\n\nfunction waitForMessage(): Promise<Ok<MessageEvent>> {\n\treturn new Promise((resolve) => {\n\t\twindow.addEventListener('message', (message) => {\n\t\t\t/* There can be message events which aren't directly from the OAuth process.\n\t\t\t * Checking for the correct 'origin' property lets us ignore other events that\n\t\t\t * this listener catches.\n\t\t\t *\n\t\t\t * For example, React Dev Tools will emit message events, but we don't want the\n\t\t\t * promise to resolve for these events.\n\t\t\t */\n\t\t\tif (message.origin === redirectOrigin) {\n\t\t\t\tresolve(ok(message));\n\t\t\t}\n\t\t});\n\t});\n}\n\nfunction waitForTimeout(): Promise<Err<'Timeout'>> {\n\treturn new Promise((resolve) => {\n\t\tsetTimeout(() => resolve(err('Timeout')), 600000);\n\t});\n}\n\nfunction waitForWindowToClose(targetWindow: Window): Promise<Err<'Login window closed'>> {\n\treturn new Promise((resolve) => {\n\t\tfunction resolveIfClosed() {\n\t\t\tif (targetWindow.closed) {\n\t\t\t\tclearInterval(interval);\n\t\t\t\tresolve(err('Login window closed'));\n\t\t\t}\n\t\t}\n\n\t\tconst interval = setInterval(resolveIfClosed, 1000);\n\t});\n}\n\nconst redirectingPageHeadHtml = `\n<title>Redirecting...</title>\n<style>\n @keyframes cv-spinner-animation {\n to {\n transform:rotate(1turn)\n }\n }\n\n .cv-spinner {\n position: relative;\n display: inline-block;\n padding: 175px 0 100px;\n width: 100%;\n height: auto;\n background: #fff;\n box-sizing: border-box;\n }\n \n .cv-spinner:before {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 40px;\n height: 40px;\n margin-top: -20px;\n margin-left: -20px;\n box-sizing: border-box;\n border-top: 3px solid #7e8890;\n border-right: 3px solid transparent;\n border-radius: 50%;\n content: \"\";\n animation: cv-spinner-animation .8s linear infinite;\n z-index: 3;\n }\n</style>`;\n\nconst redirectingPageBodyHtml = '<div class=\"cv-spinner\"></div>';\n"],"names":["waitForAuthorizationFromLoginWindow","url","screen","width","height","popupLeft","popupTop","loginWindow","err","redirectingPageHeadHtml","redirectingPageBodyHtml","result","waitForMessage","waitForTimeout","waitForWindowToClose","isErr","queryParameters","ok","resolve","message","redirectOrigin","targetWindow","resolveIfClosed","interval"],"mappings":";;AAQA,eAAsBA,EACrBC,GAC+C;AAC/C,QAAMC,IAAS,OAAO,QAChBC,IAAQ,KACRC,IAAS,KAETC,IAAYH,EAAO,QAAQ,IAAIC,IAAQ,IAAI,OAAO,SAClDG,IAAWJ,EAAO,SAAS,IAAIE,IAAS,IAAI,OAAO,SAEnDG,IAAc,OAAO;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,UAAUH,CAAM,UAAUD,CAAK,SAASE,CAAS,QAAQC,CAAQ;AAAA,EAAA;AAGlE,MAAIC,MAAgB;AACnB,WAAOC,EAAI,4BAA4B;AAGxC,EAAAD,EAAY,SAAS,KAAK,YAAYE,GACtCF,EAAY,SAAS,KAAK,YAAYG,GACtCH,EAAY,SAAS,OAAON;AAE5B,QAAMU,IAAS,MAAM,QAAQ,KAAK;AAAA,IACjCC,EAAA;AAAA,IACAC,EAAA;AAAA,IACAC,EAAqBP,CAAW;AAAA,EAAA,CAChC;AAED,MAAIQ,EAAMJ,CAAM;AACf,WAAOA;AAGR,QAAMK,IAAkB,IAAI,gBAAgBL,EAAO,MAAM,IAAI;AAE7D,SAAOM,EAAG;AAAA,IACT,OAAOD,EAAgB,IAAI,OAAO;AAAA,IAClC,MAAMA,EAAgB,IAAI,MAAM;AAAA,EAAA,CAChC;AACF;AAEA,SAASJ,IAA4C;AACpD,SAAO,IAAI,QAAQ,CAACM,MAAY;AAC/B,WAAO,iBAAiB,WAAW,CAACC,MAAY;AAQ/C,MAAIA,EAAQ,WAAWC,KACtBF,EAAQD,EAAGE,CAAO,CAAC;AAAA,IAErB,CAAC;AAAA,EACF,CAAC;AACF;AAEA,SAASN,IAA0C;AAClD,SAAO,IAAI,QAAQ,CAACK,MAAY;AAC/B,eAAW,MAAMA,EAAQV,EAAI,SAAS,CAAC,GAAG,GAAM;AAAA,EACjD,CAAC;AACF;AAEA,SAASM,EAAqBO,GAA2D;AACxF,SAAO,IAAI,QAAQ,CAACH,MAAY;AAC/B,aAASI,IAAkB;AAC1B,MAAID,EAAa,WAChB,cAAcE,CAAQ,GACtBL,EAAQV,EAAI,qBAAqB,CAAC;AAAA,IAEpC;AAEA,UAAMe,IAAW,YAAYD,GAAiB,GAAI;AAAA,EACnD,CAAC;AACF;AAEA,MAAMb,IAA0B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,WAqC1BC,IAA0B;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { WEBDAM_TRANSFORM_BASE_URL_NAME as r, BYNDER_TRANSFORM_BASE_URL_NAME as n } from "./constants.js";
|
|
2
|
+
function a(s) {
|
|
3
|
+
if (s[r]) {
|
|
4
|
+
const { [r]: e, ...t } = s;
|
|
5
|
+
return { ...t, [n]: { ...e } };
|
|
6
|
+
}
|
|
7
|
+
return s;
|
|
8
|
+
}
|
|
9
|
+
function A(s) {
|
|
10
|
+
return s?.searchAssets?.assets?.nodes.length ? {
|
|
11
|
+
...s,
|
|
12
|
+
searchAssets: {
|
|
13
|
+
...s.searchAssets,
|
|
14
|
+
assets: {
|
|
15
|
+
...s.searchAssets.assets,
|
|
16
|
+
nodes: s.searchAssets?.assets?.nodes.map((e) => {
|
|
17
|
+
if (e.files) {
|
|
18
|
+
const t = a(e.files);
|
|
19
|
+
return { ...e, files: { ...t } };
|
|
20
|
+
}
|
|
21
|
+
return e;
|
|
22
|
+
})
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
} : s;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
A as normalizeAssetsResponse,
|
|
29
|
+
a as normalizeFilesResponse
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=normalizeResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeResponse.js","sources":["../../src/utils/normalizeResponse.ts"],"sourcesContent":["import { WEBDAM_TRANSFORM_BASE_URL_NAME, BYNDER_TRANSFORM_BASE_URL_NAME } from '@src/constants';\n\nimport { File } from '@src/select/file.type';\n\nexport function normalizeFilesResponse(files: Record<string, File>): Record<string, File> {\n\tif (files[WEBDAM_TRANSFORM_BASE_URL_NAME]) {\n\t\tconst { [WEBDAM_TRANSFORM_BASE_URL_NAME]: prevTransformFiles, ...restFiles } = files;\n\n\t\treturn { ...restFiles, [BYNDER_TRANSFORM_BASE_URL_NAME]: { ...prevTransformFiles } };\n\t}\n\n\treturn files;\n}\n\nexport function normalizeAssetsResponse(response) {\n\tif (!response?.searchAssets?.assets?.nodes.length) {\n\t\treturn response;\n\t}\n\n\treturn {\n\t\t...response,\n\t\tsearchAssets: {\n\t\t\t...response.searchAssets,\n\t\t\tassets: {\n\t\t\t\t...response.searchAssets.assets,\n\t\t\t\tnodes: response.searchAssets?.assets?.nodes.map((el) => {\n\t\t\t\t\tif (el.files) {\n\t\t\t\t\t\tconst normalizedFiles = normalizeFilesResponse(el.files);\n\n\t\t\t\t\t\treturn { ...el, files: { ...normalizedFiles } };\n\t\t\t\t\t}\n\n\t\t\t\t\treturn el;\n\t\t\t\t}),\n\t\t\t},\n\t\t},\n\t};\n}\n"],"names":["normalizeFilesResponse","files","WEBDAM_TRANSFORM_BASE_URL_NAME","prevTransformFiles","restFiles","BYNDER_TRANSFORM_BASE_URL_NAME","normalizeAssetsResponse","response","el","normalizedFiles"],"mappings":";AAIO,SAASA,EAAuBC,GAAmD;AACzF,MAAIA,EAAMC,CAA8B,GAAG;AAC1C,UAAM,EAAE,CAACA,CAA8B,GAAGC,GAAoB,GAAGC,MAAcH;AAE/E,WAAO,EAAE,GAAGG,GAAW,CAACC,CAA8B,GAAG,EAAE,GAAGF,EAAA,EAAmB;AAAA,EAClF;AAEA,SAAOF;AACR;AAEO,SAASK,EAAwBC,GAAU;AACjD,SAAKA,GAAU,cAAc,QAAQ,MAAM,SAIpC;AAAA,IACN,GAAGA;AAAA,IACH,cAAc;AAAA,MACb,GAAGA,EAAS;AAAA,MACZ,QAAQ;AAAA,QACP,GAAGA,EAAS,aAAa;AAAA,QACzB,OAAOA,EAAS,cAAc,QAAQ,MAAM,IAAI,CAACC,MAAO;AACvD,cAAIA,EAAG,OAAO;AACb,kBAAMC,IAAkBT,EAAuBQ,EAAG,KAAK;AAEvD,mBAAO,EAAE,GAAGA,GAAI,OAAO,EAAE,GAAGC,IAAgB;AAAA,UAC7C;AAEA,iBAAOD;AAAA,QACR,CAAC;AAAA,MAAA;AAAA,IACF;AAAA,EACD,IAnBOD;AAqBT;"}
|
package/oauth2.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ensureValidUrl as l } from "./url.js";
|
|
2
|
+
import { err as c, ok as h } from "./result.type.js";
|
|
3
|
+
const i = "42b1eefa-d754-4802-b9c4-bf80d6ab6052", m = "v6/authentication/oauth2/", f = "https://d8ejoa1fys2rk.cloudfront.net", p = f + "/5.0.5/modules/compactview/loginCompleted.html", _ = "https://apiv2.webdamdb.com/", k = "oauth2/", w = ["offline", "asset:read", "collection:read", "meta.assetbank:read"];
|
|
4
|
+
function y(o, a, r) {
|
|
5
|
+
const n = {
|
|
6
|
+
client_id: i,
|
|
7
|
+
code_challenge: o,
|
|
8
|
+
code_challenge_method: "S256",
|
|
9
|
+
redirect_uri: p,
|
|
10
|
+
response_type: "code",
|
|
11
|
+
scope: w.join(" "),
|
|
12
|
+
domain: "",
|
|
13
|
+
state: a
|
|
14
|
+
};
|
|
15
|
+
let e = "auth?";
|
|
16
|
+
u() === "webdam" && (e = "authorize?", delete n.scope, n.domain = r);
|
|
17
|
+
const t = new URLSearchParams(n);
|
|
18
|
+
return d(r) + e + t;
|
|
19
|
+
}
|
|
20
|
+
async function S(o, a, r) {
|
|
21
|
+
const n = d(r) + "token", e = new URLSearchParams({
|
|
22
|
+
client_id: i,
|
|
23
|
+
code_verifier: a,
|
|
24
|
+
code: o,
|
|
25
|
+
redirect_uri: p,
|
|
26
|
+
grant_type: "authorization_code"
|
|
27
|
+
});
|
|
28
|
+
try {
|
|
29
|
+
const t = await fetch(n, {
|
|
30
|
+
method: "POST",
|
|
31
|
+
headers: {
|
|
32
|
+
Accept: "application/json",
|
|
33
|
+
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
|
|
34
|
+
},
|
|
35
|
+
body: e
|
|
36
|
+
});
|
|
37
|
+
if (!t.ok)
|
|
38
|
+
return c(`Failed to fetch access token: ${t.status}`);
|
|
39
|
+
const s = await t.json();
|
|
40
|
+
return h({
|
|
41
|
+
refreshToken: s.refresh_token,
|
|
42
|
+
accessToken: s.access_token,
|
|
43
|
+
expiresIn: s.expires_in
|
|
44
|
+
});
|
|
45
|
+
} catch (t) {
|
|
46
|
+
return c(t.toString());
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async function T(o, a) {
|
|
50
|
+
const r = d(a) + "token", n = new URLSearchParams({
|
|
51
|
+
client_id: i,
|
|
52
|
+
refresh_token: o,
|
|
53
|
+
grant_type: "refresh_token"
|
|
54
|
+
});
|
|
55
|
+
try {
|
|
56
|
+
const e = await fetch(r, {
|
|
57
|
+
method: "POST",
|
|
58
|
+
headers: {
|
|
59
|
+
Accept: "application/json",
|
|
60
|
+
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"
|
|
61
|
+
},
|
|
62
|
+
body: n
|
|
63
|
+
});
|
|
64
|
+
if (!e.ok)
|
|
65
|
+
return c(`Failed to fetch refresh token: ${e.status}`);
|
|
66
|
+
const t = await e.json();
|
|
67
|
+
return h({
|
|
68
|
+
accessToken: t.access_token,
|
|
69
|
+
expiresIn: t.expires_in
|
|
70
|
+
});
|
|
71
|
+
} catch (e) {
|
|
72
|
+
return c(e.toString());
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
function d(o) {
|
|
76
|
+
return u() === "webdam" ? _ + k : l(o) + m;
|
|
77
|
+
}
|
|
78
|
+
function u() {
|
|
79
|
+
return localStorage.getItem("cvp") ?? void 0;
|
|
80
|
+
}
|
|
81
|
+
export {
|
|
82
|
+
y as makeAuthorizeRequestUrl,
|
|
83
|
+
T as postRefreshTokenRequest,
|
|
84
|
+
S as postTokenRequest,
|
|
85
|
+
f as redirectOrigin
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=oauth2.js.map
|
package/oauth2.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauth2.js","sources":["../../src/auth/oauth2.ts"],"sourcesContent":["import { ensureValidUrl } from '../utils/url';\nimport { err, ok, Result } from './result.type';\n\n/*\n Some info about the flow performed here:\n https://auth0.com/docs/api-auth/tutorials/authorization-code-grant-pkce\n https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead#begin-the-pkce-request\n https://tools.ietf.org/html/rfc7636#section-4.1\n */\n\nconst clientId = '42b1eefa-d754-4802-b9c4-bf80d6ab6052';\nconst authSvcPath = 'v6/authentication/oauth2/';\nexport const redirectOrigin = `${process.env.COMPACT_VIEW_CLOUDFRONT_URL}`;\n// The ./loginCompleted.html file is deployed to this url\nconst redirectUri = redirectOrigin + '/5.0.5/modules/compactview/loginCompleted.html';\nconst webdam_api_origin = `${process.env.WEBDAM_API_ORIGIN}/`;\nconst webdam_svc_path = 'oauth2/';\nconst scopes = ['offline', 'asset:read', 'collection:read', 'meta.assetbank:read'];\nexport type AuthPlatform = 'bynder' | 'webdam' | 'invalid';\n\nexport function makeAuthorizeRequestUrl(\n\tcodeChallenge: string,\n\tstate: string,\n\taccountDomain: string,\n) {\n\tconst params: Record<string, string> = {\n\t\tclient_id: clientId,\n\t\tcode_challenge: codeChallenge,\n\t\tcode_challenge_method: 'S256',\n\t\tredirect_uri: redirectUri,\n\t\tresponse_type: 'code',\n\t\tscope: scopes.join(' '),\n\t\tdomain: '',\n\t\tstate,\n\t};\n\tlet authEndpoint = 'auth?';\n\n\tif (getPlaformFromLocalStorage() === 'webdam') {\n\t\tauthEndpoint = 'authorize?';\n\t\t// Webdam Oauth currently does not support scopes\n\t\tdelete params.scope;\n\t\tparams.domain = accountDomain;\n\t}\n\n\tconst queryParams = new URLSearchParams(params);\n\n\treturn getAuthPathFromPlatform(accountDomain) + authEndpoint + queryParams;\n}\n\ninterface TokenRequest {\n\trefreshToken: string;\n\taccessToken: string;\n\texpiresIn: string;\n}\n\nexport async function postTokenRequest(\n\tcode: string,\n\tcode_verifier: string,\n\taccountDomain: string,\n): Promise<Result<TokenRequest, string>> {\n\tconst url = getAuthPathFromPlatform(accountDomain) + 'token';\n\n\tconst body = new URLSearchParams({\n\t\tclient_id: clientId,\n\t\tcode_verifier,\n\t\tcode,\n\t\tredirect_uri: redirectUri,\n\t\tgrant_type: 'authorization_code',\n\t});\n\n\ttry {\n\t\tconst response = await fetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',\n\t\t\t},\n\t\t\tbody,\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\treturn err(`Failed to fetch access token: ${response.status}`);\n\t\t}\n\n\t\tconst json = await response.json();\n\n\t\treturn ok({\n\t\t\trefreshToken: json.refresh_token,\n\t\t\taccessToken: json.access_token,\n\t\t\texpiresIn: json.expires_in,\n\t\t});\n\t} catch (e) {\n\t\treturn err(e.toString());\n\t}\n}\n\ninterface RefreshTokenRequest {\n\taccessToken: string;\n\texpiresIn: number;\n}\n\nexport async function postRefreshTokenRequest(\n\trefreshToken: string,\n\taccountDomain: string,\n): Promise<Result<RefreshTokenRequest, string>> {\n\tconst url = getAuthPathFromPlatform(accountDomain) + 'token';\n\n\tconst body = new URLSearchParams({\n\t\tclient_id: clientId,\n\t\trefresh_token: refreshToken,\n\t\tgrant_type: 'refresh_token',\n\t});\n\n\ttry {\n\t\tconst response = await fetch(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\tAccept: 'application/json',\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',\n\t\t\t},\n\t\t\tbody,\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\treturn err(`Failed to fetch refresh token: ${response.status}`);\n\t\t}\n\n\t\tconst json = await response.json();\n\n\t\treturn ok({\n\t\t\taccessToken: json.access_token,\n\t\t\texpiresIn: json.expires_in,\n\t\t});\n\t} catch (e) {\n\t\treturn err(e.toString());\n\t}\n}\n\nfunction getAuthPathFromPlatform(accountDomain: string): string {\n\treturn getPlaformFromLocalStorage() === 'webdam'\n\t\t? webdam_api_origin + webdam_svc_path\n\t\t: ensureValidUrl(accountDomain) + authSvcPath;\n}\n\nfunction getPlaformFromLocalStorage(): string | undefined {\n\treturn localStorage.getItem('cvp') ?? undefined;\n}\n"],"names":["clientId","authSvcPath","redirectOrigin","redirectUri","webdam_api_origin","webdam_svc_path","scopes","makeAuthorizeRequestUrl","codeChallenge","state","accountDomain","params","authEndpoint","getPlaformFromLocalStorage","queryParams","getAuthPathFromPlatform","postTokenRequest","code","code_verifier","url","body","response","err","json","ok","e","postRefreshTokenRequest","refreshToken","ensureValidUrl"],"mappings":";;AAUA,MAAMA,IAAW,wCACXC,IAAc,6BACPC,IAAiB,wCAExBC,IAAcD,IAAiB,kDAC/BE,IAAoB,+BACpBC,IAAkB,WAClBC,IAAS,CAAC,WAAW,cAAc,mBAAmB,qBAAqB;AAG1E,SAASC,EACfC,GACAC,GACAC,GACC;AACD,QAAMC,IAAiC;AAAA,IACtC,WAAWX;AAAA,IACX,gBAAgBQ;AAAA,IAChB,uBAAuB;AAAA,IACvB,cAAcL;AAAA,IACd,eAAe;AAAA,IACf,OAAOG,EAAO,KAAK,GAAG;AAAA,IACtB,QAAQ;AAAA,IACR,OAAAG;AAAA,EAAA;AAED,MAAIG,IAAe;AAEnB,EAAIC,EAAA,MAAiC,aACpCD,IAAe,cAEf,OAAOD,EAAO,OACdA,EAAO,SAASD;AAGjB,QAAMI,IAAc,IAAI,gBAAgBH,CAAM;AAE9C,SAAOI,EAAwBL,CAAa,IAAIE,IAAeE;AAChE;AAQA,eAAsBE,EACrBC,GACAC,GACAR,GACwC;AACxC,QAAMS,IAAMJ,EAAwBL,CAAa,IAAI,SAE/CU,IAAO,IAAI,gBAAgB;AAAA,IAChC,WAAWpB;AAAA,IACX,eAAAkB;AAAA,IACA,MAAAD;AAAA,IACA,cAAcd;AAAA,IACd,YAAY;AAAA,EAAA,CACZ;AAED,MAAI;AACH,UAAMkB,IAAW,MAAM,MAAMF,GAAK;AAAA,MACjC,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAAA;AAAA,MAEjB,MAAAC;AAAA,IAAA,CACA;AAED,QAAI,CAACC,EAAS;AACb,aAAOC,EAAI,iCAAiCD,EAAS,MAAM,EAAE;AAG9D,UAAME,IAAO,MAAMF,EAAS,KAAA;AAE5B,WAAOG,EAAG;AAAA,MACT,cAAcD,EAAK;AAAA,MACnB,aAAaA,EAAK;AAAA,MAClB,WAAWA,EAAK;AAAA,IAAA,CAChB;AAAA,EACF,SAASE,GAAG;AACX,WAAOH,EAAIG,EAAE,UAAU;AAAA,EACxB;AACD;AAOA,eAAsBC,EACrBC,GACAjB,GAC+C;AAC/C,QAAMS,IAAMJ,EAAwBL,CAAa,IAAI,SAE/CU,IAAO,IAAI,gBAAgB;AAAA,IAChC,WAAWpB;AAAA,IACX,eAAe2B;AAAA,IACf,YAAY;AAAA,EAAA,CACZ;AAED,MAAI;AACH,UAAMN,IAAW,MAAM,MAAMF,GAAK;AAAA,MACjC,QAAQ;AAAA,MACR,SAAS;AAAA,QACR,QAAQ;AAAA,QACR,gBAAgB;AAAA,MAAA;AAAA,MAEjB,MAAAC;AAAA,IAAA,CACA;AAED,QAAI,CAACC,EAAS;AACb,aAAOC,EAAI,kCAAkCD,EAAS,MAAM,EAAE;AAG/D,UAAME,IAAO,MAAMF,EAAS,KAAA;AAE5B,WAAOG,EAAG;AAAA,MACT,aAAaD,EAAK;AAAA,MAClB,WAAWA,EAAK;AAAA,IAAA,CAChB;AAAA,EACF,SAAS,GAAG;AACX,WAAOD,EAAI,EAAE,UAAU;AAAA,EACxB;AACD;AAEA,SAASP,EAAwBL,GAA+B;AAC/D,SAAOG,QAAiC,WACrCT,IAAoBC,IACpBuB,EAAelB,CAAa,IAAIT;AACpC;AAEA,SAASY,IAAiD;AACzD,SAAO,aAAa,QAAQ,KAAK,KAAK;AACvC;"}
|
package/order/FieldSelect.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bynder/compact-view",
|
|
3
3
|
"description": "Bynder Compact View",
|
|
4
|
-
"version": "5.1.
|
|
4
|
+
"version": "5.1.4",
|
|
5
5
|
"author": "Bynder",
|
|
6
6
|
"license": "UNLICENSED",
|
|
7
7
|
"main": "index.js",
|
|
8
|
-
"module": "index.
|
|
8
|
+
"module": "index.js",
|
|
9
9
|
"types": "index.d.ts",
|
|
10
|
-
"exports": {
|
|
11
|
-
".": {
|
|
12
|
-
"import": "./index.mjs",
|
|
13
|
-
"require": "./index.js",
|
|
14
|
-
"types": "./index.d.ts"
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
10
|
"dependencies": {},
|
|
18
11
|
"peerDependencies": {
|
|
19
12
|
"react": ">=16.8.0 <19.0.0",
|
package/result.type.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
function t(r) {
|
|
2
|
+
return {
|
|
3
|
+
tag: "ok",
|
|
4
|
+
value: r
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
function n(r) {
|
|
8
|
+
return {
|
|
9
|
+
tag: "error",
|
|
10
|
+
error: r
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function o(r) {
|
|
14
|
+
return r.tag === "ok";
|
|
15
|
+
}
|
|
16
|
+
function e(r) {
|
|
17
|
+
return r.tag === "error";
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
n as err,
|
|
21
|
+
e as isErr,
|
|
22
|
+
o as isOk,
|
|
23
|
+
t as ok
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=result.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.type.js","sources":["../../src/auth/result.type.ts"],"sourcesContent":["export type Ok<T> = {\n\ttag: 'ok';\n\tvalue: T;\n};\n\nexport interface Err<E> {\n\ttag: 'error';\n\terror: E;\n}\n\nexport type Result<T, E> = Ok<T> | Err<E>;\n\nexport function ok<T>(value: T): Ok<T> {\n\treturn {\n\t\ttag: 'ok',\n\t\tvalue,\n\t};\n}\n\nexport function err<E>(error: E): Err<E> {\n\treturn {\n\t\ttag: 'error',\n\t\terror,\n\t};\n}\n\nexport function isOk<T, E = unknown>(result: Result<T, E>): result is Ok<T> {\n\treturn result.tag === 'ok';\n}\n\nexport function isErr<E, T = unknown>(result: Result<T, E>): result is Err<E> {\n\treturn result.tag === 'error';\n}\n"],"names":["ok","value","err","error","isOk","result","isErr"],"mappings":"AAYO,SAASA,EAAMC,GAAiB;AACtC,SAAO;AAAA,IACN,KAAK;AAAA,IACL,OAAAA;AAAA,EAAA;AAEF;AAEO,SAASC,EAAOC,GAAkB;AACxC,SAAO;AAAA,IACN,KAAK;AAAA,IACL,OAAAA;AAAA,EAAA;AAEF;AAEO,SAASC,EAAqBC,GAAuC;AAC3E,SAAOA,EAAO,QAAQ;AACvB;AAEO,SAASC,EAAsBD,GAAwC;AAC7E,SAAOA,EAAO,QAAQ;AACvB;"}
|
package/search/SearchInput.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
export declare function SearchInput(): React.JSX.Element;
|
package/search/SwitchNLS.d.ts
CHANGED
package/search/index.d.ts
CHANGED
package/select/FileSelector.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
export declare function SelectionFooter(): React.JSX.Element | null;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Asset } from '../views/asset/asset.type';
|
|
2
|
+
import { Transformation } from '../Dat/types';
|
|
3
|
+
type datState = {
|
|
4
|
+
datUrl: string;
|
|
5
|
+
assetName: string;
|
|
6
|
+
datExtension: string;
|
|
7
|
+
transformation: Transformation;
|
|
8
|
+
resetTransformation: () => void;
|
|
9
|
+
setTransformation: (transformation?: Transformation) => void;
|
|
10
|
+
openDat: (url: string, asset: Asset, name: string) => void;
|
|
11
|
+
closeDat: () => void;
|
|
12
|
+
reset: () => void;
|
|
13
|
+
};
|
|
14
|
+
export declare const useDatStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<datState>, "setState" | "devtools"> & {
|
|
15
|
+
setState(partial: datState | Partial<datState> | ((state: datState) => datState | Partial<datState>), replace?: false | undefined, action?: (string | {
|
|
16
|
+
[x: string]: unknown;
|
|
17
|
+
[x: number]: unknown;
|
|
18
|
+
[x: symbol]: unknown;
|
|
19
|
+
type: string;
|
|
20
|
+
}) | undefined): void;
|
|
21
|
+
setState(state: datState | ((state: datState) => datState), replace: true, action?: (string | {
|
|
22
|
+
[x: string]: unknown;
|
|
23
|
+
[x: number]: unknown;
|
|
24
|
+
[x: symbol]: unknown;
|
|
25
|
+
type: string;
|
|
26
|
+
}) | undefined): void;
|
|
27
|
+
devtools: {
|
|
28
|
+
cleanup: () => void;
|
|
29
|
+
};
|
|
30
|
+
}>;
|
|
31
|
+
export declare const useDatSelectors: {
|
|
32
|
+
(): datState;
|
|
33
|
+
<U>(selector: (state: datState) => U): U;
|
|
34
|
+
} & Omit<import('zustand').StoreApi<datState>, "setState" | "devtools"> & {
|
|
35
|
+
setState(partial: datState | Partial<datState> | ((state: datState) => datState | Partial<datState>), replace?: false | undefined, action?: (string | {
|
|
36
|
+
[x: string]: unknown;
|
|
37
|
+
[x: number]: unknown;
|
|
38
|
+
[x: symbol]: unknown;
|
|
39
|
+
type: string;
|
|
40
|
+
}) | undefined): void;
|
|
41
|
+
setState(state: datState | ((state: datState) => datState), replace: true, action?: (string | {
|
|
42
|
+
[x: string]: unknown;
|
|
43
|
+
[x: number]: unknown;
|
|
44
|
+
[x: symbol]: unknown;
|
|
45
|
+
type: string;
|
|
46
|
+
}) | undefined): void;
|
|
47
|
+
devtools: {
|
|
48
|
+
cleanup: () => void;
|
|
49
|
+
};
|
|
50
|
+
} & {
|
|
51
|
+
use: {
|
|
52
|
+
datUrl: () => string;
|
|
53
|
+
assetName: () => string;
|
|
54
|
+
datExtension: () => string;
|
|
55
|
+
transformation: () => Transformation;
|
|
56
|
+
resetTransformation: () => () => void;
|
|
57
|
+
setTransformation: () => (transformation?: Transformation) => void;
|
|
58
|
+
openDat: () => (url: string, asset: Asset, name: string) => void;
|
|
59
|
+
closeDat: () => () => void;
|
|
60
|
+
reset: () => () => void;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
export declare const useDat: () => {
|
|
64
|
+
datUrl: string;
|
|
65
|
+
assetName: string;
|
|
66
|
+
datExtension: string;
|
|
67
|
+
transformation: Transformation;
|
|
68
|
+
setTransformation: (transformation?: Transformation) => void;
|
|
69
|
+
closeDat: () => void;
|
|
70
|
+
openDat: (url: string, asset: Asset, name: string) => void;
|
|
71
|
+
reset: () => void;
|
|
72
|
+
};
|
|
73
|
+
export {};
|