@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.
Files changed (41) hide show
  1. package/README.md +1 -1
  2. package/dist/captions/captions.js +4 -5
  3. package/dist/captions/captions.js.map +1 -1
  4. package/dist/filters/filters.d.ts +1 -1
  5. package/dist/filters/filters.js +1 -0
  6. package/dist/filters/filters.js.map +1 -1
  7. package/dist/index.js +34 -33
  8. package/dist/index.js.map +1 -1
  9. package/dist/ogma/features/OgmaStore.js +2 -1
  10. package/dist/ogma/features/OgmaStore.js.map +1 -1
  11. package/dist/ogma/features/captions.js +1 -0
  12. package/dist/ogma/features/captions.js.map +1 -1
  13. package/dist/ogma/features/reactive.js +1 -0
  14. package/dist/ogma/features/reactive.js.map +1 -1
  15. package/dist/ogma/features/selectors.d.ts +5 -5
  16. package/dist/ogma/features/selectors.js +21 -12
  17. package/dist/ogma/features/selectors.js.map +1 -1
  18. package/dist/ogma/features/styles.js +1 -0
  19. package/dist/ogma/features/styles.js.map +1 -1
  20. package/dist/ogma/features/transformations.d.ts +1 -1
  21. package/dist/ogma/features/transformations.js +16 -17
  22. package/dist/ogma/features/transformations.js.map +1 -1
  23. package/dist/ogma/index.js +14 -18
  24. package/dist/ogma/index.js.map +1 -1
  25. package/dist/styles/edgeAttributes.js +2 -2
  26. package/dist/styles/edgeAttributes.js.map +1 -1
  27. package/dist/styles/itemAttributes.js +2 -1
  28. package/dist/styles/itemAttributes.js.map +1 -1
  29. package/dist/styles/nodeAttributes.js +2 -1
  30. package/dist/styles/nodeAttributes.js.map +1 -1
  31. package/dist/styles/styleRule.js +1 -0
  32. package/dist/styles/styleRule.js.map +1 -1
  33. package/dist/styles/styleRules.js +7 -6
  34. package/dist/styles/styleRules.js.map +1 -1
  35. package/dist/tools/colorPalette.js +1 -0
  36. package/dist/tools/colorPalette.js.map +1 -1
  37. package/dist/tools/ogmaTool.js +1 -0
  38. package/dist/tools/ogmaTool.js.map +1 -1
  39. package/dist/tools/tools.js +2 -1
  40. package/dist/tools/tools.js.map +1 -1
  41. package/package.json +5 -5
@@ -1 +1 @@
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"]}
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"]}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StyleRule = exports.StyleRuleType = void 0;
3
4
  const rest_client_1 = require("@linkurious/rest-client");
4
5
  const __1 = require("..");
5
6
  const tools_1 = require("../tools/tools");
@@ -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":"AAAA,YAAY,CAAC;;;AAEb,yDAQiC;AAEjC,0BAAkC;AAClC,0CAAqC;AAErC,IAAY,aAEX;AAFD,WAAY,aAAa;IACvB,yCAAwB,CAAA;AAC1B,CAAC,EAFW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAExB;AAED,MAAa,SAAS;IAQpB,YAAY,KAA0C;QACpD,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,IAAyC;QACtE,OAAO,CACL,IAAI,CAAC,KAAK,KAAK,SAAS;YACxB,CAAC,CAAE,IAAI,CAAC,KAAoB,CAAC,KAAK,KAAK,SAAS;gBAC5C,IAAI,CAAC,KAAoB,CAAC,KAAyB,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC;gBACxF,CAAE,IAAI,CAAC,KAAoB,CAAC,IAAI,KAAK,SAAS;oBAC1C,IAAI,CAAC,KAAoB,CAAC,IAAwB,CAAC,IAAI,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,WAAW;QACb,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3D,OAAO,CAAC,CAAC;SACV;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3D,OAAO,CAAC,CAAC;SACV;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC3D,OAAO,CAAC,CAAC;SACV;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;OAEG;IACI,WAAW,CAChB,QAA4B,EAC5B,KAAgC,EAChC,KAAU;QAEV,IAAI,aAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,CACL,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9D,aAAK,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;gBACnD,aAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK;oBAClB,CAAC,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ;oBACpC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1C,CAAC;SACH;QAED,IAAI,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAClC,OAAO,QAAQ,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACnE;QAED,OAAO,CAAC,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,WAAW,CACvB,IAAkB,EAClB,KAAgC;QAEhC,OAAO,IAAI,KAAK,0BAAY,CAAC,GAAG,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,UAAU,CAAC,IAA6B;QAC7C,MAAM,KAAK,GAAG,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,0BAAY,CAAC,GAAG;gBACnB,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrD,MAAM;YAER,KAAK,0BAAY,CAAC,QAAQ;gBACxB,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBAChD,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC1D;gBACD,MAAM;YAER,KAAK,0BAAY,CAAC,GAAG;gBACnB,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBAChD,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACtD;gBACD,MAAM;YAER,KAAK,0BAAY,CAAC,KAAK;gBACrB,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBAChD,aAAa,GAAG,SAAS,CAAC,UAAU,CAAC,aAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjF;gBACD,MAAM;YAER,KAAK,0BAAY,CAAC,EAAE;gBAClB,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBAChD,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjE;gBACD,MAAM;SACT;QACD,OAAO,aAAa,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,IAA6B,EAAE,KAA8B;QAClF,0EAA0E;QAC1E,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnC,OAAO,aAAK,CAAC,SAAS,CAAC,aAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC9D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,YAAY,CAAC,IAA6B,EAAE,KAAoB;QAC5E,OAAO,CAAC,aAAK,CAAC,WAAW,CAAC,aAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,IAA6B,EAAE,KAAoB;QACxE,OAAO,CAAC,aAAK,CAAC,QAAQ,CAAC,aAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,UAAU,CACtB,KAAa,EACb,UAAuD;QAEvD,OAAO,CACL,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,OAAO,CAAC,IAA6B,EAAE,KAAoB,EAAE,KAAU;QACnF,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;QACD,MAAM,SAAS,GAAG,aAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,cAAc,GAAG,SAAS,CAAC;QAC/B,IACE,aAAK,CAAC,SAAS,CAAC,SAAS,CAAC;YAC1B,OAAO,SAAS,KAAK,QAAQ;YAC7B,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,CAAC,EAC5D;YACA,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;YAClC,IAAI,SAAS,CAAC,QAAQ,KAAK,GAAG,EAAE;gBAC9B,QAAQ,GAAG,QAAQ,CAAC;aACrB;YACD,cAAc,GAAG,aAAK,CAAC,UAAU,CAC/B,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,IAAI,KAAK,UAAU,EAC7B,aAAK,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,IAAI,CAC9C,CAAC;SACH;QACD,OAAO,aAAK,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,aAAa,CAAC,KAAoB,EAAE,QAA4B;QAC5E,OAAO,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,aAAa,CACzB,KAA6B,EAC7B,QAA4B;QAE5B,OAAO,CACL,aAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CACnF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,CAAC,QAAoB;QACzC,OAAO,QAAQ,KAAK,SAAS,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,YAAY,CAAC,IAAY;QAC9B,IAAI,KAAK,CAAC;QACV,IACE,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;YAC9C,IAAI,CAAC,IAAI,KAAK,0BAAY,CAAC,GAAG;YAC9B,CAAC,aAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAC5B;YACA,KAAK,GAAG,kBAAc,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACjD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA5OD,8BA4OC","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,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HTML_COLORS = void 0;
3
4
  exports.HTML_COLORS = {
4
5
  lightsalmon: { hex: '#FFA07A', rgb: 'rbg(255,160,122)' },
5
6
  salmon: { hex: '#FA8072', rgb: 'rgb(250,128,114)' },
@@ -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"]}
@@ -1,5 +1,6 @@
1
1
  'use strict';
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OgmaTools = void 0;
3
4
  const tools_1 = require("./tools");
4
5
  const colorPalette_1 = require("./colorPalette");
5
6
  class OgmaTools {
@@ -1 +1 @@
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"]}
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"]}
@@ -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