bpmn-js 16.1.0 → 16.2.0

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * bpmn-js - bpmn-navigated-viewer v16.1.0
2
+ * bpmn-js - bpmn-navigated-viewer v16.2.0
3
3
  *
4
4
  * Copyright (c) 2014-present, camunda Services GmbH
5
5
  *
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Source Code: https://github.com/bpmn-io/bpmn-js
10
10
  *
11
- * Date: 2023-12-14
11
+ * Date: 2023-12-20
12
12
  */
13
13
  (function (global, factory) {
14
14
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
@@ -39,6 +39,10 @@
39
39
  return obj !== undefined;
40
40
  }
41
41
 
42
+ function isNil(obj) {
43
+ return obj == null;
44
+ }
45
+
42
46
  function isArray$2(obj) {
43
47
  return nativeToString$1.call(obj) === '[object Array]';
44
48
  }
@@ -487,6 +491,58 @@
487
491
  return Object.assign(target, ...others);
488
492
  }
489
493
 
494
+ /**
495
+ * Sets a nested property of a given object to the specified value.
496
+ *
497
+ * This mutates the object and returns it.
498
+ *
499
+ * @template T
500
+ *
501
+ * @param {T} target The target of the set operation.
502
+ * @param {(string|number)[]} path The path to the nested value.
503
+ * @param {any} value The value to set.
504
+ *
505
+ * @return {T}
506
+ */
507
+ function set$2(target, path, value) {
508
+
509
+ let currentTarget = target;
510
+
511
+ forEach$1(path, function(key, idx) {
512
+
513
+ if (typeof key !== 'number' && typeof key !== 'string') {
514
+ throw new Error('illegal key type: ' + typeof key + '. Key should be of type number or string.');
515
+ }
516
+
517
+ if (key === 'constructor') {
518
+ throw new Error('illegal key: constructor');
519
+ }
520
+
521
+ if (key === '__proto__') {
522
+ throw new Error('illegal key: __proto__');
523
+ }
524
+
525
+ let nextKey = path[idx + 1];
526
+ let nextTarget = currentTarget[key];
527
+
528
+ if (isDefined(nextKey) && isNil(nextTarget)) {
529
+ nextTarget = currentTarget[key] = isNaN(+nextKey) ? {} : [];
530
+ }
531
+
532
+ if (isUndefined$2(nextKey)) {
533
+ if (isUndefined$2(value)) {
534
+ delete currentTarget[key];
535
+ } else {
536
+ currentTarget[key] = value;
537
+ }
538
+ } else {
539
+ currentTarget = nextTarget;
540
+ }
541
+ });
542
+
543
+ return target;
544
+ }
545
+
490
546
  /**
491
547
  * Pick properties from the given target.
492
548
  *
@@ -14431,6 +14487,17 @@
14431
14487
  this.idProperty = p;
14432
14488
  };
14433
14489
 
14490
+ DescriptorBuilder.prototype.assertNotTrait = function(typeDescriptor) {
14491
+
14492
+ const _extends = typeDescriptor.extends || [];
14493
+
14494
+ if (_extends.length) {
14495
+ throw new Error(
14496
+ `cannot create <${ typeDescriptor.name }> extending <${ typeDescriptor.extends }>`
14497
+ );
14498
+ }
14499
+ };
14500
+
14434
14501
  DescriptorBuilder.prototype.assertNotDefined = function(p, name) {
14435
14502
  var propertyName = p.name,
14436
14503
  definedProperty = this.propertiesByName[propertyName];
@@ -14449,6 +14516,10 @@
14449
14516
 
14450
14517
  DescriptorBuilder.prototype.addTrait = function(t, inherited) {
14451
14518
 
14519
+ if (inherited) {
14520
+ this.assertNotTrait(t);
14521
+ }
14522
+
14452
14523
  var typesByName = this.allTypesByName,
14453
14524
  types = this.allTypes;
14454
14525
 
@@ -14582,7 +14653,9 @@
14582
14653
  });
14583
14654
 
14584
14655
  forEach$1(type.extends, bind$2(function(extendsName) {
14585
- var extended = this.typeMap[extendsName];
14656
+ var extendsNameNs = parseName(extendsName, ns.prefix);
14657
+
14658
+ var extended = this.typeMap[extendsNameNs.name];
14586
14659
 
14587
14660
  extended.traits = extended.traits || [];
14588
14661
  extended.traits.push(name);
@@ -14611,24 +14684,33 @@
14611
14684
 
14612
14685
  var self = this;
14613
14686
 
14687
+ /**
14688
+ * Traverse the selected super type or trait
14689
+ *
14690
+ * @param {String} cls
14691
+ * @param {Boolean} [trait=false]
14692
+ */
14693
+ function traverse(cls, trait) {
14694
+ var parentNs = parseName(cls, isBuiltIn(cls) ? '' : nsName.prefix);
14695
+ self.mapTypes(parentNs, iterator, trait);
14696
+ }
14697
+
14614
14698
  /**
14615
14699
  * Traverse the selected trait.
14616
14700
  *
14617
14701
  * @param {String} cls
14618
14702
  */
14619
14703
  function traverseTrait(cls) {
14620
- return traverseSuper(cls, true);
14704
+ return traverse(cls, true);
14621
14705
  }
14622
14706
 
14623
14707
  /**
14624
- * Traverse the selected super type or trait
14708
+ * Traverse the selected super type
14625
14709
  *
14626
14710
  * @param {String} cls
14627
- * @param {Boolean} [trait=false]
14628
14711
  */
14629
- function traverseSuper(cls, trait) {
14630
- var parentNs = parseName(cls, isBuiltIn(cls) ? '' : nsName.prefix);
14631
- self.mapTypes(parentNs, iterator, trait);
14712
+ function traverseSuper(cls) {
14713
+ return traverse(cls, false);
14632
14714
  }
14633
14715
 
14634
14716
  if (!type) {
@@ -14711,7 +14793,7 @@
14711
14793
  throw new TypeError('property name must be a non-empty string');
14712
14794
  }
14713
14795
 
14714
- var property = this.model.getPropertyDescriptor(target, name);
14796
+ var property = this.getProperty(target, name);
14715
14797
 
14716
14798
  var propertyName = property && property.name;
14717
14799
 
@@ -14722,7 +14804,7 @@
14722
14804
  if (property) {
14723
14805
  delete target[propertyName];
14724
14806
  } else {
14725
- delete target.$attrs[name];
14807
+ delete target.$attrs[stripGlobal(name)];
14726
14808
  }
14727
14809
  } else {
14728
14810
 
@@ -14735,7 +14817,7 @@
14735
14817
  defineProperty(target, property, value);
14736
14818
  }
14737
14819
  } else {
14738
- target.$attrs[name] = value;
14820
+ target.$attrs[stripGlobal(name)] = value;
14739
14821
  }
14740
14822
  }
14741
14823
  };
@@ -14750,10 +14832,10 @@
14750
14832
  */
14751
14833
  Properties.prototype.get = function(target, name) {
14752
14834
 
14753
- var property = this.model.getPropertyDescriptor(target, name);
14835
+ var property = this.getProperty(target, name);
14754
14836
 
14755
14837
  if (!property) {
14756
- return target.$attrs[name];
14838
+ return target.$attrs[stripGlobal(name)];
14757
14839
  }
14758
14840
 
14759
14841
  var propertyName = property.name;
@@ -14807,6 +14889,44 @@
14807
14889
  this.define(target, '$model', { value: model });
14808
14890
  };
14809
14891
 
14892
+ /**
14893
+ * Return property with the given name on the element.
14894
+ *
14895
+ * @param {any} target
14896
+ * @param {string} name
14897
+ *
14898
+ * @return {object | null} property
14899
+ */
14900
+ Properties.prototype.getProperty = function(target, name) {
14901
+
14902
+ var model = this.model;
14903
+
14904
+ var property = model.getPropertyDescriptor(target, name);
14905
+
14906
+ if (property) {
14907
+ return property;
14908
+ }
14909
+
14910
+ if (name.includes(':')) {
14911
+ return null;
14912
+ }
14913
+
14914
+ const strict = model.config.strict;
14915
+
14916
+ if (typeof strict !== 'undefined') {
14917
+ const error = new TypeError(`unknown property <${ name }> on <${ target.$type }>`);
14918
+
14919
+ if (strict) {
14920
+ throw error;
14921
+ } else {
14922
+
14923
+ // eslint-disable-next-line no-undef
14924
+ typeof console !== 'undefined' && console.warn(error);
14925
+ }
14926
+ }
14927
+
14928
+ return null;
14929
+ };
14810
14930
 
14811
14931
  function isUndefined(val) {
14812
14932
  return typeof val === 'undefined';
@@ -14821,6 +14941,10 @@
14821
14941
  });
14822
14942
  }
14823
14943
 
14944
+ function stripGlobal(name) {
14945
+ return name.replace(/^:/, '');
14946
+ }
14947
+
14824
14948
  // Moddle implementation /////////////////////////////////////////////////
14825
14949
 
14826
14950
  /**
@@ -14843,8 +14967,10 @@
14843
14967
  * var moddle = new Moddle([pkg]);
14844
14968
  *
14845
14969
  * @param {Array<Package>} packages the packages to contain
14970
+ *
14971
+ * @param { { strict?: boolean } } [config] moddle configuration
14846
14972
  */
14847
- function Moddle(packages) {
14973
+ function Moddle(packages, config = {}) {
14848
14974
 
14849
14975
  this.properties = new Properties(this);
14850
14976
 
@@ -14852,6 +14978,8 @@
14852
14978
  this.registry = new Registry(packages, this.properties);
14853
14979
 
14854
14980
  this.typeCache = {};
14981
+
14982
+ this.config = config;
14855
14983
  }
14856
14984
 
14857
14985
 
@@ -14945,6 +15073,12 @@
14945
15073
  $type: name,
14946
15074
  $instanceOf: function(type) {
14947
15075
  return type === this.$type;
15076
+ },
15077
+ get: function(key) {
15078
+ return this[key];
15079
+ },
15080
+ set: function(key, value) {
15081
+ set$2(this, [ key ], value);
14948
15082
  }
14949
15083
  };
14950
15084
 
@@ -14960,6 +15094,8 @@
14960
15094
 
14961
15095
  this.properties.defineDescriptor(element, descriptor);
14962
15096
  this.properties.defineModel(element, this);
15097
+ this.properties.define(element, 'get', { enumerable: false, writable: true });
15098
+ this.properties.define(element, 'set', { enumerable: false, writable: true });
14963
15099
  this.properties.define(element, '$parent', { enumerable: false, writable: true });
14964
15100
  this.properties.define(element, '$instanceOf', { enumerable: false, writable: true });
14965
15101