@rocketshow/designer 1.33.0 → 1.36.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.
Files changed (69) hide show
  1. package/assets/i18n/de.json +2 -1
  2. package/assets/i18n/en.json +2 -1
  3. package/esm2022/lib/designer.component.mjs +197 -130
  4. package/esm2022/lib/designer.module.mjs +5 -2
  5. package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
  6. package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +14 -6
  7. package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +5 -5
  8. package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +6 -4
  9. package/esm2022/lib/fixture/fixture.component.mjs +25 -15
  10. package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +4 -4
  11. package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +73 -21
  12. package/esm2022/lib/models/cached-fixture.mjs +1 -1
  13. package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
  14. package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
  15. package/esm2022/lib/models/fixture-matrix.mjs +25 -0
  16. package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
  17. package/esm2022/lib/models/fixture-mode.mjs +5 -2
  18. package/esm2022/lib/models/fixture-physical.mjs +14 -0
  19. package/esm2022/lib/models/fixture-profile.mjs +16 -1
  20. package/esm2022/lib/models/fixture.mjs +2 -2
  21. package/esm2022/lib/models/preset-fixture.mjs +10 -0
  22. package/esm2022/lib/models/preset.mjs +10 -1
  23. package/esm2022/lib/models/project.mjs +11 -1
  24. package/esm2022/lib/preview/models/color-changer-3d.mjs +5 -108
  25. package/esm2022/lib/preview/models/fixture-3d.mjs +125 -1
  26. package/esm2022/lib/preview/models/moving-head-3d.mjs +3 -122
  27. package/esm2022/lib/preview/preview.component.mjs +21 -16
  28. package/esm2022/lib/services/config.service.mjs +2 -1
  29. package/esm2022/lib/services/fixture.service.mjs +306 -44
  30. package/esm2022/lib/services/preset.service.mjs +92 -42
  31. package/esm2022/lib/services/preview.service.mjs +29 -60
  32. package/esm2022/lib/services/project-load.service.mjs +61 -4
  33. package/esm2022/lib/services/project.service.mjs +11 -15
  34. package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +14 -44
  35. package/fesm2022/rocketshow-designer.mjs +1319 -758
  36. package/fesm2022/rocketshow-designer.mjs.map +1 -1
  37. package/lib/designer.component.d.ts +5 -5
  38. package/lib/designer.module.d.ts +15 -14
  39. package/lib/dropzone/dropzone.component.d.ts +24 -0
  40. package/lib/fixture/fixture.component.d.ts +4 -3
  41. package/lib/models/cached-fixture.d.ts +1 -0
  42. package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
  43. package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
  44. package/lib/models/fixture-matrix.d.ts +6 -0
  45. package/lib/models/fixture-mode-channel.d.ts +8 -0
  46. package/lib/models/fixture-mode.d.ts +3 -1
  47. package/lib/models/fixture-physical.d.ts +4 -0
  48. package/lib/models/fixture-profile.d.ts +5 -0
  49. package/lib/models/preset-fixture.d.ts +5 -0
  50. package/lib/models/preset.d.ts +2 -0
  51. package/lib/models/project.d.ts +3 -0
  52. package/lib/preview/models/color-changer-3d.d.ts +1 -11
  53. package/lib/preview/models/fixture-3d.d.ts +11 -0
  54. package/lib/preview/models/moving-head-3d.d.ts +1 -11
  55. package/lib/services/config.service.d.ts +1 -0
  56. package/lib/services/fixture.service.d.ts +12 -2
  57. package/lib/services/preset.service.d.ts +5 -2
  58. package/lib/services/preview.service.d.ts +2 -5
  59. package/lib/services/project-load.service.d.ts +5 -1
  60. package/lib/services/project.service.d.ts +2 -3
  61. package/lib/services/timeline.service.d.ts +1 -1
  62. package/lib/timeline/composition-settings/composition-settings.component.d.ts +2 -1
  63. package/package.json +1 -1
  64. package/rocketshow-designer-1.36.0.tgz +0 -0
  65. package/esm2022/lib/models/universe.mjs +0 -11
  66. package/esm2022/lib/services/universe.service.mjs +0 -23
  67. package/lib/models/universe.d.ts +0 -8
  68. package/lib/services/universe.service.d.ts +0 -9
  69. package/rocketshow-designer-1.33.0.tgz +0 -0
@@ -1,3 +1,4 @@
1
+ import { FixtureModeChannel } from './fixture-mode-channel';
1
2
  export class FixtureMode {
2
3
  constructor(data) {
3
4
  this.channels = [];
@@ -7,8 +8,10 @@ export class FixtureMode {
7
8
  this.name = data.name;
8
9
  this.shortName = data.shortName;
9
10
  if (data.channels) {
10
- this.channels = data.channels;
11
+ for (const channel of data.channels) {
12
+ this.channels.push(new FixtureModeChannel(channel));
13
+ }
11
14
  }
12
15
  }
13
16
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxXQUFXO0lBS3RCLFlBQVksSUFBVTtRQUZ0QixhQUFRLEdBQVUsRUFBRSxDQUFDO1FBR25CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaXh0dXJlTW9kZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgc2hvcnROYW1lOiBzdHJpbmc7XG4gIGNoYW5uZWxzOiBhbnlbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgdGhpcy5zaG9ydE5hbWUgPSBkYXRhLnNob3J0TmFtZTtcblxuICAgIGlmIChkYXRhLmNoYW5uZWxzKSB7XG4gICAgICB0aGlzLmNoYW5uZWxzID0gZGF0YS5jaGFubmVscztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1tb2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTVELE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQVksSUFBVTtRQUh0QixhQUFRLEdBQXlCLEVBQUUsQ0FBQztRQUlsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpeHR1cmVNb2RlQ2hhbm5lbCB9IGZyb20gJy4vZml4dHVyZS1tb2RlLWNoYW5uZWwnO1xuXG5leHBvcnQgY2xhc3MgRml4dHVyZU1vZGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICBjaGFubmVsczogRml4dHVyZU1vZGVDaGFubmVsW10gPSBbXTtcbiAgY2hhbm5lbENvdW50OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLnNob3J0TmFtZSA9IGRhdGEuc2hvcnROYW1lO1xuXG4gICAgaWYgKGRhdGEuY2hhbm5lbHMpIHtcbiAgICAgIGZvciAoY29uc3QgY2hhbm5lbCBvZiBkYXRhLmNoYW5uZWxzKSB7XG4gICAgICAgIHRoaXMuY2hhbm5lbHMucHVzaChuZXcgRml4dHVyZU1vZGVDaGFubmVsKGNoYW5uZWwpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,14 @@
1
+ export class FixturePhysical {
2
+ constructor(data) {
3
+ this.dimensions = [];
4
+ if (!data) {
5
+ return;
6
+ }
7
+ if (data.dimensions) {
8
+ for (const dimension of data.dimensions) {
9
+ this.dimensions.push(dimension);
10
+ }
11
+ }
12
+ }
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1waHlzaWNhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL2ZpeHR1cmUtcGh5c2ljYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBWSxJQUFVO1FBRnRCLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFHeEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixLQUFLLE1BQU0sU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRml4dHVyZVBoeXNpY2FsIHtcbiAgZGltZW5zaW9uczogbnVtYmVyW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZGltZW5zaW9ucykge1xuICAgICAgZm9yIChjb25zdCBkaW1lbnNpb24gb2YgZGF0YS5kaW1lbnNpb25zKSB7XG4gICAgICAgIHRoaXMuZGltZW5zaW9ucy5wdXNoKGRpbWVuc2lvbik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,5 +1,7 @@
1
1
  import { FixtureChannel } from './fixture-channel';
2
+ import { FixtureMatrix } from './fixture-matrix';
2
3
  import { FixtureMode } from './fixture-mode';
4
+ import { FixturePhysical } from './fixture-physical';
3
5
  import { FixtureWheel } from './fixture-wheel';
4
6
  export var FixtureCategory;
5
7
  (function (FixtureCategory) {
@@ -26,6 +28,7 @@ export class FixtureProfile {
26
28
  this.createdFromFile = false;
27
29
  this.categories = [];
28
30
  this.availableChannels = {};
31
+ this.templateChannels = {};
29
32
  this.wheels = {};
30
33
  // All available fixture modes
31
34
  this.modes = [];
@@ -45,6 +48,12 @@ export class FixtureProfile {
45
48
  else if (data.mainCategory) {
46
49
  this.categories.push(FixtureCategory[data.mainCategory]);
47
50
  }
51
+ if (data.physical) {
52
+ this.physical = new FixturePhysical(data.physical);
53
+ }
54
+ if (data.matrix) {
55
+ this.matrix = new FixtureMatrix(data.matrix);
56
+ }
48
57
  if (data.wheels) {
49
58
  for (const property of Object.keys(data.wheels)) {
50
59
  const wheel = new FixtureWheel(data.wheels[property]);
@@ -62,9 +71,15 @@ export class FixtureProfile {
62
71
  this.availableChannels[property] = fixtureChannel;
63
72
  }
64
73
  }
74
+ if (data.templateChannels) {
75
+ for (const property of Object.keys(data.templateChannels)) {
76
+ const templateChannel = new FixtureChannel(data.templateChannels[property]);
77
+ this.templateChannels[property] = templateChannel;
78
+ }
79
+ }
65
80
  if (data.createdFromFile) {
66
81
  this.createdFromFile = data.createdFromFile;
67
82
  }
68
83
  }
69
84
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE1BQU0sQ0FBTixJQUFZLGVBa0JYO0FBbEJELFdBQVksZUFBZTtJQUN6QixzQ0FBbUIsQ0FBQTtJQUNuQixrREFBaUMsQ0FBQTtJQUNqQyxvQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBaUIsQ0FBQTtJQUNqQiw4QkFBVyxDQUFBO0lBQ1gsb0NBQWlCLENBQUE7SUFDakIsa0NBQWUsQ0FBQTtJQUNmLGtDQUFlLENBQUE7SUFDZixvQ0FBaUIsQ0FBQTtJQUNqQiw4Q0FBNkIsQ0FBQTtJQUM3QiwwQ0FBeUIsQ0FBQTtJQUN6QixzQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLGtDQUFlLENBQUE7SUFDZixvREFBbUMsQ0FBQTtBQUNyQyxDQUFDLEVBbEJXLGVBQWUsS0FBZixlQUFlLFFBa0IxQjtBQUVELE1BQU0sT0FBTyxjQUFjO0lBaUJ6QixZQUFZLElBQVU7UUFYdEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsZUFBVSxHQUFzQixFQUFFLENBQUM7UUFDbkMsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBRTVCLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIsOEJBQThCO1FBQzlCLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBR3hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsV0FBVztRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM5QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBRXhELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQXNCLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ2hELE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixLQUFLLE1BQU0sUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxjQUFjLENBQUM7WUFDcEQsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi9maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRml4dHVyZU1vZGUgfSBmcm9tICcuL2ZpeHR1cmUtbW9kZSc7XG5pbXBvcnQgeyBGaXh0dXJlV2hlZWwgfSBmcm9tICcuL2ZpeHR1cmUtd2hlZWwnO1xuXG5leHBvcnQgZW51bSBGaXh0dXJlQ2F0ZWdvcnkge1xuICBCbGluZGVyID0gJ0JsaW5kZXInLFxuICAnQ29sb3IgQ2hhbmdlcicgPSAnQ29sb3IgQ2hhbmdlcicsXG4gIERpbW1lciA9ICdEaW1tZXInLFxuICBFZmZlY3QgPSAnRWZmZWN0JyxcbiAgRmFuID0gJ0ZhbicsXG4gIEZsb3dlciA9ICdGbG93ZXInLFxuICBIYXplciA9ICdIYXplcicsXG4gIExhc2VyID0gJ0xhc2VyJyxcbiAgTWF0cml4ID0gJ01hdHJpeCcsXG4gICdNb3ZpbmcgSGVhZCcgPSAnTW92aW5nIEhlYWQnLFxuICAnUGl4ZWwgQmFyJyA9ICdQaXhlbCBCYXInLFxuICBTY2FubmVyID0gJ1NjYW5uZXInLFxuICBTbW9rZSA9ICdTbW9rZScsXG4gIFN0YW5kID0gJ1N0YW5kJyxcbiAgU3Ryb2JlID0gJ1N0cm9iZScsXG4gIE90aGVyID0gJ090aGVyJyxcbiAgJ0JhcnJlbCBTY2FubmVyJyA9ICdCYXJyZWwgU2Nhbm5lcicsXG59XG5cbmV4cG9ydCBjbGFzcyBGaXh0dXJlUHJvZmlsZSB7XG4gIHV1aWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8vIHNldCB0byBmaWxlLCBpZiB0aGUgcHJvZmlsZSBpcyBub3QgbG9hZGVkIGZyb20gdGhlIGJhY2tlbmRcbiAgc291cmNlOiBzdHJpbmc7XG4gIGNyZWF0ZWRGcm9tRmlsZSA9IGZhbHNlO1xuICBtYW51ZmFjdHVyZXJTaG9ydE5hbWU6IHN0cmluZztcbiAgbWFudWZhY3R1cmVyTmFtZTogc3RyaW5nO1xuICBjYXRlZ29yaWVzOiBGaXh0dXJlQ2F0ZWdvcnlbXSA9IFtdO1xuICBhdmFpbGFibGVDaGFubmVsczogYW55ID0ge307XG4gIHNob3J0TmFtZTogc3RyaW5nO1xuICB3aGVlbHM6IGFueSA9IHt9O1xuXG4gIC8vIEFsbCBhdmFpbGFibGUgZml4dHVyZSBtb2Rlc1xuICBtb2RlczogRml4dHVyZU1vZGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBtZXRhZGF0YVxuICAgIHRoaXMudXVpZCA9IGRhdGEudXVpZDtcbiAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgdGhpcy5tYW51ZmFjdHVyZXJOYW1lID0gZGF0YS5tYW51ZmFjdHVyZXJOYW1lO1xuICAgIHRoaXMubWFudWZhY3R1cmVyU2hvcnROYW1lID0gZGF0YS5tYW51ZmFjdHVyZXJTaG9ydE5hbWU7XG5cbiAgICBpZiAoZGF0YS5jYXRlZ29yaWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGNhdGVnb3J5IG9mIGRhdGEuY2F0ZWdvcmllcykge1xuICAgICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaChGaXh0dXJlQ2F0ZWdvcnlbY2F0ZWdvcnkgYXMgc3RyaW5nXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkYXRhLm1haW5DYXRlZ29yeSkge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2goRml4dHVyZUNhdGVnb3J5W2RhdGEubWFpbkNhdGVnb3J5IGFzIHN0cmluZ10pO1xuICAgIH1cbiAgICBpZiAoZGF0YS53aGVlbHMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LmtleXMoZGF0YS53aGVlbHMpKSB7XG4gICAgICAgIGNvbnN0IHdoZWVsID0gbmV3IEZpeHR1cmVXaGVlbChkYXRhLndoZWVsc1twcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLndoZWVsc1twcm9wZXJ0eV0gPSB3aGVlbDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEubW9kZXMpIHtcbiAgICAgIGZvciAoY29uc3QgbW9kZSBvZiBkYXRhLm1vZGVzKSB7XG4gICAgICAgIHRoaXMubW9kZXMucHVzaChuZXcgRml4dHVyZU1vZGUobW9kZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5hdmFpbGFibGVDaGFubmVscykge1xuICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBPYmplY3Qua2V5cyhkYXRhLmF2YWlsYWJsZUNoYW5uZWxzKSkge1xuICAgICAgICBjb25zdCBmaXh0dXJlQ2hhbm5lbCA9IG5ldyBGaXh0dXJlQ2hhbm5lbChkYXRhLmF2YWlsYWJsZUNoYW5uZWxzW3Byb3BlcnR5XSk7XG4gICAgICAgIHRoaXMuYXZhaWxhYmxlQ2hhbm5lbHNbcHJvcGVydHldID0gZml4dHVyZUNoYW5uZWw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmNyZWF0ZWRGcm9tRmlsZSkge1xuICAgICAgdGhpcy5jcmVhdGVkRnJvbUZpbGUgPSBkYXRhLmNyZWF0ZWRGcm9tRmlsZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1wcm9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvZml4dHVyZS1wcm9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxDQUFOLElBQVksZUFrQlg7QUFsQkQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLGtEQUFpQyxDQUFBO0lBQ2pDLG9DQUFpQixDQUFBO0lBQ2pCLG9DQUFpQixDQUFBO0lBQ2pCLDhCQUFXLENBQUE7SUFDWCxvQ0FBaUIsQ0FBQTtJQUNqQixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLG9DQUFpQixDQUFBO0lBQ2pCLDhDQUE2QixDQUFBO0lBQzdCLDBDQUF5QixDQUFBO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLGtDQUFlLENBQUE7SUFDZixrQ0FBZSxDQUFBO0lBQ2Ysb0NBQWlCLENBQUE7SUFDakIsa0NBQWUsQ0FBQTtJQUNmLG9EQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFsQlcsZUFBZSxLQUFmLGVBQWUsUUFrQjFCO0FBRUQsTUFBTSxPQUFPLGNBQWM7SUFvQnpCLFlBQVksSUFBVTtRQWR0QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUd4QixlQUFVLEdBQXNCLEVBQUUsQ0FBQztRQUduQyxzQkFBaUIsR0FBUSxFQUFFLENBQUM7UUFDNUIscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FB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LENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaXh0dXJlQ2hhbm5lbCB9IGZyb20gJy4vZml4dHVyZS1jaGFubmVsJztcbmltcG9ydCB7IEZpeHR1cmVNYXRyaXggfSBmcm9tICcuL2ZpeHR1cmUtbWF0cml4JztcbmltcG9ydCB7IEZpeHR1cmVNb2RlIH0gZnJvbSAnLi9maXh0dXJlLW1vZGUnO1xuaW1wb3J0IHsgRml4dHVyZVBoeXNpY2FsIH0gZnJvbSAnLi9maXh0dXJlLXBoeXNpY2FsJztcbmltcG9ydCB7IEZpeHR1cmVXaGVlbCB9IGZyb20gJy4vZml4dHVyZS13aGVlbCc7XG5cbmV4cG9ydCBlbnVtIEZpeHR1cmVDYXRlZ29yeSB7XG4gIEJsaW5kZXIgPSAnQmxpbmRlcicsXG4gICdDb2xvciBDaGFuZ2VyJyA9ICdDb2xvciBDaGFuZ2VyJyxcbiAgRGltbWVyID0gJ0RpbW1lcicsXG4gIEVmZmVjdCA9ICdFZmZlY3QnLFxuICBGYW4gPSAnRmFuJyxcbiAgRmxvd2VyID0gJ0Zsb3dlcicsXG4gIEhhemVyID0gJ0hhemVyJyxcbiAgTGFzZXIgPSAnTGFzZXInLFxuICBNYXRyaXggPSAnTWF0cml4JyxcbiAgJ01vdmluZyBIZWFkJyA9ICdNb3ZpbmcgSGVhZCcsXG4gICdQaXhlbCBCYXInID0gJ1BpeGVsIEJhcicsXG4gIFNjYW5uZXIgPSAnU2Nhbm5lcicsXG4gIFNtb2tlID0gJ1Ntb2tlJyxcbiAgU3RhbmQgPSAnU3RhbmQnLFxuICBTdHJvYmUgPSAnU3Ryb2JlJyxcbiAgT3RoZXIgPSAnT3RoZXInLFxuICAnQmFycmVsIFNjYW5uZXInID0gJ0JhcnJlbCBTY2FubmVyJyxcbn1cblxuZXhwb3J0IGNsYXNzIEZpeHR1cmVQcm9maWxlIHtcbiAgdXVpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLy8gc2V0IHRvIGZpbGUsIGlmIHRoZSBwcm9maWxlIGlzIG5vdCBsb2FkZWQgZnJvbSB0aGUgYmFja2VuZFxuICBzb3VyY2U6IHN0cmluZztcbiAgY3JlYXRlZEZyb21GaWxlID0gZmFsc2U7XG4gIG1hbnVmYWN0dXJlclNob3J0TmFtZTogc3RyaW5nO1xuICBtYW51ZmFjdHVyZXJOYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3JpZXM6IEZpeHR1cmVDYXRlZ29yeVtdID0gW107XG4gIHBoeXNpY2FsOiBGaXh0dXJlUGh5c2ljYWw7XG4gIG1hdHJpeDogRml4dHVyZU1hdHJpeDtcbiAgYXZhaWxhYmxlQ2hhbm5lbHM6IGFueSA9IHt9O1xuICB0ZW1wbGF0ZUNoYW5uZWxzOiBhbnkgPSB7fTtcbiAgc2hvcnROYW1lOiBzdHJpbmc7XG4gIHdoZWVsczogYW55ID0ge307XG5cbiAgLy8gQWxsIGF2YWlsYWJsZSBmaXh0dXJlIG1vZGVzXG4gIG1vZGVzOiBGaXh0dXJlTW9kZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIG1ldGFkYXRhXG4gICAgdGhpcy51dWlkID0gZGF0YS51dWlkO1xuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLm1hbnVmYWN0dXJlck5hbWUgPSBkYXRhLm1hbnVmYWN0dXJlck5hbWU7XG4gICAgdGhpcy5tYW51ZmFjdHVyZXJTaG9ydE5hbWUgPSBkYXRhLm1hbnVmYWN0dXJlclNob3J0TmFtZTtcblxuICAgIGlmIChkYXRhLmNhdGVnb3JpZXMpIHtcbiAgICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgZGF0YS5jYXRlZ29yaWVzKSB7XG4gICAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKEZpeHR1cmVDYXRlZ29yeVtjYXRlZ29yeSBhcyBzdHJpbmddKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRhdGEubWFpbkNhdGVnb3J5KSB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaChGaXh0dXJlQ2F0ZWdvcnlbZGF0YS5tYWluQ2F0ZWdvcnkgYXMgc3RyaW5nXSk7XG4gICAgfVxuICAgIGlmIChkYXRhLnBoeXNpY2FsKSB7XG4gICAgICB0aGlzLnBoeXNpY2FsID0gbmV3IEZpeHR1cmVQaHlzaWNhbChkYXRhLnBoeXNpY2FsKTtcbiAgICB9XG4gICAgaWYgKGRhdGEubWF0cml4KSB7XG4gICAgICB0aGlzLm1hdHJpeCA9IG5ldyBGaXh0dXJlTWF0cml4KGRhdGEubWF0cml4KTtcbiAgICB9XG4gICAgaWYgKGRhdGEud2hlZWxzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKGRhdGEud2hlZWxzKSkge1xuICAgICAgICBjb25zdCB3aGVlbCA9IG5ldyBGaXh0dXJlV2hlZWwoZGF0YS53aGVlbHNbcHJvcGVydHldKTtcbiAgICAgICAgdGhpcy53aGVlbHNbcHJvcGVydHldID0gd2hlZWw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLm1vZGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IG1vZGUgb2YgZGF0YS5tb2Rlcykge1xuICAgICAgICB0aGlzLm1vZGVzLnB1c2gobmV3IEZpeHR1cmVNb2RlKG1vZGUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuYXZhaWxhYmxlQ2hhbm5lbHMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgT2JqZWN0LmtleXMoZGF0YS5hdmFpbGFibGVDaGFubmVscykpIHtcbiAgICAgICAgY29uc3QgZml4dHVyZUNoYW5uZWwgPSBuZXcgRml4dHVyZUNoYW5uZWwoZGF0YS5hdmFpbGFibGVDaGFubmVsc1twcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLmF2YWlsYWJsZUNoYW5uZWxzW3Byb3BlcnR5XSA9IGZpeHR1cmVDaGFubmVsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS50ZW1wbGF0ZUNoYW5uZWxzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIE9iamVjdC5rZXlzKGRhdGEudGVtcGxhdGVDaGFubmVscykpIHtcbiAgICAgICAgY29uc3QgdGVtcGxhdGVDaGFubmVsID0gbmV3IEZpeHR1cmVDaGFubmVsKGRhdGEudGVtcGxhdGVDaGFubmVsc1twcm9wZXJ0eV0pO1xuICAgICAgICB0aGlzLnRlbXBsYXRlQ2hhbm5lbHNbcHJvcGVydHldID0gdGVtcGxhdGVDaGFubmVsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5jcmVhdGVkRnJvbUZpbGUpIHtcbiAgICAgIHRoaXMuY3JlYXRlZEZyb21GaWxlID0gZGF0YS5jcmVhdGVkRnJvbUZpbGU7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -8,7 +8,7 @@ export var Positioning;
8
8
  })(Positioning || (Positioning = {}));
9
9
  export class Fixture {
10
10
  constructor(data) {
11
- this.dmxFirstChannel = 5;
11
+ this.dmxFirstChannel = 1;
12
12
  this.positioning = Positioning.topFront;
13
13
  // Only relevant when positioning = manual
14
14
  // in CM
@@ -37,4 +37,4 @@ export class Fixture {
37
37
  this.rotationZ = data.rotationZ;
38
38
  }
39
39
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL2ZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBMkIsQ0FBQTtJQUMzQix3Q0FBeUIsQ0FBQTtJQUN6QixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQW9CbEIsWUFBWSxJQUFVO1FBZnRCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRXBCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFFaEQsMENBQTBDO1FBQzFDLFFBQVE7UUFDUixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxTQUFTO1FBQ1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBR1osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUG9zaXRpb25pbmcge1xuICB0b3BGcm9udCA9ICd0b3BGcm9udCcsXG4gIHRvcEJhY2sgPSAndG9wQmFjaycsXG4gIGJvdHRvbUZyb250ID0gJ2JvdHRvbUZyb250JyxcbiAgYm90dG9tQmFjayA9ICdib3R0b21CYWNrJyxcbiAgbWFudWFsID0gJ21hbnVhbCcsXG59XG5cbmV4cG9ydCBjbGFzcyBGaXh0dXJlIHtcbiAgdXVpZDogc3RyaW5nO1xuICBwcm9maWxlVXVpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRteFVuaXZlcnNlVXVpZDogc3RyaW5nO1xuICBkbXhGaXJzdENoYW5uZWwgPSA1O1xuICBtb2RlU2hvcnROYW1lOiBzdHJpbmc7XG4gIHBvc2l0aW9uaW5nOiBQb3NpdGlvbmluZyA9IFBvc2l0aW9uaW5nLnRvcEZyb250O1xuXG4gIC8vIE9ubHkgcmVsZXZhbnQgd2hlbiBwb3NpdGlvbmluZyA9IG1hbnVhbFxuICAvLyBpbiBDTVxuICBwb3NpdGlvblggPSAwO1xuICBwb3NpdGlvblkgPSAwO1xuICBwb3NpdGlvblogPSAwO1xuXG4gIC8vIGluIERFR1xuICByb3RhdGlvblggPSAwO1xuICByb3RhdGlvblkgPSAwO1xuICByb3RhdGlvblogPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnV1aWQgPSBkYXRhLnV1aWQ7XG4gICAgdGhpcy5wcm9maWxlVXVpZCA9IGRhdGEucHJvZmlsZVV1aWQ7XG4gICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgIHRoaXMuZG14VW5pdmVyc2VVdWlkID0gZGF0YS5kbXhVbml2ZXJzZVV1aWQ7XG4gICAgdGhpcy5kbXhGaXJzdENoYW5uZWwgPSBkYXRhLmRteEZpcnN0Q2hhbm5lbDtcbiAgICB0aGlzLm1vZGVTaG9ydE5hbWUgPSBkYXRhLm1vZGVTaG9ydE5hbWU7XG4gICAgdGhpcy5wb3NpdGlvbmluZyA9IGRhdGEucG9zaXRpb25pbmc7XG4gICAgdGhpcy5wb3NpdGlvblggPSBkYXRhLnBvc2l0aW9uWDtcbiAgICB0aGlzLnBvc2l0aW9uWSA9IGRhdGEucG9zaXRpb25ZO1xuICAgIHRoaXMucG9zaXRpb25aID0gZGF0YS5wb3NpdGlvblo7XG4gICAgdGhpcy5yb3RhdGlvblggPSBkYXRhLnJvdGF0aW9uWDtcbiAgICB0aGlzLnJvdGF0aW9uWSA9IGRhdGEucm90YXRpb25ZO1xuICAgIHRoaXMucm90YXRpb25aID0gZGF0YS5yb3RhdGlvblo7XG4gIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL2ZpeHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FNWDtBQU5ELFdBQVksV0FBVztJQUNyQixvQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBMkIsQ0FBQTtJQUMzQix3Q0FBeUIsQ0FBQTtJQUN6QixnQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCxNQUFNLE9BQU8sT0FBTztJQW9CbEIsWUFBWSxJQUFVO1FBZnRCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBRXBCLGdCQUFXLEdBQWdCLFdBQVcsQ0FBQyxRQUFRLENBQUM7UUFFaEQsMENBQTBDO1FBQzFDLFFBQVE7UUFDUixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxTQUFTO1FBQ1QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBR1osSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gUG9zaXRpb25pbmcge1xuICB0b3BGcm9udCA9ICd0b3BGcm9udCcsXG4gIHRvcEJhY2sgPSAndG9wQmFjaycsXG4gIGJvdHRvbUZyb250ID0gJ2JvdHRvbUZyb250JyxcbiAgYm90dG9tQmFjayA9ICdib3R0b21CYWNrJyxcbiAgbWFudWFsID0gJ21hbnVhbCcsXG59XG5cbmV4cG9ydCBjbGFzcyBGaXh0dXJlIHtcbiAgdXVpZDogc3RyaW5nO1xuICBwcm9maWxlVXVpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGRteFVuaXZlcnNlVXVpZDogc3RyaW5nO1xuICBkbXhGaXJzdENoYW5uZWwgPSAxO1xuICBtb2RlU2hvcnROYW1lOiBzdHJpbmc7XG4gIHBvc2l0aW9uaW5nOiBQb3NpdGlvbmluZyA9IFBvc2l0aW9uaW5nLnRvcEZyb250O1xuXG4gIC8vIE9ubHkgcmVsZXZhbnQgd2hlbiBwb3NpdGlvbmluZyA9IG1hbnVhbFxuICAvLyBpbiBDTVxuICBwb3NpdGlvblggPSAwO1xuICBwb3NpdGlvblkgPSAwO1xuICBwb3NpdGlvblogPSAwO1xuXG4gIC8vIGluIERFR1xuICByb3RhdGlvblggPSAwO1xuICByb3RhdGlvblkgPSAwO1xuICByb3RhdGlvblogPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnV1aWQgPSBkYXRhLnV1aWQ7XG4gICAgdGhpcy5wcm9maWxlVXVpZCA9IGRhdGEucHJvZmlsZVV1aWQ7XG4gICAgdGhpcy5uYW1lID0gZGF0YS5uYW1lO1xuICAgIHRoaXMuZG14VW5pdmVyc2VVdWlkID0gZGF0YS5kbXhVbml2ZXJzZVV1aWQ7XG4gICAgdGhpcy5kbXhGaXJzdENoYW5uZWwgPSBkYXRhLmRteEZpcnN0Q2hhbm5lbDtcbiAgICB0aGlzLm1vZGVTaG9ydE5hbWUgPSBkYXRhLm1vZGVTaG9ydE5hbWU7XG4gICAgdGhpcy5wb3NpdGlvbmluZyA9IGRhdGEucG9zaXRpb25pbmc7XG4gICAgdGhpcy5wb3NpdGlvblggPSBkYXRhLnBvc2l0aW9uWDtcbiAgICB0aGlzLnBvc2l0aW9uWSA9IGRhdGEucG9zaXRpb25ZO1xuICAgIHRoaXMucG9zaXRpb25aID0gZGF0YS5wb3NpdGlvblo7XG4gICAgdGhpcy5yb3RhdGlvblggPSBkYXRhLnJvdGF0aW9uWDtcbiAgICB0aGlzLnJvdGF0aW9uWSA9IGRhdGEucm90YXRpb25ZO1xuICAgIHRoaXMucm90YXRpb25aID0gZGF0YS5yb3RhdGlvblo7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,10 @@
1
+ export class PresetFixture {
2
+ constructor(data) {
3
+ if (!data) {
4
+ return;
5
+ }
6
+ this.fixtureUuid = data.fixtureUuid;
7
+ this.pixelKey = data.pixelKey;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LWZpeHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL21vZGVscy9wcmVzZXQtZml4dHVyZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUFZLElBQVU7UUFDcEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQcmVzZXRGaXh0dXJlIHtcbiAgcHVibGljIGZpeHR1cmVVdWlkOiBzdHJpbmc7XG4gIHB1YmxpYyBwaXhlbEtleTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmZpeHR1cmVVdWlkID0gZGF0YS5maXh0dXJlVXVpZDtcbiAgICB0aGlzLnBpeGVsS2V5ID0gZGF0YS5waXhlbEtleTtcbiAgfVxufVxuIl19
@@ -2,10 +2,13 @@ import { EffectCurve } from './effect-curve';
2
2
  import { EffectPanTilt } from './effect-pan-tilt';
3
3
  import { FixtureCapabilityValue } from './fixture-capability-value';
4
4
  import { FixtureChannelValue } from './fixture-channel-value';
5
+ import { PresetFixture } from './preset-fixture';
5
6
  export class Preset {
6
7
  constructor(data) {
7
8
  // all related fixtures
9
+ // OBSOLETE: replaced with fixtures
8
10
  this.fixtureUuids = [];
11
+ this.fixtures = [];
9
12
  // the selected values
10
13
  this.fixtureChannelValues = [];
11
14
  this.fixtureCapabilityValues = [];
@@ -22,7 +25,13 @@ export class Preset {
22
25
  }
23
26
  this.uuid = data.uuid;
24
27
  this.name = data.name;
28
+ // OBSOLETE
25
29
  this.fixtureUuids = data.fixtureUuids;
30
+ if (data.fixtures) {
31
+ for (const fixture of data.fixtures) {
32
+ this.fixtures.push(new PresetFixture(fixture));
33
+ }
34
+ }
26
35
  if (data.fixtureChannelValues) {
27
36
  for (const fixtureChannelValue of data.fixtureChannelValues) {
28
37
  this.fixtureChannelValues.push(new FixtureChannelValue(fixtureChannelValue));
@@ -53,4 +62,4 @@ export class Preset {
53
62
  this.fadeOutPost = data.fadeOutPost;
54
63
  }
55
64
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvcHJlc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQsTUFBTSxPQUFPLE1BQU07SUEyQmpCLFlBQVksSUFBVTtRQXZCdEIsdUJBQXVCO1FBQ3ZCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRTVCLHNCQUFzQjtRQUN0Qix5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBQ2pELDRCQUF1QixHQUE2QixFQUFFLENBQUM7UUFFdkQsc0JBQXNCO1FBQ3RCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFPdkIsZUFBZTtRQUNmLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLDJDQUEyQztRQUMzQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBR2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM5QixLQUFLLE1BQU0sbUJBQW1CLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7Z0JBQzVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7WUFDL0UsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ2pDLEtBQUssTUFBTSxzQkFBc0IsSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUN4RixDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNsQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxPQUFPO3dCQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQzNDLE1BQU07b0JBQ1IsS0FBSyxVQUFVO3dCQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQzdDLE1BQU07Z0JBQ1YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAnLi9lZmZlY3QnO1xuaW1wb3J0IHsgRWZmZWN0Q3VydmUgfSBmcm9tICcuL2VmZmVjdC1jdXJ2ZSc7XG5pbXBvcnQgeyBFZmZlY3RQYW5UaWx0IH0gZnJvbSAnLi9lZmZlY3QtcGFuLXRpbHQnO1xuaW1wb3J0IHsgRml4dHVyZUNhcGFiaWxpdHlWYWx1ZSB9IGZyb20gJy4vZml4dHVyZS1jYXBhYmlsaXR5LXZhbHVlJztcbmltcG9ydCB7IEZpeHR1cmVDaGFubmVsVmFsdWUgfSBmcm9tICcuL2ZpeHR1cmUtY2hhbm5lbC12YWx1ZSc7XG5cbmV4cG9ydCBjbGFzcyBQcmVzZXQge1xuICB1dWlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcblxuICAvLyBhbGwgcmVsYXRlZCBmaXh0dXJlc1xuICBmaXh0dXJlVXVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gdGhlIHNlbGVjdGVkIHZhbHVlc1xuICBmaXh0dXJlQ2hhbm5lbFZhbHVlczogRml4dHVyZUNoYW5uZWxWYWx1ZVtdID0gW107XG4gIGZpeHR1cmVDYXBhYmlsaXR5VmFsdWVzOiBGaXh0dXJlQ2FwYWJpbGl0eVZhbHVlW10gPSBbXTtcblxuICAvLyBhbGwgcmVsYXRlZCBlZmZlY3RzXG4gIGVmZmVjdHM6IEVmZmVjdFtdID0gW107XG5cbiAgLy8gcG9zaXRpb24gb2Zmc2V0LCByZWxhdGl2ZSB0byB0aGUgc2NlbmUgc3RhcnRcbiAgLy8gKHVuZGVmaW5lZCA9IHN0YXJ0L2VuZCBvZiB0aGUgc2NlbmUgaXRzZWxmKVxuICBzdGFydE1pbGxpczogbnVtYmVyO1xuICBlbmRNaWxsaXM6IG51bWJlcjtcblxuICAvLyBmYWRpbmcgdGltZXNcbiAgZmFkZUluTWlsbGlzID0gMDtcbiAgZmFkZU91dE1pbGxpcyA9IDA7XG5cbiAgLy8gZmFkZSBpbi9vdXQgb3V0c2lkZSB0aGUgc3RhcnQvZW5kIHRpbWVzP1xuICBmYWRlSW5QcmUgPSBmYWxzZTtcbiAgZmFkZU91dFBvc3QgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihkYXRhPzogYW55KSB7XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy51dWlkID0gZGF0YS51dWlkO1xuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLmZpeHR1cmVVdWlkcyA9IGRhdGEuZml4dHVyZVV1aWRzO1xuICAgIGlmIChkYXRhLmZpeHR1cmVDaGFubmVsVmFsdWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpeHR1cmVDaGFubmVsVmFsdWUgb2YgZGF0YS5maXh0dXJlQ2hhbm5lbFZhbHVlcykge1xuICAgICAgICB0aGlzLmZpeHR1cmVDaGFubmVsVmFsdWVzLnB1c2gobmV3IEZpeHR1cmVDaGFubmVsVmFsdWUoZml4dHVyZUNoYW5uZWxWYWx1ZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YS5maXh0dXJlQ2FwYWJpbGl0eVZhbHVlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlQ2FwYWJpbGl0eVZhbHVlIG9mIGRhdGEuZml4dHVyZUNhcGFiaWxpdHlWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlQ2FwYWJpbGl0eVZhbHVlcy5wdXNoKG5ldyBGaXh0dXJlQ2FwYWJpbGl0eVZhbHVlKGZpeHR1cmVDYXBhYmlsaXR5VmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuZWZmZWN0cykge1xuICAgICAgZm9yIChjb25zdCBlZmZlY3Qgb2YgZGF0YS5lZmZlY3RzKSB7XG4gICAgICAgIHN3aXRjaCAoZWZmZWN0LnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdjdXJ2ZSc6XG4gICAgICAgICAgICB0aGlzLmVmZmVjdHMucHVzaChuZXcgRWZmZWN0Q3VydmUoZWZmZWN0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdwYW4tdGlsdCc6XG4gICAgICAgICAgICB0aGlzLmVmZmVjdHMucHVzaChuZXcgRWZmZWN0UGFuVGlsdChlZmZlY3QpKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc3RhcnRNaWxsaXMgPSBkYXRhLnN0YXJ0TWlsbGlzO1xuICAgIHRoaXMuZW5kTWlsbGlzID0gZGF0YS5lbmRNaWxsaXM7XG4gICAgdGhpcy5mYWRlSW5NaWxsaXMgPSBkYXRhLmZhZGVJbk1pbGxpcztcbiAgICB0aGlzLmZhZGVPdXRNaWxsaXMgPSBkYXRhLmZhZGVPdXRNaWxsaXM7XG4gICAgdGhpcy5mYWRlSW5QcmUgPSBkYXRhLmZhZGVJblByZTtcbiAgICB0aGlzLmZhZGVPdXRQb3N0ID0gZGF0YS5mYWRlT3V0UG9zdDtcbiAgfVxufVxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9tb2RlbHMvcHJlc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE1BQU0sT0FBTyxNQUFNO0lBNkJqQixZQUFZLElBQVU7UUF6QnRCLHVCQUF1QjtRQUN2QixtQ0FBbUM7UUFDbkMsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFvQixFQUFFLENBQUM7UUFFL0Isc0JBQXNCO1FBQ3RCLHlCQUFvQixHQUEwQixFQUFFLENBQUM7UUFDakQsNEJBQXVCLEdBQTZCLEVBQUUsQ0FBQztRQUV2RCxzQkFBc0I7UUFDdEIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQU92QixlQUFlO1FBQ2YsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFFbEIsMkNBQTJDO1FBQzNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFHbEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBRXRCLFdBQVc7UUFDWCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFdEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQzlCLEtBQUssTUFBTSxtQkFBbUIsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLHNCQUFzQixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUNsRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLElBQUksc0JBQXNCLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUNwQixLQUFLLE9BQU87d0JBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDM0MsTUFBTTtvQkFDUixLQUFLLFVBQVU7d0JBQ2IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQzt3QkFDN0MsTUFBTTtnQkFDVixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZmZlY3QgfSBmcm9tICcuL2VmZmVjdCc7XG5pbXBvcnQgeyBFZmZlY3RDdXJ2ZSB9IGZyb20gJy4vZWZmZWN0LWN1cnZlJztcbmltcG9ydCB7IEVmZmVjdFBhblRpbHQgfSBmcm9tICcuL2VmZmVjdC1wYW4tdGlsdCc7XG5pbXBvcnQgeyBGaXh0dXJlQ2FwYWJpbGl0eVZhbHVlIH0gZnJvbSAnLi9maXh0dXJlLWNhcGFiaWxpdHktdmFsdWUnO1xuaW1wb3J0IHsgRml4dHVyZUNoYW5uZWxWYWx1ZSB9IGZyb20gJy4vZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IFByZXNldEZpeHR1cmUgfSBmcm9tICcuL3ByZXNldC1maXh0dXJlJztcblxuZXhwb3J0IGNsYXNzIFByZXNldCB7XG4gIHV1aWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8vIGFsbCByZWxhdGVkIGZpeHR1cmVzXG4gIC8vIE9CU09MRVRFOiByZXBsYWNlZCB3aXRoIGZpeHR1cmVzXG4gIGZpeHR1cmVVdWlkczogc3RyaW5nW10gPSBbXTtcbiAgZml4dHVyZXM6IFByZXNldEZpeHR1cmVbXSA9IFtdO1xuXG4gIC8vIHRoZSBzZWxlY3RlZCB2YWx1ZXNcbiAgZml4dHVyZUNoYW5uZWxWYWx1ZXM6IEZpeHR1cmVDaGFubmVsVmFsdWVbXSA9IFtdO1xuICBmaXh0dXJlQ2FwYWJpbGl0eVZhbHVlczogRml4dHVyZUNhcGFiaWxpdHlWYWx1ZVtdID0gW107XG5cbiAgLy8gYWxsIHJlbGF0ZWQgZWZmZWN0c1xuICBlZmZlY3RzOiBFZmZlY3RbXSA9IFtdO1xuXG4gIC8vIHBvc2l0aW9uIG9mZnNldCwgcmVsYXRpdmUgdG8gdGhlIHNjZW5lIHN0YXJ0XG4gIC8vICh1bmRlZmluZWQgPSBzdGFydC9lbmQgb2YgdGhlIHNjZW5lIGl0c2VsZilcbiAgc3RhcnRNaWxsaXM6IG51bWJlcjtcbiAgZW5kTWlsbGlzOiBudW1iZXI7XG5cbiAgLy8gZmFkaW5nIHRpbWVzXG4gIGZhZGVJbk1pbGxpcyA9IDA7XG4gIGZhZGVPdXRNaWxsaXMgPSAwO1xuXG4gIC8vIGZhZGUgaW4vb3V0IG91dHNpZGUgdGhlIHN0YXJ0L2VuZCB0aW1lcz9cbiAgZmFkZUluUHJlID0gZmFsc2U7XG4gIGZhZGVPdXRQb3N0ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudXVpZCA9IGRhdGEudXVpZDtcbiAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG5cbiAgICAvLyBPQlNPTEVURVxuICAgIHRoaXMuZml4dHVyZVV1aWRzID0gZGF0YS5maXh0dXJlVXVpZHM7XG5cbiAgICBpZiAoZGF0YS5maXh0dXJlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIGRhdGEuZml4dHVyZXMpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlcy5wdXNoKG5ldyBQcmVzZXRGaXh0dXJlKGZpeHR1cmUpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZGF0YS5maXh0dXJlQ2hhbm5lbFZhbHVlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlQ2hhbm5lbFZhbHVlIG9mIGRhdGEuZml4dHVyZUNoYW5uZWxWYWx1ZXMpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlQ2hhbm5lbFZhbHVlcy5wdXNoKG5ldyBGaXh0dXJlQ2hhbm5lbFZhbHVlKGZpeHR1cmVDaGFubmVsVmFsdWUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRhdGEuZml4dHVyZUNhcGFiaWxpdHlWYWx1ZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZml4dHVyZUNhcGFiaWxpdHlWYWx1ZSBvZiBkYXRhLmZpeHR1cmVDYXBhYmlsaXR5VmFsdWVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZUNhcGFiaWxpdHlWYWx1ZXMucHVzaChuZXcgRml4dHVyZUNhcGFiaWxpdHlWYWx1ZShmaXh0dXJlQ2FwYWJpbGl0eVZhbHVlKSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChkYXRhLmVmZmVjdHMpIHtcbiAgICAgIGZvciAoY29uc3QgZWZmZWN0IG9mIGRhdGEuZWZmZWN0cykge1xuICAgICAgICBzd2l0Y2ggKGVmZmVjdC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnY3VydmUnOlxuICAgICAgICAgICAgdGhpcy5lZmZlY3RzLnB1c2gobmV3IEVmZmVjdEN1cnZlKGVmZmVjdCkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAncGFuLXRpbHQnOlxuICAgICAgICAgICAgdGhpcy5lZmZlY3RzLnB1c2gobmV3IEVmZmVjdFBhblRpbHQoZWZmZWN0KSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnN0YXJ0TWlsbGlzID0gZGF0YS5zdGFydE1pbGxpcztcbiAgICB0aGlzLmVuZE1pbGxpcyA9IGRhdGEuZW5kTWlsbGlzO1xuICAgIHRoaXMuZmFkZUluTWlsbGlzID0gZGF0YS5mYWRlSW5NaWxsaXM7XG4gICAgdGhpcy5mYWRlT3V0TWlsbGlzID0gZGF0YS5mYWRlT3V0TWlsbGlzO1xuICAgIHRoaXMuZmFkZUluUHJlID0gZGF0YS5mYWRlSW5QcmU7XG4gICAgdGhpcy5mYWRlT3V0UG9zdCA9IGRhdGEuZmFkZU91dFBvc3Q7XG4gIH1cbn1cbiJdfQ==
@@ -2,6 +2,7 @@ import { Composition } from './composition';
2
2
  import { Fixture } from './fixture';
3
3
  import { FixtureProfile } from './fixture-profile';
4
4
  import { Preset } from './preset';
5
+ import { PresetFixture } from './preset-fixture';
5
6
  import { Scene } from './scene';
6
7
  export class Project {
7
8
  constructor(data) {
@@ -17,13 +18,17 @@ export class Project {
17
18
  this.previewPreset = true;
18
19
  this.compositions = [];
19
20
  this.fixtureProfiles = [];
21
+ // fixtures added to the project in a DMX universe
20
22
  this.fixtures = [];
23
+ // the fixtures and pixel keys in order to be selectable
24
+ this.presetFixtures = [];
21
25
  this.scenes = [];
22
26
  this.presets = [];
23
27
  if (!data) {
24
28
  return;
25
29
  }
26
30
  this.id = data.id;
31
+ this.version = data.version;
27
32
  this.uuid = data.uuid;
28
33
  this.name = data.name;
29
34
  this.shareToken = data.shareToken;
@@ -53,6 +58,11 @@ export class Project {
53
58
  this.fixtures.push(new Fixture(fixture));
54
59
  }
55
60
  }
61
+ if (data.presetFixtures) {
62
+ for (const presetFixture of data.presetFixtures) {
63
+ this.presetFixtures.push(new PresetFixture(presetFixture));
64
+ }
65
+ }
56
66
  if (data.scenes) {
57
67
  for (const scene of data.scenes) {
58
68
  this.scenes.push(new Scene(scene));
@@ -65,4 +75,4 @@ export class Project {
65
75
  }
66
76
  }
67
77
  }
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxPQUFPLE9BQU87SUE4QmxCLFlBQVksSUFBVTtRQXhCZixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUNuQixrQkFBYSxHQUFHLEdBQUcsQ0FBQztRQUNwQixpQkFBWSxHQUFHLEdBQUcsQ0FBQztRQUVuQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDeEIseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFHdEIsdUJBQWtCLEdBQWEsRUFBRSxDQUFDO1FBRXpDLDBEQUEwRDtRQUNuRCxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUlyQixpQkFBWSxHQUFrQixFQUFFLENBQUM7UUFDakMsb0JBQWUsR0FBcUIsRUFBRSxDQUFDO1FBQ3ZDLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFZLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQWEsRUFBRSxDQUFDO1FBRzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRWxDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXRDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDbEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN0RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBRWxELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFFaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDO1FBRTVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLEtBQUssTUFBTSxXQUFXLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNLGNBQWMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUMzQyxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb3NpdGlvbiB9IGZyb20gJy4vY29tcG9zaXRpb24nO1xuaW1wb3J0IHsgRml4dHVyZSB9IGZyb20gJy4vZml4dHVyZSc7XG5pbXBvcnQgeyBGaXh0dXJlUHJvZmlsZSB9IGZyb20gJy4vZml4dHVyZS1wcm9maWxlJztcbmltcG9ydCB7IFByZXNldCB9IGZyb20gJy4vcHJlc2V0JztcbmltcG9ydCB7IFNjZW5lIH0gZnJvbSAnLi9zY2VuZSc7XG5cbmV4cG9ydCBjbGFzcyBQcm9qZWN0IHtcbiAgcHVibGljIGlkOiBudW1iZXI7XG4gIHB1YmxpYyB1dWlkOiBzdHJpbmc7XG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyBzaGFyZVRva2VuOiBzdHJpbmc7XG5cbiAgcHVibGljIHN0YWdlV2lkdGhDbSA9IDYwMDtcbiAgcHVibGljIHN0YWdlSGVpZ2h0Q20gPSAzNTA7XG4gIHB1YmxpYyBzdGFnZURlcHRoQ20gPSA2MDA7XG5cbiAgcHVibGljIHN0YWdlRmxvb3JIZWlnaHRDbSA9IDMwO1xuICBwdWJsaWMgc3RhZ2VDZWlsaW5nSGVpZ2h0Q20gPSA1O1xuICBwdWJsaWMgc3RhZ2VQaWxsYXJXaWR0aENtID0gMjA7XG5cbiAgcHVibGljIG1hc3RlckRpbW1lclZhbHVlID0gMTtcblxuICBwdWJsaWMgc2VsZWN0ZWRQcmVzZXRVdWlkOiBzdHJpbmc7XG4gIHB1YmxpYyBzZWxlY3RlZFNjZW5lVXVpZHM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gdHJ1ZSA9IHNob3cgdGhlIHByZXNldCwgZmFsc2UgPSBzaG93IHRoZSBzZWxlY3RlZCBzY2VuZVxuICBwdWJsaWMgcHJldmlld1ByZXNldCA9IHRydWU7XG5cbiAgcHVibGljIHNlbGVjdGVkQ29tcG9zaXRpb25VdWlkOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbXBvc2l0aW9uczogQ29tcG9zaXRpb25bXSA9IFtdO1xuICBwdWJsaWMgZml4dHVyZVByb2ZpbGVzOiBGaXh0dXJlUHJvZmlsZVtdID0gW107XG4gIHB1YmxpYyBmaXh0dXJlczogRml4dHVyZVtdID0gW107XG4gIHB1YmxpYyBzY2VuZXM6IFNjZW5lW10gPSBbXTtcbiAgcHVibGljIHByZXNldHM6IFByZXNldFtdID0gW107XG5cbiAgY29uc3RydWN0b3IoZGF0YT86IGFueSkge1xuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xuICAgIHRoaXMudXVpZCA9IGRhdGEudXVpZDtcbiAgICB0aGlzLm5hbWUgPSBkYXRhLm5hbWU7XG4gICAgdGhpcy5zaGFyZVRva2VuID0gZGF0YS5zaGFyZVRva2VuO1xuXG4gICAgdGhpcy5zdGFnZVdpZHRoQ20gPSBkYXRhLnN0YWdlV2lkdGhDbTtcbiAgICB0aGlzLnN0YWdlSGVpZ2h0Q20gPSBkYXRhLnN0YWdlSGVpZ2h0Q207XG4gICAgdGhpcy5zdGFnZURlcHRoQ20gPSBkYXRhLnN0YWdlRGVwdGhDbTtcblxuICAgIHRoaXMuc3RhZ2VGbG9vckhlaWdodENtID0gZGF0YS5zdGFnZUZsb29ySGVpZ2h0Q207XG4gICAgdGhpcy5zdGFnZUNlaWxpbmdIZWlnaHRDbSA9IGRhdGEuc3RhZ2VDZWlsaW5nSGVpZ2h0Q207XG4gICAgdGhpcy5zdGFnZVBpbGxhcldpZHRoQ20gPSBkYXRhLnN0YWdlUGlsbGFyV2lkdGhDbTtcblxuICAgIHRoaXMubWFzdGVyRGltbWVyVmFsdWUgPSBkYXRhLm1hc3RlckRpbW1lclZhbHVlO1xuXG4gICAgdGhpcy5zZWxlY3RlZFByZXNldFV1aWQgPSBkYXRhLnNlbGVjdGVkUHJlc2V0VXVpZDtcbiAgICB0aGlzLnNlbGVjdGVkU2NlbmVVdWlkcyA9IGRhdGEuc2VsZWN0ZWRTY2VuZVV1aWRzO1xuICAgIHRoaXMucHJldmlld1ByZXNldCA9IGRhdGEucHJldmlld1ByZXNldDtcbiAgICB0aGlzLnNlbGVjdGVkQ29tcG9zaXRpb25VdWlkID0gZGF0YS5zZWxlY3RlZENvbXBvc2l0aW9uVXVpZDtcblxuICAgIGlmIChkYXRhLmNvbXBvc2l0aW9ucykge1xuICAgICAgZm9yIChjb25zdCBjb21wb3NpdGlvbiBvZiBkYXRhLmNvbXBvc2l0aW9ucykge1xuICAgICAgICB0aGlzLmNvbXBvc2l0aW9ucy5wdXNoKG5ldyBDb21wb3NpdGlvbihjb21wb3NpdGlvbikpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRhLmZpeHR1cmVQcm9maWxlcykge1xuICAgICAgZm9yIChjb25zdCBmaXh0dXJlUHJvZmlsZSBvZiBkYXRhLmZpeHR1cmVQcm9maWxlcykge1xuICAgICAgICB0aGlzLmZpeHR1cmVQcm9maWxlcy5wdXNoKG5ldyBGaXh0dXJlUHJvZmlsZShmaXh0dXJlUHJvZmlsZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRhLmZpeHR1cmVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgZGF0YS5maXh0dXJlcykge1xuICAgICAgICB0aGlzLmZpeHR1cmVzLnB1c2gobmV3IEZpeHR1cmUoZml4dHVyZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRhLnNjZW5lcykge1xuICAgICAgZm9yIChjb25zdCBzY2VuZSBvZiBkYXRhLnNjZW5lcykge1xuICAgICAgICB0aGlzLnNjZW5lcy5wdXNoKG5ldyBTY2VuZShzY2VuZSkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChkYXRhLnByZXNldHMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJlc2V0IG9mIGRhdGEucHJlc2V0cykge1xuICAgICAgICB0aGlzLnByZXNldHMucHVzaChuZXcgUHJlc2V0KHByZXNldCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvbW9kZWxzL3Byb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxPQUFPO0lBcUNsQixZQUFZLElBQVU7UUE5QmYsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxHQUFHLENBQUM7UUFDcEIsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFFbkIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBR3RCLHVCQUFrQixHQUFhLEVBQUUsQ0FBQztRQUV6QywwREFBMEQ7UUFDbkQsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFJckIsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLG9CQUFlLEdBQXFCLEVBQUUsQ0FBQztRQUU5QyxrREFBa0Q7UUFDM0MsYUFBUSxHQUFjLEVBQUUsQ0FBQztRQUVoQyx3REFBd0Q7UUFDakQsbUJBQWMsR0FBb0IsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBWSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUc1QixJQUFJLENBQUMsSUFB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QUFDLElBQUksQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9zaXRpb24gfSBmcm9tICcuL2NvbXBvc2l0aW9uJztcbmltcG9ydCB7IEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmUnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuL2ZpeHR1cmUtcHJvZmlsZSc7XG5pbXBvcnQgeyBQcmVzZXQgfSBmcm9tICcuL3ByZXNldCc7XG5pbXBvcnQgeyBQcmVzZXRGaXh0dXJlIH0gZnJvbSAnLi9wcmVzZXQtZml4dHVyZSc7XG5pbXBvcnQgeyBTY2VuZSB9IGZyb20gJy4vc2NlbmUnO1xuXG5leHBvcnQgY2xhc3MgUHJvamVjdCB7XG4gIHB1YmxpYyBpZDogbnVtYmVyO1xuICBwdWJsaWMgdmVyc2lvbjogbnVtYmVyO1xuICBwdWJsaWMgdXVpZDogc3RyaW5nO1xuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgc2hhcmVUb2tlbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBzdGFnZVdpZHRoQ20gPSA2MDA7XG4gIHB1YmxpYyBzdGFnZUhlaWdodENtID0gMzUwO1xuICBwdWJsaWMgc3RhZ2VEZXB0aENtID0gNjAwO1xuXG4gIHB1YmxpYyBzdGFnZUZsb29ySGVpZ2h0Q20gPSAzMDtcbiAgcHVibGljIHN0YWdlQ2VpbGluZ0hlaWdodENtID0gNTtcbiAgcHVibGljIHN0YWdlUGlsbGFyV2lkdGhDbSA9IDIwO1xuXG4gIHB1YmxpYyBtYXN0ZXJEaW1tZXJWYWx1ZSA9IDE7XG5cbiAgcHVibGljIHNlbGVjdGVkUHJlc2V0VXVpZDogc3RyaW5nO1xuICBwdWJsaWMgc2VsZWN0ZWRTY2VuZVV1aWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8vIHRydWUgPSBzaG93IHRoZSBwcmVzZXQsIGZhbHNlID0gc2hvdyB0aGUgc2VsZWN0ZWQgc2NlbmVcbiAgcHVibGljIHByZXZpZXdQcmVzZXQgPSB0cnVlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZENvbXBvc2l0aW9uVXVpZDogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb21wb3NpdGlvbnM6IENvbXBvc2l0aW9uW10gPSBbXTtcbiAgcHVibGljIGZpeHR1cmVQcm9maWxlczogRml4dHVyZVByb2ZpbGVbXSA9IFtdO1xuXG4gIC8vIGZpeHR1cmVzIGFkZGVkIHRvIHRoZSBwcm9qZWN0IGluIGEgRE1YIHVuaXZlcnNlXG4gIHB1YmxpYyBmaXh0dXJlczogRml4dHVyZVtdID0gW107XG5cbiAgLy8gdGhlIGZpeHR1cmVzIGFuZCBwaXhlbCBrZXlzIGluIG9yZGVyIHRvIGJlIHNlbGVjdGFibGVcbiAgcHVibGljIHByZXNldEZpeHR1cmVzOiBQcmVzZXRGaXh0dXJlW10gPSBbXTtcblxuICBwdWJsaWMgc2NlbmVzOiBTY2VuZVtdID0gW107XG4gIHB1YmxpYyBwcmVzZXRzOiBQcmVzZXRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gZGF0YS5pZDtcbiAgICB0aGlzLnZlcnNpb24gPSBkYXRhLnZlcnNpb247XG4gICAgdGhpcy51dWlkID0gZGF0YS51dWlkO1xuICAgIHRoaXMubmFtZSA9IGRhdGEubmFtZTtcbiAgICB0aGlzLnNoYXJlVG9rZW4gPSBkYXRhLnNoYXJlVG9rZW47XG5cbiAgICB0aGlzLnN0YWdlV2lkdGhDbSA9IGRhdGEuc3RhZ2VXaWR0aENtO1xuICAgIHRoaXMuc3RhZ2VIZWlnaHRDbSA9IGRhdGEuc3RhZ2VIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlRGVwdGhDbSA9IGRhdGEuc3RhZ2VEZXB0aENtO1xuXG4gICAgdGhpcy5zdGFnZUZsb29ySGVpZ2h0Q20gPSBkYXRhLnN0YWdlRmxvb3JIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlQ2VpbGluZ0hlaWdodENtID0gZGF0YS5zdGFnZUNlaWxpbmdIZWlnaHRDbTtcbiAgICB0aGlzLnN0YWdlUGlsbGFyV2lkdGhDbSA9IGRhdGEuc3RhZ2VQaWxsYXJXaWR0aENtO1xuXG4gICAgdGhpcy5tYXN0ZXJEaW1tZXJWYWx1ZSA9IGRhdGEubWFzdGVyRGltbWVyVmFsdWU7XG5cbiAgICB0aGlzLnNlbGVjdGVkUHJlc2V0VXVpZCA9IGRhdGEuc2VsZWN0ZWRQcmVzZXRVdWlkO1xuICAgIHRoaXMuc2VsZWN0ZWRTY2VuZVV1aWRzID0gZGF0YS5zZWxlY3RlZFNjZW5lVXVpZHM7XG4gICAgdGhpcy5wcmV2aWV3UHJlc2V0ID0gZGF0YS5wcmV2aWV3UHJlc2V0O1xuICAgIHRoaXMuc2VsZWN0ZWRDb21wb3NpdGlvblV1aWQgPSBkYXRhLnNlbGVjdGVkQ29tcG9zaXRpb25VdWlkO1xuXG4gICAgaWYgKGRhdGEuY29tcG9zaXRpb25zKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbXBvc2l0aW9uIG9mIGRhdGEuY29tcG9zaXRpb25zKSB7XG4gICAgICAgIHRoaXMuY29tcG9zaXRpb25zLnB1c2gobmV3IENvbXBvc2l0aW9uKGNvbXBvc2l0aW9uKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZml4dHVyZVByb2ZpbGVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpeHR1cmVQcm9maWxlIG9mIGRhdGEuZml4dHVyZVByb2ZpbGVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZVByb2ZpbGVzLnB1c2gobmV3IEZpeHR1cmVQcm9maWxlKGZpeHR1cmVQcm9maWxlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZml4dHVyZXMpIHtcbiAgICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiBkYXRhLmZpeHR1cmVzKSB7XG4gICAgICAgIHRoaXMuZml4dHVyZXMucHVzaChuZXcgRml4dHVyZShmaXh0dXJlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucHJlc2V0Rml4dHVyZXMpIHtcbiAgICAgIGZvciAoY29uc3QgcHJlc2V0Rml4dHVyZSBvZiBkYXRhLnByZXNldEZpeHR1cmVzKSB7XG4gICAgICAgIHRoaXMucHJlc2V0Rml4dHVyZXMucHVzaChuZXcgUHJlc2V0Rml4dHVyZShwcmVzZXRGaXh0dXJlKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuc2NlbmVzKSB7XG4gICAgICBmb3IgKGNvbnN0IHNjZW5lIG9mIGRhdGEuc2NlbmVzKSB7XG4gICAgICAgIHRoaXMuc2NlbmVzLnB1c2gobmV3IFNjZW5lKHNjZW5lKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRhdGEucHJlc2V0cykge1xuICAgICAgZm9yIChjb25zdCBwcmVzZXQgb2YgZGF0YS5wcmVzZXRzKSB7XG4gICAgICAgIHRoaXMucHJlc2V0cy5wdXNoKG5ldyBQcmVzZXQocHJlc2V0KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -3,104 +3,15 @@ import { map } from 'rxjs/operators';
3
3
  import * as THREE from 'three';
4
4
  import { Fixture3d } from './fixture-3d';
5
5
  export class ColorChanger3d extends Fixture3d {
6
- atmosphereMat() {
7
- const vertexShader = [
8
- 'varying vec3 vVertexWorldPosition;',
9
- 'varying vec3 vVertexNormal;',
10
- 'void main(){',
11
- ' vVertexNormal = normalize(normalMatrix * normal);',
12
- ' vVertexWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;',
13
- ' // set gl_Position',
14
- ' gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);',
15
- '}',
16
- ].join('\n');
17
- const fragmentShader = [
18
- 'uniform vec3 glowColor;',
19
- 'uniform float coeficient;',
20
- 'uniform float power;',
21
- 'uniform float opacity;',
22
- 'varying vec3 vVertexNormal;',
23
- 'varying vec3 vVertexWorldPosition;',
24
- 'void main(){',
25
- ' vec3 worldCameraToVertex= vVertexWorldPosition - cameraPosition;',
26
- ' vec3 viewCameraToVertex = (viewMatrix * vec4(worldCameraToVertex, 0.0)).xyz;',
27
- ' viewCameraToVertex = normalize(viewCameraToVertex);',
28
- ' float intensity = pow(coeficient + dot(vVertexNormal, viewCameraToVertex), power);',
29
- ' gl_FragColor = vec4(glowColor, intensity * opacity);',
30
- '}',
31
- ].join('\n');
32
- // create custom material from the shader code above
33
- // that is within specially labeled script tags
34
- const material = new THREE.ShaderMaterial({
35
- uniforms: {
36
- coeficient: {
37
- type: 'f',
38
- value: 0.3,
39
- },
40
- power: {
41
- type: 'f',
42
- value: 1.3,
43
- },
44
- opacity: {
45
- type: 'f',
46
- value: 1.0,
47
- },
48
- glowColor: {
49
- type: 'c',
50
- value: new THREE.Color('white'),
51
- },
52
- },
53
- vertexShader,
54
- fragmentShader,
55
- // blending: THREE.AdditiveBlending,
56
- transparent: true,
57
- depthWrite: false,
58
- });
59
- return material;
60
- }
61
- createSpotLightBeam() {
62
- if (this.spotLightBeam) {
63
- this.spotlightGroup.remove(this.spotLightBeam);
64
- }
65
- // TODO update the correct angle from the profile
66
- const beamAngleDegrees = 14;
67
- const geometry = new THREE.CylinderGeometry(0.8, beamAngleDegrees * 1.2, 100, 64, 20, false);
68
- geometry.applyMatrix4(new THREE.Matrix4().makeTranslation(0, -geometry.parameters.height / 2, 0));
69
- geometry.applyMatrix4(new THREE.Matrix4().makeRotationX(-Math.PI / 2));
70
- this.atmosphereMaterial = this.atmosphereMat();
71
- this.spotLightBeam = new THREE.Mesh(geometry, this.atmosphereMaterial);
72
- this.spotLightBeam.position.set(0, -0.02, 0);
73
- this.spotlightGroup.add(this.spotLightBeam);
74
- this.spotLightBeam.rotation.x = Math.PI / 2;
75
- }
76
6
  createObjects() {
7
+ super.createObjects();
77
8
  this.material = new THREE.MeshLambertMaterial({
78
9
  color: 0x0d0d0d,
79
10
  emissive: 0x0d0d0d,
80
11
  });
81
12
  this.mesh.material = this.material;
82
- // Add the spotlight
83
- this.spotLight = new THREE.SpotLight(0xffffff, 1);
84
- this.spotLight.angle = 0.244;
85
- this.spotLight.penumbra = 0.5;
86
- this.spotLight.decay = 2;
87
- this.spotLight.distance = 60000;
88
- this.spotLight.castShadow = false;
89
- this.spotLight.intensity = 10;
90
13
  this.spotLightHelper = new THREE.SpotLightHelper(this.spotLight);
91
14
  // scene.add(this.spotLightHelper);
92
- const spotLightTarget = new THREE.Object3D();
93
- this.spotLight.target = spotLightTarget;
94
- this.spotlightGroup.add(this.spotLight);
95
- this.spotlightGroup.add(spotLightTarget);
96
- this.spotLight.position.set(0, -1.4, 0);
97
- spotLightTarget.position.set(0, -10, 0);
98
- // Add the point light for the surrounding light
99
- this.pointLight = new THREE.PointLight(0xffffff, 2, 1000);
100
- this.spotlightGroup.add(this.pointLight);
101
- this.pointLight.position.set(0, -1.4, 0);
102
- // Add the light beam
103
- this.createSpotLightBeam();
104
15
  this.objectGroup.add(this.spotlightGroup);
105
16
  this.objectGroup.add(this.mesh);
106
17
  // A moving head has about 32 cm in width
@@ -110,10 +21,7 @@ export class ColorChanger3d extends Fixture3d {
110
21
  }
111
22
  constructor(fixtureService, previewMeshService, fixture, scene) {
112
23
  super(fixtureService, fixture, scene);
113
- this.pointLightMaxIntensity = 2;
114
- this.spotLightMaxIntensity = 5;
115
24
  this.objectGroup = new THREE.Object3D();
116
- this.spotlightGroup = new THREE.Object3D();
117
25
  forkJoin([previewMeshService.getMesh('color-changer')])
118
26
  .pipe(map(([colorChanger]) => {
119
27
  this.mesh = colorChanger;
@@ -125,10 +33,10 @@ export class ColorChanger3d extends Fixture3d {
125
33
  return this.objectGroup;
126
34
  }
127
35
  updatePreview(channelValues, masterDimmerValue) {
128
- super.updatePreview(channelValues, masterDimmerValue);
129
36
  if (!this.isLoaded) {
130
37
  return;
131
38
  }
39
+ super.updatePreview(channelValues, masterDimmerValue);
132
40
  this.updatePosition(this.objectGroup);
133
41
  // Update the material
134
42
  if (this.lastSelected !== this.isSelected) {
@@ -145,23 +53,12 @@ export class ColorChanger3d extends Fixture3d {
145
53
  this.lastSelected = this.isSelected;
146
54
  }
147
55
  // Update the light helpers
148
- this.spotLightHelper.update();
149
- // Apply the colors
150
- const color = new THREE.Color('rgb(' + this.colorRed + ', ' + this.colorGreen + ', ' + this.colorBlue + ')');
151
- this.pointLight.color = color;
152
- this.spotLight.color = color;
153
- this.spotLightBeam.material.uniforms.glowColor.value = color;
154
- // Apply the dimmer value
155
- // Take the color into account for the beam (don't show a black beam)
156
- const intensityColor = Math.max(this.colorRed, this.colorGreen, this.colorBlue);
157
- this.spotLightBeam.material.uniforms.opacity.value = Math.min(intensityColor, this.dimmer) * 0.5;
158
- this.spotLight.intensity = this.spotLightMaxIntensity * this.dimmer;
159
- this.pointLight.intensity = this.pointLightMaxIntensity * this.dimmer;
56
+ // this.spotLightHelper.update();
160
57
  }
161
58
  destroy() {
162
59
  this.scene.remove(this.objectGroup);
163
60
  this.material.dispose();
164
- this.atmosphereMaterial.dispose();
61
+ this.spotLightHelper.dispose();
165
62
  }
166
63
  }
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQW1CbkMsYUFBYTtRQUNuQixNQUFNLFlBQVksR0FBRztZQUNuQixvQ0FBb0M7WUFDcEMsNkJBQTZCO1lBRTdCLGNBQWM7WUFDZCxvREFBb0Q7WUFFcEQsa0VBQWtFO1lBRWxFLHFCQUFxQjtZQUNyQiwwRUFBMEU7WUFDMUUsR0FBRztTQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2IsTUFBTSxjQUFjLEdBQUc7WUFDckIseUJBQXlCO1lBQ3pCLDJCQUEyQjtZQUMzQixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBRXhCLDZCQUE2QjtZQUM3QixvQ0FBb0M7WUFFcEMsY0FBYztZQUNkLG1FQUFtRTtZQUNuRSwrRUFBK0U7WUFDL0Usc0RBQXNEO1lBQ3RELHNGQUFzRjtZQUN0Rix3REFBd0Q7WUFDeEQsR0FBRztTQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWIsb0RBQW9EO1FBQ3BELCtDQUErQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsR0FBRztvQkFDVCxLQUFLLEVBQUUsR0FBRztpQkFD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QUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQWdCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUUxRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNwRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JrSm9pbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FjaGVkLWZpeHR1cmUnO1xuaW1wb3J0IHsgRml4dHVyZUNoYW5uZWxWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9maXh0dXJlLWNoYW5uZWwtdmFsdWUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJldmlld01lc2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJldmlldy1tZXNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRml4dHVyZTNkIH0gZnJvbSAnLi9maXh0dXJlLTNkJztcblxuZXhwb3J0IGNsYXNzIENvbG9yQ2hhbmdlcjNkIGV4dGVuZHMgRml4dHVyZTNkIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwb2ludExpZ2h0TWF4SW50ZW5zaXR5OiBudW1iZXIgPSAyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwb3RMaWdodE1heEludGVuc2l0eTogbnVtYmVyID0gNTtcblxuICBwcml2YXRlIG1lc2g6IFRIUkVFLk1lc2g7XG5cbiAgcHJpdmF0ZSBvYmplY3RHcm91cDogVEhSRUUuT2JqZWN0M0QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgcHJpdmF0ZSBzcG90bGlnaHRHcm91cDogVEhSRUUuT2JqZWN0M0QgPSBuZXcgVEhSRUUuT2JqZWN0M0QoKTtcbiAgcHJpdmF0ZSBzcG90TGlnaHQ6IFRIUkVFLlNwb3RMaWdodDtcbiAgcHJpdmF0ZSBzcG90TGlnaHRIZWxwZXI6IFRIUkVFLlNwb3RMaWdodEhlbHBlcjtcbiAgcHJpdmF0ZSBzcG90TGlnaHRCZWFtOiBUSFJFRS5NZXNoO1xuXG4gIHByaXZhdGUgcG9pbnRMaWdodDogVEhSRUUuUG9pbnRMaWdodDtcblxuICBwcml2YXRlIGxhc3RTZWxlY3RlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIG1hdGVyaWFsOiBUSFJFRS5NZXNoU3RhbmRhcmRNYXRlcmlhbDtcbiAgcHJpdmF0ZSBhdG1vc3BoZXJlTWF0ZXJpYWw6IFRIUkVFLlNoYWRlck1hdGVyaWFsO1xuXG4gIHByaXZhdGUgYXRtb3NwaGVyZU1hdCgpIHtcbiAgICBjb25zdCB2ZXJ0ZXhTaGFkZXIgPSBbXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4V29ybGRQb3NpdGlvbjsnLFxuICAgICAgJ3ZhcnlpbmcgdmVjM1x0dlZlcnRleE5vcm1hbDsnLFxuXG4gICAgICAndm9pZCBtYWluKCl7JyxcbiAgICAgICdcdHZWZXJ0ZXhOb3JtYWwgPSBub3JtYWxpemUobm9ybWFsTWF0cml4ICogbm9ybWFsKTsnLFxuXG4gICAgICAnXHR2VmVydGV4V29ybGRQb3NpdGlvbiA9IChtb2RlbE1hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCkpLnh5ejsnLFxuXG4gICAgICAnXHQvLyBzZXQgZ2xfUG9zaXRpb24nLFxuICAgICAgJ1x0Z2xfUG9zaXRpb25cdD0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCk7JyxcbiAgICAgICd9JyxcbiAgICBdLmpvaW4oJ1xcbicpO1xuICAgIGNvbnN0IGZyYWdtZW50U2hhZGVyID0gW1xuICAgICAgJ3VuaWZvcm0gdmVjM1x0Z2xvd0NvbG9yOycsXG4gICAgICAndW5pZm9ybSBmbG9hdFx0Y29lZmljaWVudDsnLFxuICAgICAgJ3VuaWZvcm0gZmxvYXRcdHBvd2VyOycsXG4gICAgICAndW5pZm9ybSBmbG9hdFx0b3BhY2l0eTsnLFxuXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4Tm9ybWFsOycsXG4gICAgICAndmFyeWluZyB2ZWMzXHR2VmVydGV4V29ybGRQb3NpdGlvbjsnLFxuXG4gICAgICAndm9pZCBtYWluKCl7JyxcbiAgICAgICdcdHZlYzMgd29ybGRDYW1lcmFUb1ZlcnRleD0gdlZlcnRleFdvcmxkUG9zaXRpb24gLSBjYW1lcmFQb3NpdGlvbjsnLFxuICAgICAgJ1x0dmVjMyB2aWV3Q2FtZXJhVG9WZXJ0ZXhcdD0gKHZpZXdNYXRyaXggKiB2ZWM0KHdvcmxkQ2FtZXJhVG9WZXJ0ZXgsIDAuMCkpLnh5ejsnLFxuICAgICAgJ1x0dmlld0NhbWVyYVRvVmVydGV4XHQ9IG5vcm1hbGl6ZSh2aWV3Q2FtZXJhVG9WZXJ0ZXgpOycsXG4gICAgICAnXHRmbG9hdCBpbnRlbnNpdHlcdFx0PSBwb3coY29lZmljaWVudCArIGRvdCh2VmVydGV4Tm9ybWFsLCB2aWV3Q2FtZXJhVG9WZXJ0ZXgpLCBwb3dlcik7JyxcbiAgICAgICdcdGdsX0ZyYWdDb2xvclx0XHQ9IHZlYzQoZ2xvd0NvbG9yLCBpbnRlbnNpdHkgKiBvcGFjaXR5KTsnLFxuICAgICAgJ30nLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICAvLyBjcmVhdGUgY3VzdG9tIG1hdGVyaWFsIGZyb20gdGhlIHNoYWRlciBjb2RlIGFib3ZlXG4gICAgLy8gdGhhdCBpcyB3aXRoaW4gc3BlY2lhbGx5IGxhYmVsZWQgc2NyaXB0IHRhZ3NcbiAgICBjb25zdCBtYXRlcmlhbCA9IG5ldyBUSFJFRS5TaGFkZXJNYXRlcmlhbCh7XG4gICAgICB1bmlmb3Jtczoge1xuICAgICAgICBjb2VmaWNpZW50OiB7XG4gICAgICAgICAgdHlwZTogJ2YnLFxuICAgICAgICAgIHZhbHVlOiAwLjMsXG4gICAgICAgIH0sXG4gICAgICAgIHBvd2VyOiB7XG4gICAgICAgICAgdHlwZTogJ2YnLFxuICAgICAgICAgIHZhbHVlOiAxLjMsXG4gICAgICAgIH0sXG4gICAgICAgIG9wYWNpdHk6IHtcbiAgICAgICAgICB0eXBlOiAnZicsXG4gICAgICAgICAgdmFsdWU6IDEuMCxcbiAgICAgICAgfSxcbiAgICAgICAgZ2xvd0NvbG9yOiB7XG4gICAgICAgICAgdHlwZTogJ2MnLFxuICAgICAgICAgIHZhbHVlOiBuZXcgVEhSRUUuQ29sb3IoJ3doaXRlJyksXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmVydGV4U2hhZGVyLFxuICAgICAgZnJhZ21lbnRTaGFkZXIsXG4gICAgICAvLyBibGVuZGluZzogVEhSRUUuQWRkaXRpdmVCbGVuZGluZyxcbiAgICAgIHRyYW5zcGFyZW50OiB0cnVlLFxuICAgICAgZGVwdGhXcml0ZTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0ZXJpYWw7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVNwb3RMaWdodEJlYW0oKSB7XG4gICAgaWYgKHRoaXMuc3BvdExpZ2h0QmVhbSkge1xuICAgICAgdGhpcy5zcG90bGlnaHRHcm91cC5yZW1vdmUodGhpcy5zcG90TGlnaHRCZWFtKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIHVwZGF0ZSB0aGUgY29ycmVjdCBhbmdsZSBmcm9tIHRoZSBwcm9maWxlXG4gICAgY29uc3QgYmVhbUFuZ2xlRGVncmVlcyA9IDE0O1xuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IFRIUkVFLkN5bGluZGVyR2VvbWV0cnkoMC44LCBiZWFtQW5nbGVEZWdyZWVzICogMS4yLCAxMDAsIDY0LCAyMCwgZmFsc2UpO1xuICAgIGdlb21ldHJ5LmFwcGx5TWF0cml4NChuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbigwLCAtZ2VvbWV0cnkucGFyYW1ldGVycy5oZWlnaHQgLyAyLCAwKSk7XG4gICAgZ2VvbWV0cnkuYXBwbHlNYXRyaXg0KG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVJvdGF0aW9uWCgtTWF0aC5QSSAvIDIpKTtcblxuICAgIHRoaXMuYXRtb3NwaGVyZU1hdGVyaWFsID0gdGhpcy5hdG1vc3BoZXJlTWF0KCk7XG4gICAgdGhpcy5zcG90TGlnaHRCZWFtID0gbmV3IFRIUkVFLk1lc2goZ2VvbWV0cnksIHRoaXMuYXRtb3NwaGVyZU1hdGVyaWFsKTtcbiAgICB0aGlzLnNwb3RMaWdodEJlYW0ucG9zaXRpb24uc2V0KDAsIC0wLjAyLCAwKTtcblxuICAgIHRoaXMuc3BvdGxpZ2h0R3JvdXAuYWRkKHRoaXMuc3BvdExpZ2h0QmVhbSk7XG4gICAgdGhpcy5zcG90TGlnaHRCZWFtLnJvdGF0aW9uLnggPSBNYXRoLlBJIC8gMjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT2JqZWN0cygpIHtcbiAgICAodGhpcy5tYXRlcmlhbCBhcyBhbnkpID0gbmV3IFRIUkVFLk1lc2hMYW1iZXJ0TWF0ZXJpYWwoe1xuICAgICAgY29sb3I6IDB4MGQwZDBkLFxuICAgICAgZW1pc3NpdmU6IDB4MGQwZDBkLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tZXNoLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcblxuICAgIC8vIEFkZCB0aGUgc3BvdGxpZ2h0XG4gICAgdGhpcy5zcG90TGlnaHQgPSBuZXcgVEhSRUUuU3BvdExpZ2h0KDB4ZmZmZmZmLCAxKTtcbiAgICB0aGlzLnNwb3RMaWdodC5hbmdsZSA9IDAuMjQ0O1xuICAgIHRoaXMuc3BvdExpZ2h0LnBlbnVtYnJhID0gMC41O1xuICAgIHRoaXMuc3BvdExpZ2h0LmRlY2F5ID0gMjtcbiAgICB0aGlzLnNwb3RMaWdodC5kaXN0YW5jZSA9IDYwMDAwO1xuICAgIHRoaXMuc3BvdExpZ2h0LmNhc3RTaGFkb3cgPSBmYWxzZTtcbiAgICB0aGlzLnNwb3RMaWdodC5pbnRlbnNpdHkgPSAxMDtcblxuICAgIHRoaXMuc3BvdExpZ2h0SGVscGVyID0gbmV3IFRIUkVFLlNwb3RMaWdodEhlbHBlcih0aGlzLnNwb3RMaWdodCk7XG4gICAgLy8gc2NlbmUuYWRkKHRoaXMuc3BvdExpZ2h0SGVscGVyKTtcblxuICAgIGNvbnN0IHNwb3RMaWdodFRhcmdldCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuICAgIHRoaXMuc3BvdExpZ2h0LnRhcmdldCA9IHNwb3RMaWdodFRhcmdldDtcblxuICAgIHRoaXMuc3BvdGxpZ2h0R3JvdXAuYWRkKHRoaXMuc3BvdExpZ2h0KTtcbiAgICB0aGlzLnNwb3RsaWdodEdyb3VwLmFkZChzcG90TGlnaHRUYXJnZXQpO1xuICAgIHRoaXMuc3BvdExpZ2h0LnBvc2l0aW9uLnNldCgwLCAtMS40LCAwKTtcbiAgICBzcG90TGlnaHRUYXJnZXQucG9zaXRpb24uc2V0KDAsIC0xMCwgMCk7XG5cbiAgICAvLyBBZGQgdGhlIHBvaW50IGxpZ2h0IGZvciB0aGUgc3Vycm91bmRpbmcgbGlnaHRcbiAgICB0aGlzLnBvaW50TGlnaHQgPSBuZXcgVEhSRUUuUG9pbnRMaWdodCgweGZmZmZmZiwgMiwgMTAwMCk7XG4gICAgdGhpcy5zcG90bGlnaHRHcm91cC5hZGQodGhpcy5wb2ludExpZ2h0KTtcbiAgICB0aGlzLnBvaW50TGlnaHQucG9zaXRpb24uc2V0KDAsIC0xLjQsIDApO1xuXG4gICAgLy8gQWRkIHRoZSBsaWdodCBiZWFtXG4gICAgdGhpcy5jcmVhdGVTcG90TGlnaHRCZWFtKCk7XG5cbiAgICB0aGlzLm9iamVjdEdyb3VwLmFkZCh0aGlzLnNwb3RsaWdodEdyb3VwKTtcbiAgICB0aGlzLm9iamVjdEdyb3VwLmFkZCh0aGlzLm1lc2gpO1xuXG4gICAgLy8gQSBtb3ZpbmcgaGVhZCBoYXMgYWJvdXQgMzIgY20gaW4gd2lkdGhcbiAgICB0aGlzLm9iamVjdEdyb3VwLnNjYWxlLm11bHRpcGx5U2NhbGFyKDkpO1xuXG4gICAgdGhpcy5zY2VuZS5hZGQodGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSwgcHJldmlld01lc2hTZXJ2aWNlOiBQcmV2aWV3TWVzaFNlcnZpY2UsIGZpeHR1cmU6IENhY2hlZEZpeHR1cmUsIHNjZW5lOiBhbnkpIHtcbiAgICBzdXBlcihmaXh0dXJlU2VydmljZSwgZml4dHVyZSwgc2NlbmUpO1xuXG4gICAgZm9ya0pvaW4oW3ByZXZpZXdNZXNoU2VydmljZS5nZXRNZXNoKCdjb2xvci1jaGFuZ2VyJyldKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoW2NvbG9yQ2hhbmdlcl0pID0+IHtcbiAgICAgICAgICB0aGlzLm1lc2ggPSBjb2xvckNoYW5nZXI7XG5cbiAgICAgICAgICB0aGlzLmNyZWF0ZU9iamVjdHMoKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRPYmplY3QoKTogVEhSRUUuT2JqZWN0M0Qge1xuICAgIHJldHVybiB0aGlzLm9iamVjdEdyb3VwO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVByZXZpZXcoY2hhbm5lbFZhbHVlczogRml4dHVyZUNoYW5uZWxWYWx1ZVtdLCBtYXN0ZXJEaW1tZXJWYWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgc3VwZXIudXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzLCBtYXN0ZXJEaW1tZXJWYWx1ZSk7XG5cbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRoaXMub2JqZWN0R3JvdXApO1xuXG4gICAgLy8gVXBkYXRlIHRoZSBtYXRlcmlhbFxuICAgIGlmICh0aGlzLmxhc3RTZWxlY3RlZCAhPT0gdGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5zZWxlY3RlZE1hdGVyaWFsO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHRoaXMubWVzaC5jaGlsZHJlbikge1xuICAgICAgICAgIChjaGlsZCBhcyBNZXNoKS5tYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5sYXN0U2VsZWN0ZWQgPSB0aGlzLmlzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgLy8gVXBkYXRlIHRoZSBsaWdodCBoZWxwZXJzXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIudXBkYXRlKCk7XG5cbiAgICAvLyBBcHBseSB0aGUgY29sb3JzXG4gICAgY29uc3QgY29sb3IgPSBuZXcgVEhSRUUuQ29sb3IoJ3JnYignICsgdGhpcy5jb2xvclJlZCArICcsICcgKyB0aGlzLmNvbG9yR3JlZW4gKyAnLCAnICsgdGhpcy5jb2xvckJsdWUgKyAnKScpO1xuXG4gICAgdGhpcy5wb2ludExpZ2h0LmNvbG9yID0gY29sb3I7XG5cbiAgICB0aGlzLnNwb3RMaWdodC5jb2xvciA9IGNvbG9yO1xuICAgICh0aGlzLnNwb3RMaWdodEJlYW0ubWF0ZXJpYWwgYXMgYW55KS51bmlmb3Jtcy5nbG93Q29sb3IudmFsdWUgPSBjb2xvcjtcblxuICAgIC8vIEFwcGx5IHRoZSBkaW1tZXIgdmFsdWVcbiAgICAvLyBUYWtlIHRoZSBjb2xvciBpbnRvIGFjY291bnQgZm9yIHRoZSBiZWFtIChkb24ndCBzaG93IGEgYmxhY2sgYmVhbSlcbiAgICBjb25zdCBpbnRlbnNpdHlDb2xvciA9IE1hdGgubWF4KHRoaXMuY29sb3JSZWQsIHRoaXMuY29sb3JHcmVlbiwgdGhpcy5jb2xvckJsdWUpO1xuICAgICh0aGlzLnNwb3RMaWdodEJlYW0ubWF0ZXJpYWwgYXMgYW55KS51bmlmb3Jtcy5vcGFjaXR5LnZhbHVlID0gTWF0aC5taW4oaW50ZW5zaXR5Q29sb3IsIHRoaXMuZGltbWVyKSAqIDAuNTtcblxuICAgIHRoaXMuc3BvdExpZ2h0LmludGVuc2l0eSA9IHRoaXMuc3BvdExpZ2h0TWF4SW50ZW5zaXR5ICogdGhpcy5kaW1tZXI7XG4gICAgdGhpcy5wb2ludExpZ2h0LmludGVuc2l0eSA9IHRoaXMucG9pbnRMaWdodE1heEludGVuc2l0eSAqIHRoaXMuZGltbWVyO1xuICB9XG5cbiAgZGVzdHJveSgpIHtcbiAgICB0aGlzLnNjZW5lLnJlbW92ZSh0aGlzLm9iamVjdEdyb3VwKTtcbiAgICB0aGlzLm1hdGVyaWFsLmRpc3Bvc2UoKTtcbiAgICB0aGlzLmF0bW9zcGhlcmVNYXRlcmlhbC5kaXNwb3NlKCk7XG4gIH1cbn1cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVNqQyxhQUFhO1FBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBZ0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUNyRCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLG1DQUFtQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLGNBQThCLEVBQUUsa0JBQXNDLEVBQUUsT0FBc0IsRUFBRSxLQUFVO1FBQ3BILEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBL0JoQyxnQkFBVyxHQUFtQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQWlDekQsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUV6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYSxDQUFDLGFBQW9DLEVBQUUsaUJBQXlCO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEMsS0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2ggfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYWNoZWRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVDaGFubmVsVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXZpZXdNZXNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXZpZXctbWVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpeHR1cmUzZCB9IGZyb20gJy4vZml4dHVyZS0zZCc7XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNoYW5nZXIzZCBleHRlbmRzIEZpeHR1cmUzZCB7XG4gIHByaXZhdGUgbWVzaDogVEhSRUUuTWVzaDtcblxuICBwcml2YXRlIG9iamVjdEdyb3VwOiBUSFJFRS5PYmplY3QzRCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbWF0ZXJpYWw6IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVPYmplY3RzKCkge1xuICAgIHN1cGVyLmNyZWF0ZU9iamVjdHMoKTtcblxuICAgICh0aGlzLm1hdGVyaWFsIGFzIGFueSkgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCh7XG4gICAgICBjb2xvcjogMHgwZDBkMGQsXG4gICAgICBlbWlzc2l2ZTogMHgwZDBkMGQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lc2gubWF0ZXJpYWwgPSB0aGlzLm1hdGVyaWFsO1xuXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuU3BvdExpZ2h0SGVscGVyKHRoaXMuc3BvdExpZ2h0KTtcbiAgICAvLyBzY2VuZS5hZGQodGhpcy5zcG90TGlnaHRIZWxwZXIpO1xuICAgIFxuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMuc3BvdGxpZ2h0R3JvdXApO1xuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMubWVzaCk7XG5cbiAgICAvLyBBIG1vdmluZyBoZWFkIGhhcyBhYm91dCAzMiBjbSBpbiB3aWR0aFxuICAgIHRoaXMub2JqZWN0R3JvdXAuc2NhbGUubXVsdGlwbHlTY2FsYXIoOSk7XG5cbiAgICB0aGlzLnNjZW5lLmFkZCh0aGlzLm9iamVjdEdyb3VwKTtcblxuICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcmV2aWV3TWVzaFNlcnZpY2U6IFByZXZpZXdNZXNoU2VydmljZSwgZml4dHVyZTogQ2FjaGVkRml4dHVyZSwgc2NlbmU6IGFueSkge1xuICAgIHN1cGVyKGZpeHR1cmVTZXJ2aWNlLCBmaXh0dXJlLCBzY2VuZSk7XG5cbiAgICBmb3JrSm9pbihbcHJldmlld01lc2hTZXJ2aWNlLmdldE1lc2goJ2NvbG9yLWNoYW5nZXInKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbY29sb3JDaGFuZ2VyXSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzaCA9IGNvbG9yQ2hhbmdlcjtcblxuICAgICAgICAgIHRoaXMuY3JlYXRlT2JqZWN0cygpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9iamVjdCgpOiBUSFJFRS5PYmplY3QzRCB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0R3JvdXA7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzOiBGaXh0dXJlQ2hhbm5lbFZhbHVlW10sIG1hc3RlckRpbW1lclZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci51cGRhdGVQcmV2aWV3KGNoYW5uZWxWYWx1ZXMsIG1hc3RlckRpbW1lclZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24odGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIG1hdGVyaWFsXG4gICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLm1lc2guY2hpbGRyZW4pIHtcbiAgICAgICAgICAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgPSB0aGlzLnNlbGVjdGVkTWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpZ2h0IGhlbHBlcnNcbiAgICAvLyB0aGlzLnNwb3RMaWdodEhlbHBlci51cGRhdGUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zY2VuZS5yZW1vdmUodGhpcy5vYmplY3RHcm91cCk7XG4gICAgdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCk7XG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=