mirror of https://gitee.com/antv-l7/antv-l7
build: upgrade TS, babel plugin and to support optional chaining
This commit is contained in:
parent
b61be25c30
commit
5fc540f8fd
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"typescript.tsdk": "node_modules/typescript/lib"
|
||||||
|
}
|
|
@ -22,6 +22,7 @@ module.exports = (api) => {
|
||||||
'@babel/preset-typescript',
|
'@babel/preset-typescript',
|
||||||
],
|
],
|
||||||
plugins: [
|
plugins: [
|
||||||
|
'@babel/plugin-proposal-optional-chaining',
|
||||||
[
|
[
|
||||||
'@babel/plugin-proposal-decorators',
|
'@babel/plugin-proposal-decorators',
|
||||||
{
|
{
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/cli": "^7.5.5",
|
"@babel/cli": "^7.5.5",
|
||||||
"@babel/core": "^7.5.5",
|
"@babel/core": "^7.5.5",
|
||||||
|
"@babel/plugin-proposal-optional-chaining": "^7.6.0",
|
||||||
"@babel/preset-env": "^7.5.5",
|
"@babel/preset-env": "^7.5.5",
|
||||||
"@babel/preset-react": "^7.0.0",
|
"@babel/preset-react": "^7.0.0",
|
||||||
"@babel/preset-typescript": "^7.3.3",
|
"@babel/preset-typescript": "^7.3.3",
|
||||||
|
@ -49,7 +50,7 @@
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"postcss": "^7.0.18",
|
"postcss": "^7.0.18",
|
||||||
"postcss-plugin": "^1.0.0",
|
"postcss-plugin": "^1.0.0",
|
||||||
"prettier": "^1.14.2",
|
"prettier": "^1.18.2",
|
||||||
"raw-loader": "^1.0.0",
|
"raw-loader": "^1.0.0",
|
||||||
"react": "^16.8.6",
|
"react": "^16.8.6",
|
||||||
"react-docgen-typescript-loader": "^3.1.0",
|
"react-docgen-typescript-loader": "^3.1.0",
|
||||||
|
@ -68,7 +69,7 @@
|
||||||
"tslint-config-prettier": "^1.15.0",
|
"tslint-config-prettier": "^1.15.0",
|
||||||
"tslint-plugin-prettier": "^1.3.0",
|
"tslint-plugin-prettier": "^1.3.0",
|
||||||
"tslint-react": "^3.6.0",
|
"tslint-react": "^3.6.0",
|
||||||
"typescript": "^3.6.2",
|
"typescript": "^3.7.0-beta",
|
||||||
"webpack": "^4.17.1",
|
"webpack": "^4.17.1",
|
||||||
"webpack-cli": "^3.1.0",
|
"webpack-cli": "^3.1.0",
|
||||||
"webpack-dev-server": "^3.1.7",
|
"webpack-dev-server": "^3.1.7",
|
||||||
|
|
|
@ -53,9 +53,9 @@ export default class StyleAttribute implements IStyleAttribute {
|
||||||
/**
|
/**
|
||||||
* 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值
|
* 当用户设置的 callback 返回 null 时, 应该返回默认 callback 中的值
|
||||||
*/
|
*/
|
||||||
if (this!.scale!.callback) {
|
if (this.scale?.callback) {
|
||||||
// 使用用户返回的值处理
|
// 使用用户返回的值处理
|
||||||
const ret = this!.scale!.callback(params);
|
const ret = this.scale?.callback(params);
|
||||||
if (!isNil(ret)) {
|
if (!isNil(ret)) {
|
||||||
return [ret];
|
return [ret];
|
||||||
}
|
}
|
||||||
|
@ -68,10 +68,10 @@ export default class StyleAttribute implements IStyleAttribute {
|
||||||
private defaultCallback = (params: unknown[]): unknown[] => {
|
private defaultCallback = (params: unknown[]): unknown[] => {
|
||||||
// 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量
|
// 没有 params 的情况,是指没有指定 fields,直接返回配置的 values 常量
|
||||||
if (params.length === 0) {
|
if (params.length === 0) {
|
||||||
return this!.scale!.values;
|
return this.scale?.values || [];
|
||||||
}
|
}
|
||||||
return params.map((param, idx) => {
|
return params.map((param, idx) => {
|
||||||
const scaleFunc = this.scale!.scalers![idx].func;
|
const scaleFunc = this.scale?.scalers![idx].func;
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
const value = scaleFunc(param);
|
const value = scaleFunc(param);
|
||||||
return value;
|
return value;
|
||||||
|
|
|
@ -148,7 +148,7 @@ export default class PixelPickingPass implements IPass {
|
||||||
) {
|
) {
|
||||||
this.logger.info('picked');
|
this.logger.info('picked');
|
||||||
const pickedFeatureIdx = decodePickingColor(pickedColors);
|
const pickedFeatureIdx = decodePickingColor(pickedColors);
|
||||||
const rawFeature = this.layer.getSource()!.data!.dataArray[
|
const rawFeature = this.layer.getSource()?.data?.dataArray[
|
||||||
pickedFeatureIdx
|
pickedFeatureIdx
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,7 @@ export default class BaseLayer<ChildLayerStyleOptions = {}> implements ILayer {
|
||||||
};
|
};
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public style(options: unknown): ILayer {
|
public style(options: object): ILayer {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
this.styleOptions = {
|
this.styleOptions = {
|
||||||
...this.styleOptions,
|
...this.styleOptions,
|
||||||
|
|
|
@ -84,7 +84,7 @@ export default class DataMappingPlugin implements ILayerPlugin {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
const scalers = attribute!.scale!.scalers || [];
|
const scalers = attribute?.scale?.scalers || [];
|
||||||
const params: unknown[] = [];
|
const params: unknown[] = [];
|
||||||
|
|
||||||
scalers.forEach(({ field }) => {
|
scalers.forEach(({ field }) => {
|
||||||
|
|
|
@ -71,8 +71,8 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
||||||
this.scaleCache = {};
|
this.scaleCache = {};
|
||||||
attributes.forEach((attribute) => {
|
attributes.forEach((attribute) => {
|
||||||
if (attribute.scale) {
|
if (attribute.scale) {
|
||||||
attribute!.scale!.scalers = this.parseFields(
|
attribute.scale.scalers = this.parseFields(
|
||||||
attribute!.scale!.field || '',
|
attribute.scale.field || '',
|
||||||
).map((field: string) => ({
|
).map((field: string) => ({
|
||||||
field,
|
field,
|
||||||
func: this.getOrCreateScale(field, attribute, dataArray),
|
func: this.getOrCreateScale(field, attribute, dataArray),
|
||||||
|
@ -93,7 +93,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
||||||
this.scaleCache[field] = this.createScale(field, dataArray);
|
this.scaleCache[field] = this.createScale(field, dataArray);
|
||||||
(this.scaleCache[field] as {
|
(this.scaleCache[field] as {
|
||||||
range: (c: unknown[]) => void;
|
range: (c: unknown[]) => void;
|
||||||
}).range(attribute!.scale!.values);
|
}).range(attribute?.scale?.values || []);
|
||||||
return this.scaleCache[field];
|
return this.scaleCache[field];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -114,7 +114,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
||||||
|
|
||||||
private createScale(field: string, data?: IParseDataItem[]): unknown {
|
private createScale(field: string, data?: IParseDataItem[]): unknown {
|
||||||
// 首先查找全局默认配置例如 color
|
// 首先查找全局默认配置例如 color
|
||||||
const scaleOption: IScale = this.configService.getConfig()!.scales![field];
|
const scaleOption: IScale | undefined = this.configService.getConfig()?.scales?.[field];
|
||||||
|
|
||||||
if (!data || !data.length) {
|
if (!data || !data.length) {
|
||||||
// 数据为空
|
// 数据为空
|
||||||
|
@ -122,7 +122,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
||||||
? this.createDefaultScale(scaleOption)
|
? this.createDefaultScale(scaleOption)
|
||||||
: d3.scaleOrdinal([field]);
|
: d3.scaleOrdinal([field]);
|
||||||
}
|
}
|
||||||
const firstValue = data!.find((d) => !isNil(d[field]))![field];
|
const firstValue = data.find((d) => !isNil(d[field]))?.[field];
|
||||||
// 常量 Scale
|
// 常量 Scale
|
||||||
if (isNumber(field) || (isNil(firstValue) && !scaleOption)) {
|
if (isNumber(field) || (isNil(firstValue) && !scaleOption)) {
|
||||||
return d3.scaleOrdinal([field]);
|
return d3.scaleOrdinal([field]);
|
||||||
|
@ -152,7 +152,7 @@ export default class FeatureScalePlugin implements ILayerPlugin {
|
||||||
const cfg: IScale = {
|
const cfg: IScale = {
|
||||||
type,
|
type,
|
||||||
};
|
};
|
||||||
const values = data!.map((item) => item[field]);
|
const values = data?.map((item) => item[field]) || [];
|
||||||
// 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales
|
// 默认类型为 Quantile Scales https://github.com/d3/d3-scale#quantile-scales
|
||||||
if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) {
|
if (type !== ScaleTypes.CAT && type !== ScaleTypes.QUANTILE) {
|
||||||
cfg.domain = extent(values);
|
cfg.domain = extent(values);
|
||||||
|
|
|
@ -29,8 +29,6 @@ mapboxgl.accessToken =
|
||||||
'pk.eyJ1IjoieGlhb2l2ZXIiLCJhIjoiY2pxcmc5OGNkMDY3cjQzbG42cXk5NTl3YiJ9.hUC5Chlqzzh0FFd_aEc-uQ';
|
'pk.eyJ1IjoieGlhb2l2ZXIiLCJhIjoiY2pxcmc5OGNkMDY3cjQzbG42cXk5NTl3YiJ9.hUC5Chlqzzh0FFd_aEc-uQ';
|
||||||
const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12;
|
const LNGLAT_OFFSET_ZOOM_THRESHOLD = 12;
|
||||||
|
|
||||||
let counter = 1;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AMapService
|
* AMapService
|
||||||
*/
|
*/
|
||||||
|
@ -166,7 +164,6 @@ export default class MapboxService implements IMapService {
|
||||||
public async init(mapConfig: IMapConfig): Promise<void> {
|
public async init(mapConfig: IMapConfig): Promise<void> {
|
||||||
const { id, attributionControl = false, ...rest } = mapConfig;
|
const { id, attributionControl = false, ...rest } = mapConfig;
|
||||||
this.$mapContainer = document.getElementById(id);
|
this.$mapContainer = document.getElementById(id);
|
||||||
this.$mapContainer!.classList.add(`${counter++}`);
|
|
||||||
|
|
||||||
this.viewport = new Viewport();
|
this.viewport = new Viewport();
|
||||||
|
|
||||||
|
|
25
yarn.lock
25
yarn.lock
|
@ -313,6 +313,14 @@
|
||||||
"@babel/helper-plugin-utils" "^7.0.0"
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
|
"@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
|
||||||
|
|
||||||
|
"@babel/plugin-proposal-optional-chaining@^7.6.0":
|
||||||
|
version "7.6.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.6.0.tgz#e9bf1f9b9ba10c77c033082da75f068389041af8"
|
||||||
|
integrity sha512-kj4gkZ6qUggkprRq3Uh5KP8XnE1MdIO0J7MhdDX8+rAbB6dJ2UrensGIS+0NPZAaaJ1Vr0PN6oLUgXMU1uMcSg==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
|
"@babel/plugin-syntax-optional-chaining" "^7.2.0"
|
||||||
|
|
||||||
"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
"@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
||||||
version "7.4.4"
|
version "7.4.4"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
|
||||||
|
@ -378,6 +386,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-plugin-utils" "^7.0.0"
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
|
|
||||||
|
"@babel/plugin-syntax-optional-chaining@^7.2.0":
|
||||||
|
version "7.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.2.0.tgz#a59d6ae8c167e7608eaa443fda9fa8fa6bf21dff"
|
||||||
|
integrity sha512-HtGCtvp5Uq/jH/WNUPkK6b7rufnCPLLlDAFN7cmACoIjaOOiXxUt3SswU5loHqrhtqTsa/WoLQ1OQ1AGuZqaWA==
|
||||||
|
dependencies:
|
||||||
|
"@babel/helper-plugin-utils" "^7.0.0"
|
||||||
|
|
||||||
"@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.3.3":
|
"@babel/plugin-syntax-typescript@^7.2.0", "@babel/plugin-syntax-typescript@^7.3.3":
|
||||||
version "7.3.3"
|
version "7.3.3"
|
||||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991"
|
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.3.3.tgz#a7cc3f66119a9f7ebe2de5383cce193473d65991"
|
||||||
|
@ -11815,7 +11830,7 @@ prepend-http@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
|
resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc"
|
||||||
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
|
integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=
|
||||||
|
|
||||||
prettier@^1.14.2, prettier@^1.16.4:
|
prettier@^1.16.4, prettier@^1.18.2:
|
||||||
version "1.18.2"
|
version "1.18.2"
|
||||||
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
|
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.18.2.tgz#6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea"
|
||||||
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
|
integrity sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==
|
||||||
|
@ -14755,10 +14770,10 @@ typedarray@^0.0.6:
|
||||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||||
|
|
||||||
typescript@^3.6.2:
|
typescript@^3.7.0-beta:
|
||||||
version "3.6.2"
|
version "3.7.0-beta"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.2.tgz#105b0f1934119dde543ac8eb71af3a91009efe54"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.7.0-beta.tgz#4ad556e0eee14b90ecc39261001690e16e5eeba9"
|
||||||
integrity sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==
|
integrity sha512-4jyCX+IQamrPJxgkABPq9xf+hUN+GWHVxoj+oey1TadCPa4snQl1RKwUba+1dyzYCamwlCxKvZQ3TjyWLhMGBA==
|
||||||
|
|
||||||
ua-parser-js@^0.7.18:
|
ua-parser-js@^0.7.18:
|
||||||
version "0.7.20"
|
version "0.7.20"
|
||||||
|
|
Loading…
Reference in New Issue