@oanda/labs-crowd-view-widget 1.0.1
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 +8 -0
- package/codegen.ts +15 -0
- package/dist/main/CrowdViewWidget/CrowdViewWidget.js +40 -0
- package/dist/main/CrowdViewWidget/CrowdViewWidget.js.map +1 -0
- package/dist/main/CrowdViewWidget/Main.js +65 -0
- package/dist/main/CrowdViewWidget/Main.js.map +1 -0
- package/dist/main/CrowdViewWidget/config.js +97 -0
- package/dist/main/CrowdViewWidget/config.js.map +1 -0
- package/dist/main/CrowdViewWidget/index.js +28 -0
- package/dist/main/CrowdViewWidget/index.js.map +1 -0
- package/dist/main/CrowdViewWidget/render.js +41 -0
- package/dist/main/CrowdViewWidget/render.js.map +1 -0
- package/dist/main/CrowdViewWidget/types.js +33 -0
- package/dist/main/CrowdViewWidget/types.js.map +1 -0
- package/dist/main/gql/types/fragment-masking.js +23 -0
- package/dist/main/gql/types/fragment-masking.js.map +1 -0
- package/dist/main/gql/types/gql.js +16 -0
- package/dist/main/gql/types/gql.js.map +1 -0
- package/dist/main/gql/types/graphql.js +223 -0
- package/dist/main/gql/types/graphql.js.map +1 -0
- package/dist/main/gql/types/index.js +28 -0
- package/dist/main/gql/types/index.js.map +1 -0
- package/dist/main/gql/validateInstruments.js +16 -0
- package/dist/main/gql/validateInstruments.js.map +1 -0
- package/dist/main/index.js +17 -0
- package/dist/main/index.js.map +1 -0
- package/dist/main/translations/index.js +27 -0
- package/dist/main/translations/index.js.map +1 -0
- package/dist/main/translations/sources/en.json +2 -0
- package/dist/main/translations/sources/es.json +2 -0
- package/dist/main/translations/sources/th.json +2 -0
- package/dist/main/translations/sources/zh_TW.json +2 -0
- package/dist/main/translations/translations.js +8 -0
- package/dist/main/translations/translations.js.map +1 -0
- package/dist/module/CrowdViewWidget/CrowdViewWidget.js +33 -0
- package/dist/module/CrowdViewWidget/CrowdViewWidget.js.map +1 -0
- package/dist/module/CrowdViewWidget/Main.js +57 -0
- package/dist/module/CrowdViewWidget/Main.js.map +1 -0
- package/dist/module/CrowdViewWidget/config.js +92 -0
- package/dist/module/CrowdViewWidget/config.js.map +1 -0
- package/dist/module/CrowdViewWidget/index.js +3 -0
- package/dist/module/CrowdViewWidget/index.js.map +1 -0
- package/dist/module/CrowdViewWidget/render.js +38 -0
- package/dist/module/CrowdViewWidget/render.js.map +1 -0
- package/dist/module/CrowdViewWidget/types.js +27 -0
- package/dist/module/CrowdViewWidget/types.js.map +1 -0
- package/dist/module/gql/types/fragment-masking.js +15 -0
- package/dist/module/gql/types/fragment-masking.js.map +1 -0
- package/dist/module/gql/types/gql.js +8 -0
- package/dist/module/gql/types/gql.js.map +1 -0
- package/dist/module/gql/types/graphql.js +217 -0
- package/dist/module/gql/types/graphql.js.map +1 -0
- package/dist/module/gql/types/index.js +3 -0
- package/dist/module/gql/types/index.js.map +1 -0
- package/dist/module/gql/validateInstruments.js +10 -0
- package/dist/module/gql/validateInstruments.js.map +1 -0
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/translations/index.js +20 -0
- package/dist/module/translations/index.js.map +1 -0
- package/dist/module/translations/sources/en.json +2 -0
- package/dist/module/translations/sources/es.json +2 -0
- package/dist/module/translations/sources/th.json +2 -0
- package/dist/module/translations/sources/zh_TW.json +2 -0
- package/dist/module/translations/translations.js +2 -0
- package/dist/module/translations/translations.js.map +1 -0
- package/dist/types/CrowdViewWidget/CrowdViewWidget.d.ts +4 -0
- package/dist/types/CrowdViewWidget/Main.d.ts +4 -0
- package/dist/types/CrowdViewWidget/config.d.ts +20 -0
- package/dist/types/CrowdViewWidget/index.d.ts +2 -0
- package/dist/types/CrowdViewWidget/render.d.ts +1 -0
- package/dist/types/CrowdViewWidget/types.d.ts +32 -0
- package/dist/types/gql/types/fragment-masking.d.ts +15 -0
- package/dist/types/gql/types/gql.d.ts +37 -0
- package/dist/types/gql/types/graphql.d.ts +389 -0
- package/dist/types/gql/types/index.d.ts +2 -0
- package/dist/types/gql/validateInstruments.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/translations/index.d.ts +4 -0
- package/dist/types/translations/translations.d.ts +1 -0
- package/index.ts +1 -0
- package/lokalise.config.json +18 -0
- package/package.json +24 -0
- package/src/CrowdViewWidget/CrowdViewWidget.tsx +40 -0
- package/src/CrowdViewWidget/Main.tsx +91 -0
- package/src/CrowdViewWidget/config.ts +130 -0
- package/src/CrowdViewWidget/index.ts +2 -0
- package/src/CrowdViewWidget/render.tsx +51 -0
- package/src/CrowdViewWidget/types.ts +36 -0
- package/src/gql/types/fragment-masking.ts +86 -0
- package/src/gql/types/gql.ts +46 -0
- package/src/gql/types/graphql.ts +509 -0
- package/src/gql/types/index.ts +2 -0
- package/src/gql/validateInstruments.ts +10 -0
- package/src/index.ts +1 -0
- package/src/translations/index.ts +17 -0
- package/src/translations/sources/en.json +2 -0
- package/src/translations/sources/es.json +2 -0
- package/src/translations/sources/th.json +2 -0
- package/src/translations/sources/zh_TW.json +2 -0
- package/src/translations/translations.ts +1 -0
- package/test/Main.test.tsx +21 -0
- package/tsconfig.types.json +12 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Change Log
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
+
|
|
6
|
+
## 1.0.1 (2025-04-04)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @oanda/labs-crowd-view-widget
|
package/codegen.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { CodegenConfig } from '@graphql-codegen/cli';
|
|
2
|
+
|
|
3
|
+
const config: CodegenConfig = {
|
|
4
|
+
overwrite: true,
|
|
5
|
+
schema: 'https://labs-api.uat.oanda.com/graphql',
|
|
6
|
+
documents: 'src/**/*.ts',
|
|
7
|
+
generates: {
|
|
8
|
+
'src/gql/types/': {
|
|
9
|
+
preset: 'client',
|
|
10
|
+
plugins: [],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default config;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CrowdViewWidget = void 0;
|
|
7
|
+
var _client = require("@apollo/client");
|
|
8
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _graphql = require("../gql/types/graphql");
|
|
11
|
+
var _translations = require("../translations");
|
|
12
|
+
var _Main = require("./Main");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
const CrowdViewWidget = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
graphqlUrl,
|
|
17
|
+
locale,
|
|
18
|
+
theme,
|
|
19
|
+
isParamError,
|
|
20
|
+
logoLink
|
|
21
|
+
} = _ref;
|
|
22
|
+
const client = new _client.ApolloClient({
|
|
23
|
+
uri: graphqlUrl,
|
|
24
|
+
cache: new _client.InMemoryCache()
|
|
25
|
+
});
|
|
26
|
+
return _react.default.createElement(_labsWidgetCommon.WidgetProvider, {
|
|
27
|
+
client: client,
|
|
28
|
+
locale: locale,
|
|
29
|
+
theme: theme,
|
|
30
|
+
translations: _translations.translations
|
|
31
|
+
}, _react.default.createElement(_labsWidgetCommon.WidgetWrapper, {
|
|
32
|
+
isParamError: isParamError,
|
|
33
|
+
linkArea: "logo",
|
|
34
|
+
logoLink: logoLink
|
|
35
|
+
}, _react.default.createElement(_Main.Main, {
|
|
36
|
+
division: _graphql.Division.Oc
|
|
37
|
+
})));
|
|
38
|
+
};
|
|
39
|
+
exports.CrowdViewWidget = CrowdViewWidget;
|
|
40
|
+
//# sourceMappingURL=CrowdViewWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CrowdViewWidget.js","names":["_client","require","_labsWidgetCommon","_react","_interopRequireDefault","_graphql","_translations","_Main","e","__esModule","default","CrowdViewWidget","_ref","graphqlUrl","locale","theme","isParamError","logoLink","client","ApolloClient","uri","cache","InMemoryCache","createElement","WidgetProvider","translations","WidgetWrapper","linkArea","Main","division","Division","Oc","exports"],"sources":["../../../src/CrowdViewWidget/CrowdViewWidget.tsx"],"sourcesContent":["import { ApolloClient, InMemoryCache } from '@apollo/client';\nimport { WidgetProvider, WidgetWrapper } from '@oanda/labs-widget-common';\nimport React from 'react';\n\nimport { Division } from '../gql/types/graphql';\nimport { translations } from '../translations';\nimport { Main } from './Main';\nimport type { CrowdViewConfig } from './types';\n\nconst CrowdViewWidget = ({\n graphqlUrl,\n locale,\n theme,\n isParamError,\n logoLink,\n}: CrowdViewConfig) => {\n const client = new ApolloClient({\n uri: graphqlUrl,\n cache: new InMemoryCache(),\n });\n\n return (\n <WidgetProvider\n client={client}\n locale={locale}\n theme={theme}\n translations={translations}\n >\n <WidgetWrapper\n isParamError={isParamError}\n linkArea=\"logo\"\n logoLink={logoLink}\n >\n <Main division={Division.Oc} />\n </WidgetWrapper>\n </WidgetProvider>\n );\n};\n\nexport { CrowdViewWidget };\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAA8B,SAAAG,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG9B,MAAMG,eAAe,GAAGC,IAAA,IAMD;EAAA,IANE;IACvBC,UAAU;IACVC,MAAM;IACNC,KAAK;IACLC,YAAY;IACZC;EACe,CAAC,GAAAL,IAAA;EAChB,MAAMM,MAAM,GAAG,IAAIC,oBAAY,CAAC;IAC9BC,GAAG,EAAEP,UAAU;IACfQ,KAAK,EAAE,IAAIC,qBAAa,CAAC;EAC3B,CAAC,CAAC;EAEF,OACEnB,MAAA,CAAAO,OAAA,CAAAa,aAAA,CAACrB,iBAAA,CAAAsB,cAAc;IACbN,MAAM,EAAEA,MAAO;IACfJ,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbU,YAAY,EAAEA;EAAa,GAE3BtB,MAAA,CAAAO,OAAA,CAAAa,aAAA,CAACrB,iBAAA,CAAAwB,aAAa;IACZV,YAAY,EAAEA,YAAa;IAC3BW,QAAQ,EAAC,MAAM;IACfV,QAAQ,EAAEA;EAAS,GAEnBd,MAAA,CAAAO,OAAA,CAAAa,aAAA,CAAChB,KAAA,CAAAqB,IAAI;IAACC,QAAQ,EAAEC,iBAAQ,CAACC;EAAG,CAAE,CACjB,CACD,CAAC;AAErB,CAAC;AAACC,OAAA,CAAArB,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Main = void 0;
|
|
7
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
8
|
+
var _monoI18n = require("@oanda/mono-i18n");
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _graphql = require("../gql/types/graphql");
|
|
11
|
+
var _config = require("./config");
|
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
+
const Main = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
division
|
|
17
|
+
} = _ref;
|
|
18
|
+
const instrumentSelectConfigWithDivision = division === _graphql.Division.Oc ? _config.instrumentSelectConfigOC : _config.instrumentSelectConfig;
|
|
19
|
+
const {
|
|
20
|
+
size
|
|
21
|
+
} = (0, _labsWidgetCommon.useLayoutProvider)();
|
|
22
|
+
const isDesktop = size === _labsWidgetCommon.Size.DESKTOP;
|
|
23
|
+
const [bookType, setBookType] = (0, _react.useState)(_graphql.BookType.Order);
|
|
24
|
+
const [instrument, setInstrument] = (0, _react.useState)(instrumentSelectConfigWithDivision[0]);
|
|
25
|
+
const [granularity, setGranularity] = (0, _react.useState)(_config.granularitySelectConfig[0]);
|
|
26
|
+
const {
|
|
27
|
+
lang
|
|
28
|
+
} = (0, _monoI18n.useLocale)();
|
|
29
|
+
return _react.default.createElement(_react.default.Fragment, null, size && _react.default.createElement("div", {
|
|
30
|
+
className: "lw-text-sm lw-tracking-normal",
|
|
31
|
+
"data-testid": "crowd-view-widget"
|
|
32
|
+
}, _react.default.createElement(_labsWidgetCommon.Tabs, {
|
|
33
|
+
mobileFullWidth: true,
|
|
34
|
+
activeTab: bookType,
|
|
35
|
+
handleClick: e => setBookType(e.currentTarget.value),
|
|
36
|
+
items: _config.navigationConfig,
|
|
37
|
+
labelCallback: lang
|
|
38
|
+
}), _react.default.createElement("div", {
|
|
39
|
+
className: "lw-mb-6 lw-mt-12 lw-flex"
|
|
40
|
+
}, _react.default.createElement("div", {
|
|
41
|
+
className: (0, _labsWidgetCommon.cn)('lw-mr-2', {
|
|
42
|
+
'lw-w-full': !isDesktop,
|
|
43
|
+
'lw-w-[280px]': isDesktop
|
|
44
|
+
})
|
|
45
|
+
}, _react.default.createElement(_labsWidgetCommon.Select, {
|
|
46
|
+
options: instrumentSelectConfigWithDivision,
|
|
47
|
+
searchPlaceholder: lang('search'),
|
|
48
|
+
selectLabel: lang('instrument'),
|
|
49
|
+
selectedOption: instrument,
|
|
50
|
+
setSelectedOption: val => setInstrument(val)
|
|
51
|
+
})), _react.default.createElement("div", {
|
|
52
|
+
className: (0, _labsWidgetCommon.cn)({
|
|
53
|
+
'lw-w-full': !isDesktop,
|
|
54
|
+
'lw-w-[280px]': isDesktop
|
|
55
|
+
})
|
|
56
|
+
}, _react.default.createElement(_labsWidgetCommon.Select, {
|
|
57
|
+
options: _config.granularitySelectConfig,
|
|
58
|
+
searchPlaceholder: lang('search'),
|
|
59
|
+
selectLabel: lang('granularity'),
|
|
60
|
+
selectedOption: granularity,
|
|
61
|
+
setSelectedOption: val => setGranularity(val)
|
|
62
|
+
}))), _react.default.createElement(_labsWidgetCommon.WidgetError, null)));
|
|
63
|
+
};
|
|
64
|
+
exports.Main = Main;
|
|
65
|
+
//# sourceMappingURL=Main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Main.js","names":["_labsWidgetCommon","require","_monoI18n","_react","_interopRequireWildcard","_graphql","_config","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Main","_ref","division","instrumentSelectConfigWithDivision","Division","Oc","instrumentSelectConfigOC","instrumentSelectConfig","size","useLayoutProvider","isDesktop","Size","DESKTOP","bookType","setBookType","useState","BookType","Order","instrument","setInstrument","granularity","setGranularity","granularitySelectConfig","lang","useLocale","createElement","Fragment","className","Tabs","mobileFullWidth","activeTab","handleClick","currentTarget","value","items","navigationConfig","labelCallback","cn","Select","options","searchPlaceholder","selectLabel","selectedOption","setSelectedOption","val","WidgetError","exports"],"sources":["../../../src/CrowdViewWidget/Main.tsx"],"sourcesContent":["import {\n cn,\n Select,\n Size,\n Tabs,\n useLayoutProvider,\n WidgetError,\n} from '@oanda/labs-widget-common';\nimport { useLocale } from '@oanda/mono-i18n';\nimport React, { useState } from 'react';\n\nimport { BookType, Division } from '../gql/types/graphql';\nimport {\n granularitySelectConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n} from './config';\nimport type { GranularityId, InstrumentId, MainProps } from './types';\n\nconst Main = ({ division }: MainProps) => {\n const instrumentSelectConfigWithDivision =\n division === Division.Oc\n ? instrumentSelectConfigOC\n : instrumentSelectConfig;\n\n const { size } = useLayoutProvider();\n const isDesktop = size === Size.DESKTOP;\n const [bookType, setBookType] = useState(BookType.Order);\n const [instrument, setInstrument] = useState(\n instrumentSelectConfigWithDivision[0]\n );\n const [granularity, setGranularity] = useState(granularitySelectConfig[0]);\n const { lang } = useLocale();\n\n return (\n <>\n {size && (\n <div\n className=\"lw-text-sm lw-tracking-normal\"\n data-testid=\"crowd-view-widget\"\n >\n <Tabs\n mobileFullWidth\n activeTab={bookType}\n handleClick={(e) => setBookType(e.currentTarget.value as BookType)}\n items={navigationConfig}\n labelCallback={lang}\n />\n <div className=\"lw-mb-6 lw-mt-12 lw-flex\">\n <div\n className={cn('lw-mr-2', {\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={instrumentSelectConfigWithDivision}\n searchPlaceholder={lang('search')}\n selectLabel={lang('instrument')}\n selectedOption={instrument}\n setSelectedOption={(val) =>\n setInstrument(val as { id: InstrumentId; label: string })\n }\n />\n </div>\n <div\n className={cn({\n 'lw-w-full': !isDesktop,\n 'lw-w-[280px]': isDesktop,\n })}\n >\n <Select\n options={granularitySelectConfig}\n searchPlaceholder={lang('search')}\n selectLabel={lang('granularity')}\n selectedOption={granularity}\n setSelectedOption={(val) =>\n setGranularity(val as { id: GranularityId; label: string })\n }\n />\n </div>\n </div>\n <WidgetError />\n </div>\n )}\n </>\n );\n};\n\nexport { Main };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.navigationConfig = exports.instrumentSelectConfigOC = exports.instrumentSelectConfig = exports.instrumentPrecisionConfig = exports.granularitySelectConfig = void 0;
|
|
7
|
+
var _graphql = require("../gql/types/graphql");
|
|
8
|
+
var _types = require("./types");
|
|
9
|
+
const navigationConfig = exports.navigationConfig = [{
|
|
10
|
+
id: _graphql.BookType.Order,
|
|
11
|
+
label: 'order_book'
|
|
12
|
+
}, {
|
|
13
|
+
id: _graphql.BookType.Position,
|
|
14
|
+
label: 'position_book'
|
|
15
|
+
}];
|
|
16
|
+
const instrumentSelectConfigOC = exports.instrumentSelectConfigOC = [{
|
|
17
|
+
id: _types.InstrumentId.EUR_AUD,
|
|
18
|
+
label: 'EUR/AUD'
|
|
19
|
+
}, {
|
|
20
|
+
id: _types.InstrumentId.EUR_GBP,
|
|
21
|
+
label: 'EUR/GBP'
|
|
22
|
+
}, {
|
|
23
|
+
id: _types.InstrumentId.EUR_JPY,
|
|
24
|
+
label: 'EUR/JPY'
|
|
25
|
+
}, {
|
|
26
|
+
id: _types.InstrumentId.EUR_USD,
|
|
27
|
+
label: 'EUR/USD'
|
|
28
|
+
}, {
|
|
29
|
+
id: _types.InstrumentId.EUR_CHF,
|
|
30
|
+
label: 'EUR/CHF'
|
|
31
|
+
}, {
|
|
32
|
+
id: _types.InstrumentId.USD_CHF,
|
|
33
|
+
label: 'USD/CHF'
|
|
34
|
+
}, {
|
|
35
|
+
id: _types.InstrumentId.USD_JPY,
|
|
36
|
+
label: 'USD/JPY'
|
|
37
|
+
}, {
|
|
38
|
+
id: _types.InstrumentId.USD_CAD,
|
|
39
|
+
label: 'USD/CAD'
|
|
40
|
+
}, {
|
|
41
|
+
id: _types.InstrumentId.GBP_USD,
|
|
42
|
+
label: 'GBP/USD'
|
|
43
|
+
}, {
|
|
44
|
+
id: _types.InstrumentId.GBP_JPY,
|
|
45
|
+
label: 'GBP/JPY'
|
|
46
|
+
}, {
|
|
47
|
+
id: _types.InstrumentId.GBP_CHF,
|
|
48
|
+
label: 'GBP/CHF'
|
|
49
|
+
}, {
|
|
50
|
+
id: _types.InstrumentId.AUD_JPY,
|
|
51
|
+
label: 'AUD/JPY'
|
|
52
|
+
}, {
|
|
53
|
+
id: _types.InstrumentId.AUD_USD,
|
|
54
|
+
label: 'AUD/USD'
|
|
55
|
+
}, {
|
|
56
|
+
id: _types.InstrumentId.NZD_USD,
|
|
57
|
+
label: 'NZD/USD'
|
|
58
|
+
}];
|
|
59
|
+
const instrumentSelectConfig = exports.instrumentSelectConfig = [...instrumentSelectConfigOC, {
|
|
60
|
+
id: _types.InstrumentId.XAU_USD,
|
|
61
|
+
label: 'XAU/USD'
|
|
62
|
+
}, {
|
|
63
|
+
id: _types.InstrumentId.XAG_USD,
|
|
64
|
+
label: 'XAG/USD'
|
|
65
|
+
}];
|
|
66
|
+
const instrumentPrecisionConfig = exports.instrumentPrecisionConfig = {
|
|
67
|
+
[_types.InstrumentId.EUR_AUD]: 5,
|
|
68
|
+
[_types.InstrumentId.EUR_GBP]: 5,
|
|
69
|
+
[_types.InstrumentId.EUR_JPY]: 3,
|
|
70
|
+
[_types.InstrumentId.EUR_USD]: 5,
|
|
71
|
+
[_types.InstrumentId.EUR_CHF]: 5,
|
|
72
|
+
[_types.InstrumentId.USD_CHF]: 5,
|
|
73
|
+
[_types.InstrumentId.USD_JPY]: 3,
|
|
74
|
+
[_types.InstrumentId.USD_CAD]: 5,
|
|
75
|
+
[_types.InstrumentId.GBP_USD]: 5,
|
|
76
|
+
[_types.InstrumentId.GBP_JPY]: 3,
|
|
77
|
+
[_types.InstrumentId.GBP_CHF]: 5,
|
|
78
|
+
[_types.InstrumentId.AUD_JPY]: 3,
|
|
79
|
+
[_types.InstrumentId.AUD_USD]: 5,
|
|
80
|
+
[_types.InstrumentId.NZD_USD]: 5,
|
|
81
|
+
[_types.InstrumentId.XAU_USD]: 3,
|
|
82
|
+
[_types.InstrumentId.XAG_USD]: 5
|
|
83
|
+
};
|
|
84
|
+
const granularitySelectConfig = exports.granularitySelectConfig = [{
|
|
85
|
+
id: _types.GranularityId.M5,
|
|
86
|
+
label: '5_minutes'
|
|
87
|
+
}, {
|
|
88
|
+
id: _types.GranularityId.M15,
|
|
89
|
+
label: '15_minutes'
|
|
90
|
+
}, {
|
|
91
|
+
id: _types.GranularityId.H1,
|
|
92
|
+
label: '1_hour'
|
|
93
|
+
}, {
|
|
94
|
+
id: _types.GranularityId.D1,
|
|
95
|
+
label: '1_day'
|
|
96
|
+
}];
|
|
97
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","names":["_graphql","require","_types","navigationConfig","exports","id","BookType","Order","label","Position","instrumentSelectConfigOC","InstrumentId","EUR_AUD","EUR_GBP","EUR_JPY","EUR_USD","EUR_CHF","USD_CHF","USD_JPY","USD_CAD","GBP_USD","GBP_JPY","GBP_CHF","AUD_JPY","AUD_USD","NZD_USD","instrumentSelectConfig","XAU_USD","XAG_USD","instrumentPrecisionConfig","granularitySelectConfig","GranularityId","M5","M15","H1","D1"],"sources":["../../../src/CrowdViewWidget/config.ts"],"sourcesContent":["import { BookType } from '../gql/types/graphql';\nimport { GranularityId, InstrumentId } from './types';\n\nconst navigationConfig = [\n {\n id: BookType.Order,\n label: 'order_book',\n },\n {\n id: BookType.Position,\n label: 'position_book',\n },\n];\n\nconst instrumentSelectConfigOC = [\n {\n id: InstrumentId.EUR_AUD,\n label: 'EUR/AUD',\n },\n {\n id: InstrumentId.EUR_GBP,\n label: 'EUR/GBP',\n },\n {\n id: InstrumentId.EUR_JPY,\n label: 'EUR/JPY',\n },\n {\n id: InstrumentId.EUR_USD,\n label: 'EUR/USD',\n },\n {\n id: InstrumentId.EUR_CHF,\n label: 'EUR/CHF',\n },\n {\n id: InstrumentId.USD_CHF,\n label: 'USD/CHF',\n },\n {\n id: InstrumentId.USD_JPY,\n label: 'USD/JPY',\n },\n {\n id: InstrumentId.USD_CAD,\n label: 'USD/CAD',\n },\n {\n id: InstrumentId.GBP_USD,\n label: 'GBP/USD',\n },\n {\n id: InstrumentId.GBP_JPY,\n label: 'GBP/JPY',\n },\n {\n id: InstrumentId.GBP_CHF,\n label: 'GBP/CHF',\n },\n {\n id: InstrumentId.AUD_JPY,\n label: 'AUD/JPY',\n },\n {\n id: InstrumentId.AUD_USD,\n label: 'AUD/USD',\n },\n {\n id: InstrumentId.NZD_USD,\n label: 'NZD/USD',\n },\n];\n\nconst instrumentSelectConfig = [\n ...instrumentSelectConfigOC,\n {\n id: InstrumentId.XAU_USD,\n label: 'XAU/USD',\n },\n {\n id: InstrumentId.XAG_USD,\n label: 'XAG/USD',\n },\n];\n\nconst instrumentPrecisionConfig: Record<InstrumentId, number> = {\n [InstrumentId.EUR_AUD]: 5,\n [InstrumentId.EUR_GBP]: 5,\n [InstrumentId.EUR_JPY]: 3,\n [InstrumentId.EUR_USD]: 5,\n [InstrumentId.EUR_CHF]: 5,\n [InstrumentId.USD_CHF]: 5,\n [InstrumentId.USD_JPY]: 3,\n [InstrumentId.USD_CAD]: 5,\n [InstrumentId.GBP_USD]: 5,\n [InstrumentId.GBP_JPY]: 3,\n [InstrumentId.GBP_CHF]: 5,\n [InstrumentId.AUD_JPY]: 3,\n [InstrumentId.AUD_USD]: 5,\n [InstrumentId.NZD_USD]: 5,\n [InstrumentId.XAU_USD]: 3,\n [InstrumentId.XAG_USD]: 5,\n};\n\nconst granularitySelectConfig = [\n {\n id: GranularityId.M5,\n label: '5_minutes',\n },\n {\n id: GranularityId.M15,\n label: '15_minutes',\n },\n {\n id: GranularityId.H1,\n label: '1_hour',\n },\n {\n id: GranularityId.D1,\n label: '1_day',\n },\n];\n\nexport {\n granularitySelectConfig,\n instrumentPrecisionConfig,\n instrumentSelectConfig,\n instrumentSelectConfigOC,\n navigationConfig,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _CrowdViewWidget = require("./CrowdViewWidget");
|
|
7
|
+
Object.keys(_CrowdViewWidget).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _CrowdViewWidget[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _CrowdViewWidget[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _types = require("./types");
|
|
18
|
+
Object.keys(_types).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _types[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _types[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_CrowdViewWidget","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_types"],"sources":["../../../src/CrowdViewWidget/index.ts"],"sourcesContent":["export * from './CrowdViewWidget';\nexport * from './types';\n"],"mappings":";;;;;AAAA,IAAAA,gBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,gBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,gBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,gBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _labsWidgetCommon = require("@oanda/labs-widget-common");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _client = require("react-dom/client");
|
|
6
|
+
var _graphql = require("../gql/types/graphql");
|
|
7
|
+
var _CrowdViewWidget = require("./CrowdViewWidget");
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
const {
|
|
10
|
+
graphqlUrl
|
|
11
|
+
} = window.widgetsConfig || {};
|
|
12
|
+
const dataCrowdViewParamsElements = document.querySelectorAll('div[data-crowd-view-params]');
|
|
13
|
+
dataCrowdViewParamsElements.forEach(element => {
|
|
14
|
+
const root = (0, _client.createRoot)(element);
|
|
15
|
+
const params = element.getAttribute('data-crowd-view-params');
|
|
16
|
+
const mode = element.getAttribute('data-mode');
|
|
17
|
+
const {
|
|
18
|
+
division,
|
|
19
|
+
locale
|
|
20
|
+
} = JSON.parse(params);
|
|
21
|
+
const isParamError = (0, _labsWidgetCommon.validateToolParams)({
|
|
22
|
+
division,
|
|
23
|
+
locale,
|
|
24
|
+
graphqlUrl
|
|
25
|
+
}, [{
|
|
26
|
+
name: 'locale',
|
|
27
|
+
valueCheck: value => (0, _labsWidgetCommon.validateLocale)(value)
|
|
28
|
+
}, {
|
|
29
|
+
name: 'division',
|
|
30
|
+
valueCheck: value => Object.values(_graphql.Division).includes(value)
|
|
31
|
+
}, {
|
|
32
|
+
name: 'graphqlUrl'
|
|
33
|
+
}]);
|
|
34
|
+
root.render(_react.default.createElement(_CrowdViewWidget.CrowdViewWidget, {
|
|
35
|
+
graphqlUrl: graphqlUrl,
|
|
36
|
+
isParamError: isParamError,
|
|
37
|
+
locale: locale,
|
|
38
|
+
theme: mode
|
|
39
|
+
}));
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","names":["_labsWidgetCommon","require","_react","_interopRequireDefault","_client","_graphql","_CrowdViewWidget","e","__esModule","default","graphqlUrl","window","widgetsConfig","dataCrowdViewParamsElements","document","querySelectorAll","forEach","element","root","createRoot","params","getAttribute","mode","division","locale","JSON","parse","isParamError","validateToolParams","name","valueCheck","value","validateLocale","Object","values","Division","includes","render","createElement","CrowdViewWidget","theme"],"sources":["../../../src/CrowdViewWidget/render.tsx"],"sourcesContent":["import type { Theme } from '@oanda/labs-widget-common';\nimport { validateLocale, validateToolParams } from '@oanda/labs-widget-common';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport { Division } from '../gql/types/graphql';\nimport { CrowdViewWidget } from './CrowdViewWidget';\n\nconst { graphqlUrl } = window.widgetsConfig || {};\n\nconst dataCrowdViewParamsElements = document.querySelectorAll(\n 'div[data-crowd-view-params]'\n);\n\ndataCrowdViewParamsElements.forEach((element) => {\n const root = createRoot(element);\n const params = element.getAttribute('data-crowd-view-params');\n const mode = element.getAttribute('data-mode');\n const { division, locale } = JSON.parse(params as string);\n\n const isParamError = validateToolParams(\n {\n division,\n locale,\n graphqlUrl,\n },\n [\n {\n name: 'locale',\n valueCheck: (value: string | undefined) => validateLocale(value),\n },\n {\n name: 'division',\n valueCheck: (value: Division) =>\n Object.values(Division).includes(value),\n },\n {\n name: 'graphqlUrl',\n },\n ]\n );\n\n root.render(\n <CrowdViewWidget\n graphqlUrl={graphqlUrl}\n isParamError={isParamError}\n locale={locale}\n theme={mode as Theme}\n />\n );\n});\n"],"mappings":";;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AAAoD,SAAAE,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAEpD,MAAM;EAAEG;AAAW,CAAC,GAAGC,MAAM,CAACC,aAAa,IAAI,CAAC,CAAC;AAEjD,MAAMC,2BAA2B,GAAGC,QAAQ,CAACC,gBAAgB,CAC3D,6BACF,CAAC;AAEDF,2BAA2B,CAACG,OAAO,CAAEC,OAAO,IAAK;EAC/C,MAAMC,IAAI,GAAG,IAAAC,kBAAU,EAACF,OAAO,CAAC;EAChC,MAAMG,MAAM,GAAGH,OAAO,CAACI,YAAY,CAAC,wBAAwB,CAAC;EAC7D,MAAMC,IAAI,GAAGL,OAAO,CAACI,YAAY,CAAC,WAAW,CAAC;EAC9C,MAAM;IAAEE,QAAQ;IAAEC;EAAO,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACN,MAAgB,CAAC;EAEzD,MAAMO,YAAY,GAAG,IAAAC,oCAAkB,EACrC;IACEL,QAAQ;IACRC,MAAM;IACNd;EACF,CAAC,EACD,CACE;IACEmB,IAAI,EAAE,QAAQ;IACdC,UAAU,EAAGC,KAAyB,IAAK,IAAAC,gCAAc,EAACD,KAAK;EACjE,CAAC,EACD;IACEF,IAAI,EAAE,UAAU;IAChBC,UAAU,EAAGC,KAAe,IAC1BE,MAAM,CAACC,MAAM,CAACC,iBAAQ,CAAC,CAACC,QAAQ,CAACL,KAAK;EAC1C,CAAC,EACD;IACEF,IAAI,EAAE;EACR,CAAC,CAEL,CAAC;EAEDX,IAAI,CAACmB,MAAM,CACTnC,MAAA,CAAAO,OAAA,CAAA6B,aAAA,CAAChC,gBAAA,CAAAiC,eAAe;IACd7B,UAAU,EAAEA,UAAW;IACvBiB,YAAY,EAAEA,YAAa;IAC3BH,MAAM,EAAEA,MAAO;IACfgB,KAAK,EAAElB;EAAc,CACtB,CACH,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.InstrumentId = exports.GranularityId = void 0;
|
|
7
|
+
let InstrumentId = exports.InstrumentId = function (InstrumentId) {
|
|
8
|
+
InstrumentId["EUR_AUD"] = "EURAUD";
|
|
9
|
+
InstrumentId["EUR_GBP"] = "EURGBP";
|
|
10
|
+
InstrumentId["EUR_JPY"] = "EURJPY";
|
|
11
|
+
InstrumentId["EUR_USD"] = "EURUSD";
|
|
12
|
+
InstrumentId["EUR_CHF"] = "EURCHF";
|
|
13
|
+
InstrumentId["USD_CHF"] = "USDCHF";
|
|
14
|
+
InstrumentId["USD_JPY"] = "USDJPY";
|
|
15
|
+
InstrumentId["USD_CAD"] = "USDCAD";
|
|
16
|
+
InstrumentId["GBP_USD"] = "GBPUSD";
|
|
17
|
+
InstrumentId["GBP_JPY"] = "GBPJPY";
|
|
18
|
+
InstrumentId["GBP_CHF"] = "GBPCHF";
|
|
19
|
+
InstrumentId["AUD_JPY"] = "AUDJPY";
|
|
20
|
+
InstrumentId["AUD_USD"] = "AUDUSD";
|
|
21
|
+
InstrumentId["NZD_USD"] = "NZDUSD";
|
|
22
|
+
InstrumentId["XAU_USD"] = "XAUUSD";
|
|
23
|
+
InstrumentId["XAG_USD"] = "XAGUSD";
|
|
24
|
+
return InstrumentId;
|
|
25
|
+
}({});
|
|
26
|
+
let GranularityId = exports.GranularityId = function (GranularityId) {
|
|
27
|
+
GranularityId["M5"] = "5M";
|
|
28
|
+
GranularityId["M15"] = "15M";
|
|
29
|
+
GranularityId["H1"] = "1H";
|
|
30
|
+
GranularityId["D1"] = "1D";
|
|
31
|
+
return GranularityId;
|
|
32
|
+
}({});
|
|
33
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","names":["InstrumentId","exports","GranularityId"],"sources":["../../../src/CrowdViewWidget/types.ts"],"sourcesContent":["import type { WidgetConfig } from '@oanda/labs-widget-common';\n\nimport type { Division } from '../gql/types/graphql';\n\nexport interface CrowdViewConfig extends WidgetConfig {}\n\nexport interface MainProps {\n instrument?: InstrumentId;\n division: Division;\n}\n\nexport enum InstrumentId {\n EUR_AUD = 'EURAUD',\n EUR_GBP = 'EURGBP',\n EUR_JPY = 'EURJPY',\n EUR_USD = 'EURUSD',\n EUR_CHF = 'EURCHF',\n USD_CHF = 'USDCHF',\n USD_JPY = 'USDJPY',\n USD_CAD = 'USDCAD',\n GBP_USD = 'GBPUSD',\n GBP_JPY = 'GBPJPY',\n GBP_CHF = 'GBPCHF',\n AUD_JPY = 'AUDJPY',\n AUD_USD = 'AUDUSD',\n NZD_USD = 'NZDUSD',\n XAU_USD = 'XAUUSD',\n XAG_USD = 'XAGUSD',\n}\n\nexport enum GranularityId {\n M5 = '5M',\n M15 = '15M',\n H1 = '1H',\n D1 = '1D',\n}\n"],"mappings":";;;;;;IAWYA,YAAY,GAAAC,OAAA,CAAAD,YAAA,aAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAAA,IAmBZE,aAAa,GAAAD,OAAA,CAAAC,aAAA,aAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isFragmentReady = isFragmentReady;
|
|
7
|
+
exports.makeFragmentData = makeFragmentData;
|
|
8
|
+
exports.useFragment = useFragment;
|
|
9
|
+
function useFragment(_documentNode, fragmentType) {
|
|
10
|
+
return fragmentType;
|
|
11
|
+
}
|
|
12
|
+
function makeFragmentData(data, _fragment) {
|
|
13
|
+
return data;
|
|
14
|
+
}
|
|
15
|
+
function isFragmentReady(queryNode, fragmentNode, data) {
|
|
16
|
+
const deferredFields = queryNode.__meta__?.deferredFields;
|
|
17
|
+
if (!deferredFields) return true;
|
|
18
|
+
const fragDef = fragmentNode.definitions[0];
|
|
19
|
+
const fragName = fragDef?.name?.value;
|
|
20
|
+
const fields = fragName && deferredFields[fragName] || [];
|
|
21
|
+
return fields.length > 0 && fields.every(field => data && field in data);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=fragment-masking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fragment-masking.js","names":["useFragment","_documentNode","fragmentType","makeFragmentData","data","_fragment","isFragmentReady","queryNode","fragmentNode","deferredFields","__meta__","fragDef","definitions","fragName","name","value","fields","length","every","field"],"sources":["../../../../src/gql/types/fragment-masking.ts"],"sourcesContent":["import {\n ResultOf,\n DocumentTypeDecoration,\n TypedDocumentNode,\n} from '@graphql-typed-document-node/core';\nimport { FragmentDefinitionNode } from 'graphql';\nimport { Incremental } from './graphql';\n\nexport type FragmentType<\n TDocumentType extends DocumentTypeDecoration<any, any>,\n> =\n TDocumentType extends DocumentTypeDecoration<infer TType, any>\n ? [TType] extends [{ ' $fragmentName'?: infer TKey }]\n ? TKey extends string\n ? { ' $fragmentRefs'?: { [key in TKey]: TType } }\n : never\n : never\n : never;\n\n// return non-nullable if `fragmentType` is non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: FragmentType<DocumentTypeDecoration<TType, any>>\n): TType;\n// return nullable if `fragmentType` is nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | null\n | undefined\n): TType | null | undefined;\n// return array of non-nullable if `fragmentType` is array of non-nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n): ReadonlyArray<TType>;\n// return array of nullable if `fragmentType` is array of nullable\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): ReadonlyArray<TType> | null | undefined;\nexport function useFragment<TType>(\n _documentNode: DocumentTypeDecoration<TType, any>,\n fragmentType:\n | FragmentType<DocumentTypeDecoration<TType, any>>\n | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>>\n | null\n | undefined\n): TType | ReadonlyArray<TType> | null | undefined {\n return fragmentType as any;\n}\n\nexport function makeFragmentData<\n F extends DocumentTypeDecoration<any, any>,\n FT extends ResultOf<F>,\n>(data: FT, _fragment: F): FragmentType<F> {\n return data as FragmentType<F>;\n}\nexport function isFragmentReady<TQuery, TFrag>(\n queryNode: DocumentTypeDecoration<TQuery, any>,\n fragmentNode: TypedDocumentNode<TFrag>,\n data:\n | FragmentType<TypedDocumentNode<Incremental<TFrag>, any>>\n | null\n | undefined\n): data is FragmentType<typeof fragmentNode> {\n const deferredFields = (\n queryNode as {\n __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> };\n }\n ).__meta__?.deferredFields;\n\n if (!deferredFields) return true;\n\n const fragDef = fragmentNode.definitions[0] as\n | FragmentDefinitionNode\n | undefined;\n const fragName = fragDef?.name?.value;\n\n const fields = (fragName && deferredFields[fragName]) || [];\n return fields.length > 0 && fields.every((field) => data && field in data);\n}\n"],"mappings":";;;;;;;;AA6CO,SAASA,WAAWA,CACzBC,aAAiD,EACjDC,YAIa,EACoC;EACjD,OAAOA,YAAY;AACrB;AAEO,SAASC,gBAAgBA,CAG9BC,IAAQ,EAAEC,SAAY,EAAmB;EACzC,OAAOD,IAAI;AACb;AACO,SAASE,eAAeA,CAC7BC,SAA8C,EAC9CC,YAAsC,EACtCJ,IAGa,EAC8B;EAC3C,MAAMK,cAAc,GAClBF,SAAS,CAGTG,QAAQ,EAAED,cAAc;EAE1B,IAAI,CAACA,cAAc,EAAE,OAAO,IAAI;EAEhC,MAAME,OAAO,GAAGH,YAAY,CAACI,WAAW,CAAC,CAAC,CAE7B;EACb,MAAMC,QAAQ,GAAGF,OAAO,EAAEG,IAAI,EAAEC,KAAK;EAErC,MAAMC,MAAM,GAAIH,QAAQ,IAAIJ,cAAc,CAACI,QAAQ,CAAC,IAAK,EAAE;EAC3D,OAAOG,MAAM,CAACC,MAAM,GAAG,CAAC,IAAID,MAAM,CAACE,KAAK,CAAEC,KAAK,IAAKf,IAAI,IAAIe,KAAK,IAAIf,IAAI,CAAC;AAC5E","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.graphql = graphql;
|
|
7
|
+
var types = _interopRequireWildcard(require("./graphql"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
const documents = {
|
|
11
|
+
'\n query validateInstruments($instruments: [String]!, $division: Division) {\n mapInstrumentNames(instruments: $instruments, division: $division) {\n name\n displayName\n }\n }\n': types.ValidateInstrumentsDocument
|
|
12
|
+
};
|
|
13
|
+
function graphql(source) {
|
|
14
|
+
return documents[source] ?? {};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=gql.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gql.js","names":["types","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","documents","ValidateInstrumentsDocument","graphql","source"],"sources":["../../../../src/gql/types/gql.ts"],"sourcesContent":["/* eslint-disable */\nimport * as types from './graphql';\nimport { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';\n\n/**\n * Map of all GraphQL operations in the project.\n *\n * This map has several performance disadvantages:\n * 1. It is not tree-shakeable, so it will include all operations in the project.\n * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle.\n * 3. It does not support dead code elimination, so it will add unused operations.\n *\n * Therefore it is highly recommended to use the babel or swc plugin for production.\n */\nconst documents = {\n '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n':\n types.ValidateInstrumentsDocument,\n};\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n *\n *\n * @example\n * ```ts\n * const query = graphql(`query GetUser($id: ID!) { user(id: $id) { name } }`);\n * ```\n *\n * The query argument is unknown!\n * Please regenerate the types.\n */\nexport function graphql(source: string): unknown;\n\n/**\n * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.\n */\nexport function graphql(\n source: '\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'\n): (typeof documents)['\\n query validateInstruments($instruments: [String]!, $division: Division) {\\n mapInstrumentNames(instruments: $instruments, division: $division) {\\n name\\n displayName\\n }\\n }\\n'];\n\nexport function graphql(source: string) {\n return (documents as any)[source] ?? {};\n}\n\nexport type DocumentType<TDocumentNode extends DocumentNode<any, any>> =\n TDocumentNode extends DocumentNode<infer TType, any> ? TType : never;\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAmC,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAanC,MAAMW,SAAS,GAAG;EAChB,sMAAsM,EACpMvB,KAAK,CAACwB;AACV,CAAC;AAuBM,SAASC,OAAOA,CAACC,MAAc,EAAE;EACtC,OAAQH,SAAS,CAASG,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC","ignoreList":[]}
|