New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

diagram-js

Package Overview
Dependencies
Maintainers
9
Versions
288
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

diagram-js - npm Package Compare versions

Comparing version 8.6.0 to 8.7.0

5

CHANGELOG.md

@@ -9,2 +9,7 @@ # Changelog

## 8.7.0
* `FEAT`: use rules to determine which elements should be aligned and distributed ([#656](https://github.com/bpmn-io/diagram-js/pull/656))
* `FIX`: distribute elements regardless their relative size ([#656](https://github.com/bpmn-io/diagram-js/pull/656))
## 8.6.0

@@ -11,0 +16,0 @@

18

lib/features/align-elements/AlignElements.js
import {
filter,
forEach,
isArray,
sortBy

@@ -40,7 +41,8 @@ } from 'min-dash';

export default function AlignElements(modeling) {
export default function AlignElements(modeling, rules) {
this._modeling = modeling;
this._rules = rules;
}
AlignElements.$inject = [ 'modeling' ];
AlignElements.$inject = [ 'modeling', 'rules' ];

@@ -158,4 +160,6 @@

AlignElements.prototype.trigger = function(elements, type) {
var modeling = this._modeling;
var modeling = this._modeling,
allowed;
// filter out elements which cannot be aligned
var filteredElements = filter(elements, function(element) {

@@ -165,3 +169,9 @@ return !(element.waypoints || element.host || element.labelTarget);

if (filteredElements.length < 2) {
// filter out elements via rules
allowed = this._rules.allowed('elements.align', { elements: filteredElements });
if (isArray(allowed)) {
filteredElements = allowed;
}
if (filteredElements.length < 2 || !allowed) {
return;

@@ -168,0 +178,0 @@ }

import {
sortBy,
forEach,
filter
isArray
} from 'min-dash';

@@ -18,3 +18,3 @@

*/
export default function DistributeElements(modeling) {
export default function DistributeElements(modeling, rules) {
this._modeling = modeling;

@@ -24,28 +24,14 @@

// register filter for filtering big elements
this.registerFilter(function(elements, axis, dimension) {
var elementsSize = 0,
numOfShapes = 0,
avgDimension;
this.registerFilter(function(elements) {
var allowed = rules.allowed('elements.distribute', { elements: elements });
forEach(elements, function(element) {
if (element.waypoints || element.labelTarget) {
return;
}
if (isArray(allowed)) {
return allowed;
}
elementsSize += element[dimension];
numOfShapes += 1;
});
avgDimension = Math.round(elementsSize / numOfShapes);
return filter(elements, function(element) {
return element[dimension] < (avgDimension + 50);
});
return allowed ? elements : [];
});
}
DistributeElements.$inject = [ 'modeling' ];
DistributeElements.$inject = [ 'modeling', 'rules' ];

@@ -52,0 +38,0 @@

{
"name": "diagram-js",
"version": "8.6.0",
"version": "8.7.0",
"description": "A toolbox for displaying and modifying diagrams on the web",

@@ -5,0 +5,0 @@ "main": "index.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc