@linkurious/ogma-linkurious-parser 3.0.6 → 3.0.9

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.
@@ -139,14 +139,14 @@ var Filters = /** @class */ (function () {
139
139
  if (isNode) {
140
140
  return function (itemData) {
141
141
  return itemData.categories.includes(filter.itemType) &&
142
- Filters.valueShouldBeHidden(tools_1.Tools.getPropertyValue(tools_1.Tools.getIn(itemData, filter.input), true), filter.value);
142
+ Filters.valueShouldBeHidden(tools_1.Tools.getPropertyValue(tools_1.Tools.getIn(itemData, filter.input), false), filter.value);
143
143
  };
144
144
  }
145
145
  else {
146
146
  // isEdge
147
147
  return function (itemData) {
148
148
  return itemData.type === filter.itemType &&
149
- Filters.valueShouldBeHidden(tools_1.Tools.getPropertyValue(tools_1.Tools.getIn(itemData, filter.input), true), filter.value);
149
+ Filters.valueShouldBeHidden(tools_1.Tools.getPropertyValue(tools_1.Tools.getIn(itemData, filter.input), false), filter.value);
150
150
  };
151
151
  }
152
152
  };
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/filters/filters.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ItemSelector,\n LkEdgeData,\n LkNodeData,\n IRangeValues,\n SelectorType,\n ISelectorAny,\n ISelectorIs,\n ISelectorNoValue,\n ISelectorNaN,\n ISelectorRange,\n LkItemData\n} from '@linkurious/rest-client';\n\nimport {Tools} from '../tools/tools';\n\ntype FilterFunction<T extends LkItemData> = (itemData: T) => boolean;\n\nexport class Filters {\n private static nodeCache: Map<string, FilterFunction<LkNodeData>> = new Map();\n private static edgeCache: Map<string, FilterFunction<LkEdgeData>> = new Map();\n private static FILTER_CACHE_SIZE = 5;\n\n /**\n * Returns whether the node/edge should be *filtered* (a.k.a. *hidden*).\n *\n * Notes:\n * 1. `filterRules` are rules that match what should be filtered/hidden.\n * 2. `filterRules` are combined inclusively: as soon as one rule returns `true` for\n * an item, the item can be hidden/filtered.\n *\n * @param filterRules\n * @param itemData\n */\n public static isFiltered(\n filterRules: Array<ItemSelector>,\n itemData: LkNodeData | LkEdgeData\n ): boolean {\n if (!Tools.isDefined(itemData)) {\n return false;\n }\n\n if ('categories' in itemData) {\n return Filters.getFilterFunction(filterRules, true)(itemData);\n } else {\n return Filters.getFilterFunction(filterRules, false)(itemData);\n }\n }\n\n private static getFilterFunction<T extends LkNodeData | LkEdgeData>(\n filterRules: Array<ItemSelector>,\n isNode: boolean\n ): FilterFunction<T> {\n const filterKey = JSON.stringify(filterRules, null, '');\n\n // This cast is needed to tell the TypeScript compiler to trust us that \"isNode\" and \"T\" are dependent.\n const filterCache = (isNode ? Filters.nodeCache : Filters.edgeCache) as Map<\n string,\n FilterFunction<T>\n >;\n\n let filterFunc = filterCache.get(filterKey);\n if (!filterFunc) {\n filterFunc = Filters.createFilterFunction(filterRules, isNode);\n if (filterCache.size > Filters.FILTER_CACHE_SIZE) {\n filterCache.clear();\n }\n filterCache.set(filterKey, filterFunc);\n }\n return filterFunc;\n }\n\n private static createFilterFunction<T extends LkNodeData | LkEdgeData>(\n filterRules: Array<ItemSelector>,\n isNode: boolean\n ): FilterFunction<T> {\n const filterFunctions = filterRules.map((filter: ItemSelector) =>\n Filters.filterToFilterFunction(filter, isNode)\n );\n\n /**\n * For each filterFunction, as soon as we find a filterFunction that says that a given\n * node/edge should be filtered/hidden, we return `true` for the node/edge.\n */\n return (itemData: T): boolean => {\n for (const filterFunction of filterFunctions) {\n if (filterFunction(itemData)) {\n return true;\n }\n }\n return false;\n };\n }\n\n private static filterToFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ItemSelector,\n isNode: boolean\n ): FilterFunction<T> {\n switch (filter.type) {\n case SelectorType.ANY:\n return Filters.createAnyFilterFunction(filter, isNode);\n case SelectorType.IS:\n return Filters.createIsFilterFunction(filter, isNode);\n case SelectorType.NO_VALUE:\n return Filters.createNoValueFilterFunction(filter, isNode);\n case SelectorType.RANGE:\n return Filters.createRangeFilterFunction(filter, isNode);\n case SelectorType.NAN:\n return Filters.createNaNFilterFunction(filter, isNode);\n }\n }\n\n private static createAnyFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorAny,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) => {\n if (filter.itemType === undefined) {\n return true;\n }\n return (itemData as LkNodeData).categories.includes(filter.itemType);\n };\n } else {\n // isEdge\n return (itemData: T) => (itemData as LkEdgeData).type === filter.itemType;\n }\n }\n\n private static createIsFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorIs,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true) === filter.value;\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true) === filter.value;\n }\n }\n\n private static createNoValueFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorNoValue,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n !Tools.isDefined(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n !Tools.isDefined(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n }\n }\n\n private static createNaNFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorNaN,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Filters.isNotANumber(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Filters.isNotANumber(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n }\n }\n\n private static isNotANumber(value: any) {\n return Tools.isDefined(value) && !Tools.isNumber(value);\n }\n\n public static createRangeFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorRange,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Filters.valueShouldBeHidden(\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true),\n filter.value\n );\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Filters.valueShouldBeHidden(\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true),\n filter.value\n );\n }\n }\n\n /**\n * Returns true if `value` should be filtered/hidden.\n *\n * `range` describes what should be filtered/hidden:\n * - e.g. {\"<\":10, \">=\":20} => hide any value in ]-inf, 10[ *OR* in [20, +inf[\n * - e.g. {\"<=\":10} => hide any value in ]-inf, 10]\n * - e.g. {\">=\":20} => hide any value in [20, +inf[\n *\n * Returns false (i.e. will not filter/hide) if `value` is not a number.\n */\n public static valueShouldBeHidden(value: unknown, range: IRangeValues): boolean {\n const n = Tools.parseFloat(value);\n if (Number.isNaN(n)) {\n return false;\n }\n\n /**\n * As soon as we find a condition that says that `value` should be filtered/hidden,\n * we return `true`.\n *\n * If `range` contains multiple conditions, all are checked and if any condition causes\n * `value` to be in the filtered/hidden range, we return `true`.\n *\n * If no condition causes `value` to be filtered/hidden, we return `false`.\n */\n return (\n (range['<'] !== undefined && n < range['<']) ||\n (range['<='] !== undefined && n <= range['<=']) ||\n (range['>'] !== undefined && n > range['>']) ||\n (range['>='] !== undefined && n >= range['>='])\n );\n }\n}\n"]}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../src/filters/filters.ts"],"names":[],"mappings":";;AAAA,uDAYiC;AAEjC,wCAAqC;AAIrC;IAAA;IAyNA,CAAC;IApNC;;;;;;;;;;OAUG;IACW,kBAAU,GAAxB,UACE,WAAgC,EAChC,QAAiC;QAEjC,IAAI,CAAC,aAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC9B,OAAO,KAAK,CAAC;SACd;QAED,IAAI,YAAY,IAAI,QAAQ,EAAE;YAC5B,OAAO,OAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;SAC/D;aAAM;YACL,OAAO,OAAO,CAAC,iBAAiB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;SAChE;IACH,CAAC;IAEc,yBAAiB,GAAhC,UACE,WAAgC,EAChC,MAAe;QAEf,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAExD,uGAAuG;QACvG,IAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAGlE,CAAC;QAEF,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE;YACf,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC/D,IAAI,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,iBAAiB,EAAE;gBAChD,WAAW,CAAC,KAAK,EAAE,CAAC;aACrB;YACD,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;SACxC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEc,4BAAoB,GAAnC,UACE,WAAgC,EAChC,MAAe;QAEf,IAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,MAAoB;YAC3D,OAAA,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC;QAA9C,CAA8C,CAC/C,CAAC;QAEF;;;WAGG;QACH,OAAO,UAAC,QAAW;YACjB,KAA6B,UAAe,EAAf,mCAAe,EAAf,6BAAe,EAAf,IAAe,EAAE;gBAAzC,IAAM,cAAc,wBAAA;gBACvB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;oBAC5B,OAAO,IAAI,CAAC;iBACb;aACF;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAEc,8BAAsB,GAArC,UACE,MAAoB,EACpB,MAAe;QAEf,QAAQ,MAAM,CAAC,IAAI,EAAE;YACnB,KAAK,0BAAY,CAAC,GAAG;gBACnB,OAAO,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACzD,KAAK,0BAAY,CAAC,EAAE;gBAClB,OAAO,OAAO,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxD,KAAK,0BAAY,CAAC,QAAQ;gBACxB,OAAO,OAAO,CAAC,2BAA2B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7D,KAAK,0BAAY,CAAC,KAAK;gBACrB,OAAO,OAAO,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,KAAK,0BAAY,CAAC,GAAG;gBACnB,OAAO,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC1D;IACH,CAAC;IAEc,+BAAuB,GAAtC,UACE,MAAoB,EACpB,MAAe;QAEf,IAAI,MAAM,EAAE;YACV,OAAO,UAAC,QAAW;gBACjB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAQ,QAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACvE,CAAC,CAAC;SACH;aAAM;YACL,SAAS;YACT,OAAO,UAAC,QAAW,IAAK,OAAC,QAAuB,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,EAAjD,CAAiD,CAAC;SAC3E;IACH,CAAC;IAEc,8BAAsB,GAArC,UACE,MAAmB,EACnB,MAAe;QAEf,IAAI,MAAM,EAAE;YACV,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC7D,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK;YADlF,CACkF,CAAC;SACtF;aAAM;YACL,SAAS;YACT,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;oBACjD,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,MAAM,CAAC,KAAK;YADlF,CACkF,CAAC;SACtF;IACH,CAAC;IAEc,mCAA2B,GAA1C,UACE,MAAwB,EACxB,MAAe;QAEf,IAAI,MAAM,EAAE;YACV,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC7D,CAAC,aAAK,CAAC,SAAS,CAAC,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YADnF,CACmF,CAAC;SACvF;aAAM;YACL,SAAS;YACT,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;oBACjD,CAAC,aAAK,CAAC,SAAS,CAAC,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YADnF,CACmF,CAAC;SACvF;IACH,CAAC;IAEc,+BAAuB,GAAtC,UACE,MAAoB,EACpB,MAAe;QAEf,IAAI,MAAM,EAAE;YACV,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC7D,OAAO,CAAC,YAAY,CAAC,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YADvF,CACuF,CAAC;SAC3F;aAAM;YACL,SAAS;YACT,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;oBACjD,OAAO,CAAC,YAAY,CAAC,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YADvF,CACuF,CAAC;SAC3F;IACH,CAAC;IAEc,oBAAY,GAA3B,UAA4B,KAAU;QACpC,OAAO,aAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IAEa,iCAAyB,GAAvC,UACE,MAAsB,EACtB,MAAe;QAEf,IAAI,MAAM,EAAE;YACV,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;oBAC7D,OAAO,CAAC,mBAAmB,CACzB,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAClE,MAAM,CAAC,KAAK,CACb;YAJD,CAIC,CAAC;SACL;aAAM;YACL,SAAS;YACT,OAAO,UAAC,QAAW;gBACjB,OAAC,QAAuB,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ;oBACjD,OAAO,CAAC,mBAAmB,CACzB,aAAK,CAAC,gBAAgB,CAAC,aAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAClE,MAAM,CAAC,KAAK,CACb;YAJD,CAIC,CAAC;SACL;IACH,CAAC;IAED;;;;;;;;;OASG;IACW,2BAAmB,GAAjC,UAAkC,KAAc,EAAE,KAAmB;QACnE,IAAM,CAAC,GAAG,aAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACnB,OAAO,KAAK,CAAC;SACd;QAED;;;;;;;;WAQG;QACH,OAAO,CACL,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;IACJ,CAAC;IAvNc,iBAAS,GAA4C,IAAI,GAAG,EAAE,CAAC;IAC/D,iBAAS,GAA4C,IAAI,GAAG,EAAE,CAAC;IAC/D,yBAAiB,GAAG,CAAC,CAAC;IAsNvC,cAAC;CAAA,AAzND,IAyNC;AAzNY,0BAAO","sourcesContent":["import {\n ItemSelector,\n LkEdgeData,\n LkNodeData,\n IRangeValues,\n SelectorType,\n ISelectorAny,\n ISelectorIs,\n ISelectorNoValue,\n ISelectorNaN,\n ISelectorRange,\n LkItemData\n} from '@linkurious/rest-client';\n\nimport {Tools} from '../tools/tools';\n\ntype FilterFunction<T extends LkItemData> = (itemData: T) => boolean;\n\nexport class Filters {\n private static nodeCache: Map<string, FilterFunction<LkNodeData>> = new Map();\n private static edgeCache: Map<string, FilterFunction<LkEdgeData>> = new Map();\n private static FILTER_CACHE_SIZE = 5;\n\n /**\n * Returns whether the node/edge should be *filtered* (a.k.a. *hidden*).\n *\n * Notes:\n * 1. `filterRules` are rules that match what should be filtered/hidden.\n * 2. `filterRules` are combined inclusively: as soon as one rule returns `true` for\n * an item, the item can be hidden/filtered.\n *\n * @param filterRules\n * @param itemData\n */\n public static isFiltered(\n filterRules: Array<ItemSelector>,\n itemData: LkNodeData | LkEdgeData\n ): boolean {\n if (!Tools.isDefined(itemData)) {\n return false;\n }\n\n if ('categories' in itemData) {\n return Filters.getFilterFunction(filterRules, true)(itemData);\n } else {\n return Filters.getFilterFunction(filterRules, false)(itemData);\n }\n }\n\n private static getFilterFunction<T extends LkNodeData | LkEdgeData>(\n filterRules: Array<ItemSelector>,\n isNode: boolean\n ): FilterFunction<T> {\n const filterKey = JSON.stringify(filterRules, null, '');\n\n // This cast is needed to tell the TypeScript compiler to trust us that \"isNode\" and \"T\" are dependent.\n const filterCache = (isNode ? Filters.nodeCache : Filters.edgeCache) as Map<\n string,\n FilterFunction<T>\n >;\n\n let filterFunc = filterCache.get(filterKey);\n if (!filterFunc) {\n filterFunc = Filters.createFilterFunction(filterRules, isNode);\n if (filterCache.size > Filters.FILTER_CACHE_SIZE) {\n filterCache.clear();\n }\n filterCache.set(filterKey, filterFunc);\n }\n return filterFunc;\n }\n\n private static createFilterFunction<T extends LkNodeData | LkEdgeData>(\n filterRules: Array<ItemSelector>,\n isNode: boolean\n ): FilterFunction<T> {\n const filterFunctions = filterRules.map((filter: ItemSelector) =>\n Filters.filterToFilterFunction(filter, isNode)\n );\n\n /**\n * For each filterFunction, as soon as we find a filterFunction that says that a given\n * node/edge should be filtered/hidden, we return `true` for the node/edge.\n */\n return (itemData: T): boolean => {\n for (const filterFunction of filterFunctions) {\n if (filterFunction(itemData)) {\n return true;\n }\n }\n return false;\n };\n }\n\n private static filterToFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ItemSelector,\n isNode: boolean\n ): FilterFunction<T> {\n switch (filter.type) {\n case SelectorType.ANY:\n return Filters.createAnyFilterFunction(filter, isNode);\n case SelectorType.IS:\n return Filters.createIsFilterFunction(filter, isNode);\n case SelectorType.NO_VALUE:\n return Filters.createNoValueFilterFunction(filter, isNode);\n case SelectorType.RANGE:\n return Filters.createRangeFilterFunction(filter, isNode);\n case SelectorType.NAN:\n return Filters.createNaNFilterFunction(filter, isNode);\n }\n }\n\n private static createAnyFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorAny,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) => {\n if (filter.itemType === undefined) {\n return true;\n }\n return (itemData as LkNodeData).categories.includes(filter.itemType);\n };\n } else {\n // isEdge\n return (itemData: T) => (itemData as LkEdgeData).type === filter.itemType;\n }\n }\n\n private static createIsFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorIs,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true) === filter.value;\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true) === filter.value;\n }\n }\n\n private static createNoValueFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorNoValue,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n !Tools.isDefined(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n !Tools.isDefined(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n }\n }\n\n private static createNaNFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorNaN,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Filters.isNotANumber(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Filters.isNotANumber(Tools.getPropertyValue(Tools.getIn(itemData, filter.input), true));\n }\n }\n\n private static isNotANumber(value: any) {\n return Tools.isDefined(value) && !Tools.isNumber(value);\n }\n\n public static createRangeFilterFunction<T extends LkNodeData | LkEdgeData>(\n filter: ISelectorRange,\n isNode: boolean\n ): FilterFunction<T> {\n if (isNode) {\n return (itemData: T) =>\n (itemData as LkNodeData).categories.includes(filter.itemType) &&\n Filters.valueShouldBeHidden(\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), false),\n filter.value\n );\n } else {\n // isEdge\n return (itemData: T) =>\n (itemData as LkEdgeData).type === filter.itemType &&\n Filters.valueShouldBeHidden(\n Tools.getPropertyValue(Tools.getIn(itemData, filter.input), false),\n filter.value\n );\n }\n }\n\n /**\n * Returns true if `value` should be filtered/hidden.\n *\n * `range` describes what should be filtered/hidden:\n * - e.g. {\"<\":10, \">=\":20} => hide any value in ]-inf, 10[ *OR* in [20, +inf[\n * - e.g. {\"<=\":10} => hide any value in ]-inf, 10]\n * - e.g. {\">=\":20} => hide any value in [20, +inf[\n *\n * Returns false (i.e. will not filter/hide) if `value` is not a number.\n */\n public static valueShouldBeHidden(value: unknown, range: IRangeValues): boolean {\n const n = Tools.parseFloat(value);\n if (Number.isNaN(n)) {\n return false;\n }\n\n /**\n * As soon as we find a condition that says that `value` should be filtered/hidden,\n * we return `true`.\n *\n * If `range` contains multiple conditions, all are checked and if any condition causes\n * `value` to be in the filtered/hidden range, we return `true`.\n *\n * If no condition causes `value` to be filtered/hidden, we return `false`.\n */\n return (\n (range['<'] !== undefined && n < range['<']) ||\n (range['<='] !== undefined && n <= range['<=']) ||\n (range['>'] !== undefined && n > range['>']) ||\n (range['>='] !== undefined && n >= range['>='])\n );\n }\n}\n"]}
@@ -308,8 +308,7 @@ var StylesViz = /** @class */ (function () {
308
308
  },
309
309
  edgeAttributes: {
310
310
  text: {
311
- scale: 3.0,
312
- scaling: true,
311
+ scaling: false,
313
312
  font: 'arial',
314
313
  backgroundColor: null,
315
314
  minVisibleSize: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ogma/features/styles.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport * as o from 'ogma';\nimport {Edge, EdgeAttributesValue, NodeAttributesValue, StyleClass, StyleRule} from 'ogma';\nimport {\n GenericObject,\n IEdgeStyle,\n INodeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n OgmaEdgeShape,\n OgmaNodeShape,\n TextOptions\n} from '@linkurious/rest-client';\n\nimport {\n BASE_GREY,\n EdgeAttributes,\n LKOgma,\n NodeAttributes,\n OgmaTools,\n StyleRule as LKStyleRule,\n StyleRules,\n StyleType\n} from '../..';\nimport {Tools} from '../../tools/tools';\n\nexport interface StylesConfig {\n nodeColorStyleRules: Array<LKStyleRule>;\n nodeIconStyleRules: Array<LKStyleRule>;\n nodeSizeStyleRules: Array<LKStyleRule>;\n nodeShapeStyleRules?: Array<LKStyleRule>;\n edgeColorStyleRules: Array<LKStyleRule>;\n edgeWidthStyleRules: Array<LKStyleRule>;\n edgeShapeStyleRules?: Array<LKStyleRule>;\n}\n\nconst HOVERED_SELECTED_NODE_STYLE: NodeAttributesValue<LkNodeData, LkEdgeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outerStroke: {width: 2},\n outline: false\n};\n\nconst HOVERED_SELECTED_EDGE_STYLE: EdgeAttributesValue<LkEdgeData, LkNodeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outline: false\n};\n\nconst NODE_HALO_CONFIGURATION = {\n color: '#FFF',\n width: 7,\n scalingMethod: 'scaled',\n strokeWidth: 0,\n hideNonAdjacentEdges: false\n} as {\n color: '#FFF';\n width: 7;\n strokeWidth: 0;\n};\n\nconst EDGE_HALO_CONFIGURATION = {\n color: '#FFF',\n scalingMethod: 'scaled',\n width: 4\n} as {\n color: '#FFF';\n width: 4;\n};\n\nconst DEFAULT_OGMA_FONT = \"'roboto', sans-serif\";\nconst DARK_FONT_COLOR = '#000';\nconst CLEAR_FONT_COLOR = '#FFF';\nconst ITEM_DEFAULT_COLOR = '#7f7f7f';\nexport const FILTER_OPACITY = 0.2;\n\nexport class StylesViz {\n private _ogma: LKOgma;\n private _exportClass!: StyleClass;\n private _nodeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _nodeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n private _edgeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _edgeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n\n private _nodeAttributes: NodeAttributes = new NodeAttributes({});\n private _edgeAttributes: EdgeAttributes = new EdgeAttributes({});\n\n private _ogmaNodeColor!: StyleRule;\n private _ogmaNodeIcon!: StyleRule;\n private _ogmaNodeSize!: StyleRule;\n private _ogmaNodeShape!: StyleRule;\n private _ogmaEdgeColor!: StyleRule;\n private _ogmaEdgeWidth!: StyleRule;\n private _ogmaEdgeShape!: StyleRule;\n private _defaultConfiguration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n };\n\n constructor(\n ogma: LKOgma,\n configuration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n }\n ) {\n this._ogma = ogma;\n this._defaultConfiguration = configuration;\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n this._ogma.styles.setSelectedNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n // setting default styles\n this._nodeDefaultStylesRules = this._ogma.styles.addRule({\n nodeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.minVisibleSize\n ? this._defaultConfiguration.node.text.minVisibleSize\n : 12,\n maxLineLength:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.maxLineLength !== undefined\n ? this._defaultConfiguration.node.text.maxLineLength\n : 30,\n position:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.nodePosition !== undefined\n ? this._defaultConfiguration.node.text.nodePosition\n : 'bottom',\n backgroundColor:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.backgroundColor !== undefined\n ? this._defaultConfiguration.node.text.backgroundColor\n : 'null',\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.color !== undefined\n ? this._defaultConfiguration.node.text.color\n : 'black',\n size:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.size !== undefined\n ? this._defaultConfiguration.node.text.size\n : 14,\n margin: 5\n },\n radius: this.defaultNodeRadius(this._defaultConfiguration.node),\n icon: {\n minVisibleSize: 15\n },\n color: ITEM_DEFAULT_COLOR,\n shape:\n this._defaultConfiguration.node.shape !== undefined\n ? this._defaultConfiguration.node.shape\n : ('circle' as OgmaNodeShape),\n innerStroke: {\n width: 3\n },\n outline: false\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n this._ogma.styles.setSelectedEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n // setting default styles\n this._edgeDefaultStylesRules = this._ogma.styles.addRule({\n edgeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.minVisibleSize\n ? this._defaultConfiguration.edge.text.minVisibleSize\n : 3,\n maxLineLength:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.maxLineLength !== undefined\n ? this._defaultConfiguration.edge.text.maxLineLength\n : 30,\n backgroundColor:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.backgroundColor !== undefined\n ? this._defaultConfiguration.edge.text.backgroundColor\n : null,\n font:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.font !== undefined\n ? this._defaultConfiguration.edge.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.edge !== undefined &&\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.color !== undefined\n ? this._defaultConfiguration.edge.text.color\n : 'black',\n size:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.size !== undefined\n ? this._defaultConfiguration.edge.text.size\n : 14\n },\n width: this.defaultEdgeWidth(this._defaultConfiguration.edge),\n shape:\n this._defaultConfiguration.edge.shape !== undefined\n ? this._defaultConfiguration.edge.shape\n : 'arrow',\n color: ITEM_DEFAULT_COLOR\n }\n });\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultHalo(): void {\n // setting default halo style\n this._nodeDefaultHaloRules = this._ogma.styles.addRule({\n nodeSelector: (node) => node && !node.hasClass('filtered'),\n nodeAttributes: {\n halo: (node) => {\n if (\n node !== undefined &&\n (node.isSelected() ||\n node.getAdjacentNodes({}).isSelected().includes(true) ||\n node.getAdjacentEdges().isSelected().includes(true))\n ) {\n return {\n ...NODE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // recalculate the rule *only* when itself or adjacent\n // elements change their selection status\n nodeDependencies: {\n self: {\n selection: true\n },\n adjacentNodes: {\n selection: true\n },\n adjacentEdges: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultHalo(): void {\n // setting default halo styles\n this._edgeDefaultHaloRules = this._ogma.styles.addRule({\n edgeSelector: (edge: Edge) =>\n edge && edge.getSource() && edge.getTarget() && !edge.hasClass('filtered'),\n edgeAttributes: {\n halo: (edge) => {\n if (\n edge &&\n (edge.isSelected() || edge.getSource().isSelected() || edge.getTarget().isSelected())\n ) {\n return {\n ...EDGE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // this rule will only be invoked when the selection status\n // of the edge or it's extremities is changed\n edgeDependencies: {\n self: {\n selection: true\n },\n extremities: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Return the default node radius set in configuration or 5\n *\n * @returns {number}\n */\n private defaultNodeRadius(styles: any): number {\n return this.defaultStylesHas(styles, ['nodeRadius']) ? styles.nodeRadius : 5;\n }\n\n /**\n * Return the default edge width set in configuration or 1\n *\n * @returns {number}\n */\n private defaultEdgeWidth(styles: any): number {\n return this.defaultStylesHas(styles, ['edgeWidth']) ? styles.edgeWidth : 1;\n }\n\n /**\n * Check if a style property exists in the default styles object\n */\n private defaultStylesHas(styles: GenericObject<unknown>, propertyPath: Array<string>): boolean {\n if (!Tools.isDefined(styles)) {\n return false;\n }\n return Tools.getIn(styles, propertyPath) !== undefined;\n }\n\n /**\n * Set styles for the class \"filtered\"\n */\n public setFilterClass(): void {\n this._ogma.styles.createClass({\n name: 'filtered',\n nodeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n badges: {\n topRight: {\n text: null\n },\n bottomRight: {\n text: null\n }\n },\n text: null,\n color: 'rgb(240, 240, 240)',\n innerStroke: {\n width: 1,\n color: BASE_GREY,\n minVisibleSize: 1\n },\n shape: 'circle',\n image: null,\n icon: null,\n radius: '100%'\n },\n edgeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n text: null,\n color: BASE_GREY,\n shape: 'line',\n width: 0.2\n }\n });\n }\n\n /**\n * Set the class for exported nodes and edges\n */\n public setExportClass(textWrappingLength?: boolean): void {\n if (!this._exportClass) {\n this._exportClass = this._ogma.styles.createClass({\n name: 'exported',\n nodeAttributes: {\n text: {\n minVisibleSize: 0,\n font: 'arial',\n backgroundColor: null,\n maxLineLength: textWrappingLength ? 30 : 0,\n scale: 0.3,\n margin: 0,\n scaling: true,\n tip: false\n },\n halo: null\n },\n edgeAttributes: {\n text: {\n scale: 3.0,\n scaling: true,\n font: 'arial',\n backgroundColor: null,\n minVisibleSize: 0,\n size: 3,\n margin: 0\n },\n halo: null,\n shape: 'tapered'\n }\n });\n } else {\n this._exportClass.update({\n nodeAttributes: {\n text: {\n maxLineLength: textWrappingLength ? 30 : 0\n },\n halo: null\n }\n });\n }\n }\n\n /**\n * Set the rule to display badges\n */\n public setBadgeRule() {\n this._ogma.styles.createClass({\n name: 'degreeIndicator',\n nodeAttributes: {\n badges: {\n topRight: (node) => {\n if (node !== undefined) {\n const degree = Tools.getHiddenNeighbors(node.toList());\n const badgeContent = Tools.formatNumber(degree);\n if (degree > 0) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n const isSupernode = node.getData(['statistics', 'supernode']);\n let content = null;\n if (+badgeContent !== 0) {\n content = isSupernode ? badgeContent + '+' : badgeContent;\n }\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : DEFAULT_OGMA_FONT,\n scale: 0.4,\n color: textColor,\n content: content\n }\n };\n }\n }\n }\n }\n }\n });\n this._ogma.styles.createClass({\n name: 'pinnedIndicator',\n nodeAttributes: {\n badges: {\n bottomRight: (node) => {\n if (node !== undefined && !node.getAttribute('layoutable')) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font: 'FontAwesome',\n scale: 0.4,\n color: textColor,\n content: node.getAttribute('layoutable') ? null : '\\uf08d'\n }\n };\n }\n }\n }\n },\n nodeDependencies: {\n self: {attributes: ['layoutable']}\n }\n });\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('degreeIndicator'));\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('pinnedIndicator'));\n }\n\n /**\n * Delete the rule to display badges\n */\n public deleteBadgeRule() {\n this._ogma.getNodes().removeClasses(['degreeIndicator', 'pinnedIndicator'], 0);\n }\n\n /**\n * set text overlap to true or false\n *\n * @param {boolean} overlap\n */\n public toggleTextOverlap(overlap?: boolean): void {\n this._ogma.setOptions({texts: {preventOverlap: overlap}});\n }\n\n /**\n * refresh nodes and edge rules\n *\n */\n public refreshRules(): void {\n this._nodeDefaultStylesRules.refresh();\n this._edgeDefaultStylesRules.refresh();\n }\n\n /**\n * Create / refresh an ogma rule for node colors\n */\n public refreshNodeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeColor)) {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor = this._ogma.styles.addRule({\n nodeAttributes: {\n color: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.color(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor.refresh();\n // TODO refresh node icons when moving the code from LKE\n // this.refreshIconsColor();\n }\n }\n\n /**\n * Return an array of StyleRules with only the style that need to be applied\n */\n public getStyleRule(\n state: Array<IStyleRule<INodeStyle | IEdgeStyle>>,\n styleType: StyleType\n ): LKStyleRule[] {\n return new StyleRules(state)[styleType];\n }\n\n public initNodeColors(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeColorRules = this.getStyleRule(nodeRules, StyleType.COLOR);\n this.refreshNodeColors(nodeColorRules);\n }\n\n public initNodesIcons(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeIconsRules = this.getStyleRule(nodeRules, StyleType.ICON);\n this.refreshNodeIcons(nodeIconsRules);\n }\n\n public initNodesSizes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeSizeRules = this.getStyleRule(nodeRules, StyleType.SIZE);\n this.refreshNodeSize(nodeSizeRules);\n }\n\n public initNodesShapes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeShapesRules = this.getStyleRule(nodeRules, StyleType.SHAPE);\n this.refreshNodeShape(nodeShapesRules);\n }\n\n public initEdgesWidth(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesWidthRules = this.getStyleRule(edgeRules, StyleType.WIDTH);\n this.refreshEdgeWidth(edgesWidthRules);\n }\n\n public initEdgesShape(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesShapeRules = this.getStyleRule(edgeRules, StyleType.SHAPE);\n this.refreshEdgeShape(edgesShapeRules);\n }\n\n public initEdgesColor(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesColorRules = this.getStyleRule(edgeRules, StyleType.COLOR);\n this.refreshEdgeColors(edgesColorRules);\n }\n\n /**\n * Create / refresh an ogma rule for node icons\n *\n * @param {Array<any>} iconStyleRules\n */\n public refreshNodeIcons(iconStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeIcon)) {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon = this._ogma.styles.addRule({\n nodeAttributes: {\n icon: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).icon;\n }\n },\n image: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).image;\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node sizes\n *\n * @param {Array<any>} sizeStyleRules\n */\n public refreshNodeSize(sizeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeSize)) {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize = this._ogma.styles.addRule({\n nodeAttributes: {\n radius: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.size(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node images\n *\n * @param {Array<any>} shapeStyleRules\n */\n public refreshNodeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeShape)) {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape = this._ogma.styles.addRule({\n nodeAttributes: {\n shape: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.shape(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge colors\n */\n public refreshEdgeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeColor)) {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor = this._ogma.styles.addRule({\n edgeAttributes: {\n color: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.color(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} widthStyleRules\n */\n public refreshEdgeWidth(widthStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeWidth)) {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth = this._ogma.styles.addRule({\n edgeAttributes: {\n width: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.width(edge.getData());\n }\n }\n },\n edgeDependencies: {\n self: {data: true}\n }\n });\n } else {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} shapeStyleRules\n */\n public refreshEdgeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeShape)) {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape = this._ogma.styles.addRule({\n edgeAttributes: {\n shape: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.shape(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape.refresh();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/ogma/features/styles.ts"],"names":[],"mappings":"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","sourcesContent":["'use strict';\n\nimport * as o from 'ogma';\nimport {Edge, EdgeAttributesValue, NodeAttributesValue, StyleClass, StyleRule} from 'ogma';\nimport {\n GenericObject,\n IEdgeStyle,\n INodeStyle,\n IStyleRule,\n LkEdgeData,\n LkNodeData,\n OgmaEdgeShape,\n OgmaNodeShape,\n TextOptions\n} from '@linkurious/rest-client';\n\nimport {\n BASE_GREY,\n EdgeAttributes,\n LKOgma,\n NodeAttributes,\n OgmaTools,\n StyleRule as LKStyleRule,\n StyleRules,\n StyleType\n} from '../..';\nimport {Tools} from '../../tools/tools';\n\nexport interface StylesConfig {\n nodeColorStyleRules: Array<LKStyleRule>;\n nodeIconStyleRules: Array<LKStyleRule>;\n nodeSizeStyleRules: Array<LKStyleRule>;\n nodeShapeStyleRules?: Array<LKStyleRule>;\n edgeColorStyleRules: Array<LKStyleRule>;\n edgeWidthStyleRules: Array<LKStyleRule>;\n edgeShapeStyleRules?: Array<LKStyleRule>;\n}\n\nconst HOVERED_SELECTED_NODE_STYLE: NodeAttributesValue<LkNodeData, LkEdgeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outerStroke: {width: 2},\n outline: false\n};\n\nconst HOVERED_SELECTED_EDGE_STYLE: EdgeAttributesValue<LkEdgeData, LkNodeData> = {\n text: {\n style: 'bold',\n backgroundColor: '#fff',\n minVisibleSize: 0\n },\n outline: false\n};\n\nconst NODE_HALO_CONFIGURATION = {\n color: '#FFF',\n width: 7,\n scalingMethod: 'scaled',\n strokeWidth: 0,\n hideNonAdjacentEdges: false\n} as {\n color: '#FFF';\n width: 7;\n strokeWidth: 0;\n};\n\nconst EDGE_HALO_CONFIGURATION = {\n color: '#FFF',\n scalingMethod: 'scaled',\n width: 4\n} as {\n color: '#FFF';\n width: 4;\n};\n\nconst DEFAULT_OGMA_FONT = \"'roboto', sans-serif\";\nconst DARK_FONT_COLOR = '#000';\nconst CLEAR_FONT_COLOR = '#FFF';\nconst ITEM_DEFAULT_COLOR = '#7f7f7f';\nexport const FILTER_OPACITY = 0.2;\n\nexport class StylesViz {\n private _ogma: LKOgma;\n private _exportClass!: StyleClass;\n private _nodeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _nodeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n private _edgeDefaultStylesRules!: StyleRule<LkNodeData, LkEdgeData>;\n // @ts-ignore\n private _edgeDefaultHaloRules!: StyleRule<LkNodeData, LkEdgeData>;\n\n private _nodeAttributes: NodeAttributes = new NodeAttributes({});\n private _edgeAttributes: EdgeAttributes = new EdgeAttributes({});\n\n private _ogmaNodeColor!: StyleRule;\n private _ogmaNodeIcon!: StyleRule;\n private _ogmaNodeSize!: StyleRule;\n private _ogmaNodeShape!: StyleRule;\n private _ogmaEdgeColor!: StyleRule;\n private _ogmaEdgeWidth!: StyleRule;\n private _ogmaEdgeShape!: StyleRule;\n private _defaultConfiguration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n };\n\n constructor(\n ogma: LKOgma,\n configuration: {\n node: {\n nodeRadius?: number;\n shape?: OgmaNodeShape;\n text?: TextOptions & {\n nodePosition?: 'right' | 'left' | 'top' | 'bottom' | 'center';\n };\n };\n edge: {\n edgeWidth?: number;\n shape?: OgmaEdgeShape;\n text?: TextOptions;\n };\n }\n ) {\n this._ogma = ogma;\n this._defaultConfiguration = configuration;\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n this._ogma.styles.setSelectedNodeAttributes(HOVERED_SELECTED_NODE_STYLE);\n // setting default styles\n this._nodeDefaultStylesRules = this._ogma.styles.addRule({\n nodeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.minVisibleSize\n ? this._defaultConfiguration.node.text.minVisibleSize\n : 12,\n maxLineLength:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.maxLineLength !== undefined\n ? this._defaultConfiguration.node.text.maxLineLength\n : 30,\n position:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.nodePosition !== undefined\n ? this._defaultConfiguration.node.text.nodePosition\n : 'bottom',\n backgroundColor:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.backgroundColor !== undefined\n ? this._defaultConfiguration.node.text.backgroundColor\n : 'null',\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.color !== undefined\n ? this._defaultConfiguration.node.text.color\n : 'black',\n size:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.size !== undefined\n ? this._defaultConfiguration.node.text.size\n : 14,\n margin: 5\n },\n radius: this.defaultNodeRadius(this._defaultConfiguration.node),\n icon: {\n minVisibleSize: 15\n },\n color: ITEM_DEFAULT_COLOR,\n shape:\n this._defaultConfiguration.node.shape !== undefined\n ? this._defaultConfiguration.node.shape\n : ('circle' as OgmaNodeShape),\n innerStroke: {\n width: 3\n },\n outline: false\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultStyles(): void {\n // setting selection and hover attributes\n this._ogma.styles.setHoveredEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n this._ogma.styles.setSelectedEdgeAttributes(HOVERED_SELECTED_EDGE_STYLE);\n // setting default styles\n this._edgeDefaultStylesRules = this._ogma.styles.addRule({\n edgeAttributes: {\n text: {\n minVisibleSize:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.minVisibleSize\n ? this._defaultConfiguration.edge.text.minVisibleSize\n : 3,\n maxLineLength:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.maxLineLength !== undefined\n ? this._defaultConfiguration.edge.text.maxLineLength\n : 30,\n backgroundColor:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.backgroundColor !== undefined\n ? this._defaultConfiguration.edge.text.backgroundColor\n : null,\n font:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.font !== undefined\n ? this._defaultConfiguration.edge.text.font\n : \"'roboto', sans-serif\",\n color:\n this._defaultConfiguration.edge !== undefined &&\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.color !== undefined\n ? this._defaultConfiguration.edge.text.color\n : 'black',\n size:\n this._defaultConfiguration.edge.text !== undefined &&\n this._defaultConfiguration.edge.text.size !== undefined\n ? this._defaultConfiguration.edge.text.size\n : 14\n },\n width: this.defaultEdgeWidth(this._defaultConfiguration.edge),\n shape:\n this._defaultConfiguration.edge.shape !== undefined\n ? this._defaultConfiguration.edge.shape\n : 'arrow',\n color: ITEM_DEFAULT_COLOR\n }\n });\n }\n\n /**\n * Set nodes default styles based on the configuration\n */\n public setNodesDefaultHalo(): void {\n // setting default halo style\n this._nodeDefaultHaloRules = this._ogma.styles.addRule({\n nodeSelector: (node) => node && !node.hasClass('filtered'),\n nodeAttributes: {\n halo: (node) => {\n if (\n node !== undefined &&\n (node.isSelected() ||\n node.getAdjacentNodes({}).isSelected().includes(true) ||\n node.getAdjacentEdges().isSelected().includes(true))\n ) {\n return {\n ...NODE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // recalculate the rule *only* when itself or adjacent\n // elements change their selection status\n nodeDependencies: {\n self: {\n selection: true\n },\n adjacentNodes: {\n selection: true\n },\n adjacentEdges: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Set edges default styles based on the configuration\n */\n public setEdgesDefaultHalo(): void {\n // setting default halo styles\n this._edgeDefaultHaloRules = this._ogma.styles.addRule({\n edgeSelector: (edge: Edge) =>\n edge && edge.getSource() && edge.getTarget() && !edge.hasClass('filtered'),\n edgeAttributes: {\n halo: (edge) => {\n if (\n edge &&\n (edge.isSelected() || edge.getSource().isSelected() || edge.getTarget().isSelected())\n ) {\n return {\n ...EDGE_HALO_CONFIGURATION,\n scalingMethod: this._ogma.geo.enabled() ? 'fixed' : 'scaled'\n };\n }\n return null;\n }\n },\n // this rule will only be invoked when the selection status\n // of the edge or it's extremities is changed\n edgeDependencies: {\n self: {\n selection: true\n },\n extremities: {\n selection: true\n }\n }\n });\n }\n\n /**\n * Return the default node radius set in configuration or 5\n *\n * @returns {number}\n */\n private defaultNodeRadius(styles: any): number {\n return this.defaultStylesHas(styles, ['nodeRadius']) ? styles.nodeRadius : 5;\n }\n\n /**\n * Return the default edge width set in configuration or 1\n *\n * @returns {number}\n */\n private defaultEdgeWidth(styles: any): number {\n return this.defaultStylesHas(styles, ['edgeWidth']) ? styles.edgeWidth : 1;\n }\n\n /**\n * Check if a style property exists in the default styles object\n */\n private defaultStylesHas(styles: GenericObject<unknown>, propertyPath: Array<string>): boolean {\n if (!Tools.isDefined(styles)) {\n return false;\n }\n return Tools.getIn(styles, propertyPath) !== undefined;\n }\n\n /**\n * Set styles for the class \"filtered\"\n */\n public setFilterClass(): void {\n this._ogma.styles.createClass({\n name: 'filtered',\n nodeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n badges: {\n topRight: {\n text: null\n },\n bottomRight: {\n text: null\n }\n },\n text: null,\n color: 'rgb(240, 240, 240)',\n innerStroke: {\n width: 1,\n color: BASE_GREY,\n minVisibleSize: 1\n },\n shape: 'circle',\n image: null,\n icon: null,\n radius: '100%'\n },\n edgeAttributes: {\n opacity: FILTER_OPACITY,\n layer: -1,\n detectable: false,\n text: null,\n color: BASE_GREY,\n shape: 'line',\n width: 0.2\n }\n });\n }\n\n /**\n * Set the class for exported nodes and edges\n */\n public setExportClass(textWrappingLength?: boolean): void {\n if (!this._exportClass) {\n this._exportClass = this._ogma.styles.createClass({\n name: 'exported',\n nodeAttributes: {\n text: {\n minVisibleSize: 0,\n font: 'arial',\n backgroundColor: null,\n maxLineLength: textWrappingLength ? 30 : 0,\n scale: 0.3,\n margin: 0,\n scaling: true,\n tip: false\n },\n halo: null\n },\n edgeAttributes: {\n text: {\n scaling: false,\n font: 'arial',\n backgroundColor: null,\n minVisibleSize: 0,\n size: 3,\n margin: 0\n },\n halo: null,\n shape: 'tapered'\n }\n });\n } else {\n this._exportClass.update({\n nodeAttributes: {\n text: {\n maxLineLength: textWrappingLength ? 30 : 0\n },\n halo: null\n }\n });\n }\n }\n\n /**\n * Set the rule to display badges\n */\n public setBadgeRule() {\n this._ogma.styles.createClass({\n name: 'degreeIndicator',\n nodeAttributes: {\n badges: {\n topRight: (node) => {\n if (node !== undefined) {\n const degree = Tools.getHiddenNeighbors(node.toList());\n const badgeContent = Tools.formatNumber(degree);\n if (degree > 0) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n const isSupernode = node.getData(['statistics', 'supernode']);\n let content = null;\n if (+badgeContent !== 0) {\n content = isSupernode ? badgeContent + '+' : badgeContent;\n }\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font:\n this._defaultConfiguration.node.text !== undefined &&\n this._defaultConfiguration.node.text.font !== undefined\n ? this._defaultConfiguration.node.text.font\n : DEFAULT_OGMA_FONT,\n scale: 0.4,\n color: textColor,\n content: content\n }\n };\n }\n }\n }\n }\n }\n });\n this._ogma.styles.createClass({\n name: 'pinnedIndicator',\n nodeAttributes: {\n badges: {\n bottomRight: (node) => {\n if (node !== undefined && !node.getAttribute('layoutable')) {\n const nodeColor = Array.isArray(node.getAttribute('color'))\n ? node.getAttribute('color')![0]\n : node.getAttribute('color');\n const textColor = OgmaTools.isBright(nodeColor as o.Color)\n ? DARK_FONT_COLOR\n : CLEAR_FONT_COLOR;\n return {\n color: 'inherit',\n minVisibleSize: 20,\n stroke: {\n width: 0,\n color: null\n },\n text: {\n font: 'FontAwesome',\n scale: 0.4,\n color: textColor,\n content: node.getAttribute('layoutable') ? null : '\\uf08d'\n }\n };\n }\n }\n }\n },\n nodeDependencies: {\n self: {attributes: ['layoutable']}\n }\n });\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('degreeIndicator'));\n this._ogma.events.onNodesAdded((nodesEvent) => nodesEvent!.nodes.addClass('pinnedIndicator'));\n }\n\n /**\n * Delete the rule to display badges\n */\n public deleteBadgeRule() {\n this._ogma.getNodes().removeClasses(['degreeIndicator', 'pinnedIndicator'], 0);\n }\n\n /**\n * set text overlap to true or false\n *\n * @param {boolean} overlap\n */\n public toggleTextOverlap(overlap?: boolean): void {\n this._ogma.setOptions({texts: {preventOverlap: overlap}});\n }\n\n /**\n * refresh nodes and edge rules\n *\n */\n public refreshRules(): void {\n this._nodeDefaultStylesRules.refresh();\n this._edgeDefaultStylesRules.refresh();\n }\n\n /**\n * Create / refresh an ogma rule for node colors\n */\n public refreshNodeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeColor)) {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor = this._ogma.styles.addRule({\n nodeAttributes: {\n color: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.color(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({color: colorStyleRules});\n this._ogmaNodeColor.refresh();\n // TODO refresh node icons when moving the code from LKE\n // this.refreshIconsColor();\n }\n }\n\n /**\n * Return an array of StyleRules with only the style that need to be applied\n */\n public getStyleRule(\n state: Array<IStyleRule<INodeStyle | IEdgeStyle>>,\n styleType: StyleType\n ): LKStyleRule[] {\n return new StyleRules(state)[styleType];\n }\n\n public initNodeColors(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeColorRules = this.getStyleRule(nodeRules, StyleType.COLOR);\n this.refreshNodeColors(nodeColorRules);\n }\n\n public initNodesIcons(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeIconsRules = this.getStyleRule(nodeRules, StyleType.ICON);\n this.refreshNodeIcons(nodeIconsRules);\n }\n\n public initNodesSizes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeSizeRules = this.getStyleRule(nodeRules, StyleType.SIZE);\n this.refreshNodeSize(nodeSizeRules);\n }\n\n public initNodesShapes(nodeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const nodeShapesRules = this.getStyleRule(nodeRules, StyleType.SHAPE);\n this.refreshNodeShape(nodeShapesRules);\n }\n\n public initEdgesWidth(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesWidthRules = this.getStyleRule(edgeRules, StyleType.WIDTH);\n this.refreshEdgeWidth(edgesWidthRules);\n }\n\n public initEdgesShape(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesShapeRules = this.getStyleRule(edgeRules, StyleType.SHAPE);\n this.refreshEdgeShape(edgesShapeRules);\n }\n\n public initEdgesColor(edgeRules: Array<IStyleRule<INodeStyle | IEdgeStyle>>) {\n const edgesColorRules = this.getStyleRule(edgeRules, StyleType.COLOR);\n this.refreshEdgeColors(edgesColorRules);\n }\n\n /**\n * Create / refresh an ogma rule for node icons\n *\n * @param {Array<any>} iconStyleRules\n */\n public refreshNodeIcons(iconStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeIcon)) {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon = this._ogma.styles.addRule({\n nodeAttributes: {\n icon: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).icon;\n }\n },\n image: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.icon(node.getData()).image;\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({icon: iconStyleRules});\n this._ogmaNodeIcon.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node sizes\n *\n * @param {Array<any>} sizeStyleRules\n */\n public refreshNodeSize(sizeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeSize)) {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize = this._ogma.styles.addRule({\n nodeAttributes: {\n radius: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.size(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({size: sizeStyleRules});\n this._ogmaNodeSize.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for node images\n *\n * @param {Array<any>} shapeStyleRules\n */\n public refreshNodeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaNodeShape)) {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape = this._ogma.styles.addRule({\n nodeAttributes: {\n shape: (node: o.Node | undefined) => {\n if (node !== undefined) {\n return this._nodeAttributes.shape(node.getData());\n }\n }\n },\n nodeDependencies: {self: {data: true}}\n });\n } else {\n this._nodeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaNodeShape.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge colors\n */\n public refreshEdgeColors(colorStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeColor)) {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor = this._ogma.styles.addRule({\n edgeAttributes: {\n color: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.color(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({color: colorStyleRules});\n this._ogmaEdgeColor.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} widthStyleRules\n */\n public refreshEdgeWidth(widthStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeWidth)) {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth = this._ogma.styles.addRule({\n edgeAttributes: {\n width: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.width(edge.getData());\n }\n }\n },\n edgeDependencies: {\n self: {data: true}\n }\n });\n } else {\n this._edgeAttributes.refresh({width: widthStyleRules});\n this._ogmaEdgeWidth.refresh();\n }\n }\n\n /**\n * Create / refresh an ogma rule for edge width\n *\n * @param {Array<LKStyleRule>} shapeStyleRules\n */\n public refreshEdgeShape(shapeStyleRules: Array<LKStyleRule>): void {\n if (!Tools.isDefined(this._ogmaEdgeShape)) {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape = this._ogma.styles.addRule({\n edgeAttributes: {\n shape: (edge: o.Edge | undefined) => {\n if (edge !== undefined) {\n return this._edgeAttributes.shape(edge.getData());\n }\n }\n },\n edgeDependencies: {self: {data: true}}\n });\n } else {\n this._edgeAttributes.refresh({shape: shapeStyleRules});\n this._ogmaEdgeShape.refresh();\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linkurious/ogma-linkurious-parser",
3
- "version": "3.0.6",
3
+ "version": "3.0.9",
4
4
  "author": "Linkurious SAS",
5
5
  "description": "Parse and load a Linkurious visualization in Ogma with one line of code ",
6
6
  "files": [
@@ -53,7 +53,7 @@
53
53
  "ogma": "3.4.7"
54
54
  },
55
55
  "devDependencies": {
56
- "@linkurious/rest-client": "3.0.6",
56
+ "@linkurious/rest-client": "3.0.9",
57
57
  "@rollup/plugin-buble": "0.21.3",
58
58
  "@rollup/plugin-commonjs": "17.0.0",
59
59
  "@rollup/plugin-json": "4.1.0",