@rocketshow/designer 1.37.0 → 1.38.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.
- package/assets/i18n/de.json +8 -7
- package/assets/i18n/en.json +8 -7
- package/esm2022/lib/designer.component.mjs +10 -10
- package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +18 -5
- package/esm2022/lib/services/preview.service.mjs +7 -3
- package/esm2022/lib/user/user-register/user-register.component.mjs +3 -3
- package/fesm2022/rocketshow-designer.mjs +34 -17
- package/fesm2022/rocketshow-designer.mjs.map +1 -1
- package/package.json +1 -1
- package/rocketshow-designer-1.38.0.tgz +0 -0
- package/rocketshow-designer-1.37.0.tgz +0 -0
|
@@ -3401,6 +3401,10 @@ class PreviewService {
|
|
|
3401
3401
|
}
|
|
3402
3402
|
}
|
|
3403
3403
|
mixEffects(timeMillis, fixtureIndex, preset, cachedFixture, values, intensityPercentage) {
|
|
3404
|
+
let effectTimeMillis = timeMillis;
|
|
3405
|
+
if (preset.region) {
|
|
3406
|
+
effectTimeMillis = timeMillis - preset.region.startMillis;
|
|
3407
|
+
}
|
|
3404
3408
|
for (const effect of preset.preset.effects) {
|
|
3405
3409
|
if (effect.visible) {
|
|
3406
3410
|
// EffectCurve
|
|
@@ -3414,7 +3418,7 @@ class PreviewService {
|
|
|
3414
3418
|
const fixtureChannelValue = new FixtureChannelValue();
|
|
3415
3419
|
fixtureChannelValue.channelName = cachedChannel.name;
|
|
3416
3420
|
fixtureChannelValue.profileUuid = cachedFixture.profile.uuid;
|
|
3417
|
-
fixtureChannelValue.value = cachedChannel.maxValue * effectCurve.getValueAtMillis(
|
|
3421
|
+
fixtureChannelValue.value = cachedChannel.maxValue * effectCurve.getValueAtMillis(effectTimeMillis, fixtureIndex);
|
|
3418
3422
|
this.mixChannelValue(values, fixtureChannelValue, intensityPercentage);
|
|
3419
3423
|
}
|
|
3420
3424
|
}
|
|
@@ -3429,7 +3433,7 @@ class PreviewService {
|
|
|
3429
3433
|
const fixtureChannelValue = new FixtureChannelValue();
|
|
3430
3434
|
fixtureChannelValue.channelName = cachedChannel.name;
|
|
3431
3435
|
fixtureChannelValue.profileUuid = cachedFixture.profile.uuid;
|
|
3432
|
-
fixtureChannelValue.value = cachedChannel.maxValue * effectCurve.getValueAtMillis(
|
|
3436
|
+
fixtureChannelValue.value = cachedChannel.maxValue * effectCurve.getValueAtMillis(effectTimeMillis, fixtureIndex);
|
|
3433
3437
|
this.mixChannelValue(values, fixtureChannelValue, intensityPercentage);
|
|
3434
3438
|
}
|
|
3435
3439
|
}
|
|
@@ -6203,7 +6207,7 @@ class UserRegisterComponent {
|
|
|
6203
6207
|
static { this.ɵfac = function UserRegisterComponent_Factory(t) { return new (t || UserRegisterComponent)(i0.ɵɵdirectiveInject(i1$1.BsModalRef), i0.ɵɵdirectiveInject(i1$1.BsModalService), i0.ɵɵdirectiveInject(UserService)); }; }
|
|
6204
6208
|
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserRegisterComponent, selectors: [["lib-user-register"]], hostBindings: function UserRegisterComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
6205
6209
|
i0.ɵɵlistener("keydown.enter", function UserRegisterComponent_keydown_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
|
|
6206
|
-
} }, decls: 65, vars: 42, consts: [[3, "ngSubmit"], [1, "modal-header"], [1, "modal-title", "pull-left"], ["type", "button", "aria-label", "Close", 1, "close", "pull-right", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], ["class", "alert alert-success", "role", "alert", 4, "ngIf"], [1, "form-group", "row"], ["for", "username", 1, "col-sm-4", "col-form-label"], [1, "col-sm-8"], [1, "input-group"], [1, "input-group-prepend"], [1, "input-group-text"], ["aria-hidden", "true", 1, "fa", "fa-fw", "fa-user"], ["required", "", "name", "username", "type", "text", "id", "username", "placeholder", "
|
|
6210
|
+
} }, decls: 65, vars: 42, consts: [[3, "ngSubmit"], [1, "modal-header"], [1, "modal-title", "pull-left"], ["type", "button", "aria-label", "Close", 1, "close", "pull-right", 3, "click"], ["aria-hidden", "true"], [1, "modal-body"], ["class", "alert alert-success", "role", "alert", 4, "ngIf"], [1, "form-group", "row"], ["for", "username", 1, "col-sm-4", "col-form-label"], [1, "col-sm-8"], [1, "input-group"], [1, "input-group-prepend"], [1, "input-group-text"], ["aria-hidden", "true", 1, "fa", "fa-fw", "fa-user"], ["required", "", "name", "username", "type", "text", "id", "username", "placeholder", "John Doe", 1, "form-control", 3, "ngModelChange", "disabled", "ngModel"], ["for", "email", 1, "col-sm-4", "col-form-label"], ["aria-hidden", "true", 1, "fa", "fa-fw", "fa-envelope-o"], ["required", "", "name", "email", "type", "email", "id", "email", "placeholder", "email@example.com", 1, "form-control", 3, "ngModelChange", "disabled", "ngModel"], ["for", "password", 1, "col-sm-4", "col-form-label"], ["aria-hidden", "true", 1, "fa", "fa-fw", "fa-lock"], ["required", "", "name", "password", "type", "password", "id", "password", 1, "form-control", 3, "ngModelChange", "disabled", "ngModel", "placeholder"], ["for", "passwordRepeat", 1, "col-sm-4", "col-form-label"], ["required", "", "name", "passwordRepeat", "type", "password", "id", "passwordRepeat", 1, "form-control", 3, "ngModelChange", "disabled", "ngModel", "placeholder"], ["class", "alert alert-primary", "role", "alert", 4, "ngIf"], ["href", "#", 3, "click"], [1, "mt-3", "mb-0", 2, "text-align", "center"], [1, "modal-footer"], ["href", "#", "role", "button", 1, "mr-3", "my-auto", 3, "click"], ["type", "submit", 1, "btn", "btn-primary", 3, "disabled"], ["class", "fa fa-spinner fa-pulse fa-fw", 4, "ngIf"], ["role", "alert", 1, "alert", "alert-success"], ["role", "alert", 1, "alert", "alert-primary"], [1, "fa", "fa-spinner", "fa-pulse", "fa-fw"]], template: function UserRegisterComponent_Template(rf, ctx) { if (rf & 1) {
|
|
6207
6211
|
i0.ɵɵelementStart(0, "form", 0);
|
|
6208
6212
|
i0.ɵɵlistener("ngSubmit", function UserRegisterComponent_Template_form_ngSubmit_0_listener() { return ctx.register(); });
|
|
6209
6213
|
i0.ɵɵelementStart(1, "div", 1)(2, "h4", 2);
|
|
@@ -6319,7 +6323,7 @@ class UserRegisterComponent {
|
|
|
6319
6323
|
}
|
|
6320
6324
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserRegisterComponent, [{
|
|
6321
6325
|
type: Component,
|
|
6322
|
-
args: [{ selector: 'lib-user-register', template: "<form (ngSubmit)=\"register()\">\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.user.register-title' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel(); (false)\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"subject\" class=\"alert alert-success\" role=\"alert\">\n {{ 'designer.user.login-required' | translate }}\n </div>\n <div class=\"form-group row\">\n <label for=\"username\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.username' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-user\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"username\"\n [(ngModel)]=\"username\"\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n placeholder=\"
|
|
6326
|
+
args: [{ selector: 'lib-user-register', template: "<form (ngSubmit)=\"register()\">\n <div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.user.register-title' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"cancel(); (false)\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n <div class=\"modal-body\">\n <div *ngIf=\"subject\" class=\"alert alert-success\" role=\"alert\">\n {{ 'designer.user.login-required' | translate }}\n </div>\n <div class=\"form-group row\">\n <label for=\"username\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.username' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-user\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"username\"\n [(ngModel)]=\"username\"\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n placeholder=\"John Doe\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"email\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.email' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-envelope-o\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"email\"\n [(ngModel)]=\"email\"\n type=\"email\"\n class=\"form-control\"\n id=\"email\"\n placeholder=\"email@example.com\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"password\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.password' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-lock\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"password\"\n [(ngModel)]=\"password\"\n type=\"password\"\n class=\"form-control\"\n id=\"password\"\n placeholder=\"{{ 'designer.user.password' | translate }}\"\n />\n </div>\n </div>\n </div>\n <div class=\"form-group row\">\n <label for=\"passwordRepeat\" class=\"col-sm-4 col-form-label\">{{ 'designer.user.password-repeat' | translate }}</label>\n <div class=\"col-sm-8\">\n <div class=\"input-group\">\n <div class=\"input-group-prepend\">\n <div class=\"input-group-text\"><i class=\"fa fa-fw fa-lock\" aria-hidden=\"true\"></i></div>\n </div>\n <input\n required\n [disabled]=\"registering\"\n name=\"passwordRepeat\"\n [(ngModel)]=\"passwordRepeat\"\n type=\"password\"\n class=\"form-control\"\n id=\"passwordRepeat\"\n placeholder=\"{{ 'designer.user.password' | translate }}\"\n />\n </div>\n </div>\n </div>\n <div *ngIf=\"error\" class=\"alert alert-primary\" role=\"alert\">\n {{ 'designer.user.error.' + error | translate }}\n </div>\n <a href=\"#\" (click)=\"login(); (false)\">\n <p class=\"mt-3 mb-0\" style=\"text-align: center\">{{ 'designer.user.already-have-account' | translate }}</p>\n </a>\n </div>\n <div class=\"modal-footer\">\n <a class=\"mr-3 my-auto\" href=\"#\" role=\"button\" (click)=\"cancel(); (false)\">\n {{ 'designer.misc.cancel' | translate }}\n </a>\n <button [disabled]=\"registering\" type=\"submit\" class=\"btn btn-primary\">\n <i *ngIf=\"registering\" class=\"fa fa-spinner fa-pulse fa-fw\"> </i>{{ 'designer.user.register' | translate }}\n </button>\n </div>\n</form>\n" }]
|
|
6323
6327
|
}], () => [{ type: i1$1.BsModalRef }, { type: i1$1.BsModalService }, { type: UserService }], { handleKeyboardEvent: [{
|
|
6324
6328
|
type: HostListener,
|
|
6325
6329
|
args: ['document:keydown.enter', ['$event']]
|
|
@@ -8263,6 +8267,15 @@ function FixtureCapabilityComponent_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
8263
8267
|
i0.ɵɵadvance(2);
|
|
8264
8268
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "designer.fixture.no-fixtures-selected"));
|
|
8265
8269
|
} }
|
|
8270
|
+
function FixtureCapabilityComponent_div_5_Template(rf, ctx) { if (rf & 1) {
|
|
8271
|
+
i0.ɵɵelementStart(0, "div", 10)(1, "p", 11);
|
|
8272
|
+
i0.ɵɵtext(2);
|
|
8273
|
+
i0.ɵɵpipe(3, "translate");
|
|
8274
|
+
i0.ɵɵelementEnd()();
|
|
8275
|
+
} if (rf & 2) {
|
|
8276
|
+
i0.ɵɵadvance(2);
|
|
8277
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, "designer.fixture.no-capabilities-available"));
|
|
8278
|
+
} }
|
|
8266
8279
|
class FixtureCapabilityComponent {
|
|
8267
8280
|
constructor(presetService, fixtureService, changeDetectorRef, projectService, introService) {
|
|
8268
8281
|
this.presetService = presetService;
|
|
@@ -8285,7 +8298,9 @@ class FixtureCapabilityComponent {
|
|
|
8285
8298
|
this.changeDetectorRef.detectChanges();
|
|
8286
8299
|
});
|
|
8287
8300
|
}
|
|
8288
|
-
ngOnInit() {
|
|
8301
|
+
ngOnInit() {
|
|
8302
|
+
this.update();
|
|
8303
|
+
}
|
|
8289
8304
|
ngOnDestroy() {
|
|
8290
8305
|
this.fixtureSelectionChangedSubscription.unsubscribe();
|
|
8291
8306
|
this.previewSelectionChangedSubscription.unsubscribe();
|
|
@@ -8340,9 +8355,9 @@ class FixtureCapabilityComponent {
|
|
|
8340
8355
|
return false;
|
|
8341
8356
|
}
|
|
8342
8357
|
static { this.ɵfac = function FixtureCapabilityComponent_Factory(t) { return new (t || FixtureCapabilityComponent)(i0.ɵɵdirectiveInject(PresetService), i0.ɵɵdirectiveInject(FixtureService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(ProjectService), i0.ɵɵdirectiveInject(IntroService)); }; }
|
|
8343
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FixtureCapabilityComponent, selectors: [["lib-app-fixture-capability"]], decls:
|
|
8358
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FixtureCapabilityComponent, selectors: [["lib-app-fixture-capability"]], decls: 6, vars: 6, consts: [[1, "card", "border-secondary", "panel", "h-100"], [1, "card-body", "capability-container", "d-flex", "h-100", 2, "overflow-y", "hidden"], ["class", "row m-0 pl-3", 3, "h-100", 4, "ngIf"], ["class", "m-auto", 4, "ngIf"], [1, "row", "m-0", "pl-3"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngIf"], ["class", "col col-auto p-0 my-3 mr-3", "style", "height: calc(100% - 2rem)", 4, "ngFor", "ngForOf"], [1, "col", "col-auto", "p-0", "my-3", "mr-3"], [1, "col", "col-auto", "p-0", "my-3", "mr-3", 2, "height", "calc(100% - 2rem)"], [3, "profile", "channel", "wheelIndex", "showContainer"], [1, "m-auto"], [1, "m-auto", 2, "color", "#717171"]], template: function FixtureCapabilityComponent_Template(rf, ctx) { if (rf & 1) {
|
|
8344
8359
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
|
|
8345
|
-
i0.ɵɵtemplate(2, FixtureCapabilityComponent_div_2_Template, 8, 8, "div", 2)(3, FixtureCapabilityComponent_div_3_Template, 4, 3, "div", 3)(4, FixtureCapabilityComponent_div_4_Template, 4, 3, "div", 3);
|
|
8360
|
+
i0.ɵɵtemplate(2, FixtureCapabilityComponent_div_2_Template, 8, 8, "div", 2)(3, FixtureCapabilityComponent_div_3_Template, 4, 3, "div", 3)(4, FixtureCapabilityComponent_div_4_Template, 4, 3, "div", 3)(5, FixtureCapabilityComponent_div_5_Template, 4, 3, "div", 3);
|
|
8346
8361
|
i0.ɵɵelementEnd()();
|
|
8347
8362
|
} if (rf & 2) {
|
|
8348
8363
|
i0.ɵɵclassProp("card-intro-active", ctx.introService.showStep("capabilities"));
|
|
@@ -8352,11 +8367,13 @@ class FixtureCapabilityComponent {
|
|
|
8352
8367
|
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length == 0);
|
|
8353
8368
|
i0.ɵɵadvance();
|
|
8354
8369
|
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.fixtures.length == 0);
|
|
8370
|
+
i0.ɵɵadvance();
|
|
8371
|
+
i0.ɵɵproperty("ngIf", ctx.projectService.project.fixtures.length > 0 && ctx.presetService.selectedPreset && ctx.presetService.selectedPreset.fixtures.length > 0 && !ctx.hasCapabilityColorOrColorWheel && !ctx.hasCapabilityPanTilt);
|
|
8355
8372
|
} }, dependencies: [i5.NgForOf, i5.NgIf, FixtureCapabilityColorComponent, FixtureCapabilityDimmerComponent, FixtureCapabilityPanTiltComponent, FixtureCapabilityColorWheelComponent, i5.KeyValuePipe, i2.TranslatePipe], changeDetection: 0 }); }
|
|
8356
8373
|
}
|
|
8357
8374
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FixtureCapabilityComponent, [{
|
|
8358
8375
|
type: Component,
|
|
8359
|
-
args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"hasCapabilityDimmer\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"hasCapabilityColorOrColorWheel\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"hasCapabilityPanTilt\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\"> </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.fixtures.length == 0\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-selected' | translate }}</p>\n </div>\n </div>\n</div>\n" }]
|
|
8376
|
+
args: [{ selector: 'lib-app-fixture-capability', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary panel h-100\" [class.card-intro-active]=\"introService.showStep('capabilities')\">\n <div class=\"card-body capability-container d-flex h-100\" style=\"overflow-y: hidden\">\n <!-- h-100 needs to be applied in chrome to avoid performance issues with many layouts (reflows)\n during sliding. But the class must not be applied e.g. in Safari, because the bottom margin is not correct\n anymore afterwards. -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Dimmer -->\n <!-- the height attribute is required to avoid performance issues with many layouts (reflows)\n in Chrome during sliding -->\n <div *ngIf=\"hasCapabilityDimmer\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-dimmer></lib-app-fixture-capability-dimmer>\n </div>\n\n <!-- Color -->\n <!-- Also show for color wheel fixtures to approx. the color -->\n <div *ngIf=\"hasCapabilityColorOrColorWheel\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-color></lib-app-fixture-capability-color>\n </div>\n\n <!-- Color wheels -->\n <div\n *ngFor=\"let entry of colorWheelChannels | keyvalue; let i = index\"\n class=\"col col-auto p-0 my-3 mr-3\"\n style=\"height: calc(100% - 2rem)\"\n >\n <lib-app-fixture-capability-color-wheel\n [profile]=\"entry.key\"\n [channel]=\"entry.value\"\n [wheelIndex]=\"i\"\n [showContainer]=\"colorWheelChannels.size > 1\"\n ></lib-app-fixture-capability-color-wheel>\n </div>\n\n <!-- Pan/Tilt -->\n <div *ngIf=\"hasCapabilityPanTilt\" class=\"col col-auto p-0 my-3 mr-3\" style=\"height: calc(100% - 2rem)\">\n <lib-app-fixture-capability-pan-tilt></lib-app-fixture-capability-pan-tilt>\n </div>\n\n <!-- Fix spacing at the end -->\n <div class=\"col col-auto p-0 my-3 mr-3\"> </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"m-auto\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 && presetService.selectedPreset && presetService.selectedPreset.fixtures.length == 0\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-selected' | translate }}</p>\n </div>\n\n <div\n *ngIf=\"\n projectService.project.fixtures.length > 0 &&\n presetService.selectedPreset &&\n presetService.selectedPreset.fixtures.length > 0 &&\n !hasCapabilityColorOrColorWheel &&\n !hasCapabilityPanTilt\n \"\n class=\"m-auto\"\n >\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-capabilities-available' | translate }}</p>\n </div>\n </div>\n</div>\n" }]
|
|
8360
8377
|
}], () => [{ type: PresetService }, { type: FixtureService }, { type: i0.ChangeDetectorRef }, { type: ProjectService }, { type: IntroService }], null); })();
|
|
8361
8378
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixtureCapabilityComponent, { className: "FixtureCapabilityComponent" }); })();
|
|
8362
8379
|
|
|
@@ -10939,16 +10956,16 @@ class DesignerComponent {
|
|
|
10939
10956
|
.subscribe();
|
|
10940
10957
|
}
|
|
10941
10958
|
projectSave() {
|
|
10942
|
-
|
|
10943
|
-
|
|
10944
|
-
|
|
10945
|
-
|
|
10946
|
-
|
|
10947
|
-
|
|
10948
|
-
|
|
10959
|
+
this.userEnsureLoginService.login().subscribe(() => {
|
|
10960
|
+
if (this.projectService.project.name) {
|
|
10961
|
+
// this project has been saved before -> just save it again
|
|
10962
|
+
this.projectService.save(this.projectService.project);
|
|
10963
|
+
}
|
|
10964
|
+
else {
|
|
10965
|
+
// this project has not yet been saved -> show the save as-dialog
|
|
10949
10966
|
this.modalService.show(ProjectSaveComponent, { keyboard: true, ignoreBackdropClick: false });
|
|
10950
|
-
}
|
|
10951
|
-
}
|
|
10967
|
+
}
|
|
10968
|
+
});
|
|
10952
10969
|
}
|
|
10953
10970
|
projectSaveAs() {
|
|
10954
10971
|
this.userEnsureLoginService.login().subscribe(() => {
|