mobility-toolbox-js 2.0.0-beta.8 → 2.0.1-beta.13
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/api/RoutingAPI.js +15 -0
- package/api/RoutingAPI.test.js +25 -0
- package/api/StopsAPI.js +12 -0
- package/api/StopsAPI.test.js +22 -0
- package/api/TralisAPI.js +359 -0
- package/api/TralisAPI.test.js +67 -0
- package/{src/api/tralis → api}/TralisAPIUtils.js +2 -32
- package/api/index.js +3 -0
- package/{index.html → api/typedefs.js} +0 -0
- package/common/Tracker.js +93 -0
- package/common/api/HttpAPI.js +30 -0
- package/common/api/HttpAPI.test.js +50 -0
- package/common/api/WebSocketAPI.js +175 -0
- package/{src/api/tralis/WebSocketConnector.test.js → common/api/WebSocketAPI.test.js} +100 -145
- package/common/controls/Control.js +81 -0
- package/{src/common → common}/controls/Control.test.js +32 -43
- package/common/index.js +4 -0
- package/common/layers/Layer.js +213 -0
- package/{src/common → common}/layers/Layer.test.js +185 -244
- package/common/mixins/CopyrightMixin.js +24 -0
- package/common/mixins/SearchMixin.js +110 -0
- package/common/mixins/TralisLayerMixin.js +479 -0
- package/common/styles/index.js +4 -0
- package/{src/common → common}/styles/trackerDefaultStyle.js +39 -175
- package/common/styles/trackerDelayStyle.js +8 -0
- package/{src/common → common}/styles/trackerSimpleStyle.js +4 -8
- package/{src/common → common}/trackerConfig.js +61 -99
- package/common/trackerConfig.test.js +23 -0
- package/{src/doc/examples/ol-mapbox-layer.md → common/typedefs.js} +0 -0
- package/common/utils/createTrackerFilters.js +56 -0
- package/common/utils/createTrackerFilters.test.js +79 -0
- package/{src/common → common}/utils/getMapboxMapCopyrights.js +3 -16
- package/common/utils/getMapboxMapCopyrights.test.js +40 -0
- package/{src/common → common}/utils/getMapboxStyleUrl.js +3 -13
- package/{src/common → common}/utils/getVehiclePosition.js +3 -33
- package/common/utils/index.js +5 -0
- package/common/utils/removeDuplicate.js +8 -0
- package/common/utils/removeDuplicate.test.js +19 -0
- package/{src/common → common}/utils/sortByDelay.js +2 -7
- package/common/utils/timeUtils.js +20 -0
- package/common/utils/timeUtils.test.js +10 -0
- package/index.js +8 -0
- package/mapbox/controls/CopyrightControl.js +29 -0
- package/mapbox/controls/index.js +1 -0
- package/mapbox/index.js +4 -0
- package/mapbox/layers/Layer.js +57 -0
- package/mapbox/layers/Layer.test.js +182 -0
- package/mapbox/layers/TralisLayer.js +182 -0
- package/{src/mapbox → mapbox}/layers/TralisLayer.test.js +12 -14
- package/mapbox/layers/index.js +2 -0
- package/{src/mapbox → mapbox}/utils.js +7 -21
- package/mbt.js +50444 -0
- package/mbt.js.map +7 -0
- package/mbt.min.js +1005 -0
- package/mbt.min.js.map +7 -0
- package/ol/controls/CopyrightControl.js +42 -0
- package/ol/controls/CopyrightControl.test.js +165 -0
- package/ol/controls/RoutingControl.js +387 -0
- package/ol/controls/RoutingControl.test.js +151 -0
- package/ol/controls/StopFinderControl.js +10 -0
- package/ol/controls/StopFinderControl.test.js +48 -0
- package/ol/controls/index.js +3 -0
- package/ol/index.js +5 -0
- package/ol/layers/Layer.js +88 -0
- package/ol/layers/Layer.test.js +174 -0
- package/ol/layers/MapboxLayer.js +203 -0
- package/{src/ol → ol}/layers/MapboxLayer.test.js +58 -84
- package/ol/layers/MapboxStyleLayer.js +187 -0
- package/{src/ol → ol}/layers/MapboxStyleLayer.test.js +97 -128
- package/ol/layers/MaplibreLayer.js +139 -0
- package/ol/layers/RoutingLayer.js +61 -0
- package/{src/ol → ol}/layers/RoutingLayer.test.js +15 -24
- package/ol/layers/TralisLayer.js +185 -0
- package/ol/layers/TralisLayer.test.js +79 -0
- package/ol/layers/VectorLayer.js +22 -0
- package/{src/ol → ol}/layers/VectorLayer.test.js +34 -45
- package/ol/layers/WMSLayer.js +38 -0
- package/ol/layers/WMSLayer.test.js +76 -0
- package/ol/layers/index.js +8 -0
- package/{src/ol → ol}/styles/fullTrajectoryDelayStyle.js +11 -15
- package/ol/styles/fullTrajectoryStyle.js +43 -0
- package/ol/styles/index.js +2 -0
- package/package.json +34 -74
- package/.babelrc +0 -6
- package/.esdoc.json +0 -17
- package/.eslintignore +0 -1
- package/.github/workflows/conventional-pr-title.yml +0 -21
- package/.github/workflows/cypress.yml +0 -29
- package/.github/workflows/nodejs.yml +0 -28
- package/.husky/commit-msg +0 -4
- package/.husky/post-checkout +0 -4
- package/.husky/post-merge +0 -4
- package/.husky/post-rebase +0 -4
- package/.husky/pre-commit +0 -4
- package/.neutrinorc.js +0 -176
- package/.nvmrc +0 -1
- package/CHANGELOG.md +0 -10
- package/LICENSE +0 -21
- package/__mocks__/mapbox-gl.js +0 -81
- package/__mocks__/maplibre-gl.js +0 -81
- package/commitlint.config.js +0 -1
- package/cypress/fixtures/example.json +0 -5
- package/cypress/integration/examples/api.spec.js +0 -7
- package/cypress/integration/examples/examples.spec.js +0 -7
- package/cypress/integration/examples/navigation.spec.js +0 -29
- package/cypress/plugins/index.js +0 -21
- package/cypress/support/commands.js +0 -25
- package/cypress/support/index.js +0 -20
- package/cypress.json +0 -4
- package/data/fetchRoute.json +0 -292
- package/data/fetchTrajectories.json +0 -18
- package/data/fetchTrajectoryById.json +0 -3
- package/data/fetchTrajectoryStations.json +0 -18
- package/data/stopsSearch.json +0 -15
- package/documentation.yml +0 -4
- package/esdoc/README.md +0 -27
- package/esdoc/plugins/MyPlugin.js +0 -69
- package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
- package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
- package/esdoc/plugins/externals-plugin/externals.js +0 -96
- package/global-setup.js +0 -3
- package/indexweb.html +0 -49
- package/jest.config.js +0 -5
- package/pull_request_template.md +0 -17
- package/renovate.json +0 -4
- package/scripts/read-pkg-json.js +0 -22
- package/src/api/index.js +0 -3
- package/src/api/routing/RoutingAPI.js +0 -44
- package/src/api/routing/RoutingAPI.test.js +0 -41
- package/src/api/stops/StopsAPI.js +0 -41
- package/src/api/stops/StopsAPI.test.js +0 -34
- package/src/api/tralis/TralisAPI.js +0 -731
- package/src/api/tralis/TralisAPI.test.js +0 -75
- package/src/api/tralis/WebSocketConnector.js +0 -338
- package/src/api/tralis/typedefs.js +0 -81
- package/src/assets/Lato-Black.ttf +0 -0
- package/src/assets/Lato-BlackItalic.ttf +0 -0
- package/src/assets/Lato-Bold.ttf +0 -0
- package/src/assets/Lato-BoldItalic.ttf +0 -0
- package/src/assets/Lato-Italic.ttf +0 -0
- package/src/assets/Lato-Light.ttf +0 -0
- package/src/assets/Lato-LightItalic.ttf +0 -0
- package/src/assets/Lato-Regular.ttf +0 -0
- package/src/assets/Lato-Thin.ttf +0 -0
- package/src/assets/Lato-ThinItalic.ttf +0 -0
- package/src/assets/OFL.txt +0 -93
- package/src/common/Tracker.js +0 -197
- package/src/common/api/api.js +0 -64
- package/src/common/api/api.test.js +0 -68
- package/src/common/controls/Control.js +0 -146
- package/src/common/index.js +0 -5
- package/src/common/layers/Layer.js +0 -404
- package/src/common/mixins/CopyrightMixin.js +0 -48
- package/src/common/mixins/SearchMixin.js +0 -176
- package/src/common/mixins/TralisLayerMixin.js +0 -930
- package/src/common/styles/index.js +0 -4
- package/src/common/styles/trackerDelayStyle.js +0 -17
- package/src/common/trackerConfig.test.js +0 -25
- package/src/common/typedefs.js +0 -23
- package/src/common/utils/createTrackerFilters.js +0 -87
- package/src/common/utils/createTrackerFilters.test.js +0 -95
- package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
- package/src/common/utils/index.js +0 -5
- package/src/common/utils/removeDuplicate.js +0 -22
- package/src/common/utils/removeDuplicate.test.js +0 -22
- package/src/common/utils/timeUtils.js +0 -44
- package/src/common/utils/timeUtils.test.js +0 -16
- package/src/doc/App.js +0 -116
- package/src/doc/App.scss +0 -51
- package/src/doc/_redirects +0 -2
- package/src/doc/components/CodeSandboxButton.js +0 -103
- package/src/doc/components/Documentation.js +0 -40
- package/src/doc/components/Esdoc/Anchor.js +0 -57
- package/src/doc/components/Esdoc/ClassDoc.js +0 -272
- package/src/doc/components/Esdoc/DeprecatedHTML.js +0 -16
- package/src/doc/components/Esdoc/DetailDocs.js +0 -281
- package/src/doc/components/Esdoc/DetailHTML.js +0 -33
- package/src/doc/components/Esdoc/DirectSubclassHTML.js +0 -30
- package/src/doc/components/Esdoc/DocBuilderUtils.js +0 -694
- package/src/doc/components/Esdoc/DocLinkHTML.js +0 -62
- package/src/doc/components/Esdoc/DocsLinkHTML.js +0 -38
- package/src/doc/components/Esdoc/Esdoc.js +0 -63
- package/src/doc/components/Esdoc/EsdocContent.js +0 -51
- package/src/doc/components/Esdoc/EsdocNavigation.js +0 -13
- package/src/doc/components/Esdoc/EsdocSearch.js +0 -81
- package/src/doc/components/Esdoc/ExperimentalHTML.js +0 -17
- package/src/doc/components/Esdoc/ExtendsChainHTML.js +0 -32
- package/src/doc/components/Esdoc/FileDocLinkHTML.js +0 -60
- package/src/doc/components/Esdoc/IdentifiersDoc.js +0 -113
- package/src/doc/components/Esdoc/IndirectSubclassHTML.js +0 -30
- package/src/doc/components/Esdoc/InheritedSummaryDoc.js +0 -70
- package/src/doc/components/Esdoc/InheritedSummaryHTML.js +0 -38
- package/src/doc/components/Esdoc/MixinClassesHTML.js +0 -29
- package/src/doc/components/Esdoc/NavDoc.js +0 -112
- package/src/doc/components/Esdoc/OverrideMethod.js +0 -44
- package/src/doc/components/Esdoc/OverrideMethodDescription.js +0 -35
- package/src/doc/components/Esdoc/Properties.js +0 -89
- package/src/doc/components/Esdoc/README.md +0 -45
- package/src/doc/components/Esdoc/SignatureHTML.js +0 -123
- package/src/doc/components/Esdoc/SingleDoc.js +0 -31
- package/src/doc/components/Esdoc/SummaryDoc.js +0 -160
- package/src/doc/components/Esdoc/SummaryHTML.js +0 -96
- package/src/doc/components/Esdoc/TypeDocLinkHTML.js +0 -249
- package/src/doc/components/Esdoc/css/identifiers.css +0 -38
- package/src/doc/components/Esdoc/css/search.css +0 -76
- package/src/doc/components/Esdoc/css/style.css +0 -603
- package/src/doc/components/Esdoc/index.js +0 -7
- package/src/doc/components/Example.js +0 -153
- package/src/doc/components/Examples.js +0 -183
- package/src/doc/components/Home.js +0 -106
- package/src/doc/components/TrackerExample.js +0 -38
- package/src/doc/examples/assets/tralis-live-map/index.js +0 -11
- package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +0 -105
- package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +0 -101
- package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +0 -93
- package/src/doc/examples/assets/tralis-live-map/unknown.svg +0 -107
- package/src/doc/examples/mb-copyright.html +0 -26
- package/src/doc/examples/mb-copyright.js +0 -37
- package/src/doc/examples/mb-tracker.html +0 -1
- package/src/doc/examples/mb-tracker.js +0 -39
- package/src/doc/examples/mb-tracker.md +0 -1
- package/src/doc/examples/mb-tralis.html +0 -1
- package/src/doc/examples/mb-tralis.js +0 -34
- package/src/doc/examples/ol-copyright.html +0 -26
- package/src/doc/examples/ol-copyright.js +0 -43
- package/src/doc/examples/ol-mapbox-layer.html +0 -1
- package/src/doc/examples/ol-mapbox-layer.js +0 -28
- package/src/doc/examples/ol-mapbox-style-layer.html +0 -12
- package/src/doc/examples/ol-mapbox-style-layer.js +0 -44
- package/src/doc/examples/ol-query.html +0 -32
- package/src/doc/examples/ol-query.js +0 -83
- package/src/doc/examples/ol-routing.html +0 -26
- package/src/doc/examples/ol-routing.js +0 -59
- package/src/doc/examples/ol-routing.md +0 -1
- package/src/doc/examples/ol-stop-finder.html +0 -15
- package/src/doc/examples/ol-stop-finder.js +0 -31
- package/src/doc/examples/ol-stop-finder.md +0 -1
- package/src/doc/examples/ol-tracker.html +0 -1
- package/src/doc/examples/ol-tracker.js +0 -44
- package/src/doc/examples/ol-tracker.md +0 -1
- package/src/doc/examples/ol-tralis.html +0 -5
- package/src/doc/examples/ol-tralis.js +0 -57
- package/src/doc/examples/tralis-live-map.html +0 -1
- package/src/doc/examples/tralis-live-map.js +0 -51
- package/src/doc/examples/tralis-live-map.md +0 -3
- package/src/doc/examples.js +0 -107
- package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
- package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
- package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
- package/src/doc/img/examples/mapbox.jpg +0 -0
- package/src/doc/img/examples/mapbox_style.jpg +0 -0
- package/src/doc/img/examples/ol-copyright.png +0 -0
- package/src/doc/img/examples/query_objects.jpg +0 -0
- package/src/doc/img/examples/routing.jpg +0 -0
- package/src/doc/img/examples/simple_map.jpg +0 -0
- package/src/doc/img/examples/stops.jpg +0 -0
- package/src/doc/img/favico.ico +0 -0
- package/src/doc/index.js +0 -21
- package/src/iife.js +0 -7
- package/src/index.js +0 -10
- package/src/mapbox/controls/CopyrightControl.js +0 -58
- package/src/mapbox/controls/index.js +0 -2
- package/src/mapbox/index.js +0 -4
- package/src/mapbox/layers/Layer.js +0 -118
- package/src/mapbox/layers/Layer.test.js +0 -202
- package/src/mapbox/layers/TralisLayer.js +0 -329
- package/src/mapbox/layers/index.js +0 -2
- package/src/ol/README.md +0 -0
- package/src/ol/controls/CopyrightControl.js +0 -80
- package/src/ol/controls/CopyrightControl.test.js +0 -211
- package/src/ol/controls/RoutingControl.js +0 -752
- package/src/ol/controls/RoutingControl.test.js +0 -216
- package/src/ol/controls/StopFinderControl.js +0 -38
- package/src/ol/controls/StopFinderControl.test.js +0 -59
- package/src/ol/controls/index.js +0 -3
- package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
- package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
- package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
- package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
- package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
- package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
- package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
- package/src/ol/index.js +0 -5
- package/src/ol/layers/Layer.js +0 -193
- package/src/ol/layers/Layer.test.js +0 -197
- package/src/ol/layers/MapboxLayer.js +0 -378
- package/src/ol/layers/MapboxStyleLayer.js +0 -417
- package/src/ol/layers/MaplibreLayer.js +0 -280
- package/src/ol/layers/RoutingLayer.js +0 -91
- package/src/ol/layers/TralisLayer.js +0 -359
- package/src/ol/layers/TralisLayer.test.js +0 -97
- package/src/ol/layers/VectorLayer.js +0 -43
- package/src/ol/layers/WMSLayer.js +0 -80
- package/src/ol/layers/WMSLayer.test.js +0 -84
- package/src/ol/layers/index.js +0 -8
- package/src/ol/styles/fullTrajectoryStyle.js +0 -51
- package/src/ol/styles/index.js +0 -2
- package/src/setupTests.js +0 -15
- package/webpack.config.js +0 -6
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/* eslint-disable react/prop-types */
|
|
2
|
-
/* eslint-disable react/no-array-index-key */
|
|
3
|
-
/* eslint-disable no-underscore-dangle */
|
|
4
|
-
import React, { useMemo } from 'react';
|
|
5
|
-
import { _findAccessDocs, _find } from './DocBuilderUtils';
|
|
6
|
-
import SummaryDoc from './SummaryDoc';
|
|
7
|
-
|
|
8
|
-
const accessValues = ['public', 'protected', 'private'];
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* build inherited method/member summary.
|
|
12
|
-
* https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/ClassDocBuilder.js#L220
|
|
13
|
-
* @param {DocObject} doc - target class doc.
|
|
14
|
-
* @returns {string} html of inherited method/member from ancestor classes.
|
|
15
|
-
* @private
|
|
16
|
-
*/
|
|
17
|
-
function SummaryHTML({ doc, kind, title, isStatic = true, inherited = false }) {
|
|
18
|
-
const accessDocs = useMemo(() => {
|
|
19
|
-
const classDocs = _findAccessDocs(doc, kind, isStatic);
|
|
20
|
-
|
|
21
|
-
if (doc && ['class', 'interface'].indexOf(doc.kind) !== -1) {
|
|
22
|
-
const longnames = [
|
|
23
|
-
...(doc._custom_extends_chains || []),
|
|
24
|
-
// ...doc.implements || [],
|
|
25
|
-
// ...doc._custom_indirect_implements || [],
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
longnames
|
|
29
|
-
.map((longname) => _find({ longname })[0])
|
|
30
|
-
.forEach((classDoc) => {
|
|
31
|
-
// Add inherited methods or members.
|
|
32
|
-
if (classDoc && inherited) {
|
|
33
|
-
const docVals = _find({
|
|
34
|
-
memberof: classDoc.longname,
|
|
35
|
-
kind: [kind],
|
|
36
|
-
static: isStatic,
|
|
37
|
-
}).filter(
|
|
38
|
-
// We display only public classes
|
|
39
|
-
(v) => v.access === 'public' && !v.builtinExternal,
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
if (docVals.length) {
|
|
43
|
-
docVals.forEach((docV) => {
|
|
44
|
-
const idx = accessValues.indexOf(docV.access);
|
|
45
|
-
if (
|
|
46
|
-
idx !== -1 &&
|
|
47
|
-
!classDocs[idx][1].find((el) => el.name === docV.name)
|
|
48
|
-
) {
|
|
49
|
-
classDocs[idx][1].push(docV);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Order alphabetically (by name) the members/methods.
|
|
58
|
-
return classDocs.map((cD) => {
|
|
59
|
-
/* eslint-disable no-param-reassign */
|
|
60
|
-
cD[1] = cD[1].sort((a, b) => {
|
|
61
|
-
if (a.name < b.name) {
|
|
62
|
-
return -1;
|
|
63
|
-
}
|
|
64
|
-
if (a.name > b.name) {
|
|
65
|
-
return 1;
|
|
66
|
-
}
|
|
67
|
-
return 0;
|
|
68
|
-
});
|
|
69
|
-
return cD;
|
|
70
|
-
});
|
|
71
|
-
}, [doc, kind, isStatic, inherited]);
|
|
72
|
-
|
|
73
|
-
return (
|
|
74
|
-
<>
|
|
75
|
-
{accessDocs.map((accessDoc, idx) => {
|
|
76
|
-
const docs = accessDoc[1];
|
|
77
|
-
if (!docs.length) return null;
|
|
78
|
-
|
|
79
|
-
let prefix = '';
|
|
80
|
-
if (docs[0].static) prefix = 'Static ';
|
|
81
|
-
const _title = `${prefix}${
|
|
82
|
-
accessDoc[0] === 'Public' ? '' : `${accessDoc[0]} `
|
|
83
|
-
}${title}`;
|
|
84
|
-
return (
|
|
85
|
-
<SummaryDoc
|
|
86
|
-
key={idx}
|
|
87
|
-
docs={docs}
|
|
88
|
-
title={_title}
|
|
89
|
-
memberof={doc && doc.memberof}
|
|
90
|
-
/>
|
|
91
|
-
);
|
|
92
|
-
})}
|
|
93
|
-
</>
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
export default SummaryHTML;
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/* eslint-disable prefer-destructuring */
|
|
2
|
-
/* eslint-disable no-shadow */
|
|
3
|
-
/* eslint-disable no-restricted-syntax */
|
|
4
|
-
/* eslint-disable no-param-reassign */
|
|
5
|
-
/* eslint-disable react/prop-types */
|
|
6
|
-
/* eslint-disable react/no-array-index-key */
|
|
7
|
-
import React from 'react';
|
|
8
|
-
import DocLinkHTML from './DocLinkHTML';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* build html link of type.
|
|
12
|
-
* https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocBuilder.js#L621
|
|
13
|
-
* @param {string} typeName - type name(e.g. ``number[]``, ``Map<number, string>``)
|
|
14
|
-
* @returns {string} html of link.
|
|
15
|
-
* @private
|
|
16
|
-
* @todo re-implement with parser combinator.
|
|
17
|
-
*/
|
|
18
|
-
function TypeDocLinkHTML({ typeName }) {
|
|
19
|
-
// e.g. number[]
|
|
20
|
-
let matched = typeName.match(/^(.*?)\[\]$/);
|
|
21
|
-
if (matched) {
|
|
22
|
-
typeName = matched[1];
|
|
23
|
-
return (
|
|
24
|
-
<span>
|
|
25
|
-
<DocLinkHTML longname={typeName} text={typeName} />
|
|
26
|
-
<span>[]</span>
|
|
27
|
-
</span>
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// e.g. function(a: number, b: string): boolean
|
|
32
|
-
matched = typeName.match(/function *\((.*?)\)(.*)/);
|
|
33
|
-
if (matched) {
|
|
34
|
-
const functionLink = <DocLinkHTML longname="function" />;
|
|
35
|
-
if (!matched[1] && !matched[2])
|
|
36
|
-
return (
|
|
37
|
-
<span>
|
|
38
|
-
{functionLink}
|
|
39
|
-
<span>()</span>
|
|
40
|
-
</span>
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
let innerTypes = [];
|
|
44
|
-
if (matched[1]) {
|
|
45
|
-
// bad hack: Map.<string, boolean> => Map.<string\Z boolean>
|
|
46
|
-
// bad hack: {a: string, b: boolean} => {a\Y string\Z b\Y boolean}
|
|
47
|
-
const inner = matched[1]
|
|
48
|
-
.replace(/<.*?>/g, (a) => a.replace(/,/g, '\\Z'))
|
|
49
|
-
.replace(/{.*?}/g, (a) => a.replace(/,/g, '\\Z').replace(/:/g, '\\Y'));
|
|
50
|
-
innerTypes = inner.split(',').map((v) => {
|
|
51
|
-
const tmp = v.split(':').map((v) => v.trim());
|
|
52
|
-
if (tmp.length !== 2)
|
|
53
|
-
throw new SyntaxError(
|
|
54
|
-
`Invalid function type annotation: \`${matched[0]}\``,
|
|
55
|
-
);
|
|
56
|
-
|
|
57
|
-
const paramName = tmp[0];
|
|
58
|
-
const typeName = tmp[1].replace(/\\Z/g, ',').replace(/\\Y/g, ':');
|
|
59
|
-
return (
|
|
60
|
-
<>
|
|
61
|
-
{paramName}: <TypeDocLinkHTML typeName={typeName} />
|
|
62
|
-
</>
|
|
63
|
-
);
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
let returnType = '';
|
|
68
|
-
if (matched[2]) {
|
|
69
|
-
const type = matched[2].split(':')[1];
|
|
70
|
-
|
|
71
|
-
if (type)
|
|
72
|
-
returnType = (
|
|
73
|
-
<>
|
|
74
|
-
: <TypeDocLinkHTML typeName={type.trim()} />
|
|
75
|
-
</>
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return (
|
|
80
|
-
<span>
|
|
81
|
-
{functionLink}
|
|
82
|
-
<span>
|
|
83
|
-
(
|
|
84
|
-
{innerTypes.map((comp, idx) => {
|
|
85
|
-
return (
|
|
86
|
-
<React.Fragment key={idx}>
|
|
87
|
-
{comp}
|
|
88
|
-
{idx !== innerTypes.length - 1 ? ', ' : ''}
|
|
89
|
-
</React.Fragment>
|
|
90
|
-
);
|
|
91
|
-
})}
|
|
92
|
-
)
|
|
93
|
-
</span>
|
|
94
|
-
{returnType}
|
|
95
|
-
</span>
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
// e.g. {a: number, b: string}
|
|
100
|
-
matched = typeName.match(/^\{(.*?)\}$/);
|
|
101
|
-
if (matched) {
|
|
102
|
-
if (!matched[1]) return '{}';
|
|
103
|
-
|
|
104
|
-
// bad hack: Map.<string, boolean> => Map.<string\Z boolean>
|
|
105
|
-
// bad hack: {a: string, b: boolean} => {a\Y string\Z b\Y boolean}
|
|
106
|
-
const inner = matched[1]
|
|
107
|
-
.replace(/<.*?>/g, (a) => a.replace(/,/g, '\\Z'))
|
|
108
|
-
.replace(/{.*?}/g, (a) => a.replace(/,/g, '\\Z').replace(/:/g, '\\Y'));
|
|
109
|
-
|
|
110
|
-
let broken = false;
|
|
111
|
-
|
|
112
|
-
const innerTypes = inner.split(',').map((v) => {
|
|
113
|
-
const tmp = v.split(':').map((v) => v.trim());
|
|
114
|
-
|
|
115
|
-
// edge case: if object key includes comma, this parsing is broken.
|
|
116
|
-
// e.g. {"a,b": 10}
|
|
117
|
-
// https://github.com/esdoc/esdoc-plugins/pull/49
|
|
118
|
-
if (!tmp[0] || !tmp[1]) {
|
|
119
|
-
broken = true;
|
|
120
|
-
return null;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const paramName = tmp[0];
|
|
124
|
-
let typeName = tmp[1].replace(/\\Z/g, ',').replace(/\\Y/g, ':');
|
|
125
|
-
if (typeName.includes('|')) {
|
|
126
|
-
typeName = typeName.replace(/^\(/, '').replace(/\)$/, '');
|
|
127
|
-
const typeNames = typeName.split('|').map((v) => v.trim());
|
|
128
|
-
const html = [];
|
|
129
|
-
for (const unionType of typeNames) {
|
|
130
|
-
html.push(<TypeDocLinkHTML typeName={unionType} />);
|
|
131
|
-
}
|
|
132
|
-
return (
|
|
133
|
-
<>
|
|
134
|
-
{paramName}:{' '}
|
|
135
|
-
{html.map((comp, idx) => {
|
|
136
|
-
return (
|
|
137
|
-
<React.Fragment key={idx}>
|
|
138
|
-
{comp}
|
|
139
|
-
{idx !== html.length - 1 ? '|' : ''}
|
|
140
|
-
</React.Fragment>
|
|
141
|
-
);
|
|
142
|
-
})}
|
|
143
|
-
</>
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
return (
|
|
147
|
-
<>
|
|
148
|
-
{paramName}: <TypeDocLinkHTML typeName={typeName} />
|
|
149
|
-
</>
|
|
150
|
-
);
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
if (broken) return `*`;
|
|
154
|
-
|
|
155
|
-
return (
|
|
156
|
-
<>
|
|
157
|
-
{`{`}
|
|
158
|
-
{innerTypes.map((comp, idx) => {
|
|
159
|
-
return (
|
|
160
|
-
<React.Fragment key={idx}>
|
|
161
|
-
{comp}
|
|
162
|
-
{idx !== innerTypes.length - 1 ? ', ' : ''}
|
|
163
|
-
</React.Fragment>
|
|
164
|
-
);
|
|
165
|
-
})}
|
|
166
|
-
{`}`}
|
|
167
|
-
</>
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
// e.g. Map<number, string>
|
|
172
|
-
matched = typeName.match(/^(.*?)\.?<(.*?)>$/);
|
|
173
|
-
if (matched) {
|
|
174
|
-
const mainType = matched[1];
|
|
175
|
-
// bad hack: Map.<string, boolean> => Map.<string\Z boolean>
|
|
176
|
-
// bad hack: {a: string, b: boolean} => {a\Y string\Z b\Y boolean}
|
|
177
|
-
const inner = matched[2]
|
|
178
|
-
.replace(/<.*?>/g, (a) => a.replace(/,/g, '\\Z'))
|
|
179
|
-
.replace(/{.*?}/g, (a) => a.replace(/,/g, '\\Z').replace(/:/g, '\\Y'));
|
|
180
|
-
const innerTypes = inner.split(',').map((v) => {
|
|
181
|
-
return v.split('|').map((vv, idx) => {
|
|
182
|
-
vv = vv.trim().replace(/\\Z/g, ',').replace(/\\Y/g, ':');
|
|
183
|
-
return (
|
|
184
|
-
<React.Fragment key={idx}>
|
|
185
|
-
<TypeDocLinkHTML typeName={vv} />
|
|
186
|
-
{idx !== v.split('|').length - 1 ? '|' : ''}
|
|
187
|
-
</React.Fragment>
|
|
188
|
-
);
|
|
189
|
-
});
|
|
190
|
-
});
|
|
191
|
-
|
|
192
|
-
const html = (
|
|
193
|
-
<>
|
|
194
|
-
<DocLinkHTML longname={mainType} text={mainType} />
|
|
195
|
-
{`<`}
|
|
196
|
-
{innerTypes.map((comp, idx) => {
|
|
197
|
-
return (
|
|
198
|
-
<React.Fragment key={idx}>
|
|
199
|
-
{comp}
|
|
200
|
-
{idx !== innerTypes.length - 1 ? ', ' : ''}
|
|
201
|
-
</React.Fragment>
|
|
202
|
-
);
|
|
203
|
-
})}
|
|
204
|
-
{`>`}
|
|
205
|
-
</>
|
|
206
|
-
);
|
|
207
|
-
return html;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
if (typeName.indexOf('...') === 0) {
|
|
211
|
-
typeName = typeName.replace('...', '');
|
|
212
|
-
if (typeName.includes('|')) {
|
|
213
|
-
const typeNames = typeName.replace('(', '').replace(')', '').split('|');
|
|
214
|
-
const typeLinks = typeNames.map((v) => <DocLinkHTML longname={v} />);
|
|
215
|
-
return (
|
|
216
|
-
<>
|
|
217
|
-
...(
|
|
218
|
-
{typeLinks.map((comp, idx) => {
|
|
219
|
-
return (
|
|
220
|
-
<React.Fragment key={idx}>
|
|
221
|
-
{comp}
|
|
222
|
-
{idx !== typeLinks.length - 1 ? '|' : ''}
|
|
223
|
-
</React.Fragment>
|
|
224
|
-
);
|
|
225
|
-
})}
|
|
226
|
-
)
|
|
227
|
-
</>
|
|
228
|
-
);
|
|
229
|
-
}
|
|
230
|
-
return (
|
|
231
|
-
<>
|
|
232
|
-
...
|
|
233
|
-
<DocLinkHTML longname={typeName} />
|
|
234
|
-
</>
|
|
235
|
-
);
|
|
236
|
-
}
|
|
237
|
-
if (typeName.indexOf('?') === 0) {
|
|
238
|
-
typeName = typeName.replace('?', '');
|
|
239
|
-
return (
|
|
240
|
-
<>
|
|
241
|
-
?
|
|
242
|
-
<DocLinkHTML longname={typeName} />
|
|
243
|
-
</>
|
|
244
|
-
);
|
|
245
|
-
}
|
|
246
|
-
return <DocLinkHTML longname={typeName} />;
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
export default React.memo(TypeDocLinkHTML);
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/* stylelint-disable */
|
|
2
|
-
/* .identifiers-wrap {
|
|
3
|
-
display: flex;
|
|
4
|
-
align-items: flex-start;
|
|
5
|
-
} */
|
|
6
|
-
|
|
7
|
-
.identifier-dir-tree {
|
|
8
|
-
background: #fff;
|
|
9
|
-
border: solid 1px #ddd;
|
|
10
|
-
border-radius: 0.25em;
|
|
11
|
-
top: 52px;
|
|
12
|
-
position: -webkit-sticky;
|
|
13
|
-
position: sticky;
|
|
14
|
-
max-height: calc(100vh - 155px);
|
|
15
|
-
overflow-y: scroll;
|
|
16
|
-
min-width: 200px;
|
|
17
|
-
margin-left: 1em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.identifier-dir-tree-header {
|
|
21
|
-
padding: 0.5em;
|
|
22
|
-
background-color: #fafafa;
|
|
23
|
-
border-bottom: solid 1px #ddd;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.identifier-dir-tree-content {
|
|
27
|
-
padding: 0 0.5em 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
.identifier-dir-tree-content > div {
|
|
31
|
-
padding-top: 0.25em;
|
|
32
|
-
padding-bottom: 0.25em;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.identifier-dir-tree-content a {
|
|
36
|
-
color: inherit;
|
|
37
|
-
}
|
|
38
|
-
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/* stylelint-disable */
|
|
2
|
-
/* search box */
|
|
3
|
-
.search-box {
|
|
4
|
-
/* position: absolute;
|
|
5
|
-
top: 10px;
|
|
6
|
-
right: 50px; */
|
|
7
|
-
position: relative;
|
|
8
|
-
margin: 10px;
|
|
9
|
-
line-height: normal;
|
|
10
|
-
font-size: 12px;
|
|
11
|
-
|
|
12
|
-
/* Geops */
|
|
13
|
-
background: white;
|
|
14
|
-
margin: 20px 5px 10px !important;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
.search-box img {
|
|
18
|
-
width: 20px;
|
|
19
|
-
vertical-align: top;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
.esdoc .search-result {
|
|
23
|
-
position: absolute;
|
|
24
|
-
height: 600px;
|
|
25
|
-
width: 100%;
|
|
26
|
-
padding: 0;
|
|
27
|
-
margin-top: 5px;
|
|
28
|
-
margin-left: 24px;
|
|
29
|
-
background: white;
|
|
30
|
-
box-shadow: 1px 1px 4px rgb(0,0,0);
|
|
31
|
-
white-space: nowrap;
|
|
32
|
-
overflow-y: scroll;
|
|
33
|
-
|
|
34
|
-
/* Geops */
|
|
35
|
-
max-height: 300px;
|
|
36
|
-
min-width: 200px;
|
|
37
|
-
max-width: 500px;
|
|
38
|
-
width: auto;
|
|
39
|
-
margin-left: 0px;
|
|
40
|
-
height: auto;
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.esdoc .search-result-import-path {
|
|
45
|
-
color: #aaa;
|
|
46
|
-
font-size: 12px;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
.esdoc .search-result li {
|
|
50
|
-
list-style: none;
|
|
51
|
-
padding: 2px 4px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.search-result li a {
|
|
55
|
-
display: block;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
.search-result li.selected {
|
|
59
|
-
background: #ddd;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.search-result li.search-separator {
|
|
63
|
-
background: rgb(37, 138, 175);
|
|
64
|
-
color: white;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.search-box.active .search-input {
|
|
68
|
-
visibility: visible;
|
|
69
|
-
transition: width 0.2s ease-out;
|
|
70
|
-
/* Geops width: 300px; */
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.search-box.active .search-input-edge {
|
|
74
|
-
display: inline-block;
|
|
75
|
-
}
|
|
76
|
-
|