@linkurious/ogma-linkurious-parser 4.0.0 → 4.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/README.md +1 -1
- package/dist/captions/captions.js +4 -5
- package/dist/captions/captions.js.map +1 -1
- package/dist/filters/filters.d.ts +1 -1
- package/dist/filters/filters.js +1 -0
- package/dist/filters/filters.js.map +1 -1
- package/dist/index.js +34 -33
- package/dist/index.js.map +1 -1
- package/dist/ogma/features/OgmaStore.js +2 -1
- package/dist/ogma/features/OgmaStore.js.map +1 -1
- package/dist/ogma/features/captions.js +1 -0
- package/dist/ogma/features/captions.js.map +1 -1
- package/dist/ogma/features/reactive.js +1 -0
- package/dist/ogma/features/reactive.js.map +1 -1
- package/dist/ogma/features/selectors.d.ts +5 -5
- package/dist/ogma/features/selectors.js +21 -12
- package/dist/ogma/features/selectors.js.map +1 -1
- package/dist/ogma/features/styles.js +1 -0
- package/dist/ogma/features/styles.js.map +1 -1
- package/dist/ogma/features/transformations.d.ts +1 -1
- package/dist/ogma/features/transformations.js +16 -17
- package/dist/ogma/features/transformations.js.map +1 -1
- package/dist/ogma/index.js +14 -18
- package/dist/ogma/index.js.map +1 -1
- package/dist/styles/edgeAttributes.js +2 -2
- package/dist/styles/edgeAttributes.js.map +1 -1
- package/dist/styles/itemAttributes.js +2 -1
- package/dist/styles/itemAttributes.js.map +1 -1
- package/dist/styles/nodeAttributes.js +2 -1
- package/dist/styles/nodeAttributes.js.map +1 -1
- package/dist/styles/styleRule.js +1 -0
- package/dist/styles/styleRule.js.map +1 -1
- package/dist/styles/styleRules.js +7 -6
- package/dist/styles/styleRules.js.map +1 -1
- package/dist/tools/colorPalette.js +1 -0
- package/dist/tools/colorPalette.js.map +1 -1
- package/dist/tools/ogmaTool.js +1 -0
- package/dist/tools/ogmaTool.js.map +1 -1
- package/dist/tools/tools.js +2 -1
- package/dist/tools/tools.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"itemAttributes.js","sourceRoot":"","sources":["../../src/styles/itemAttributes.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"itemAttributes.js","sourceRoot":"","sources":["../../src/styles/itemAttributes.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport sha1 from 'sha1';\nimport {Color} from '@linkurious/ogma';\n\nimport {Tools} from '../tools/tools';\n\nimport {StyleRule} from './styleRule';\nimport {NodeSizeExtrema} from './nodeAttributes';\nimport {EdgeWidthExtrema} from './edgeAttributes';\n\nexport const BASE_GREY = '#7f7f7f';\nexport const PALETTE = [\n '#9467bd',\n '#e377c2',\n '#1f77b4',\n '#17becf',\n '#2ca02c',\n '#bcbd22',\n '#d62728',\n '#ff7f0e',\n '#8c564b',\n '#c5b0d5',\n '#f7b6d2',\n '#aec7e8',\n '#9edae5',\n '#98df8a',\n '#dbdb8d',\n '#ff9896',\n '#ffbb78',\n '#c49c94'\n];\n\nexport class ItemAttributes {\n protected colorsCache: Map<string, Color | Array<Color>> = new Map();\n protected _rulesMap: {\n color?: Array<StyleRule>;\n icon?: Array<StyleRule>;\n image?: Array<StyleRule>;\n shape?: Array<StyleRule>;\n size?: Array<StyleRule>;\n width?: Array<StyleRule>;\n } = {};\n\n constructor(rulesMap: {\n color?: Array<StyleRule>;\n icon?: Array<StyleRule>;\n image?: Array<StyleRule>;\n shape?: Array<StyleRule>;\n size?: Array<StyleRule>;\n width?: Array<StyleRule>;\n }) {\n this.refresh(rulesMap);\n }\n\n /**\n * Refresh the rules\n */\n public refresh(rulesMap: {\n color?: Array<StyleRule>;\n icon?: Array<StyleRule>;\n image?: Array<StyleRule>;\n shape?: Array<StyleRule>;\n size?: Array<StyleRule>;\n width?: Array<StyleRule>;\n }): void {\n if (rulesMap.color !== undefined) {\n this.colorsCache = new Map();\n }\n this._rulesMap = {\n color: rulesMap.color ? [...rulesMap.color].reverse() : this._rulesMap.color,\n icon: rulesMap.icon ? [...rulesMap.icon].reverse() : this._rulesMap.icon,\n image: rulesMap.image ? [...rulesMap.image].reverse() : this._rulesMap.image,\n shape: rulesMap.shape ? [...rulesMap.shape].reverse() : this._rulesMap.shape,\n size: rulesMap.size ? [...rulesMap.size].reverse() : this._rulesMap.size,\n width: rulesMap.width ? [...rulesMap.width].reverse() : this._rulesMap.width\n };\n }\n\n /**\n * Return the color for a node when style color is auto\n */\n public static autoColor(value: string, ignoreCase?: boolean): string {\n if (!Tools.isDefined(value)) {\n return BASE_GREY;\n }\n return PALETTE[\n ItemAttributes.getRandomUniqueColorPaletteIndex(value, PALETTE.length, ignoreCase)\n ];\n }\n\n /**\n * Return a number from 0 to number of occurrence in a palette based on a property\n */\n private static getRandomUniqueColorPaletteIndex(\n input: string,\n modulo: number,\n ignoreCase: boolean | undefined\n ): number {\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n return +('0x' + sha1(input).substr(-4)) % modulo;\n }\n\n /**\n * Get color of a type\n */\n public static getTypeColor(rule: StyleRule, type: string): string | null {\n if (typeof rule.style.color === 'object' && rule.style.color.input[0] !== 'properties') {\n return ItemAttributes.autoColor(type, rule.style.color.ignoreCase);\n }\n if (!Tools.isDefined(rule.input) && typeof rule.style.color !== 'object') {\n return rule.style.color;\n }\n return null;\n }\n\n /**\n * return the corresponding size to the value with a linear function\n * @param value\n * @param lower\n * @param higher\n * @param extrema\n */\n public static getAutomaticRangeStyleLinear(\n value: number,\n {max, min}: {max: number; min: number},\n lower: EdgeWidthExtrema | NodeSizeExtrema,\n higher: EdgeWidthExtrema | NodeSizeExtrema\n ): string {\n // apply default style when min equal max\n if (max === min || isNaN(value)) {\n return '100%';\n }\n\n // calculate the linear function f(x) = ax + b\n const a = (higher - lower) / (max - min);\n const b = (lower * max - higher * min) / (max - min);\n const size = Math.floor(value * a + b);\n\n return `${size}%`;\n }\n\n /**\n * return the corresponding size to the value with a logarithmic function\n * @param value\n * @param lower\n * @param higher\n * @param extrema\n */\n public static getAutomaticRangeStyleLog(\n value: number,\n {max, min}: {max: number; min: number},\n lower: EdgeWidthExtrema | NodeSizeExtrema,\n higher: EdgeWidthExtrema | NodeSizeExtrema\n ): string {\n // apply default style when min equal max\n if (max === min || isNaN(value)) {\n return '100%';\n }\n // apply an offset for all the values (including min and max)\n if (min < 1) {\n value += Math.abs(min) + 1;\n max += Math.abs(min) + 1;\n min += Math.abs(min) + 1;\n }\n // calculate the logarithmic function f(x) = Math.floor(a*log(x) + b)\n const a = (higher - lower) / (Math.log(max) - Math.log(min));\n const b = (lower * Math.log(max) - higher * Math.log(min)) / (Math.log(max) - Math.log(min));\n const size = Math.floor(a * Math.log(value) + b);\n\n return `${size}%`;\n }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.NodeAttributes = exports.NodeSizeExtrema = void 0;
|
|
6
7
|
const sha1_1 = __importDefault(require("sha1"));
|
|
7
8
|
const tools_1 = require("../tools/tools");
|
|
8
9
|
const __1 = require("..");
|
|
@@ -40,7 +41,7 @@ class NodeAttributes extends itemAttributes_1.ItemAttributes {
|
|
|
40
41
|
if (!tools_1.Tools.isDefined(itemData)) {
|
|
41
42
|
return [itemAttributes_1.BASE_GREY];
|
|
42
43
|
}
|
|
43
|
-
const hash = sha1_1.default(JSON.stringify(itemData));
|
|
44
|
+
const hash = (0, sha1_1.default)(JSON.stringify(itemData));
|
|
44
45
|
const cachedColor = this.colorsCache.get(hash);
|
|
45
46
|
if (cachedColor !== undefined) {
|
|
46
47
|
return cachedColor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeAttributes.js","sourceRoot":"","sources":["../../src/styles/nodeAttributes.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\nimport {Color} from '@linkurious/ogma';\nimport {LkNodeData, OgmaNodeShape, IStyleImage, IStyleIcon} from '@linkurious/rest-client';\nimport sha1 from 'sha1';\n\nimport {Tools} from '../tools/tools';\nimport {OgmaTools} from '..';\n\nimport {StyleRule} from './styleRule';\nimport {BASE_GREY, ItemAttributes} from './itemAttributes';\n\nexport interface OgmaImage extends IStyleImage {\n url?: string;\n}\n\nexport enum NodeSizeExtrema {\n MIN = 50,\n MAX = 500\n}\n\nexport class NodeAttributes extends ItemAttributes {\n constructor(rulesMap: {\n color?: Array<StyleRule>;\n icon?: Array<StyleRule>;\n image?: Array<StyleRule>;\n shape?: Array<StyleRule>;\n size?: Array<StyleRule>;\n }) {\n super(rulesMap);\n }\n\n /**\n * Run the callback if an item match with a style in the array of rules\n */\n private static matchStyle(\n styleRules: Array<StyleRule>,\n itemData: LkNodeData,\n callback: (style: StyleRule) => unknown\n ): void {\n if (!Tools.isDefined(itemData)) {\n return;\n }\n if (!Tools.isDefined(styleRules)) {\n return;\n }\n for (let i = 0; i < styleRules.length; ++i) {\n if (styleRules[i].canApplyTo(itemData)) {\n callback(styleRules[i]);\n break;\n }\n }\n }\n\n /**\n * Generate color for a given node (call only if _rulesMap.color is defined\n */\n public color(itemData: LkNodeData): Color | Array<Color> {\n if (!Tools.isDefined(itemData)) {\n return [BASE_GREY];\n }\n const hash = sha1(JSON.stringify(itemData));\n const cachedColor = this.colorsCache.get(hash);\n if (cachedColor !== undefined) {\n return cachedColor;\n }\n let colors = [];\n for (let i = 0; i < itemData.categories.length; ++i) {\n let c = null;\n for (let j = 0; j < this._rulesMap.color!.length; ++j) {\n const rule = this._rulesMap.color![j];\n if (\n rule.itemType !== undefined &&\n rule.itemType !== null &&\n rule.itemType !== itemData.categories[i]\n ) {\n continue;\n }\n if (rule.canApplyTo(itemData)) {\n if (typeof rule.style.color === 'object') {\n const propValue = Tools.getIn(itemData, rule.style.color.input);\n if (Array.isArray(propValue)) {\n c = ItemAttributes.autoColor(itemData.categories[i], rule.style.ignoreCase);\n } else {\n c = ItemAttributes.autoColor(`${propValue}`, rule.style.ignoreCase);\n }\n } else {\n c = rule.style.color;\n }\n break;\n }\n }\n colors.push(c);\n }\n colors = colors.filter((c) => Tools.isDefined(c));\n if (colors.length === 0) {\n colors = [BASE_GREY];\n }\n const finalColor = colors.length === 1 ? colors[0] : colors;\n this.colorsCache.set(hash, finalColor);\n return finalColor;\n }\n\n /**\n * Generate icon for a given node\n */\n public icon(\n itemData: LkNodeData\n ): {\n icon?: IStyleIcon;\n image?: OgmaImage | null;\n } {\n const rawColors = this.color(itemData);\n const color = Array.isArray(rawColors) ? rawColors[0] : rawColors;\n let result = {};\n const rules = [...(this._rulesMap.image || []), ...(this._rulesMap.icon || [])];\n if (!Tools.isDefined(itemData)) {\n return {\n icon: {},\n image: {}\n };\n }\n for (let i = 0; i < rules.length; ++i) {\n if (rules[i].canApplyTo(itemData)) {\n if ('icon' in rules[i].style) {\n result = {\n icon: {\n content: rules[i].style.icon.content,\n font: rules[i].style.icon.font,\n scale: 0.5,\n color: OgmaTools.isBright(color) ? '#000000' : '#FFFFFF'\n }\n };\n } else if ('image' in rules[i].style) {\n result = {\n image: {\n url:\n Tools.getType(rules[i].style.image.url) === 'imageUrl' ||\n Tools.getType(rules[i].style.image.url) === 'image'\n ? rules[i].style.image.url\n : Tools.getIn(itemData, rules[i].style.image.url.path),\n scale: rules[i].style.image.scale,\n fit: rules[i].style.image.fit,\n tile: rules[i].style.image.tile,\n minVisibleSize: 0\n }\n };\n }\n break;\n }\n }\n\n return result;\n }\n\n /**\n * Generate shape for a given node\n */\n public shape(itemData: LkNodeData): OgmaNodeShape | undefined {\n let result = undefined;\n if (this._rulesMap.shape !== undefined) {\n NodeAttributes.matchStyle(this._rulesMap.shape, itemData, (styleRule) => {\n result = styleRule.style.shape;\n });\n }\n return result;\n }\n\n /**\n * Generate size for a given node\n */\n public size(itemData: LkNodeData): number | undefined {\n let result = undefined;\n if (this._rulesMap.size !== undefined) {\n NodeAttributes.matchStyle(this._rulesMap.size, itemData, (styleRule) => {\n const sizeStyle = styleRule.style.size;\n if (sizeStyle.type === 'autoRange') {\n if (\n sizeStyle.input !== undefined &&\n sizeStyle.max !== undefined &&\n sizeStyle.min !== undefined\n ) {\n const propertyName: string = sizeStyle.input[1];\n const propertyValue = Tools.parseNumber(itemData.properties[propertyName]);\n //to update with the correct enum type\n const isLog = sizeStyle.scale && sizeStyle.scale === 'logarithmic';\n result = NodeAttributes.getAutomaticRangeSize(propertyValue, styleRule, isLog);\n }\n } else {\n result = sizeStyle;\n }\n });\n }\n return result;\n }\n\n /**\n * return the corresponding size to the value\n * @param value\n * @param rule\n * @param isLog\n */\n public static getAutomaticRangeSize(value: number, rule: StyleRule, isLog = false): string {\n return isLog\n ? this.getAutomaticRangeStyleLog(\n value,\n rule.style.size,\n NodeSizeExtrema.MIN,\n NodeSizeExtrema.MAX\n )\n : this.getAutomaticRangeStyleLinear(\n value,\n rule.style.size,\n NodeSizeExtrema.MIN,\n NodeSizeExtrema.MAX\n );\n }\n\n /**\n * Return an object containing all node attributes needed by Ogma to style a node\n */\n public all(\n itemData: LkNodeData\n ): {\n radius?: number | undefined;\n color: Color | Array<Color>;\n shape?: OgmaNodeShape | undefined;\n icon?: IStyleIcon;\n image?: IStyleImage | null;\n } {\n if (!Tools.isDefined(itemData)) {\n return {\n color: BASE_GREY\n };\n }\n const generatedIcon = this.icon(itemData);\n return {\n radius: this.size(itemData),\n color: this.color(itemData),\n shape: this.shape(itemData),\n icon: generatedIcon.icon,\n image: generatedIcon.image\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"nodeAttributes.js","sourceRoot":"","sources":["../../src/styles/nodeAttributes.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\nimport {Color} from '@linkurious/ogma';\nimport {LkNodeData, OgmaNodeShape, IStyleImage, IStyleIcon} from '@linkurious/rest-client';\nimport sha1 from 'sha1';\n\nimport {Tools} from '../tools/tools';\nimport {OgmaTools} from '..';\n\nimport {StyleRule} from './styleRule';\nimport {BASE_GREY, ItemAttributes} from './itemAttributes';\n\nexport interface OgmaImage extends IStyleImage {\n url?: string;\n}\n\nexport enum NodeSizeExtrema {\n MIN = 50,\n MAX = 500\n}\n\nexport class NodeAttributes extends ItemAttributes {\n constructor(rulesMap: {\n color?: Array<StyleRule>;\n icon?: Array<StyleRule>;\n image?: Array<StyleRule>;\n shape?: Array<StyleRule>;\n size?: Array<StyleRule>;\n }) {\n super(rulesMap);\n }\n\n /**\n * Run the callback if an item match with a style in the array of rules\n */\n private static matchStyle(\n styleRules: Array<StyleRule>,\n itemData: LkNodeData,\n callback: (style: StyleRule) => unknown\n ): void {\n if (!Tools.isDefined(itemData)) {\n return;\n }\n if (!Tools.isDefined(styleRules)) {\n return;\n }\n for (let i = 0; i < styleRules.length; ++i) {\n if (styleRules[i].canApplyTo(itemData)) {\n callback(styleRules[i]);\n break;\n }\n }\n }\n\n /**\n * Generate color for a given node (call only if _rulesMap.color is defined\n */\n public color(itemData: LkNodeData): Color | Array<Color> {\n if (!Tools.isDefined(itemData)) {\n return [BASE_GREY];\n }\n const hash = sha1(JSON.stringify(itemData));\n const cachedColor = this.colorsCache.get(hash);\n if (cachedColor !== undefined) {\n return cachedColor;\n }\n let colors = [];\n for (let i = 0; i < itemData.categories.length; ++i) {\n let c = null;\n for (let j = 0; j < this._rulesMap.color!.length; ++j) {\n const rule = this._rulesMap.color![j];\n if (\n rule.itemType !== undefined &&\n rule.itemType !== null &&\n rule.itemType !== itemData.categories[i]\n ) {\n continue;\n }\n if (rule.canApplyTo(itemData)) {\n if (typeof rule.style.color === 'object') {\n const propValue = Tools.getIn(itemData, rule.style.color.input);\n if (Array.isArray(propValue)) {\n c = ItemAttributes.autoColor(itemData.categories[i], rule.style.ignoreCase);\n } else {\n c = ItemAttributes.autoColor(`${propValue}`, rule.style.ignoreCase);\n }\n } else {\n c = rule.style.color;\n }\n break;\n }\n }\n colors.push(c);\n }\n colors = colors.filter((c) => Tools.isDefined(c));\n if (colors.length === 0) {\n colors = [BASE_GREY];\n }\n const finalColor = colors.length === 1 ? colors[0] : colors;\n this.colorsCache.set(hash, finalColor);\n return finalColor;\n }\n\n /**\n * Generate icon for a given node\n */\n public icon(\n itemData: LkNodeData\n ): {\n icon?: IStyleIcon;\n image?: OgmaImage | null;\n } {\n const rawColors = this.color(itemData);\n const color = Array.isArray(rawColors) ? rawColors[0] : rawColors;\n let result = {};\n const rules = [...(this._rulesMap.image || []), ...(this._rulesMap.icon || [])];\n if (!Tools.isDefined(itemData)) {\n return {\n icon: {},\n image: {}\n };\n }\n for (let i = 0; i < rules.length; ++i) {\n if (rules[i].canApplyTo(itemData)) {\n if ('icon' in rules[i].style) {\n result = {\n icon: {\n content: rules[i].style.icon.content,\n font: rules[i].style.icon.font,\n scale: 0.5,\n color: OgmaTools.isBright(color) ? '#000000' : '#FFFFFF'\n }\n };\n } else if ('image' in rules[i].style) {\n result = {\n image: {\n url:\n Tools.getType(rules[i].style.image.url) === 'imageUrl' ||\n Tools.getType(rules[i].style.image.url) === 'image'\n ? rules[i].style.image.url\n : Tools.getIn(itemData, rules[i].style.image.url.path),\n scale: rules[i].style.image.scale,\n fit: rules[i].style.image.fit,\n tile: rules[i].style.image.tile,\n minVisibleSize: 0\n }\n };\n }\n break;\n }\n }\n\n return result;\n }\n\n /**\n * Generate shape for a given node\n */\n public shape(itemData: LkNodeData): OgmaNodeShape | undefined {\n let result = undefined;\n if (this._rulesMap.shape !== undefined) {\n NodeAttributes.matchStyle(this._rulesMap.shape, itemData, (styleRule) => {\n result = styleRule.style.shape;\n });\n }\n return result;\n }\n\n /**\n * Generate size for a given node\n */\n public size(itemData: LkNodeData): number | undefined {\n let result = undefined;\n if (this._rulesMap.size !== undefined) {\n NodeAttributes.matchStyle(this._rulesMap.size, itemData, (styleRule) => {\n const sizeStyle = styleRule.style.size;\n if (sizeStyle.type === 'autoRange') {\n if (\n sizeStyle.input !== undefined &&\n sizeStyle.max !== undefined &&\n sizeStyle.min !== undefined\n ) {\n const propertyName: string = sizeStyle.input[1];\n const propertyValue = Tools.parseNumber(itemData.properties[propertyName]);\n //to update with the correct enum type\n const isLog = sizeStyle.scale && sizeStyle.scale === 'logarithmic';\n result = NodeAttributes.getAutomaticRangeSize(propertyValue, styleRule, isLog);\n }\n } else {\n result = sizeStyle;\n }\n });\n }\n return result;\n }\n\n /**\n * return the corresponding size to the value\n * @param value\n * @param rule\n * @param isLog\n */\n public static getAutomaticRangeSize(value: number, rule: StyleRule, isLog = false): string {\n return isLog\n ? this.getAutomaticRangeStyleLog(\n value,\n rule.style.size,\n NodeSizeExtrema.MIN,\n NodeSizeExtrema.MAX\n )\n : this.getAutomaticRangeStyleLinear(\n value,\n rule.style.size,\n NodeSizeExtrema.MIN,\n NodeSizeExtrema.MAX\n );\n }\n\n /**\n * Return an object containing all node attributes needed by Ogma to style a node\n */\n public all(\n itemData: LkNodeData\n ): {\n radius?: number | undefined;\n color: Color | Array<Color>;\n shape?: OgmaNodeShape | undefined;\n icon?: IStyleIcon;\n image?: IStyleImage | null;\n } {\n if (!Tools.isDefined(itemData)) {\n return {\n color: BASE_GREY\n };\n }\n const generatedIcon = this.icon(itemData);\n return {\n radius: this.size(itemData),\n color: this.color(itemData),\n shape: this.shape(itemData),\n icon: generatedIcon.icon,\n image: generatedIcon.image\n };\n }\n}\n"]}
|
package/dist/styles/styleRule.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleRule.js","sourceRoot":"","sources":["../../src/styles/styleRule.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport {\n IEdgeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n INodeStyle,\n SelectorType,\n IStyleAutoRange\n} from '@linkurious/rest-client';\n\nimport {ItemAttributes} from '..';\nimport {Tools} from '../tools/tools';\n\nexport enum StyleRuleType {\n AUTO_RANGE = 'autoRange'\n}\n\nexport class StyleRule implements IStyleRule<INodeStyle | IEdgeStyle> {\n public type: SelectorType;\n public input: string[] | undefined;\n public index: number;\n public itemType?: string;\n public value: any;\n public style: any;\n\n constructor(model: IStyleRule<INodeStyle | IEdgeStyle>) {\n this.type = model.type;\n this.input = model.input;\n this.index = model.index;\n this.itemType = model.itemType;\n this.style = model.style;\n this.value = model.value;\n }\n\n public static isAutomaticRange(rule: IStyleRule<IEdgeStyle | INodeStyle>): boolean {\n return (\n rule.style !== undefined &&\n (((rule.style as IEdgeStyle).width !== undefined &&\n ((rule.style as IEdgeStyle).width as IStyleAutoRange).type === StyleRuleType.AUTO_RANGE) ||\n ((rule.style as INodeStyle).size !== undefined &&\n ((rule.style as INodeStyle).size as IStyleAutoRange).type === StyleRuleType.AUTO_RANGE))\n );\n }\n\n /**\n * Return an int describing specificity of the style. 4 = very specific / 1 = not specific\n *\n * @return {number}\n */\n get specificity(): 1 | 2 | 3 | 4 {\n if (this.itemType !== undefined && this.input !== undefined) {\n return 4;\n }\n if (this.itemType === undefined && this.input !== undefined) {\n return 3;\n }\n if (this.itemType !== undefined && this.input === undefined) {\n return 2;\n }\n return 1;\n }\n\n /**\n * Return true if this style match values\n */\n public matchValues(\n itemType: string | undefined,\n input: Array<string> | undefined,\n value: any\n ): boolean {\n if (Tools.isDefined(input)) {\n return (\n ((itemType === this.itemType || !Tools.isDefined(this.itemType)) &&\n Tools.isEqual(['properties', ...input], this.input) &&\n Tools.isEqual(value, this.value)) ||\n (this.type === 'any' &&\n !Tools.isDefined(this.input) &&\n typeof this.style.color === 'object' &&\n this.style.color.input[1] === input[0])\n );\n }\n\n if (Tools.isDefined(this.itemType)) {\n return itemType === this.itemType && !Tools.isDefined(this.input);\n }\n\n return !Tools.isDefined(this.input);\n }\n\n public static inputExists(\n type: SelectorType,\n input: Array<string> | undefined\n ): input is Array<string> {\n return type !== SelectorType.ANY;\n }\n\n /**\n * Return true if a style can apply to a node\n */\n public canApplyTo(data: LkNodeData | LkEdgeData): boolean {\n const types = 'categories' in data ? data.categories : [data.type];\n let typePredicate = false;\n switch (this.type) {\n case SelectorType.ANY:\n typePredicate = StyleRule.checkAny(data, this.style);\n break;\n\n case SelectorType.NO_VALUE:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkNoValue(data, this.input);\n }\n break;\n\n case SelectorType.NAN:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkNan(data, this.input);\n }\n break;\n\n case SelectorType.RANGE:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkRange(Tools.getIn(data, this.input), this.value);\n }\n break;\n\n case SelectorType.IS:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkIs(data, this.input, this.value);\n }\n break;\n }\n return typePredicate && StyleRule.checkItemType(types, this.itemType);\n }\n\n /**\n * Return true or false on rule type 'any' if the current node match the rule\n */\n public static checkAny(data: LkNodeData | LkEdgeData, style: INodeStyle | IEdgeStyle): boolean {\n // return true if autoColor by a property and this property exists in node\n if (typeof style.color === 'object') {\n return Tools.isDefined(Tools.getIn(data, style.color.input));\n }\n return true;\n }\n\n /**\n * Return true or false on rule type 'noValue' if the current node match the rule\n */\n public static checkNoValue(data: LkNodeData | LkEdgeData, input: Array<string>): boolean {\n return !Tools.valueExists(Tools.getIn(data, input));\n }\n\n /**\n * Return true or false on rule type 'NaN' if the current node match the rule\n */\n public static checkNan(data: LkNodeData | LkEdgeData, input: Array<string>): boolean {\n return !Tools.isNumber(Tools.getIn(data, input));\n }\n\n /**\n * Return true if predicate is true for the node value\n *\n * @param value\n * @param comparator\n * @return {boolean}\n */\n public static checkRange(\n value: number,\n comparator: {[key in '<=' | '<' | '>' | '>=']?: number}\n ): boolean {\n return (\n (comparator['<='] === undefined || value <= comparator['<=']) &&\n (comparator['<'] === undefined || value < comparator['<']) &&\n (comparator['>'] === undefined || value > comparator['>']) &&\n (comparator['>='] === undefined || value >= comparator['>='])\n );\n }\n\n /**\n * Return true or false on rule type 'is' if the current node match the rule\n */\n public static checkIs(data: LkNodeData | LkEdgeData, input: Array<string>, value: any): boolean {\n if (!Tools.isDefined(input)) {\n return false;\n }\n const itemValue = Tools.getIn(data, input);\n let formattedValue = itemValue;\n if (\n Tools.isDefined(itemValue) &&\n typeof itemValue === 'object' &&\n (itemValue.type === 'date' || itemValue.type === 'datetime')\n ) {\n let timezone = itemValue.timezone;\n if (itemValue.timezone === 'Z') {\n timezone = '+00:00';\n }\n formattedValue = Tools.formatDate(\n itemValue.value,\n itemValue.type === 'datetime',\n Tools.timezoneToMilliseconds(timezone) / 1000\n );\n }\n return Tools.isEqual(formattedValue, value);\n }\n\n /**\n * Check that value of itemType match for the node\n */\n public static checkItemType(types: Array<string>, itemType: string | undefined): boolean {\n return StyleRule.matchCategory(types, itemType) || StyleRule.matchAny(itemType);\n }\n\n /**\n * Return true if itemType is defined and category exists in an array of categories\n *\n * @param {Array<string> | string} types\n * @param {string} itemType\n * @return {boolean}\n */\n public static matchCategory(\n types: Array<string> | string,\n itemType: string | undefined\n ): boolean {\n return (\n Tools.isDefined(itemType) &&\n (Array.isArray(types) ? types.includes(itemType) : Tools.isEqual(types, itemType))\n );\n }\n\n /**\n * Return true if itemType is undefined\n *\n * @param {string} itemType\n * @return {boolean}\n */\n public static matchAny(itemType: any | null): boolean {\n return itemType === undefined;\n }\n\n /**\n * Return the color for a type\n */\n public getTypeColor(type: string): string | undefined | null {\n let color;\n if (\n StyleRule.checkItemType([type], this.itemType) &&\n this.type === SelectorType.ANY &&\n !Tools.isDefined(this.input)\n ) {\n color = ItemAttributes.getTypeColor(this, type);\n }\n return color;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"styleRule.js","sourceRoot":"","sources":["../../src/styles/styleRule.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport {\n IEdgeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n INodeStyle,\n SelectorType,\n IStyleAutoRange\n} from '@linkurious/rest-client';\n\nimport {ItemAttributes} from '..';\nimport {Tools} from '../tools/tools';\n\nexport enum StyleRuleType {\n AUTO_RANGE = 'autoRange'\n}\n\nexport class StyleRule implements IStyleRule<INodeStyle | IEdgeStyle> {\n public type: SelectorType;\n public input: string[] | undefined;\n public index: number;\n public itemType?: string;\n public value: any;\n public style: any;\n\n constructor(model: IStyleRule<INodeStyle | IEdgeStyle>) {\n this.type = model.type;\n this.input = model.input;\n this.index = model.index;\n this.itemType = model.itemType;\n this.style = model.style;\n this.value = model.value;\n }\n\n public static isAutomaticRange(rule: IStyleRule<IEdgeStyle | INodeStyle>): boolean {\n return (\n rule.style !== undefined &&\n (((rule.style as IEdgeStyle).width !== undefined &&\n ((rule.style as IEdgeStyle).width as IStyleAutoRange).type === StyleRuleType.AUTO_RANGE) ||\n ((rule.style as INodeStyle).size !== undefined &&\n ((rule.style as INodeStyle).size as IStyleAutoRange).type === StyleRuleType.AUTO_RANGE))\n );\n }\n\n /**\n * Return an int describing specificity of the style. 4 = very specific / 1 = not specific\n *\n * @return {number}\n */\n get specificity(): 1 | 2 | 3 | 4 {\n if (this.itemType !== undefined && this.input !== undefined) {\n return 4;\n }\n if (this.itemType === undefined && this.input !== undefined) {\n return 3;\n }\n if (this.itemType !== undefined && this.input === undefined) {\n return 2;\n }\n return 1;\n }\n\n /**\n * Return true if this style match values\n */\n public matchValues(\n itemType: string | undefined,\n input: Array<string> | undefined,\n value: any\n ): boolean {\n if (Tools.isDefined(input)) {\n return (\n ((itemType === this.itemType || !Tools.isDefined(this.itemType)) &&\n Tools.isEqual(['properties', ...input], this.input) &&\n Tools.isEqual(value, this.value)) ||\n (this.type === 'any' &&\n !Tools.isDefined(this.input) &&\n typeof this.style.color === 'object' &&\n this.style.color.input[1] === input[0])\n );\n }\n\n if (Tools.isDefined(this.itemType)) {\n return itemType === this.itemType && !Tools.isDefined(this.input);\n }\n\n return !Tools.isDefined(this.input);\n }\n\n public static inputExists(\n type: SelectorType,\n input: Array<string> | undefined\n ): input is Array<string> {\n return type !== SelectorType.ANY;\n }\n\n /**\n * Return true if a style can apply to a node\n */\n public canApplyTo(data: LkNodeData | LkEdgeData): boolean {\n const types = 'categories' in data ? data.categories : [data.type];\n let typePredicate = false;\n switch (this.type) {\n case SelectorType.ANY:\n typePredicate = StyleRule.checkAny(data, this.style);\n break;\n\n case SelectorType.NO_VALUE:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkNoValue(data, this.input);\n }\n break;\n\n case SelectorType.NAN:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkNan(data, this.input);\n }\n break;\n\n case SelectorType.RANGE:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkRange(Tools.getIn(data, this.input), this.value);\n }\n break;\n\n case SelectorType.IS:\n if (StyleRule.inputExists(this.type, this.input)) {\n typePredicate = StyleRule.checkIs(data, this.input, this.value);\n }\n break;\n }\n return typePredicate && StyleRule.checkItemType(types, this.itemType);\n }\n\n /**\n * Return true or false on rule type 'any' if the current node match the rule\n */\n public static checkAny(data: LkNodeData | LkEdgeData, style: INodeStyle | IEdgeStyle): boolean {\n // return true if autoColor by a property and this property exists in node\n if (typeof style.color === 'object') {\n return Tools.isDefined(Tools.getIn(data, style.color.input));\n }\n return true;\n }\n\n /**\n * Return true or false on rule type 'noValue' if the current node match the rule\n */\n public static checkNoValue(data: LkNodeData | LkEdgeData, input: Array<string>): boolean {\n return !Tools.valueExists(Tools.getIn(data, input));\n }\n\n /**\n * Return true or false on rule type 'NaN' if the current node match the rule\n */\n public static checkNan(data: LkNodeData | LkEdgeData, input: Array<string>): boolean {\n return !Tools.isNumber(Tools.getIn(data, input));\n }\n\n /**\n * Return true if predicate is true for the node value\n *\n * @param value\n * @param comparator\n * @return {boolean}\n */\n public static checkRange(\n value: number,\n comparator: {[key in '<=' | '<' | '>' | '>=']?: number}\n ): boolean {\n return (\n (comparator['<='] === undefined || value <= comparator['<=']) &&\n (comparator['<'] === undefined || value < comparator['<']) &&\n (comparator['>'] === undefined || value > comparator['>']) &&\n (comparator['>='] === undefined || value >= comparator['>='])\n );\n }\n\n /**\n * Return true or false on rule type 'is' if the current node match the rule\n */\n public static checkIs(data: LkNodeData | LkEdgeData, input: Array<string>, value: any): boolean {\n if (!Tools.isDefined(input)) {\n return false;\n }\n const itemValue = Tools.getIn(data, input);\n let formattedValue = itemValue;\n if (\n Tools.isDefined(itemValue) &&\n typeof itemValue === 'object' &&\n (itemValue.type === 'date' || itemValue.type === 'datetime')\n ) {\n let timezone = itemValue.timezone;\n if (itemValue.timezone === 'Z') {\n timezone = '+00:00';\n }\n formattedValue = Tools.formatDate(\n itemValue.value,\n itemValue.type === 'datetime',\n Tools.timezoneToMilliseconds(timezone) / 1000\n );\n }\n return Tools.isEqual(formattedValue, value);\n }\n\n /**\n * Check that value of itemType match for the node\n */\n public static checkItemType(types: Array<string>, itemType: string | undefined): boolean {\n return StyleRule.matchCategory(types, itemType) || StyleRule.matchAny(itemType);\n }\n\n /**\n * Return true if itemType is defined and category exists in an array of categories\n *\n * @param {Array<string> | string} types\n * @param {string} itemType\n * @return {boolean}\n */\n public static matchCategory(\n types: Array<string> | string,\n itemType: string | undefined\n ): boolean {\n return (\n Tools.isDefined(itemType) &&\n (Array.isArray(types) ? types.includes(itemType) : Tools.isEqual(types, itemType))\n );\n }\n\n /**\n * Return true if itemType is undefined\n *\n * @param {string} itemType\n * @return {boolean}\n */\n public static matchAny(itemType: any | null): boolean {\n return itemType === undefined;\n }\n\n /**\n * Return the color for a type\n */\n public getTypeColor(type: string): string | undefined | null {\n let color;\n if (\n StyleRule.checkItemType([type], this.itemType) &&\n this.type === SelectorType.ANY &&\n !Tools.isDefined(this.input)\n ) {\n color = ItemAttributes.getTypeColor(this, type);\n }\n return color;\n }\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StyleRules = exports.SORTING_RULE = exports.StyleType = void 0;
|
|
3
4
|
const rest_client_1 = require("@linkurious/rest-client");
|
|
4
5
|
const tools_1 = require("../tools/tools");
|
|
5
6
|
const styleRule_1 = require("./styleRule");
|
|
@@ -24,7 +25,7 @@ class StyleRules {
|
|
|
24
25
|
* @return {Array<StyleRule>}
|
|
25
26
|
*/
|
|
26
27
|
get color() {
|
|
27
|
-
return tools_1.sortBy(StyleRules.getBy(StyleType.COLOR, this._rules), exports.SORTING_RULE);
|
|
28
|
+
return (0, tools_1.sortBy)(StyleRules.getBy(StyleType.COLOR, this._rules), exports.SORTING_RULE);
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Return an array of StyleRule with only 'icon' rules and sorted by specificity, itemType and index
|
|
@@ -32,7 +33,7 @@ class StyleRules {
|
|
|
32
33
|
* @return {Array<StyleRule>}
|
|
33
34
|
*/
|
|
34
35
|
get icon() {
|
|
35
|
-
return tools_1.sortBy([
|
|
36
|
+
return (0, tools_1.sortBy)([
|
|
36
37
|
...(StyleRules.getBy(StyleType.ICON, this._rules) || []),
|
|
37
38
|
...(StyleRules.getBy(StyleType.IMAGE, this._rules) || [])
|
|
38
39
|
], exports.SORTING_RULE);
|
|
@@ -43,7 +44,7 @@ class StyleRules {
|
|
|
43
44
|
* @return {Array<StyleRule>}
|
|
44
45
|
*/
|
|
45
46
|
get image() {
|
|
46
|
-
return tools_1.sortBy(StyleRules.getBy(StyleType.IMAGE, this._rules), exports.SORTING_RULE);
|
|
47
|
+
return (0, tools_1.sortBy)(StyleRules.getBy(StyleType.IMAGE, this._rules), exports.SORTING_RULE);
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Return an array of StyleRule with only 'shape' rules and sorted by specificity, itemType and index
|
|
@@ -51,7 +52,7 @@ class StyleRules {
|
|
|
51
52
|
* @return {Array<StyleRule>}
|
|
52
53
|
*/
|
|
53
54
|
get shape() {
|
|
54
|
-
return tools_1.sortBy(StyleRules.getBy(StyleType.SHAPE, this._rules), exports.SORTING_RULE);
|
|
55
|
+
return (0, tools_1.sortBy)(StyleRules.getBy(StyleType.SHAPE, this._rules), exports.SORTING_RULE);
|
|
55
56
|
}
|
|
56
57
|
/**
|
|
57
58
|
* Return an array of StyleRule with only 'size' rules and sorted by specificity, itemType and index
|
|
@@ -59,7 +60,7 @@ class StyleRules {
|
|
|
59
60
|
* @return {Array<StyleRule>}
|
|
60
61
|
*/
|
|
61
62
|
get size() {
|
|
62
|
-
return tools_1.sortBy(StyleRules.getBy(StyleType.SIZE, this._rules), exports.SORTING_RULE);
|
|
63
|
+
return (0, tools_1.sortBy)(StyleRules.getBy(StyleType.SIZE, this._rules), exports.SORTING_RULE);
|
|
63
64
|
}
|
|
64
65
|
/**
|
|
65
66
|
* Return an array of StyleRule with only 'width' rules and sorted by specificity, itemType and index
|
|
@@ -67,7 +68,7 @@ class StyleRules {
|
|
|
67
68
|
* @return {Array<StyleRule>}
|
|
68
69
|
*/
|
|
69
70
|
get width() {
|
|
70
|
-
return tools_1.sortBy(StyleRules.getBy(StyleType.WIDTH, this._rules), exports.SORTING_RULE);
|
|
71
|
+
return (0, tools_1.sortBy)(StyleRules.getBy(StyleType.WIDTH, this._rules), exports.SORTING_RULE);
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
73
74
|
* Return an object containing for each node style a sorted array of StyleRule
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleRules.js","sourceRoot":"","sources":["../../src/styles/styleRules.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport {\n IEdgeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n INodeStyle,\n SelectorType,\n IStyleIcon,\n IStyleImage,\n IStyles\n} from '@linkurious/rest-client';\n\nimport {sortBy, Tools} from '../tools/tools';\n\nimport {StyleRule} from './styleRule';\nimport {ItemAttributes} from './itemAttributes';\n\nexport enum StyleType {\n COLOR = 'color',\n ICON = 'icon',\n SIZE = 'size',\n IMAGE = 'image',\n SHAPE = 'shape',\n WIDTH = 'width'\n}\n\nexport interface Legend {\n [key: string]: Array<{label: string; value: string | IStyleIcon | IStyleImage | number}>;\n}\n\nexport const SORTING_RULE = ['specificity', 'itemType', 'index'];\n\nexport class StyleRules {\n private _rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>;\n\n constructor(rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n this._rules = rules;\n }\n\n /**\n * Return an array of StyleRule with only 'color' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get color(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.COLOR, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'icon' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get icon(): Array<StyleRule> {\n return sortBy(\n [\n ...(StyleRules.getBy(StyleType.ICON, this._rules) || []),\n ...(StyleRules.getBy(StyleType.IMAGE, this._rules) || [])\n ],\n SORTING_RULE\n );\n }\n\n /**\n * Return an array of StyleRule with only 'image' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get image(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.IMAGE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'shape' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get shape(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.SHAPE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'size' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get size(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.SIZE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'width' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get width(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.WIDTH, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an object containing for each node style a sorted array of StyleRule\n *\n * @return {any}\n */\n public get nodeRules(): {[key: string]: Array<StyleRule>} {\n return {\n color: this.color,\n icon: this.icon,\n image: this.image,\n shape: this.shape,\n size: this.size\n };\n }\n\n /**\n * Return an object containing for each edge style a sorted array of StyleRule\n *\n * @return {any}\n */\n public get edgeRules(): {[key: string]: Array<StyleRule>} {\n return {\n color: this.color,\n shape: this.shape,\n width: this.width\n };\n }\n\n /**\n * Generate a legend with an array of style rules and existing items in visualization\n */\n public generateLegend(itemsData: Array<LkNodeData | LkEdgeData>): Legend {\n const result: Legend = {};\n if (itemsData.length === 0) {\n return result;\n }\n\n if ('categories' in itemsData[0]) {\n Object.keys(this.nodeRules).forEach((style: string) => {\n result[style] = StyleRules.getLegendForStyle(style, this.nodeRules[style], itemsData);\n });\n } else {\n Object.keys(this.edgeRules).forEach((style: string) => {\n result[style] = StyleRules.getLegendForStyle(style, this.edgeRules[style], itemsData);\n });\n }\n return result;\n }\n\n /**\n * Return the legend for a specific style type (color, icon, image...)\n */\n public static getLegendForStyle(\n styleType: string,\n styles: Array<StyleRule>,\n itemsData: Array<LkNodeData | LkEdgeData>\n ): Array<{label: string; value: string | number | IStyleIcon | IStyleImage}> {\n const result: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}> = [];\n const data = itemsData.filter((i) => i);\n for (let i = 0; i < styles.length; i++) {\n const styleRule = new StyleRule(styles[i]);\n const ruleExistsInViz = data.some((itemData) => {\n return styleRule.canApplyTo(itemData);\n });\n if (ruleExistsInViz) {\n if (styleType === StyleType.COLOR && typeof styleRule.style.color === 'object') {\n StyleRules.addLegendAutoColors(data, styleRule, result);\n } else if (styleType === StyleType.ICON && 'image' in styleRule.style) {\n // style is a custom icon\n const label = Tools.isDefined(styleRule.input)\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${\n styleRule.input[1]\n } ${StyleRules.sanitizeValue(styleRule.type, styleRule.value)}`\n : `${StyleRules.getTypeLabel(styleRule.itemType)}`;\n const imageStyle = styleRule.style.image as IStyleImage;\n if (\n imageStyle.url &&\n typeof imageStyle.url === 'object' &&\n imageStyle.url.type === 'data'\n ) {\n // If the custom icon is read from a node property-value dynamically, then we\n // skip it from the legend, because it could be a different image for each node,\n // thus bloating the legend.\n } else {\n const value = styleRule.style.image;\n StyleRules.updateLegend(result, {label: label, value: value});\n }\n } else {\n const label = Tools.isDefined(styleRule.input)\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${\n styleRule.input[1]\n } ${StyleRules.sanitizeValue(styleRule.type, styleRule.value)}`\n : `${StyleRules.getTypeLabel(styleRule.itemType)}`;\n const value = styleRule.style[styleType];\n StyleRules.updateLegend(result, {label: label, value: value});\n }\n }\n }\n\n return result;\n }\n\n /**\n * Sanitize value for legend\n */\n public static sanitizeValue(styleType: SelectorType, value: any): string {\n switch (styleType) {\n case SelectorType.NO_VALUE:\n return 'is undefined';\n\n case SelectorType.NAN:\n return 'is not an number';\n\n case SelectorType.RANGE:\n let template = '';\n Object.keys(value).forEach((k, i) => {\n if (i > 0) {\n template += ' and ';\n }\n template += `${k} ${value[k]}`;\n });\n return template;\n }\n\n return typeof value === 'object' ? `= ${JSON.stringify(value)}` : `= ${value}`;\n }\n\n /**\n * Add items in legend for automatic coloring\n */\n public static addLegendAutoColors(\n itemsData: Array<LkNodeData | LkEdgeData>,\n styleRule: StyleRule,\n currentLegend: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}>\n ): void {\n const propertyKey: string = styleRule.style.color.input[1];\n itemsData.forEach((data) => {\n const propValue = Tools.getIn(data, styleRule.style.color.input);\n if (Array.isArray(propValue)) {\n propValue.forEach((value) => {\n const label = styleRule.style.color.input.includes('properties')\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${propertyKey} = ${value}`\n : `${StyleRules.getTypeLabel(value)}`;\n const color = ItemAttributes.autoColor(value, styleRule.style.color.ignoreCase);\n StyleRules.updateLegend(currentLegend, {label: label, value: color});\n });\n } else {\n const label = styleRule.style.color.input.includes('properties')\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${propertyKey} = ${propValue}`\n : `${StyleRules.getTypeLabel(propValue)}`;\n const value = ItemAttributes.autoColor(propValue, styleRule.style.color.ignoreCase);\n StyleRules.updateLegend(currentLegend, {label: label, value: value});\n }\n });\n }\n\n /**\n * Return the label of item type for a legend item\n */\n public static getTypeLabel(type: string | undefined | null): string {\n return type === undefined ? 'All' : type === null ? 'Others' : type;\n }\n\n /**\n * Check if a legend item already exists and overwrite it / push it\n */\n public static updateLegend(\n legend: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}>,\n {label, value}: {[key: string]: string}\n ): void {\n const indexOfLegendItem = legend.map((r) => r.label).indexOf(label);\n if (indexOfLegendItem < 0) {\n legend.push({label: label, value: value});\n } else {\n legend[indexOfLegendItem] = {label: label, value: value};\n }\n }\n\n /**\n * return an array of StyleRule, containing only the desired style\n */\n public static getBy(\n styleType: StyleType,\n rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>\n ): Array<StyleRule> {\n return rules\n .filter((style: IStyleRule<INodeStyle | IEdgeStyle>) => {\n switch (styleType) {\n case StyleType.COLOR:\n return style.style.color !== undefined;\n\n case StyleType.ICON:\n return 'icon' in style.style && style.style.icon !== undefined;\n\n case StyleType.IMAGE:\n return 'image' in style.style && style.style.image !== undefined;\n\n case StyleType.SHAPE:\n return style.style.shape !== undefined;\n\n case StyleType.SIZE:\n return 'size' in style.style && style.style.size !== undefined;\n\n case StyleType.WIDTH:\n return 'width' in style.style && style.style.width !== undefined;\n }\n })\n .map((style: IStyleRule<INodeStyle | IEdgeStyle>) => StyleRules.getRule(style, styleType));\n }\n\n /**\n * From a RawStyle, generate a StyleRule of a specific style\n */\n public static getRule(\n rawRule: IStyleRule<INodeStyle | IEdgeStyle>,\n styleType: StyleType\n ): StyleRule {\n const rule = Tools.clone(rawRule);\n rule.style = {[styleType]: rule.style[styleType]};\n return new StyleRule(rule);\n }\n\n /**\n * Check for non unique index in styles rules and update them if exists\n */\n public static sanitizeStylesIndex(styles: IStyles): IStyles {\n const seenIndex: Array<number> = [];\n const sanitizedStyles: IStyles = Tools.clone(styles);\n let maxIndex =\n Math.max(...[...styles.node.map((s) => s.index), ...styles.edge.map((s) => s.index)]) + 1;\n sanitizedStyles.node = sanitizedStyles.node.map((style) => {\n if (seenIndex.includes(style.index)) {\n style.index = maxIndex;\n maxIndex++;\n } else {\n seenIndex.push(style.index);\n }\n return style;\n });\n sanitizedStyles.edge = sanitizedStyles.edge.map((style) => {\n if (seenIndex.includes(style.index)) {\n style.index = maxIndex;\n maxIndex++;\n } else {\n seenIndex.push(style.index);\n }\n return style;\n });\n return sanitizedStyles;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"styleRules.js","sourceRoot":"","sources":["../../src/styles/styleRules.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport {\n IEdgeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n INodeStyle,\n SelectorType,\n IStyleIcon,\n IStyleImage,\n IStyles\n} from '@linkurious/rest-client';\n\nimport {sortBy, Tools} from '../tools/tools';\n\nimport {StyleRule} from './styleRule';\nimport {ItemAttributes} from './itemAttributes';\n\nexport enum StyleType {\n COLOR = 'color',\n ICON = 'icon',\n SIZE = 'size',\n IMAGE = 'image',\n SHAPE = 'shape',\n WIDTH = 'width'\n}\n\nexport interface Legend {\n [key: string]: Array<{label: string; value: string | IStyleIcon | IStyleImage | number}>;\n}\n\nexport const SORTING_RULE = ['specificity', 'itemType', 'index'];\n\nexport class StyleRules {\n private _rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>;\n\n constructor(rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n this._rules = rules;\n }\n\n /**\n * Return an array of StyleRule with only 'color' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get color(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.COLOR, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'icon' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get icon(): Array<StyleRule> {\n return sortBy(\n [\n ...(StyleRules.getBy(StyleType.ICON, this._rules) || []),\n ...(StyleRules.getBy(StyleType.IMAGE, this._rules) || [])\n ],\n SORTING_RULE\n );\n }\n\n /**\n * Return an array of StyleRule with only 'image' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get image(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.IMAGE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'shape' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get shape(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.SHAPE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'size' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get size(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.SIZE, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an array of StyleRule with only 'width' rules and sorted by specificity, itemType and index\n *\n * @return {Array<StyleRule>}\n */\n public get width(): Array<StyleRule> {\n return sortBy(StyleRules.getBy(StyleType.WIDTH, this._rules), SORTING_RULE);\n }\n\n /**\n * Return an object containing for each node style a sorted array of StyleRule\n *\n * @return {any}\n */\n public get nodeRules(): {[key: string]: Array<StyleRule>} {\n return {\n color: this.color,\n icon: this.icon,\n image: this.image,\n shape: this.shape,\n size: this.size\n };\n }\n\n /**\n * Return an object containing for each edge style a sorted array of StyleRule\n *\n * @return {any}\n */\n public get edgeRules(): {[key: string]: Array<StyleRule>} {\n return {\n color: this.color,\n shape: this.shape,\n width: this.width\n };\n }\n\n /**\n * Generate a legend with an array of style rules and existing items in visualization\n */\n public generateLegend(itemsData: Array<LkNodeData | LkEdgeData>): Legend {\n const result: Legend = {};\n if (itemsData.length === 0) {\n return result;\n }\n\n if ('categories' in itemsData[0]) {\n Object.keys(this.nodeRules).forEach((style: string) => {\n result[style] = StyleRules.getLegendForStyle(style, this.nodeRules[style], itemsData);\n });\n } else {\n Object.keys(this.edgeRules).forEach((style: string) => {\n result[style] = StyleRules.getLegendForStyle(style, this.edgeRules[style], itemsData);\n });\n }\n return result;\n }\n\n /**\n * Return the legend for a specific style type (color, icon, image...)\n */\n public static getLegendForStyle(\n styleType: string,\n styles: Array<StyleRule>,\n itemsData: Array<LkNodeData | LkEdgeData>\n ): Array<{label: string; value: string | number | IStyleIcon | IStyleImage}> {\n const result: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}> = [];\n const data = itemsData.filter((i) => i);\n for (let i = 0; i < styles.length; i++) {\n const styleRule = new StyleRule(styles[i]);\n const ruleExistsInViz = data.some((itemData) => {\n return styleRule.canApplyTo(itemData);\n });\n if (ruleExistsInViz) {\n if (styleType === StyleType.COLOR && typeof styleRule.style.color === 'object') {\n StyleRules.addLegendAutoColors(data, styleRule, result);\n } else if (styleType === StyleType.ICON && 'image' in styleRule.style) {\n // style is a custom icon\n const label = Tools.isDefined(styleRule.input)\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${\n styleRule.input[1]\n } ${StyleRules.sanitizeValue(styleRule.type, styleRule.value)}`\n : `${StyleRules.getTypeLabel(styleRule.itemType)}`;\n const imageStyle = styleRule.style.image as IStyleImage;\n if (\n imageStyle.url &&\n typeof imageStyle.url === 'object' &&\n imageStyle.url.type === 'data'\n ) {\n // If the custom icon is read from a node property-value dynamically, then we\n // skip it from the legend, because it could be a different image for each node,\n // thus bloating the legend.\n } else {\n const value = styleRule.style.image;\n StyleRules.updateLegend(result, {label: label, value: value});\n }\n } else {\n const label = Tools.isDefined(styleRule.input)\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${\n styleRule.input[1]\n } ${StyleRules.sanitizeValue(styleRule.type, styleRule.value)}`\n : `${StyleRules.getTypeLabel(styleRule.itemType)}`;\n const value = styleRule.style[styleType];\n StyleRules.updateLegend(result, {label: label, value: value});\n }\n }\n }\n\n return result;\n }\n\n /**\n * Sanitize value for legend\n */\n public static sanitizeValue(styleType: SelectorType, value: any): string {\n switch (styleType) {\n case SelectorType.NO_VALUE:\n return 'is undefined';\n\n case SelectorType.NAN:\n return 'is not an number';\n\n case SelectorType.RANGE:\n let template = '';\n Object.keys(value).forEach((k, i) => {\n if (i > 0) {\n template += ' and ';\n }\n template += `${k} ${value[k]}`;\n });\n return template;\n }\n\n return typeof value === 'object' ? `= ${JSON.stringify(value)}` : `= ${value}`;\n }\n\n /**\n * Add items in legend for automatic coloring\n */\n public static addLegendAutoColors(\n itemsData: Array<LkNodeData | LkEdgeData>,\n styleRule: StyleRule,\n currentLegend: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}>\n ): void {\n const propertyKey: string = styleRule.style.color.input[1];\n itemsData.forEach((data) => {\n const propValue = Tools.getIn(data, styleRule.style.color.input);\n if (Array.isArray(propValue)) {\n propValue.forEach((value) => {\n const label = styleRule.style.color.input.includes('properties')\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${propertyKey} = ${value}`\n : `${StyleRules.getTypeLabel(value)}`;\n const color = ItemAttributes.autoColor(value, styleRule.style.color.ignoreCase);\n StyleRules.updateLegend(currentLegend, {label: label, value: color});\n });\n } else {\n const label = styleRule.style.color.input.includes('properties')\n ? `${StyleRules.getTypeLabel(styleRule.itemType)}.${propertyKey} = ${propValue}`\n : `${StyleRules.getTypeLabel(propValue)}`;\n const value = ItemAttributes.autoColor(propValue, styleRule.style.color.ignoreCase);\n StyleRules.updateLegend(currentLegend, {label: label, value: value});\n }\n });\n }\n\n /**\n * Return the label of item type for a legend item\n */\n public static getTypeLabel(type: string | undefined | null): string {\n return type === undefined ? 'All' : type === null ? 'Others' : type;\n }\n\n /**\n * Check if a legend item already exists and overwrite it / push it\n */\n public static updateLegend(\n legend: Array<{label: string; value: string | number | IStyleIcon | IStyleImage}>,\n {label, value}: {[key: string]: string}\n ): void {\n const indexOfLegendItem = legend.map((r) => r.label).indexOf(label);\n if (indexOfLegendItem < 0) {\n legend.push({label: label, value: value});\n } else {\n legend[indexOfLegendItem] = {label: label, value: value};\n }\n }\n\n /**\n * return an array of StyleRule, containing only the desired style\n */\n public static getBy(\n styleType: StyleType,\n rules: Array<IStyleRule<INodeStyle | IEdgeStyle>>\n ): Array<StyleRule> {\n return rules\n .filter((style: IStyleRule<INodeStyle | IEdgeStyle>) => {\n switch (styleType) {\n case StyleType.COLOR:\n return style.style.color !== undefined;\n\n case StyleType.ICON:\n return 'icon' in style.style && style.style.icon !== undefined;\n\n case StyleType.IMAGE:\n return 'image' in style.style && style.style.image !== undefined;\n\n case StyleType.SHAPE:\n return style.style.shape !== undefined;\n\n case StyleType.SIZE:\n return 'size' in style.style && style.style.size !== undefined;\n\n case StyleType.WIDTH:\n return 'width' in style.style && style.style.width !== undefined;\n }\n })\n .map((style: IStyleRule<INodeStyle | IEdgeStyle>) => StyleRules.getRule(style, styleType));\n }\n\n /**\n * From a RawStyle, generate a StyleRule of a specific style\n */\n public static getRule(\n rawRule: IStyleRule<INodeStyle | IEdgeStyle>,\n styleType: StyleType\n ): StyleRule {\n const rule = Tools.clone(rawRule);\n rule.style = {[styleType]: rule.style[styleType]};\n return new StyleRule(rule);\n }\n\n /**\n * Check for non unique index in styles rules and update them if exists\n */\n public static sanitizeStylesIndex(styles: IStyles): IStyles {\n const seenIndex: Array<number> = [];\n const sanitizedStyles: IStyles = Tools.clone(styles);\n let maxIndex =\n Math.max(...[...styles.node.map((s) => s.index), ...styles.edge.map((s) => s.index)]) + 1;\n sanitizedStyles.node = sanitizedStyles.node.map((style) => {\n if (seenIndex.includes(style.index)) {\n style.index = maxIndex;\n maxIndex++;\n } else {\n seenIndex.push(style.index);\n }\n return style;\n });\n sanitizedStyles.edge = sanitizedStyles.edge.map((style) => {\n if (seenIndex.includes(style.index)) {\n style.index = maxIndex;\n maxIndex++;\n } else {\n seenIndex.push(style.index);\n }\n return style;\n });\n return sanitizedStyles;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorPalette.js","sourceRoot":"","sources":["../../src/tools/colorPalette.ts"],"names":[],"mappings":"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","sourcesContent":["import {GenericObject} from '@linkurious/rest-client';\n\nexport const HTML_COLORS: GenericObject<{hex: string; rgb: string}> = {\n lightsalmon: {hex: '#FFA07A', rgb: 'rbg(255,160,122)'},\n salmon: {hex: '#FA8072', rgb: 'rgb(250,128,114)'},\n darksalmon: {hex: '#E9967A', rgb: 'rgb(233,150,122)'},\n lightcoral: {hex: '#F08080', rgb: 'rgb(240,128,128)'},\n indianred: {hex: '#CD5C5C', rgb: 'rgb(205,92,92)'},\n crimson: {hex: '#DC143C', rgb: 'rgb(220,20,60)'},\n firebrick: {hex: '#B22222', rgb: 'rgb(178,34,34)'},\n red: {hex: '#FF0000', rgb: 'rgb(255,0,0)'},\n darkred: {hex: '#8B0000', rgb: 'rgb(139,0,0)'},\n coral: {hex: '#FF7F50', rgb: 'rgb(255,127,80)'},\n tomato: {hex: '#FF6347', rgb: 'rgb(255,99,71)'},\n orangered: {hex: '#FF4500', rgb: 'rgb(255,69,0)'},\n gold: {hex: '#FFD700', rgb: 'rgb(255,215,0)'},\n orange: {hex: '#FFA500', rgb: 'rgb(255,165,0)'},\n darkorange: {hex: '#FF8C00', rgb: 'rgb(255,140,0)'},\n lightyellow: {hex: '#FFFFE0', rgb: 'rgb(255,255,224)'},\n lemonchiffon: {hex: '#FFFACD', rgb: 'rgb(255,250,205)'},\n lightgoldenrodyellow: {hex: '#FAFAD2', rgb: 'rgb(250,250,210)'},\n papayawhip: {hex: '#FFEFD5', rgb: 'rgb(255,239,213)'},\n moccasin: {hex: '#FFE4B5', rgb: 'rgb(255,228,181)'},\n peachpuff: {hex: '#FFDAB9', rgb: 'rgb(255,218,185)'},\n palegoldenrod: {hex: '#EEE8AA', rgb: 'rgb(238,232,170)'},\n khaki: {hex: '#F0E68C', rgb: 'rgb(240,230,140)'},\n darkkhaki: {hex: '#BDB76B', rgb: 'rgb(189,183,107)'},\n yellow: {hex: '#FFFF00', rgb: 'rgb(255,255,0)'},\n lawngreen: {hex: '#7CFC00', rgb: 'rgb(124,252,0)'},\n chartreuse: {hex: '#7FFF00', rgb: 'rgb(127,255,0)'},\n limegreen: {hex: '#32CD32', rgb: 'rgb(50,205,50)'},\n lime: {hex: '#00FF00', rgb: 'rgb(0.255.0)'},\n forestgreen: {hex: '#228B22', rgb: 'rgb(34,139,34)'},\n green: {hex: '#008000', rgb: 'rgb(0,128,0)'},\n darkgreen: {hex: '#006400', rgb: 'rgb(0,100,0)'},\n greenyellow: {hex: '#ADFF2F', rgb: 'rgb(173,255,47)'},\n yellowgreen: {hex: '#9ACD32', rgb: 'rgb(154,205,50)'},\n springgreen: {hex: '#00FF7F', rgb: 'rgb(0,255,127)'},\n mediumspringgreen: {hex: '#00FA9A', rgb: 'rgb(0,250,154)'},\n lightgreen: {hex: '#90EE90', rgb: 'rgb(144,238,144)'},\n palegreen: {hex: '#98FB98', rgb: 'rgb(152,251,152)'},\n darkseagreen: {hex: '#8FBC8F', rgb: 'rgb(143,188,143)'},\n mediumseagreen: {hex: '#3CB371', rgb: 'rgb(60,179,113)'},\n seagreen: {hex: '#2E8B57', rgb: 'rgb(46,139,87)'},\n olive: {hex: '#808000', rgb: 'rgb(128,128,0)'},\n darkolivegreen: {hex: '#556B2F', rgb: 'rgb(85,107,47)'},\n olivedrab: {hex: '#6B8E23', rgb: 'rgb(107,142,35)'},\n lightcyan: {hex: '#E0FFFF', rgb: 'rgb(224,255,255)'},\n cyan: {hex: '#00FFFF', rgb: 'rgb(0,255,255)'},\n aqua: {hex: '#00FFFF', rgb: 'rgb(0,255,255)'},\n aquamarine: {hex: '#7FFFD4', rgb: 'rgb(127,255,212)'},\n mediumaquamarine: {hex: '#66CDAA', rgb: 'rgb(102,205,170)'},\n paleturquoise: {hex: '#AFEEEE', rgb: 'rgb(175,238,238)'},\n turquoise: {hex: '#40E0D0', rgb: 'rgb(64,224,208)'},\n mediumturquoise: {hex: '#48D1CC', rgb: 'rgb(72,209,204)'},\n darkturquoise: {hex: '#00CED1', rgb: 'rgb(0,206,209)'},\n lightseagreen: {hex: '#20B2AA', rgb: 'rgb(32,178,170)'},\n cadetblue: {hex: '#5F9EA0', rgb: 'rgb(95,158,160)'},\n darkcyan: {hex: '#008B8B', rgb: 'rgb(0,139,139)'},\n teal: {hex: '#008080', rgb: 'rgb(0,128,128)'},\n powderblue: {hex: '#B0E0E6', rgb: 'rgb(176,224,230)'},\n lightblue: {hex: '#ADD8E6', rgb: 'rgb(173,216,230)'},\n lightskyblue: {hex: '#87CEFA', rgb: 'rgb(135,206,250)'},\n skyblue: {hex: '#87CEEB', rgb: 'rgb(135,206,235)'},\n deepskyblue: {hex: '#00BFFF', rgb: 'rgb(0,191,255)'},\n lightsteelblue: {hex: '#B0C4DE', rgb: 'rgb(176,196,222)'},\n dodgerblue: {hex: '#1E90FF', rgb: 'rgb(30,144,255)'},\n cornflowerblue: {hex: '#6495ED', rgb: 'rgb(100,149,237)'},\n steelblue: {hex: '#4682B4', rgb: 'rgb(70,130,180)'},\n royalblue: {hex: '#4169E1', rgb: 'rgb(65,105,225)'},\n blue: {hex: '#0000FF', rgb: 'rgb(0,0,255)'},\n mediumblue: {hex: '#0000CD', rgb: 'rgb(0,0,205)'},\n darkblue: {hex: '#00008B', rgb: 'rgb(0,0,139)'},\n navy: {hex: '#000080', rgb: 'rgb(0,0,128)'},\n midnightblue: {hex: '#191970', rgb: 'rgb(25,25,112)'},\n mediumslateblue: {hex: '#7B68EE', rgb: 'rgb(123,104,238)'},\n slateblue: {hex: '#6A5ACD', rgb: 'rgb(106,90,205)'},\n darkslateblue: {hex: '#483D8B', rgb: 'rgb(72,61,139)'},\n lavender: {hex: '#E6E6FA', rgb: 'rgb(230,230,250)'},\n thistle: {hex: '#D8BFD8', rgb: 'rgb(216,191,216)'},\n plum: {hex: '#DDA0DD', rgb: 'rgb(221,160,221)'},\n violet: {hex: '#EE82EE', rgb: 'rgb(238,130,238)'},\n orchid: {hex: '#DA70D6', rgb: 'rgb(218,112,214)'},\n fuchsia: {hex: '#FF00FF', rgb: 'rgb(255,0,255)'},\n magenta: {hex: '#FF00FF', rgb: 'rgb(255,0,255)'},\n mediumorchid: {hex: '#BA55D3', rgb: 'rgb(186,85,211)'},\n mediumpurple: {hex: '#9370DB', rgb: 'rgb(147,112,219)'},\n blueviolet: {hex: '#8A2BE2', rgb: 'rgb(138,43,226)'},\n darkviolet: {hex: '#9400D3', rgb: 'rgb(148,0,211)'},\n darkorchid: {hex: '#9932CC', rgb: 'rgb(153,50,204)'},\n darkmagenta: {hex: '#8B008B', rgb: 'rgb(139,0,139)'},\n purple: {hex: '#800080', rgb: 'rgb(128,0,128)'},\n indigo: {hex: '#4B0082', rgb: 'rgb(75,0,130)'},\n pink: {hex: '#FFC0CB', rgb: 'rgb(255,192,203)'},\n lightpink: {hex: '#FFB6C1', rgb: 'rgb(255,182,193)'},\n hotpink: {hex: '#FF69B4', rgb: 'rgb(255,105,180)'},\n deeppink: {hex: '#FF1493', rgb: 'rgb(255,20,147)'},\n palevioletred: {hex: '#DB7093', rgb: 'rgb(219,112,147)'},\n mediumvioletred: {hex: '#C71585', rgb: 'rgb(199,21,133)'},\n white: {hex: '#FFFFFF', rgb: 'rgb(255,255,255)'},\n snow: {hex: '#FFFAFA', rgb: 'rgb(255,250,250)'},\n honeydew: {hex: '#F0FFF0', rgb: 'rgb(240,255,240)'},\n mintcream: {hex: '#F5FFFA', rgb: 'rgb(245,255,250)'},\n azure: {hex: '#F0FFFF', rgb: 'rgb(240,255,255)'},\n aliceblue: {hex: '#F0F8FF', rgb: 'rgb(240,248,255)'},\n ghostwhite: {hex: '#F8F8FF', rgb: 'rgb(248,248,255)'},\n whitesmoke: {hex: '#F5F5F5', rgb: 'rgb(245,245,245)'},\n seashell: {hex: '#FFF5EE', rgb: 'rgb(255,245,238)'},\n beige: {hex: '#F5F5DC', rgb: 'rgb(245,245,220)'},\n oldlace: {hex: '#FDF5E6', rgb: 'rgb(253,245,230)'},\n floralwhite: {hex: '#FFFAF0', rgb: 'rgb(255,250,240)'},\n ivory: {hex: '#FFFFF0', rgb: 'rgb(255,255,240)'},\n antiquewhite: {hex: '#FAEBD7', rgb: 'rgb(250,235,215)'},\n linen: {hex: '#FAF0E6', rgb: 'rgb(250,240,230)'},\n lavenderblush: {hex: '#FFF0F5', rgb: 'rgb(255,240,245)'},\n mistyrose: {hex: '#FFE4E1', rgb: 'rgb(255,228,225)'},\n gainsboro: {hex: '#DCDCDC', rgb: 'rgb(220,220,220)'},\n lightgray: {hex: '#D3D3D3', rgb: 'rgb(211,211,211)'},\n silver: {hex: '#C0C0C0', rgb: 'rgb(192,192,192)'},\n darkgray: {hex: '#A9A9A9', rgb: 'rgb(169,169,169)'},\n gray: {hex: '#808080', rgb: 'rgb(128,128,128)'},\n dimgray: {hex: '#696969', rgb: 'rgb(105,105,105)'},\n lightslategray: {hex: '#778899', rgb: 'rgb(119,136,153)'},\n slategray: {hex: '#708090', rgb: 'rgb(112,128,144)'},\n darkslategray: {hex: '#2F4F4F', rgb: 'rgb(47,79,79)'},\n black: {hex: '#000000', rgb: 'rgb(0,0,0)'},\n cornsilk: {hex: '#FFF8DC', rgb: 'rgb(255,248,220)'},\n blanchedalmond: {hex: '#FFEBCD', rgb: 'rgb(255,235,205)'},\n bisque: {hex: '#FFE4C4', rgb: 'rgb(255,228,196)'},\n navajowhite: {hex: '#FFDEAD', rgb: 'rgb(255,222,173)'},\n wheat: {hex: '#F5DEB3', rgb: 'rgb(245,222,179)'},\n burlywood: {hex: '#DEB887', rgb: 'rgb(222,184,135)'},\n tan: {hex: '#D2B48C', rgb: 'rgb(210,180,140)'},\n rosybrown: {hex: '#BC8F8F', rgb: 'rgb(188,143,143)'},\n sandybrown: {hex: '#F4A460', rgb: 'rgb(244,164,96)'},\n goldenrod: {hex: '#DAA520', rgb: 'rgb(218,165,32)'},\n peru: {hex: '#CD853F', rgb: 'rgb(205,133,63)'},\n chocolate: {hex: '#D2691E', rgb: 'rgb(210,105,30)'},\n saddlebrown: {hex: '#8B4513', rgb: 'rgb(139,69,19)'},\n sienna: {hex: '#A0522D', rgb: 'rgb(160,82,45)'},\n brown: {hex: '#A52A2A', rgb: 'rgb(165,42,42)'},\n maroon: {hex: '#800000', rgb: 'rgb(128,0,0)'}\n};\n"]}
|
|
1
|
+
{"version":3,"file":"colorPalette.js","sourceRoot":"","sources":["../../src/tools/colorPalette.ts"],"names":[],"mappings":"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","sourcesContent":["import {GenericObject} from '@linkurious/rest-client';\n\nexport const HTML_COLORS: GenericObject<{hex: string; rgb: string}> = {\n lightsalmon: {hex: '#FFA07A', rgb: 'rbg(255,160,122)'},\n salmon: {hex: '#FA8072', rgb: 'rgb(250,128,114)'},\n darksalmon: {hex: '#E9967A', rgb: 'rgb(233,150,122)'},\n lightcoral: {hex: '#F08080', rgb: 'rgb(240,128,128)'},\n indianred: {hex: '#CD5C5C', rgb: 'rgb(205,92,92)'},\n crimson: {hex: '#DC143C', rgb: 'rgb(220,20,60)'},\n firebrick: {hex: '#B22222', rgb: 'rgb(178,34,34)'},\n red: {hex: '#FF0000', rgb: 'rgb(255,0,0)'},\n darkred: {hex: '#8B0000', rgb: 'rgb(139,0,0)'},\n coral: {hex: '#FF7F50', rgb: 'rgb(255,127,80)'},\n tomato: {hex: '#FF6347', rgb: 'rgb(255,99,71)'},\n orangered: {hex: '#FF4500', rgb: 'rgb(255,69,0)'},\n gold: {hex: '#FFD700', rgb: 'rgb(255,215,0)'},\n orange: {hex: '#FFA500', rgb: 'rgb(255,165,0)'},\n darkorange: {hex: '#FF8C00', rgb: 'rgb(255,140,0)'},\n lightyellow: {hex: '#FFFFE0', rgb: 'rgb(255,255,224)'},\n lemonchiffon: {hex: '#FFFACD', rgb: 'rgb(255,250,205)'},\n lightgoldenrodyellow: {hex: '#FAFAD2', rgb: 'rgb(250,250,210)'},\n papayawhip: {hex: '#FFEFD5', rgb: 'rgb(255,239,213)'},\n moccasin: {hex: '#FFE4B5', rgb: 'rgb(255,228,181)'},\n peachpuff: {hex: '#FFDAB9', rgb: 'rgb(255,218,185)'},\n palegoldenrod: {hex: '#EEE8AA', rgb: 'rgb(238,232,170)'},\n khaki: {hex: '#F0E68C', rgb: 'rgb(240,230,140)'},\n darkkhaki: {hex: '#BDB76B', rgb: 'rgb(189,183,107)'},\n yellow: {hex: '#FFFF00', rgb: 'rgb(255,255,0)'},\n lawngreen: {hex: '#7CFC00', rgb: 'rgb(124,252,0)'},\n chartreuse: {hex: '#7FFF00', rgb: 'rgb(127,255,0)'},\n limegreen: {hex: '#32CD32', rgb: 'rgb(50,205,50)'},\n lime: {hex: '#00FF00', rgb: 'rgb(0.255.0)'},\n forestgreen: {hex: '#228B22', rgb: 'rgb(34,139,34)'},\n green: {hex: '#008000', rgb: 'rgb(0,128,0)'},\n darkgreen: {hex: '#006400', rgb: 'rgb(0,100,0)'},\n greenyellow: {hex: '#ADFF2F', rgb: 'rgb(173,255,47)'},\n yellowgreen: {hex: '#9ACD32', rgb: 'rgb(154,205,50)'},\n springgreen: {hex: '#00FF7F', rgb: 'rgb(0,255,127)'},\n mediumspringgreen: {hex: '#00FA9A', rgb: 'rgb(0,250,154)'},\n lightgreen: {hex: '#90EE90', rgb: 'rgb(144,238,144)'},\n palegreen: {hex: '#98FB98', rgb: 'rgb(152,251,152)'},\n darkseagreen: {hex: '#8FBC8F', rgb: 'rgb(143,188,143)'},\n mediumseagreen: {hex: '#3CB371', rgb: 'rgb(60,179,113)'},\n seagreen: {hex: '#2E8B57', rgb: 'rgb(46,139,87)'},\n olive: {hex: '#808000', rgb: 'rgb(128,128,0)'},\n darkolivegreen: {hex: '#556B2F', rgb: 'rgb(85,107,47)'},\n olivedrab: {hex: '#6B8E23', rgb: 'rgb(107,142,35)'},\n lightcyan: {hex: '#E0FFFF', rgb: 'rgb(224,255,255)'},\n cyan: {hex: '#00FFFF', rgb: 'rgb(0,255,255)'},\n aqua: {hex: '#00FFFF', rgb: 'rgb(0,255,255)'},\n aquamarine: {hex: '#7FFFD4', rgb: 'rgb(127,255,212)'},\n mediumaquamarine: {hex: '#66CDAA', rgb: 'rgb(102,205,170)'},\n paleturquoise: {hex: '#AFEEEE', rgb: 'rgb(175,238,238)'},\n turquoise: {hex: '#40E0D0', rgb: 'rgb(64,224,208)'},\n mediumturquoise: {hex: '#48D1CC', rgb: 'rgb(72,209,204)'},\n darkturquoise: {hex: '#00CED1', rgb: 'rgb(0,206,209)'},\n lightseagreen: {hex: '#20B2AA', rgb: 'rgb(32,178,170)'},\n cadetblue: {hex: '#5F9EA0', rgb: 'rgb(95,158,160)'},\n darkcyan: {hex: '#008B8B', rgb: 'rgb(0,139,139)'},\n teal: {hex: '#008080', rgb: 'rgb(0,128,128)'},\n powderblue: {hex: '#B0E0E6', rgb: 'rgb(176,224,230)'},\n lightblue: {hex: '#ADD8E6', rgb: 'rgb(173,216,230)'},\n lightskyblue: {hex: '#87CEFA', rgb: 'rgb(135,206,250)'},\n skyblue: {hex: '#87CEEB', rgb: 'rgb(135,206,235)'},\n deepskyblue: {hex: '#00BFFF', rgb: 'rgb(0,191,255)'},\n lightsteelblue: {hex: '#B0C4DE', rgb: 'rgb(176,196,222)'},\n dodgerblue: {hex: '#1E90FF', rgb: 'rgb(30,144,255)'},\n cornflowerblue: {hex: '#6495ED', rgb: 'rgb(100,149,237)'},\n steelblue: {hex: '#4682B4', rgb: 'rgb(70,130,180)'},\n royalblue: {hex: '#4169E1', rgb: 'rgb(65,105,225)'},\n blue: {hex: '#0000FF', rgb: 'rgb(0,0,255)'},\n mediumblue: {hex: '#0000CD', rgb: 'rgb(0,0,205)'},\n darkblue: {hex: '#00008B', rgb: 'rgb(0,0,139)'},\n navy: {hex: '#000080', rgb: 'rgb(0,0,128)'},\n midnightblue: {hex: '#191970', rgb: 'rgb(25,25,112)'},\n mediumslateblue: {hex: '#7B68EE', rgb: 'rgb(123,104,238)'},\n slateblue: {hex: '#6A5ACD', rgb: 'rgb(106,90,205)'},\n darkslateblue: {hex: '#483D8B', rgb: 'rgb(72,61,139)'},\n lavender: {hex: '#E6E6FA', rgb: 'rgb(230,230,250)'},\n thistle: {hex: '#D8BFD8', rgb: 'rgb(216,191,216)'},\n plum: {hex: '#DDA0DD', rgb: 'rgb(221,160,221)'},\n violet: {hex: '#EE82EE', rgb: 'rgb(238,130,238)'},\n orchid: {hex: '#DA70D6', rgb: 'rgb(218,112,214)'},\n fuchsia: {hex: '#FF00FF', rgb: 'rgb(255,0,255)'},\n magenta: {hex: '#FF00FF', rgb: 'rgb(255,0,255)'},\n mediumorchid: {hex: '#BA55D3', rgb: 'rgb(186,85,211)'},\n mediumpurple: {hex: '#9370DB', rgb: 'rgb(147,112,219)'},\n blueviolet: {hex: '#8A2BE2', rgb: 'rgb(138,43,226)'},\n darkviolet: {hex: '#9400D3', rgb: 'rgb(148,0,211)'},\n darkorchid: {hex: '#9932CC', rgb: 'rgb(153,50,204)'},\n darkmagenta: {hex: '#8B008B', rgb: 'rgb(139,0,139)'},\n purple: {hex: '#800080', rgb: 'rgb(128,0,128)'},\n indigo: {hex: '#4B0082', rgb: 'rgb(75,0,130)'},\n pink: {hex: '#FFC0CB', rgb: 'rgb(255,192,203)'},\n lightpink: {hex: '#FFB6C1', rgb: 'rgb(255,182,193)'},\n hotpink: {hex: '#FF69B4', rgb: 'rgb(255,105,180)'},\n deeppink: {hex: '#FF1493', rgb: 'rgb(255,20,147)'},\n palevioletred: {hex: '#DB7093', rgb: 'rgb(219,112,147)'},\n mediumvioletred: {hex: '#C71585', rgb: 'rgb(199,21,133)'},\n white: {hex: '#FFFFFF', rgb: 'rgb(255,255,255)'},\n snow: {hex: '#FFFAFA', rgb: 'rgb(255,250,250)'},\n honeydew: {hex: '#F0FFF0', rgb: 'rgb(240,255,240)'},\n mintcream: {hex: '#F5FFFA', rgb: 'rgb(245,255,250)'},\n azure: {hex: '#F0FFFF', rgb: 'rgb(240,255,255)'},\n aliceblue: {hex: '#F0F8FF', rgb: 'rgb(240,248,255)'},\n ghostwhite: {hex: '#F8F8FF', rgb: 'rgb(248,248,255)'},\n whitesmoke: {hex: '#F5F5F5', rgb: 'rgb(245,245,245)'},\n seashell: {hex: '#FFF5EE', rgb: 'rgb(255,245,238)'},\n beige: {hex: '#F5F5DC', rgb: 'rgb(245,245,220)'},\n oldlace: {hex: '#FDF5E6', rgb: 'rgb(253,245,230)'},\n floralwhite: {hex: '#FFFAF0', rgb: 'rgb(255,250,240)'},\n ivory: {hex: '#FFFFF0', rgb: 'rgb(255,255,240)'},\n antiquewhite: {hex: '#FAEBD7', rgb: 'rgb(250,235,215)'},\n linen: {hex: '#FAF0E6', rgb: 'rgb(250,240,230)'},\n lavenderblush: {hex: '#FFF0F5', rgb: 'rgb(255,240,245)'},\n mistyrose: {hex: '#FFE4E1', rgb: 'rgb(255,228,225)'},\n gainsboro: {hex: '#DCDCDC', rgb: 'rgb(220,220,220)'},\n lightgray: {hex: '#D3D3D3', rgb: 'rgb(211,211,211)'},\n silver: {hex: '#C0C0C0', rgb: 'rgb(192,192,192)'},\n darkgray: {hex: '#A9A9A9', rgb: 'rgb(169,169,169)'},\n gray: {hex: '#808080', rgb: 'rgb(128,128,128)'},\n dimgray: {hex: '#696969', rgb: 'rgb(105,105,105)'},\n lightslategray: {hex: '#778899', rgb: 'rgb(119,136,153)'},\n slategray: {hex: '#708090', rgb: 'rgb(112,128,144)'},\n darkslategray: {hex: '#2F4F4F', rgb: 'rgb(47,79,79)'},\n black: {hex: '#000000', rgb: 'rgb(0,0,0)'},\n cornsilk: {hex: '#FFF8DC', rgb: 'rgb(255,248,220)'},\n blanchedalmond: {hex: '#FFEBCD', rgb: 'rgb(255,235,205)'},\n bisque: {hex: '#FFE4C4', rgb: 'rgb(255,228,196)'},\n navajowhite: {hex: '#FFDEAD', rgb: 'rgb(255,222,173)'},\n wheat: {hex: '#F5DEB3', rgb: 'rgb(245,222,179)'},\n burlywood: {hex: '#DEB887', rgb: 'rgb(222,184,135)'},\n tan: {hex: '#D2B48C', rgb: 'rgb(210,180,140)'},\n rosybrown: {hex: '#BC8F8F', rgb: 'rgb(188,143,143)'},\n sandybrown: {hex: '#F4A460', rgb: 'rgb(244,164,96)'},\n goldenrod: {hex: '#DAA520', rgb: 'rgb(218,165,32)'},\n peru: {hex: '#CD853F', rgb: 'rgb(205,133,63)'},\n chocolate: {hex: '#D2691E', rgb: 'rgb(210,105,30)'},\n saddlebrown: {hex: '#8B4513', rgb: 'rgb(139,69,19)'},\n sienna: {hex: '#A0522D', rgb: 'rgb(160,82,45)'},\n brown: {hex: '#A52A2A', rgb: 'rgb(165,42,42)'},\n maroon: {hex: '#800000', rgb: 'rgb(128,0,0)'}\n};\n"]}
|
package/dist/tools/ogmaTool.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ogmaTool.js","sourceRoot":"","sources":["../../src/tools/ogmaTool.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC
|
|
1
|
+
{"version":3,"file":"ogmaTool.js","sourceRoot":"","sources":["../../src/tools/ogmaTool.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\nimport {Color, NodeList, Node, EdgeList, Edge} from '@linkurious/ogma';\nimport {LkEdgeData, LkNodeData} from '@linkurious/rest-client';\n\nimport {Tools} from './tools';\nimport {HTML_COLORS} from './colorPalette';\n\nexport class OgmaTools {\n /**\n * Get the amount of hidden neighbors from a list of nodes\n *\n * @param nodes\n */\n public static getHiddenNeighbors(nodes: NodeList<LkNodeData, LkEdgeData>): number {\n return nodes.reduce((result: number, node: Node<LkNodeData, LkEdgeData>) => {\n const statistics = node.getData('statistics');\n if (statistics !== undefined) {\n const hiddenNeighbors =\n statistics.degree !== undefined && !statistics.supernode\n ? statistics.degree - Tools.getDegreeWithoutSelfConnection(node)\n : statistics.supernodeDegree;\n if (hiddenNeighbors !== undefined && hiddenNeighbors > 0) {\n return (result += hiddenNeighbors);\n }\n }\n return result;\n }, 0);\n }\n\n /**\n * Return the visible degree of a node without self connection (self edge)\n *\n * @param {Node} node\n * @return {number}\n */\n public static getDegreeWithoutSelfConnection(node: Node<LkNodeData, LkEdgeData>): number {\n return node.getAdjacentNodes({policy: 'exclude-sources', filter: 'all'}).size;\n }\n\n /**\n * Return true if the color tone is \"bright\"\n *\n * @param {string} color\n * @returns {boolean}\n */\n public static isBright(color: Color): boolean {\n if (color === null || !Tools.isStringFilled(color)) {\n return true;\n }\n const hexRegExp = /#[A-Fa-f0-9]{3,6}/;\n const rgbRegExp = /^rgb\\(\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*\\)$/i;\n const rgbaRegExp = /^rgba\\(\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\s*,\\s*(?:0|1|0?\\.\\d+)\\s*\\)$/i;\n let rgb: string;\n\n if (hexRegExp.test(color)) {\n if (color.length < 5) {\n color += color.slice(1);\n }\n color = color.replace('#', '');\n const r = parseInt(color[0].toString() + color[1].toString(), 16);\n const g = parseInt(color[2].toString() + color[3].toString(), 16);\n const b = parseInt(color[4].toString() + color[5].toString(), 16);\n rgb = `rgb(${r}, ${g}, ${b})`;\n } else if (\n rgbRegExp.test(color) ||\n rgbaRegExp.test(color) ||\n HTML_COLORS[color.toLowerCase()] !== undefined\n ) {\n rgb = Tools.isDefined(HTML_COLORS[color.toLowerCase()])\n ? HTML_COLORS[color.toLowerCase()]['rgb']\n : color;\n } else {\n return true;\n }\n\n const [r, g, b] = rgb\n .replace(/\\s/g, '')\n .match(/rgba?\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})(,\\d{1,3})?\\)/)!\n .slice(1, 4);\n\n if (!Tools.isDefined(r) || !Tools.isDefined(g) || !Tools.isDefined(b)) {\n console.warn('The given color is not a valid rgb formatted color');\n return true;\n }\n return (+r * 299 + +g * 587 + +b * 114) / 1000 > 255 * 0.7;\n }\n\n public static isNode(\n item: Node<LkNodeData, LkEdgeData> | Edge<LkEdgeData, LkNodeData>\n ): item is Node<LkNodeData, LkEdgeData> {\n return item.isNode;\n }\n\n public static isNodeList(\n items: NodeList<LkNodeData, LkEdgeData> | EdgeList<LkEdgeData, LkNodeData>\n ): items is NodeList<LkNodeData, LkEdgeData> {\n return items.isNode;\n }\n}\n"]}
|
package/dist/tools/tools.js
CHANGED
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Tools = exports.CAPTION_HEURISTIC = exports.sortBy = void 0;
|
|
6
7
|
const isEqual_1 = __importDefault(require("lodash/isEqual"));
|
|
7
8
|
const sortBy_1 = __importDefault(require("lodash/sortBy"));
|
|
8
9
|
exports.sortBy = sortBy_1.default;
|
|
@@ -20,7 +21,7 @@ exports.CAPTION_HEURISTIC = [
|
|
|
20
21
|
];
|
|
21
22
|
class Tools {
|
|
22
23
|
static isEqual(v1, v2) {
|
|
23
|
-
return isEqual_1.default(v1, v2);
|
|
24
|
+
return (0, isEqual_1.default)(v1, v2);
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Check that a value is defined : not null and not undefined
|