1 line
5.1 KiB
Plaintext
1 line
5.1 KiB
Plaintext
{"version":3,"file":"legend.js","sourceRoot":"","sources":["../../src/util/legend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,SAAS,eAAe,CAAC,MAAM;IAC7B,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE;QAC7C,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;KACvC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAoB;IAClD,OAAO,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;AACnH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAU,EACV,QAAkB,EAClB,IAAe,EACf,WAAmB,EACnB,UAAU;IAEV,IAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE;QACpB,IAAM,OAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC1B,IAAM,WAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,IAAM,WAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,IAAM,cAAY,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC;QAClD,IAAM,WAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;QAE9C,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,UAAC,IAAU;;YAC7B,IAAA,IAAI,GAAwB,IAAI,KAA5B,EAAS,UAAU,GAAK,IAAI,MAAT,CAAU;YACzC,IAAM,IAAI,GAAG,IAAI,CAAC;YAClB,IAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAEvC,4BAA4B;YAC5B,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAK,EAAE,WAAG,GAAC,OAAK,IAAG,KAAK,MAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;YAEjF,aAAa;YACb,IAAM,KAAK,GAAG,eAAe,CAAC,WAAS,EAAE,KAAK,EAAE,cAAY,CAAC,CAAC;YAC9D,IAAM,KAAK,GAAG,eAAe,CAAC,WAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YACzD,IAAI,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE;gBAC1C,KAAK,OAAA;gBACL,SAAS,aAAA;aACV,CAAC,CAAC;YACH,8CAA8C;YAC9C,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAEtD,eAAe,CAAC,MAAM,CAAC,CAAC;YAExB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,MAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,UAAkB,EAAE,WAAyB;IACrG,wCAAwC;IACxC,OAAO,WAAW,CAAC,GAAG,CAAC,UAAC,IAAgB;QACtC,IAAM,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjE,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { deepMix, isString } from '@antv/util';\nimport View from '../chart/view';\nimport { DIRECTION } from '../constant';\nimport { Attribute, Tick } from '../dependents';\nimport Geometry from '../geometry/base';\nimport { LegendItem } from '../interface';\nimport { getMappingValue } from './attr';\nimport { MarkerSymbols } from './marker';\n\nfunction setMarkerSymbol(marker) {\n const symbol = marker.symbol;\n if (isString(symbol) && MarkerSymbols[symbol]) {\n marker.symbol = MarkerSymbols[symbol];\n }\n}\n\n/**\n * @ignore\n * get the legend layout from direction\n * @param direction\n * @returns layout 'horizontal' | 'vertical'\n */\nexport function getLegendLayout(direction: DIRECTION): 'vertical' | 'horizontal' {\n return direction.startsWith(DIRECTION.LEFT) || direction.startsWith(DIRECTION.RIGHT) ? 'vertical' : 'horizontal';\n}\n\n/**\n * @ignore\n * get the legend items\n * @param view\n * @param geometry\n * @param attr\n * @param themeMarker\n * @param userMarker\n * @returns legend items\n */\nexport function getLegendItems(\n view: View,\n geometry: Geometry,\n attr: Attribute,\n themeMarker: object,\n userMarker,\n): any[] {\n const scale = attr.getScale(attr.type);\n if (scale.isCategory) {\n const field = scale.field;\n const colorAttr = geometry.getAttribute('color');\n const shapeAttr = geometry.getAttribute('shape');\n const defaultColor = view.getTheme().defaultColor;\n const isInPolar = geometry.coordinate.isPolar;\n\n return scale.getTicks().map((tick: Tick) => {\n const { text, value: scaleValue } = tick;\n const name = text;\n const value = scale.invert(scaleValue);\n\n // 通过过滤图例项的数据,来看是否 unchecked\n const unchecked = view.filterFieldData(field, [{ [field]: value }]).length === 0;\n\n // @ts-ignore\n const color = getMappingValue(colorAttr, value, defaultColor);\n const shape = getMappingValue(shapeAttr, value, 'point');\n let marker = geometry.getShapeMarker(shape, {\n color,\n isInPolar,\n });\n // the marker configure order should be ensure\n marker = deepMix({}, themeMarker, marker, userMarker);\n\n setMarkerSymbol(marker);\n\n return { id: value, name, value, marker, unchecked };\n });\n }\n return [];\n}\n\n/**\n * @ignore\n * custom legend 的 items 获取\n * @param themeMarker\n * @param userMarker\n * @param customItems\n */\nexport function getCustomLegendItems(themeMarker: object, userMarker: object, customItems: LegendItem[]) {\n // 如果有自定义的 item,那么就直接使用,并合并主题的 marker 配置\n return customItems.map((item: LegendItem) => {\n const marker = deepMix({}, themeMarker, userMarker, item.marker);\n setMarkerSymbol(marker);\n\n item.marker = marker;\n return item;\n });\n}\n"]} |