@rocketshow/designer 1.32.0 → 1.35.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 +2 -1
- package/assets/i18n/en.json +2 -1
- package/esm2022/lib/array-sort-pipe.mjs +30 -0
- package/esm2022/lib/designer.component.mjs +672 -0
- package/esm2022/lib/designer.module.mjs +186 -0
- package/esm2022/lib/designer.service.mjs +14 -0
- package/esm2022/lib/dropzone/dropzone.component.mjs +93 -0
- package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +577 -0
- package/esm2022/lib/effect/effect-pan-tilt/effect-pan-tilt.component.mjs +36 -0
- package/esm2022/lib/effect/effect.component.mjs +174 -0
- package/esm2022/lib/error-dialog/error-dialog.component.mjs +75 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.mjs +222 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.mjs +147 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.mjs +213 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.mjs +78 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.mjs +119 -0
- package/esm2022/lib/fixture/fixture-capability/fixture-capability.component.mjs +169 -0
- package/esm2022/lib/fixture/fixture-channel/fixture-channel.component.mjs +162 -0
- package/esm2022/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.mjs +365 -0
- package/esm2022/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.mjs +151 -0
- package/esm2022/lib/fixture/fixture-settings/fixture-settings.component.mjs +46 -0
- package/esm2022/lib/fixture/fixture.component.mjs +148 -0
- package/esm2022/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.mjs +145 -0
- package/esm2022/lib/fixture-pool/fixture-pool.component.mjs +643 -0
- package/esm2022/lib/intro/intro.component.mjs +95 -0
- package/esm2022/lib/master-dimmer/master-dimmer.component.mjs +66 -0
- package/esm2022/lib/models/cached-fixture-capability.mjs +9 -0
- package/esm2022/lib/models/cached-fixture-channel.mjs +7 -0
- package/esm2022/lib/models/cached-fixture.mjs +6 -0
- package/esm2022/lib/models/color.mjs +8 -0
- package/esm2022/lib/models/composition.mjs +46 -0
- package/esm2022/lib/models/effect-curve-profile-channel.mjs +15 -0
- package/esm2022/lib/models/effect-curve.mjs +69 -0
- package/esm2022/lib/models/effect-pan-tilt.mjs +19 -0
- package/esm2022/lib/models/effect.mjs +12 -0
- package/esm2022/lib/models/fixture-capability-value.mjs +15 -0
- package/esm2022/lib/models/fixture-capability.mjs +84 -0
- package/esm2022/lib/models/fixture-channel-value.mjs +11 -0
- package/esm2022/lib/models/fixture-channel.mjs +24 -0
- package/esm2022/lib/models/fixture-matrix-pixel-group-constraints.mjs +27 -0
- package/esm2022/lib/models/fixture-matrix-pixel-group.mjs +12 -0
- package/esm2022/lib/models/fixture-matrix.mjs +25 -0
- package/esm2022/lib/models/fixture-mode-channel.mjs +26 -0
- package/esm2022/lib/models/fixture-mode.mjs +17 -0
- package/esm2022/lib/models/fixture-physical.mjs +14 -0
- package/esm2022/lib/models/fixture-profile.mjs +85 -0
- package/esm2022/lib/models/fixture-wheel-slot.mjs +26 -0
- package/esm2022/lib/models/fixture-wheel.mjs +15 -0
- package/esm2022/lib/models/fixture.mjs +40 -0
- package/esm2022/lib/models/preset-fixture.mjs +10 -0
- package/esm2022/lib/models/preset-region-scene.mjs +8 -0
- package/esm2022/lib/models/preset.mjs +65 -0
- package/esm2022/lib/models/project.mjs +78 -0
- package/esm2022/lib/models/scene-playback-region.mjs +11 -0
- package/esm2022/lib/models/scene.mjs +27 -0
- package/esm2022/lib/preset/preset-settings/preset-settings.component.mjs +194 -0
- package/esm2022/lib/preset/preset.component.mjs +131 -0
- package/esm2022/lib/preview/models/color-changer-3d.mjs +64 -0
- package/esm2022/lib/preview/models/fixture-3d.mjs +274 -0
- package/esm2022/lib/preview/models/moving-head-3d.mjs +124 -0
- package/esm2022/lib/preview/preview.component.mjs +219 -0
- package/esm2022/lib/project/project-browser/project-browser.component.mjs +143 -0
- package/esm2022/lib/project/project-import/project-import.component.mjs +107 -0
- package/esm2022/lib/project/project-save/project-save.component.mjs +178 -0
- package/esm2022/lib/project/project-share/project-share.component.mjs +71 -0
- package/esm2022/lib/scene/scene-settings/scene-settings.component.mjs +146 -0
- package/esm2022/lib/scene/scene.component.mjs +110 -0
- package/esm2022/lib/services/animation.service.mjs +16 -0
- package/esm2022/lib/services/config.service.mjs +28 -0
- package/esm2022/lib/services/effect.service.mjs +14 -0
- package/esm2022/lib/services/error-dialog.service.mjs +39 -0
- package/esm2022/lib/services/fixture-pool.service.mjs +30 -0
- package/esm2022/lib/services/fixture.service.mjs +639 -0
- package/esm2022/lib/services/hotkey-target-exclude.service.mjs +24 -0
- package/esm2022/lib/services/intro.service.mjs +140 -0
- package/esm2022/lib/services/preset.service.mjs +449 -0
- package/esm2022/lib/services/preview-mesh.service.mjs +57 -0
- package/esm2022/lib/services/preview.service.mjs +497 -0
- package/esm2022/lib/services/project-load.service.mjs +209 -0
- package/esm2022/lib/services/project.service.mjs +93 -0
- package/esm2022/lib/services/scene.service.mjs +164 -0
- package/esm2022/lib/services/timeline.service.mjs +726 -0
- package/esm2022/lib/services/user-ensure-login.service.mjs +38 -0
- package/esm2022/lib/services/user.service.mjs +89 -0
- package/esm2022/lib/services/uuid.service.mjs +23 -0
- package/esm2022/lib/services/warning-dialog.service.mjs +38 -0
- package/esm2022/lib/timeline/composition-settings/composition-settings.component.mjs +304 -0
- package/esm2022/lib/timeline/timeline-grid/timeline-grid.component.mjs +216 -0
- package/esm2022/lib/timeline/timeline.component.mjs +418 -0
- package/esm2022/lib/user/user-login/user-login.component.mjs +144 -0
- package/esm2022/lib/user/user-register/user-register.component.mjs +220 -0
- package/esm2022/lib/wait-dialog/wait-dialog.component.mjs +26 -0
- package/esm2022/lib/warning-dialog/warning-dialog.component.mjs +68 -0
- package/esm2022/public_api.mjs +7 -0
- package/esm2022/rocketshow-designer.mjs +5 -0
- package/fesm2022/rocketshow-designer.mjs +11171 -0
- package/fesm2022/rocketshow-designer.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/array-sort-pipe.d.ts +3 -0
- package/lib/designer.component.d.ts +19 -16
- package/lib/designer.module.d.ts +55 -0
- package/lib/designer.service.d.ts +3 -0
- package/lib/dropzone/dropzone.component.d.ts +24 -0
- package/lib/effect/effect-curve/effect-curve.component.d.ts +4 -1
- package/lib/effect/effect-pan-tilt/effect-pan-tilt.component.d.ts +3 -0
- package/lib/effect/effect.component.d.ts +3 -0
- package/lib/error-dialog/error-dialog.component.d.ts +3 -0
- package/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.d.ts +4 -1
- package/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.d.ts +3 -0
- package/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.d.ts +5 -2
- package/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.d.ts +3 -0
- package/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.d.ts +3 -0
- package/lib/fixture/fixture-capability/fixture-capability.component.d.ts +3 -0
- package/lib/fixture/fixture-channel/fixture-channel.component.d.ts +3 -0
- package/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.d.ts +3 -0
- package/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.d.ts +3 -0
- package/lib/fixture/fixture-settings/fixture-settings.component.d.ts +3 -0
- package/lib/fixture/fixture.component.d.ts +7 -3
- package/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.d.ts +3 -0
- package/lib/fixture-pool/fixture-pool.component.d.ts +3 -0
- package/lib/intro/intro.component.d.ts +3 -0
- package/lib/master-dimmer/master-dimmer.component.d.ts +3 -0
- package/lib/models/cached-fixture.d.ts +1 -0
- package/lib/models/fixture-matrix-pixel-group-constraints.d.ts +8 -0
- package/lib/models/fixture-matrix-pixel-group.d.ts +6 -0
- package/lib/models/fixture-matrix.d.ts +6 -0
- package/lib/models/fixture-mode-channel.d.ts +8 -0
- package/lib/models/fixture-mode.d.ts +3 -1
- package/lib/models/fixture-physical.d.ts +4 -0
- package/lib/models/fixture-profile.d.ts +5 -0
- package/lib/models/preset-fixture.d.ts +5 -0
- package/lib/models/preset.d.ts +2 -0
- package/lib/models/project.d.ts +3 -0
- package/lib/preset/preset-settings/preset-settings.component.d.ts +3 -0
- package/lib/preset/preset.component.d.ts +3 -0
- package/lib/preview/models/color-changer-3d.d.ts +1 -11
- package/lib/preview/models/fixture-3d.d.ts +11 -0
- package/lib/preview/models/moving-head-3d.d.ts +1 -11
- package/lib/preview/preview.component.d.ts +4 -4
- package/lib/project/project-browser/project-browser.component.d.ts +3 -0
- package/lib/project/project-import/project-import.component.d.ts +3 -0
- package/lib/project/project-save/project-save.component.d.ts +3 -0
- package/lib/project/project-share/project-share.component.d.ts +3 -0
- package/lib/scene/scene-settings/scene-settings.component.d.ts +3 -0
- package/lib/scene/scene.component.d.ts +3 -0
- package/lib/services/animation.service.d.ts +3 -0
- package/lib/services/config.service.d.ts +4 -0
- package/lib/services/effect.service.d.ts +3 -0
- package/lib/services/error-dialog.service.d.ts +3 -0
- package/lib/services/fixture-pool.service.d.ts +3 -0
- package/lib/services/fixture.service.d.ts +10 -2
- package/lib/services/hotkey-target-exclude.service.d.ts +3 -0
- package/lib/services/intro.service.d.ts +3 -0
- package/lib/services/preset.service.d.ts +7 -2
- package/lib/services/preview-mesh.service.d.ts +3 -0
- package/lib/services/preview.service.d.ts +6 -4
- package/lib/services/project-load.service.d.ts +8 -1
- package/lib/services/project.service.d.ts +5 -3
- package/lib/services/scene.service.d.ts +3 -0
- package/lib/services/timeline.service.d.ts +3 -0
- package/lib/services/user-ensure-login.service.d.ts +3 -0
- package/lib/services/user.service.d.ts +3 -0
- package/lib/services/uuid.service.d.ts +3 -0
- package/lib/services/warning-dialog.service.d.ts +3 -0
- package/lib/timeline/composition-settings/composition-settings.component.d.ts +5 -1
- package/lib/timeline/timeline-grid/timeline-grid.component.d.ts +3 -0
- package/lib/timeline/timeline.component.d.ts +3 -0
- package/lib/user/user-login/user-login.component.d.ts +3 -0
- package/lib/user/user-register/user-register.component.d.ts +3 -0
- package/lib/wait-dialog/wait-dialog.component.d.ts +3 -0
- package/lib/warning-dialog/warning-dialog.component.d.ts +3 -0
- package/package.json +20 -22
- package/rocketshow-designer-1.35.0.tgz +0 -0
- package/bundles/rocketshow-designer.umd.js +0 -9966
- package/bundles/rocketshow-designer.umd.js.map +0 -1
- package/bundles/rocketshow-designer.umd.min.js +0 -17
- package/bundles/rocketshow-designer.umd.min.js.map +0 -1
- package/esm2015/lib/array-sort-pipe.js +0 -28
- package/esm2015/lib/designer.component.js +0 -411
- package/esm2015/lib/designer.module.js +0 -117
- package/esm2015/lib/designer.service.js +0 -16
- package/esm2015/lib/effect/effect-curve/effect-curve.component.js +0 -325
- package/esm2015/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -30
- package/esm2015/lib/effect/effect.component.js +0 -73
- package/esm2015/lib/error-dialog/error-dialog.component.js +0 -42
- package/esm2015/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -141
- package/esm2015/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -128
- package/esm2015/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -163
- package/esm2015/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -60
- package/esm2015/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -87
- package/esm2015/lib/fixture/fixture-capability/fixture-capability.component.js +0 -97
- package/esm2015/lib/fixture/fixture-channel/fixture-channel.component.js +0 -66
- package/esm2015/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -200
- package/esm2015/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -31
- package/esm2015/lib/fixture/fixture-settings/fixture-settings.component.js +0 -35
- package/esm2015/lib/fixture/fixture.component.js +0 -70
- package/esm2015/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -128
- package/esm2015/lib/fixture-pool/fixture-pool.component.js +0 -331
- package/esm2015/lib/intro/intro.component.js +0 -25
- package/esm2015/lib/master-dimmer/master-dimmer.component.js +0 -41
- package/esm2015/lib/models/cached-fixture-capability.js +0 -9
- package/esm2015/lib/models/cached-fixture-channel.js +0 -7
- package/esm2015/lib/models/cached-fixture.js +0 -6
- package/esm2015/lib/models/color.js +0 -8
- package/esm2015/lib/models/composition.js +0 -46
- package/esm2015/lib/models/effect-curve-profile-channel.js +0 -15
- package/esm2015/lib/models/effect-curve.js +0 -69
- package/esm2015/lib/models/effect-pan-tilt.js +0 -19
- package/esm2015/lib/models/effect.js +0 -12
- package/esm2015/lib/models/fixture-capability-value.js +0 -15
- package/esm2015/lib/models/fixture-capability.js +0 -84
- package/esm2015/lib/models/fixture-channel-value.js +0 -11
- package/esm2015/lib/models/fixture-channel.js +0 -24
- package/esm2015/lib/models/fixture-mode.js +0 -14
- package/esm2015/lib/models/fixture-profile.js +0 -70
- package/esm2015/lib/models/fixture-wheel-slot.js +0 -26
- package/esm2015/lib/models/fixture-wheel.js +0 -15
- package/esm2015/lib/models/fixture.js +0 -40
- package/esm2015/lib/models/preset-region-scene.js +0 -8
- package/esm2015/lib/models/preset.js +0 -56
- package/esm2015/lib/models/project.js +0 -68
- package/esm2015/lib/models/scene-playback-region.js +0 -11
- package/esm2015/lib/models/scene.js +0 -27
- package/esm2015/lib/models/universe.js +0 -11
- package/esm2015/lib/preset/preset-settings/preset-settings.component.js +0 -66
- package/esm2015/lib/preset/preset.component.js +0 -85
- package/esm2015/lib/preview/models/color-changer-3d.js +0 -167
- package/esm2015/lib/preview/models/fixture-3d.js +0 -150
- package/esm2015/lib/preview/models/moving-head-3d.js +0 -233
- package/esm2015/lib/preview/preview.component.js +0 -242
- package/esm2015/lib/project/project-browser/project-browser.component.js +0 -73
- package/esm2015/lib/project/project-import/project-import.component.js +0 -89
- package/esm2015/lib/project/project-save/project-save.component.js +0 -105
- package/esm2015/lib/project/project-share/project-share.component.js +0 -43
- package/esm2015/lib/scene/scene-settings/scene-settings.component.js +0 -52
- package/esm2015/lib/scene/scene.component.js +0 -56
- package/esm2015/lib/services/animation.service.js +0 -17
- package/esm2015/lib/services/config.service.js +0 -28
- package/esm2015/lib/services/effect.service.js +0 -16
- package/esm2015/lib/services/error-dialog.service.js +0 -44
- package/esm2015/lib/services/fixture-pool.service.js +0 -34
- package/esm2015/lib/services/fixture.service.js +0 -443
- package/esm2015/lib/services/hotkey-target-exclude.service.js +0 -26
- package/esm2015/lib/services/intro.service.js +0 -144
- package/esm2015/lib/services/preset.service.js +0 -416
- package/esm2015/lib/services/preview-mesh.service.js +0 -58
- package/esm2015/lib/services/preview.service.js +0 -500
- package/esm2015/lib/services/project-load.service.js +0 -171
- package/esm2015/lib/services/project.service.js +0 -113
- package/esm2015/lib/services/scene.service.js +0 -174
- package/esm2015/lib/services/timeline.service.js +0 -738
- package/esm2015/lib/services/universe.service.js +0 -24
- package/esm2015/lib/services/user-ensure-login.service.js +0 -44
- package/esm2015/lib/services/user.service.js +0 -93
- package/esm2015/lib/services/uuid.service.js +0 -25
- package/esm2015/lib/services/warning-dialog.service.js +0 -43
- package/esm2015/lib/timeline/composition-settings/composition-settings.component.js +0 -197
- package/esm2015/lib/timeline/timeline-grid/timeline-grid.component.js +0 -55
- package/esm2015/lib/timeline/timeline.component.js +0 -239
- package/esm2015/lib/user/user-login/user-login.component.js +0 -64
- package/esm2015/lib/user/user-register/user-register.component.js +0 -89
- package/esm2015/lib/wait-dialog/wait-dialog.component.js +0 -16
- package/esm2015/lib/warning-dialog/warning-dialog.component.js +0 -42
- package/esm2015/public_api.js +0 -7
- package/esm2015/rocketshow-designer.js +0 -61
- package/esm5/lib/array-sort-pipe.js +0 -31
- package/esm5/lib/designer.component.js +0 -468
- package/esm5/lib/designer.module.js +0 -120
- package/esm5/lib/designer.service.js +0 -17
- package/esm5/lib/effect/effect-curve/effect-curve.component.js +0 -386
- package/esm5/lib/effect/effect-pan-tilt/effect-pan-tilt.component.js +0 -31
- package/esm5/lib/effect/effect.component.js +0 -75
- package/esm5/lib/error-dialog/error-dialog.component.js +0 -43
- package/esm5/lib/fixture/fixture-capability/fixture-capability-channel/fixture-capability-channel.component.js +0 -159
- package/esm5/lib/fixture/fixture-capability/fixture-capability-color/fixture-capability-color.component.js +0 -130
- package/esm5/lib/fixture/fixture-capability/fixture-capability-color-wheel/fixture-capability-color-wheel.component.js +0 -215
- package/esm5/lib/fixture/fixture-capability/fixture-capability-dimmer/fixture-capability-dimmer.component.js +0 -61
- package/esm5/lib/fixture/fixture-capability/fixture-capability-pan-tilt/fixture-capability-pan-tilt.component.js +0 -88
- package/esm5/lib/fixture/fixture-capability/fixture-capability.component.js +0 -130
- package/esm5/lib/fixture/fixture-channel/fixture-channel.component.js +0 -68
- package/esm5/lib/fixture/fixture-settings/fixture-settings-position/fixture-settings-position.component.js +0 -306
- package/esm5/lib/fixture/fixture-settings/fixture-settings-stage/fixture-settings-stage.component.js +0 -32
- package/esm5/lib/fixture/fixture-settings/fixture-settings.component.js +0 -36
- package/esm5/lib/fixture/fixture.component.js +0 -71
- package/esm5/lib/fixture-pool/fixture-pool-create-from-file/fixture-pool-create-from-file.component.js +0 -127
- package/esm5/lib/fixture-pool/fixture-pool.component.js +0 -430
- package/esm5/lib/intro/intro.component.js +0 -26
- package/esm5/lib/master-dimmer/master-dimmer.component.js +0 -42
- package/esm5/lib/models/cached-fixture-capability.js +0 -11
- package/esm5/lib/models/cached-fixture-channel.js +0 -9
- package/esm5/lib/models/cached-fixture.js +0 -8
- package/esm5/lib/models/color.js +0 -10
- package/esm5/lib/models/composition.js +0 -60
- package/esm5/lib/models/effect-curve-profile-channel.js +0 -29
- package/esm5/lib/models/effect-curve.js +0 -95
- package/esm5/lib/models/effect-pan-tilt.js +0 -24
- package/esm5/lib/models/effect.js +0 -14
- package/esm5/lib/models/fixture-capability-value.js +0 -17
- package/esm5/lib/models/fixture-capability.js +0 -86
- package/esm5/lib/models/fixture-channel-value.js +0 -13
- package/esm5/lib/models/fixture-channel.js +0 -38
- package/esm5/lib/models/fixture-mode.js +0 -16
- package/esm5/lib/models/fixture-profile.js +0 -114
- package/esm5/lib/models/fixture-wheel-slot.js +0 -28
- package/esm5/lib/models/fixture-wheel.js +0 -29
- package/esm5/lib/models/fixture.js +0 -42
- package/esm5/lib/models/preset-region-scene.js +0 -10
- package/esm5/lib/models/preset.js +0 -90
- package/esm5/lib/models/project.js +0 -122
- package/esm5/lib/models/scene-playback-region.js +0 -13
- package/esm5/lib/models/scene.js +0 -29
- package/esm5/lib/models/universe.js +0 -13
- package/esm5/lib/preset/preset-settings/preset-settings.component.js +0 -67
- package/esm5/lib/preset/preset.component.js +0 -86
- package/esm5/lib/preview/models/color-changer-3d.js +0 -194
- package/esm5/lib/preview/models/fixture-3d.js +0 -196
- package/esm5/lib/preview/models/moving-head-3d.js +0 -250
- package/esm5/lib/preview/preview.component.js +0 -280
- package/esm5/lib/project/project-browser/project-browser.component.js +0 -77
- package/esm5/lib/project/project-import/project-import.component.js +0 -88
- package/esm5/lib/project/project-save/project-save.component.js +0 -120
- package/esm5/lib/project/project-share/project-share.component.js +0 -44
- package/esm5/lib/scene/scene-settings/scene-settings.component.js +0 -53
- package/esm5/lib/scene/scene.component.js +0 -57
- package/esm5/lib/services/animation.service.js +0 -18
- package/esm5/lib/services/config.service.js +0 -29
- package/esm5/lib/services/effect.service.js +0 -17
- package/esm5/lib/services/error-dialog.service.js +0 -46
- package/esm5/lib/services/fixture-pool.service.js +0 -36
- package/esm5/lib/services/fixture.service.js +0 -643
- package/esm5/lib/services/hotkey-target-exclude.service.js +0 -27
- package/esm5/lib/services/intro.service.js +0 -145
- package/esm5/lib/services/preset.service.js +0 -637
- package/esm5/lib/services/preview-mesh.service.js +0 -61
- package/esm5/lib/services/preview.service.js +0 -754
- package/esm5/lib/services/project-load.service.js +0 -185
- package/esm5/lib/services/project.service.js +0 -127
- package/esm5/lib/services/scene.service.js +0 -251
- package/esm5/lib/services/timeline.service.js +0 -845
- package/esm5/lib/services/universe.service.js +0 -36
- package/esm5/lib/services/user-ensure-login.service.js +0 -45
- package/esm5/lib/services/user.service.js +0 -95
- package/esm5/lib/services/uuid.service.js +0 -26
- package/esm5/lib/services/warning-dialog.service.js +0 -45
- package/esm5/lib/timeline/composition-settings/composition-settings.component.js +0 -206
- package/esm5/lib/timeline/timeline-grid/timeline-grid.component.js +0 -56
- package/esm5/lib/timeline/timeline.component.js +0 -243
- package/esm5/lib/user/user-login/user-login.component.js +0 -66
- package/esm5/lib/user/user-register/user-register.component.js +0 -91
- package/esm5/lib/wait-dialog/wait-dialog.component.js +0 -18
- package/esm5/lib/warning-dialog/warning-dialog.component.js +0 -43
- package/esm5/public_api.js +0 -7
- package/esm5/rocketshow-designer.js +0 -61
- package/fesm2015/rocketshow-designer.js +0 -7945
- package/fesm2015/rocketshow-designer.js.map +0 -1
- package/fesm5/rocketshow-designer.js +0 -9690
- package/fesm5/rocketshow-designer.js.map +0 -1
- package/lib/models/universe.d.ts +0 -8
- package/lib/services/universe.service.d.ts +0 -6
- package/rocketshow-designer-1.32.0.tgz +0 -0
- package/rocketshow-designer.d.ts +0 -60
- package/rocketshow-designer.metadata.json +0 -1
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { Positioning } from '../../../models/fixture';
|
|
4
|
-
import { FixtureService } from '../../../services/fixture.service';
|
|
5
|
-
import { PresetService } from '../../../services/preset.service';
|
|
6
|
-
let FixtureSettingsPositionComponent = class FixtureSettingsPositionComponent {
|
|
7
|
-
constructor(fixtureService, presetService) {
|
|
8
|
-
this.fixtureService = fixtureService;
|
|
9
|
-
this.presetService = presetService;
|
|
10
|
-
this.selectUndefinedOptionValue = undefined;
|
|
11
|
-
this.selectedPositioning = undefined;
|
|
12
|
-
this.positionX = 0;
|
|
13
|
-
this.positionY = 0;
|
|
14
|
-
this.positionZ = 0;
|
|
15
|
-
this.positionXMin = -400;
|
|
16
|
-
this.positionXMax = 400;
|
|
17
|
-
this.positionYMin = 0;
|
|
18
|
-
this.positionYMax = 400;
|
|
19
|
-
this.positionZMin = -400;
|
|
20
|
-
this.positionZMax = 400;
|
|
21
|
-
this.rotationX = 0;
|
|
22
|
-
this.rotationY = 0;
|
|
23
|
-
this.rotationZ = 0;
|
|
24
|
-
this.rotationMin = 0;
|
|
25
|
-
this.rotationMax = 360;
|
|
26
|
-
presetService.fixtureSelectionSettingsChanged.subscribe(() => {
|
|
27
|
-
this.updateSelection();
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() { }
|
|
31
|
-
updateSelection() {
|
|
32
|
-
// get all display values for the selected settings fixtures
|
|
33
|
-
this.selectedPositioning = undefined;
|
|
34
|
-
this.positionX = undefined;
|
|
35
|
-
this.positionY = undefined;
|
|
36
|
-
this.positionZ = undefined;
|
|
37
|
-
this.rotationX = undefined;
|
|
38
|
-
this.rotationY = undefined;
|
|
39
|
-
this.rotationZ = undefined;
|
|
40
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
41
|
-
if (this.selectedPositioning) {
|
|
42
|
-
if (this.selectedPositioning !== fixture.positioning) {
|
|
43
|
-
this.selectedPositioning = undefined;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
this.selectedPositioning = fixture.positioning;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
52
|
-
if (this.positionX) {
|
|
53
|
-
if (this.positionX !== fixture.positionX) {
|
|
54
|
-
this.positionX = undefined;
|
|
55
|
-
break;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
this.positionX = fixture.positionX;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
63
|
-
if (this.positionY) {
|
|
64
|
-
if (this.positionY !== fixture.positionY) {
|
|
65
|
-
this.positionY = undefined;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.positionY = fixture.positionY;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
74
|
-
if (this.positionZ) {
|
|
75
|
-
if (this.positionZ !== fixture.positionZ) {
|
|
76
|
-
this.positionZ = undefined;
|
|
77
|
-
break;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
this.positionZ = fixture.positionZ;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
85
|
-
if (this.rotationX) {
|
|
86
|
-
if (this.rotationX !== fixture.rotationX) {
|
|
87
|
-
this.rotationX = undefined;
|
|
88
|
-
break;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.rotationX = fixture.rotationX;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
96
|
-
if (this.rotationY) {
|
|
97
|
-
if (this.rotationY !== fixture.rotationY) {
|
|
98
|
-
this.rotationY = undefined;
|
|
99
|
-
break;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
this.rotationY = fixture.rotationY;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
107
|
-
if (this.rotationZ) {
|
|
108
|
-
if (this.rotationZ !== fixture.rotationZ) {
|
|
109
|
-
this.rotationZ = undefined;
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
this.rotationZ = fixture.rotationZ;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
changePosition(positioningStr) {
|
|
119
|
-
const positioning = Positioning[positioningStr];
|
|
120
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
121
|
-
fixture.positioning = positioning;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
changePositionManual(position, value) {
|
|
125
|
-
if (isNaN(value)) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
if (position === 'x') {
|
|
129
|
-
if (value >= this.positionXMin && value <= this.positionXMax) {
|
|
130
|
-
this.positionX = +value;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
else if (position === 'y') {
|
|
134
|
-
if (value >= this.positionYMin && value <= this.positionYMax) {
|
|
135
|
-
this.positionY = +value;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else if (position === 'z') {
|
|
139
|
-
if (value >= this.positionZMin && value <= this.positionZMax) {
|
|
140
|
-
this.positionZ = +value;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
144
|
-
if (position === 'x') {
|
|
145
|
-
if (value >= this.positionXMin && value <= this.positionXMax) {
|
|
146
|
-
fixture.positionX = +value;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
else if (position === 'y') {
|
|
150
|
-
if (value >= this.positionYMin && value <= this.positionYMax) {
|
|
151
|
-
fixture.positionY = +value;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
else if (position === 'z') {
|
|
155
|
-
if (value >= this.positionZMin && value <= this.positionZMax) {
|
|
156
|
-
fixture.positionZ = +value;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
changeRotationManual(rotation, value) {
|
|
162
|
-
if (isNaN(value) || value < this.rotationMin || value > this.rotationMax) {
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
if (rotation === 'x') {
|
|
166
|
-
this.rotationX = +value;
|
|
167
|
-
}
|
|
168
|
-
else if (rotation === 'y') {
|
|
169
|
-
this.rotationY = +value;
|
|
170
|
-
}
|
|
171
|
-
else if (rotation === 'z') {
|
|
172
|
-
this.rotationZ = +value;
|
|
173
|
-
}
|
|
174
|
-
for (const fixture of this.fixtureService.selectedSettingsFixtures) {
|
|
175
|
-
if (rotation === 'x') {
|
|
176
|
-
fixture.rotationX = +value;
|
|
177
|
-
}
|
|
178
|
-
else if (rotation === 'y') {
|
|
179
|
-
fixture.rotationY = +value;
|
|
180
|
-
}
|
|
181
|
-
else if (rotation === 'z') {
|
|
182
|
-
fixture.rotationZ = +value;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
};
|
|
187
|
-
FixtureSettingsPositionComponent.ctorParameters = () => [
|
|
188
|
-
{ type: FixtureService },
|
|
189
|
-
{ type: PresetService }
|
|
190
|
-
];
|
|
191
|
-
FixtureSettingsPositionComponent = __decorate([
|
|
192
|
-
Component({
|
|
193
|
-
selector: 'lib-app-fixture-settings-position',
|
|
194
|
-
template: "<div class=\"card border-secondary h-100\">\n <div class=\"card-header\">\n {{ 'designer.fixture.setting-position-title' | translate }}\n </div>\n\n <div *ngIf=\"fixtureService.selectedSettingsFixtures.length > 0\" class=\"card-body h-100\">\n <div>\n <select class=\"mb-2\" style=\"width: 140px\" [(ngModel)]=\"selectedPositioning\" (change)=\"changePosition($event.target.value)\">\n <option [ngValue]=\"selectUndefinedOptionValue\"></option>\n <option value=\"topFront\">{{ 'designer.fixture.setting-position-front-top' | translate }}</option>\n <option value=\"bottomFront\">{{ 'designer.fixture.setting-position-front-bottom' | translate }}</option>\n <option value=\"topBack\">{{ 'designer.fixture.setting-position-back-top' | translate }}</option>\n <option value=\"bottomBack\">{{ 'designer.fixture.setting-position-back-bottom' | translate }}</option>\n <option value=\"manual\">{{ 'designer.fixture.setting-position-manual' | translate }}</option>\n </select>\n </div>\n\n <div *ngIf=\"selectedPositioning == 'manual'\">\n <div>{{ 'designer.fixture.setting-position' | translate }}</div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">X</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionX ? positionX : (positionXMax + positionXMin) / 2\"\n [min]=\"positionXMin\"\n [max]=\"positionXMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('x', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionX\" (ngModelChange)=\"changePositionManual('x', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Y</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px; height: 18px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionZ ? positionZ : (positionZMax + positionZMin) / 2\"\n [min]=\"positionZMin\"\n [max]=\"positionZMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('z', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionZ\" (ngModelChange)=\"changePositionManual('z', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Z</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"positionY ? positionY : (positionYMax + positionYMin) / 2\"\n [min]=\"positionYMin\"\n [max]=\"positionYMax\"\n [step]=\"1\"\n (change)=\"changePositionManual('y', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"positionY\" (ngModelChange)=\"changePositionManual('y', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n\n <div class=\"mt-2\">{{ 'designer.fixture.setting-rotation' | translate }}</div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">X</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationX ? rotationX : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('x', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationX\" (ngModelChange)=\"changeRotationManual('x', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Y</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px; height: 18px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationZ ? rotationZ : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('z', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationZ\" (ngModelChange)=\"changeRotationManual('z', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 20px; float: left\">Z</div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 80px\"\n [tooltip]=\"'hide'\"\n [value]=\"rotationY ? rotationY : (rotationMin + rotationMax) / 2\"\n [min]=\"rotationMin\"\n [max]=\"rotationMax\"\n [step]=\"1\"\n (change)=\"changeRotationManual('y', $event.newValue)\"\n ></mv-slider>\n </div>\n <div class=\"my-auto\">\n <input [ngModel]=\"rotationY\" (ngModelChange)=\"changeRotationManual('y', $event)\" type=\"text\" class=\"slider-input\" />\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"fixtureService.selectedSettingsFixtures.length == 0\" class=\"card-body h-100 d-flex\">\n <p class=\"m-auto\" style=\"color: #717171\">{{ 'designer.fixture.no-fixtures-settings-selected' | translate }}</p>\n </div>\n</div>\n",
|
|
195
|
-
styles: [""]
|
|
196
|
-
}),
|
|
197
|
-
__metadata("design:paramtypes", [FixtureService, PresetService])
|
|
198
|
-
], FixtureSettingsPositionComponent);
|
|
199
|
-
export { FixtureSettingsPositionComponent };
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi9maXh0dXJlLXNldHRpbmdzLXBvc2l0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQU9qRSxJQUFhLGdDQUFnQyxHQUE3QyxNQUFhLGdDQUFnQztJQXVCM0MsWUFBbUIsY0FBOEIsRUFBVSxhQUE0QjtRQUFwRSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXRCdkYsK0JBQTBCLEdBQVEsU0FBUyxDQUFDO1FBRTVDLHdCQUFtQixHQUFXLFNBQVMsQ0FBQztRQUV4QyxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFFZCxpQkFBWSxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ3BCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUM7UUFDcEIsaUJBQVksR0FBRyxHQUFHLENBQUM7UUFFbkIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxD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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb3NpdGlvbmluZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLXNldHRpbmdzLXBvc2l0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZml4dHVyZS1zZXR0aW5ncy1wb3NpdGlvbi5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpeHR1cmVTZXR0aW5nc1Bvc2l0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2VsZWN0VW5kZWZpbmVkT3B0aW9uVmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcblxuICBzZWxlY3RlZFBvc2l0aW9uaW5nOiBzdHJpbmcgPSB1bmRlZmluZWQ7XG5cbiAgcG9zaXRpb25YID0gMDtcbiAgcG9zaXRpb25ZID0gMDtcbiAgcG9zaXRpb25aID0gMDtcblxuICBwb3NpdGlvblhNaW4gPSAtNDAwO1xuICBwb3NpdGlvblhNYXggPSA0MDA7XG4gIHBvc2l0aW9uWU1pbiA9IDA7XG4gIHBvc2l0aW9uWU1heCA9IDQwMDtcbiAgcG9zaXRpb25aTWluID0gLTQwMDtcbiAgcG9zaXRpb25aTWF4ID0gNDAwO1xuXG4gIHJvdGF0aW9uWCA9IDA7XG4gIHJvdGF0aW9uWSA9IDA7XG4gIHJvdGF0aW9uWiA9IDA7XG5cbiAgcm90YXRpb25NaW4gPSAwO1xuICByb3RhdGlvbk1heCA9IDM2MDtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcml2YXRlIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UpIHtcbiAgICBwcmVzZXRTZXJ2aWNlLmZpeHR1cmVTZWxlY3Rpb25TZXR0aW5nc0NoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb24oKSB7XG4gICAgLy8gZ2V0IGFsbCBkaXNwbGF5IHZhbHVlcyBmb3IgdGhlIHNlbGVjdGVkIHNldHRpbmdzIGZpeHR1cmVzXG4gICAgdGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nID0gdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5wb3NpdGlvblggPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wb3NpdGlvblkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wb3NpdGlvblogPSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJvdGF0aW9uWCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJvdGF0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnJvdGF0aW9uWiA9IHVuZGVmaW5lZDtcblxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRQb3NpdGlvbmluZykge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nICE9PSBmaXh0dXJlLnBvc2l0aW9uaW5nKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFBvc2l0aW9uaW5nID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNlbGVjdGVkUG9zaXRpb25pbmcgPSBmaXh0dXJlLnBvc2l0aW9uaW5nO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmICh0aGlzLnBvc2l0aW9uWCkge1xuICAgICAgICBpZiAodGhpcy5wb3NpdGlvblggIT09IGZpeHR1cmUucG9zaXRpb25YKSB7XG4gICAgICAgICAgdGhpcy5wb3NpdGlvblggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucG9zaXRpb25YID0gZml4dHVyZS5wb3NpdGlvblg7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMucG9zaXRpb25ZKSB7XG4gICAgICAgIGlmICh0aGlzLnBvc2l0aW9uWSAhPT0gZml4dHVyZS5wb3NpdGlvblkpIHtcbiAgICAgICAgICB0aGlzLnBvc2l0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblkgPSBmaXh0dXJlLnBvc2l0aW9uWTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAodGhpcy5wb3NpdGlvblopIHtcbiAgICAgICAgaWYgKHRoaXMucG9zaXRpb25aICE9PSBmaXh0dXJlLnBvc2l0aW9uWikge1xuICAgICAgICAgIHRoaXMucG9zaXRpb25aID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnBvc2l0aW9uWiA9IGZpeHR1cmUucG9zaXRpb25aO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmICh0aGlzLnJvdGF0aW9uWCkge1xuICAgICAgICBpZiAodGhpcy5yb3RhdGlvblggIT09IGZpeHR1cmUucm90YXRpb25YKSB7XG4gICAgICAgICAgdGhpcy5yb3RhdGlvblggPSB1bmRlZmluZWQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm90YXRpb25YID0gZml4dHVyZS5yb3RhdGlvblg7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgZml4dHVyZSBvZiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNlbGVjdGVkU2V0dGluZ3NGaXh0dXJlcykge1xuICAgICAgaWYgKHRoaXMucm90YXRpb25ZKSB7XG4gICAgICAgIGlmICh0aGlzLnJvdGF0aW9uWSAhPT0gZml4dHVyZS5yb3RhdGlvblkpIHtcbiAgICAgICAgICB0aGlzLnJvdGF0aW9uWSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3RhdGlvblkgPSBmaXh0dXJlLnJvdGF0aW9uWTtcbiAgICAgIH1cbiAgICB9XG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAodGhpcy5yb3RhdGlvblopIHtcbiAgICAgICAgaWYgKHRoaXMucm90YXRpb25aICE9PSBmaXh0dXJlLnJvdGF0aW9uWikge1xuICAgICAgICAgIHRoaXMucm90YXRpb25aID0gdW5kZWZpbmVkO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdGF0aW9uWiA9IGZpeHR1cmUucm90YXRpb25aO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVBvc2l0aW9uKHBvc2l0aW9uaW5nU3RyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb3NpdGlvbmluZzogUG9zaXRpb25pbmcgPSBQb3NpdGlvbmluZ1twb3NpdGlvbmluZ1N0cl07XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGZpeHR1cmUucG9zaXRpb25pbmcgPSBwb3NpdGlvbmluZztcbiAgICB9XG4gIH1cblxuICBjaGFuZ2VQb3NpdGlvbk1hbnVhbChwb3NpdGlvbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbiA9PT0gJ3gnKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblhNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblhNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblggPSArdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3knKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvbllNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvbllNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblkgPSArdmFsdWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3onKSB7XG4gICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblpNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblpNYXgpIHtcbiAgICAgICAgdGhpcy5wb3NpdGlvblogPSArdmFsdWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBmaXh0dXJlIG9mIHRoaXMuZml4dHVyZVNlcnZpY2Uuc2VsZWN0ZWRTZXR0aW5nc0ZpeHR1cmVzKSB7XG4gICAgICBpZiAocG9zaXRpb24gPT09ICd4Jykge1xuICAgICAgICBpZiAodmFsdWUgPj0gdGhpcy5wb3NpdGlvblhNaW4gJiYgdmFsdWUgPD0gdGhpcy5wb3NpdGlvblhNYXgpIHtcbiAgICAgICAgICBmaXh0dXJlLnBvc2l0aW9uWCA9ICt2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChwb3NpdGlvbiA9PT0gJ3knKSB7XG4gICAgICAgIGlmICh2YWx1ZSA+PSB0aGlzLnBvc2l0aW9uWU1pbiAmJiB2YWx1ZSA8PSB0aGlzLnBvc2l0aW9uWU1heCkge1xuICAgICAgICAgIGZpeHR1cmUucG9zaXRpb25ZID0gK3ZhbHVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKHBvc2l0aW9uID09PSAneicpIHtcbiAgICAgICAgaWYgKHZhbHVlID49IHRoaXMucG9zaXRpb25aTWluICYmIHZhbHVlIDw9IHRoaXMucG9zaXRpb25aTWF4KSB7XG4gICAgICAgICAgZml4dHVyZS5wb3NpdGlvblogPSArdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjaGFuZ2VSb3RhdGlvbk1hbnVhbChyb3RhdGlvbjogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKGlzTmFOKHZhbHVlKSB8fCB2YWx1ZSA8IHRoaXMucm90YXRpb25NaW4gfHwgdmFsdWUgPiB0aGlzLnJvdGF0aW9uTWF4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHJvdGF0aW9uID09PSAneCcpIHtcbiAgICAgIHRoaXMucm90YXRpb25YID0gK3ZhbHVlO1xuICAgIH0gZWxzZSBpZiAocm90YXRpb24gPT09ICd5Jykge1xuICAgICAgdGhpcy5yb3RhdGlvblkgPSArdmFsdWU7XG4gICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3onKSB7XG4gICAgICB0aGlzLnJvdGF0aW9uWiA9ICt2YWx1ZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpeHR1cmUgb2YgdGhpcy5maXh0dXJlU2VydmljZS5zZWxlY3RlZFNldHRpbmdzRml4dHVyZXMpIHtcbiAgICAgIGlmIChyb3RhdGlvbiA9PT0gJ3gnKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25YID0gK3ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3knKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25ZID0gK3ZhbHVlO1xuICAgICAgfSBlbHNlIGlmIChyb3RhdGlvbiA9PT0gJ3onKSB7XG4gICAgICAgIGZpeHR1cmUucm90YXRpb25aID0gK3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { ChangeDetectorRef, Component, OnInit } from '@angular/core';
|
|
3
|
-
import { PreviewService } from '../../../services/preview.service';
|
|
4
|
-
import { ProjectService } from '../../../services/project.service';
|
|
5
|
-
let FixtureSettingsStageComponent = class FixtureSettingsStageComponent {
|
|
6
|
-
constructor(projectService, previewService, changeDetectorRef) {
|
|
7
|
-
this.projectService = projectService;
|
|
8
|
-
this.previewService = previewService;
|
|
9
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
-
}
|
|
11
|
-
ngOnInit() { }
|
|
12
|
-
update() {
|
|
13
|
-
this.previewService.updateStage();
|
|
14
|
-
this.changeDetectorRef.detectChanges();
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
FixtureSettingsStageComponent.ctorParameters = () => [
|
|
18
|
-
{ type: ProjectService },
|
|
19
|
-
{ type: PreviewService },
|
|
20
|
-
{ type: ChangeDetectorRef }
|
|
21
|
-
];
|
|
22
|
-
FixtureSettingsStageComponent = __decorate([
|
|
23
|
-
Component({
|
|
24
|
-
selector: 'lib-app-fixture-settings-stage',
|
|
25
|
-
template: "<div class=\"card border-secondary h-100\">\n <div class=\"card-header\">\n {{ 'designer.fixture.setting-stage' | translate }}\n </div>\n\n <div class=\"card-body h-100\">\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-width' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageWidthCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageWidthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageWidthCm\"\n (ngModelChange)=\"projectService.project.stageWidthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageHeightCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageHeightCm\"\n (ngModelChange)=\"projectService.project.stageHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-depth' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageDepthCm\"\n [min]=\"100\"\n [max]=\"2000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageDepthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageDepthCm\"\n (ngModelChange)=\"projectService.project.stageDepthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-floor-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageFloorHeightCm\"\n [min]=\"1\"\n [max]=\"1000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageFloorHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageFloorHeightCm\"\n (ngModelChange)=\"projectService.project.stageFloorHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-ceiling-height' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stageCeilingHeightCm\"\n [min]=\"1\"\n [max]=\"1000\"\n [step]=\"5\"\n (change)=\"projectService.project.stageCeilingHeightCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stageCeilingHeightCm\"\n (ngModelChange)=\"projectService.project.stageCeilingHeightCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n\n <div class=\"d-flex\">\n <div class=\"my-auto\" style=\"width: 120px; float: left\">\n {{ 'designer.fixture.setting-stage-pillar-width' | translate }}\n </div>\n <div class=\"my-auto\" style=\"float: left\">\n <mv-slider\n style=\"width: 140px\"\n [tooltip]=\"'hide'\"\n [value]=\"projectService.project.stagePillarWidthCm\"\n [min]=\"1\"\n [max]=\"200\"\n [step]=\"5\"\n (change)=\"projectService.project.stagePillarWidthCm = $event.newValue; update()\"\n >\n </mv-slider>\n </div>\n <div class=\"my-auto\">\n <input\n type=\"text\"\n [ngModel]=\"projectService.project.stagePillarWidthCm\"\n (ngModelChange)=\"projectService.project.stagePillarWidthCm = $event; update()\"\n class=\"slider-input-readonly\"\n readonly\n />\n </div>\n <div class=\"my-auto ml-1\" style=\"color: darkgray\">cm</div>\n </div>\n </div>\n</div>\n",
|
|
26
|
-
styles: [""]
|
|
27
|
-
}),
|
|
28
|
-
__metadata("design:paramtypes", [ProjectService, PreviewService, ChangeDetectorRef])
|
|
29
|
-
], FixtureSettingsStageComponent);
|
|
30
|
-
export { FixtureSettingsStageComponent };
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy1zdGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy1zdGFnZS9maXh0dXJlLXNldHRpbmdzLXN0YWdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU9uRSxJQUFhLDZCQUE2QixHQUExQyxNQUFhLDZCQUE2QjtJQUN4QyxZQUFtQixjQUE4QixFQUFTLGNBQThCLEVBQVUsaUJBQW9DO1FBQW5ILG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFBRyxDQUFDO0lBRTFJLFFBQVEsS0FBSSxDQUFDO0lBRWIsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FDRixDQUFBOztZQVJvQyxjQUFjO1lBQXlCLGNBQWM7WUFBNkIsaUJBQWlCOztBQUQzSCw2QkFBNkI7SUFMekMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyw4Z01BQXNEOztLQUV2RCxDQUFDO3FDQUVtQyxjQUFjLEVBQXlCLGNBQWMsRUFBNkIsaUJBQWlCO0dBRDNILDZCQUE2QixDQVN6QztTQVRZLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJldmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcm9qZWN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZml4dHVyZS1zZXR0aW5ncy1zdGFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtc2V0dGluZ3Mtc3RhZ2UuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlU2V0dGluZ3NTdGFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsIHB1YmxpYyBwcmV2aWV3U2VydmljZTogUHJldmlld1NlcnZpY2UsIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICB1cGRhdGUoKSB7XG4gICAgdGhpcy5wcmV2aWV3U2VydmljZS51cGRhdGVTdGFnZSgpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FixtureService } from '../../services/fixture.service';
|
|
4
|
-
import { PresetService } from '../../services/preset.service';
|
|
5
|
-
let FixtureSettingsComponent = class FixtureSettingsComponent {
|
|
6
|
-
constructor(fixtureService, presetService) {
|
|
7
|
-
this.fixtureService = fixtureService;
|
|
8
|
-
this.presetService = presetService;
|
|
9
|
-
this.dmxChannels = [];
|
|
10
|
-
for (let i = 0; i < 512; i++) {
|
|
11
|
-
this.dmxChannels.push(0);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() { }
|
|
15
|
-
isChrome() {
|
|
16
|
-
if (navigator.appVersion.indexOf('Chrome/') !== -1) {
|
|
17
|
-
return true;
|
|
18
|
-
}
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
FixtureSettingsComponent.ctorParameters = () => [
|
|
23
|
-
{ type: FixtureService },
|
|
24
|
-
{ type: PresetService }
|
|
25
|
-
];
|
|
26
|
-
FixtureSettingsComponent = __decorate([
|
|
27
|
-
Component({
|
|
28
|
-
selector: 'lib-app-fixture-settings',
|
|
29
|
-
template: "<div class=\"card border-secondary panel h-100\">\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 class=\"row m-0 pl-3\" [class.h-100]=\"isChrome()\">\n <!-- Position -->\n <div class=\"col col-auto p-0 my-3 mr-3\">\n <lib-app-fixture-settings-position></lib-app-fixture-settings-position>\n </div>\n\n <!-- Stage -->\n <div class=\"col col-auto p-0 my-3 mr-3\">\n <lib-app-fixture-settings-stage></lib-app-fixture-settings-stage>\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 </div>\n</div>\n",
|
|
30
|
-
styles: [".dmx-channel{display:flex;float:left;width:28px;border:1px solid #fff;margin-left:-1px;margin-bottom:-1px}.dmx-channel-occupied{background-color:#fd7e14;border-left:none;border-right:none;cursor:move}.dmx-channel-occupied-start{border-left:1px solid #fff}.dmx-channel-occupied-end{border-right:1px solid #fff}"]
|
|
31
|
-
}),
|
|
32
|
-
__metadata("design:paramtypes", [FixtureService, PresetService])
|
|
33
|
-
], FixtureSettingsComponent);
|
|
34
|
-
export { FixtureSettingsComponent };
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1zZXR0aW5ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUtc2V0dGluZ3MvZml4dHVyZS1zZXR0aW5ncy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU85RCxJQUFhLHdCQUF3QixHQUFyQyxNQUFhLHdCQUF3QjtJQUduQyxZQUFvQixjQUE4QixFQUFTLGFBQTRCO1FBQW5FLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFTLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBRnZGLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsUUFBUSxLQUFJLENBQUM7SUFFYixRQUFRO1FBQ04sSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0YsQ0FBQTs7WUFkcUMsY0FBYztZQUF3QixhQUFhOztBQUg1RSx3QkFBd0I7SUFMcEMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDBCQUEwQjtRQUNwQyxtNkJBQWdEOztLQUVqRCxDQUFDO3FDQUlvQyxjQUFjLEVBQXdCLGFBQWE7R0FINUUsd0JBQXdCLENBaUJwQztTQWpCWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRml4dHVyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maXh0dXJlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1maXh0dXJlLXNldHRpbmdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpeHR1cmUtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maXh0dXJlLXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRml4dHVyZVNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZG14Q2hhbm5lbHM6IG51bWJlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmaXh0dXJlU2VydmljZTogRml4dHVyZVNlcnZpY2UsIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA1MTI7IGkrKykge1xuICAgICAgdGhpcy5kbXhDaGFubmVscy5wdXNoKDApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge31cblxuICBpc0Nocm9tZSgpOiBib29sZWFuIHtcbiAgICBpZiAobmF2aWdhdG9yLmFwcFZlcnNpb24uaW5kZXhPZignQ2hyb21lLycpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
-
import { FixturePoolService } from '../services/fixture-pool.service';
|
|
4
|
-
import { FixtureService } from '../services/fixture.service';
|
|
5
|
-
import { IntroService } from '../services/intro.service';
|
|
6
|
-
import { PresetService } from '../services/preset.service';
|
|
7
|
-
import { ProjectService } from '../services/project.service';
|
|
8
|
-
let FixtureComponent = class FixtureComponent {
|
|
9
|
-
constructor(projectService, presetService, fixturePoolService, fixtureService, introService) {
|
|
10
|
-
this.projectService = projectService;
|
|
11
|
-
this.presetService = presetService;
|
|
12
|
-
this.fixturePoolService = fixturePoolService;
|
|
13
|
-
this.fixtureService = fixtureService;
|
|
14
|
-
this.introService = introService;
|
|
15
|
-
}
|
|
16
|
-
ngOnInit() { }
|
|
17
|
-
fixtureIsSelected(fixture) {
|
|
18
|
-
if (this.fixtureService.settingsSelection) {
|
|
19
|
-
return this.fixtureService.settingsFixtureIsSelected(fixture);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return this.presetService.fixtureIsSelected(fixture);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
selectFixture(event, fixture) {
|
|
26
|
-
if (this.fixtureService.settingsSelection) {
|
|
27
|
-
// select fixtures for the settings
|
|
28
|
-
this.fixtureService.switchSettingsFixtureSelection(fixture);
|
|
29
|
-
this.presetService.fixtureSelectionSettingsChanged.next();
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
// select fixtures for the current preset
|
|
33
|
-
this.presetService.switchFixtureSelection(fixture);
|
|
34
|
-
this.presetService.fixtureSelectionChanged.next();
|
|
35
|
-
this.presetService.previewLive();
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
selectAll() {
|
|
39
|
-
this.presetService.selectAllFixtures();
|
|
40
|
-
this.presetService.fixtureSelectionChanged.next();
|
|
41
|
-
}
|
|
42
|
-
selectNone() {
|
|
43
|
-
this.presetService.selectNoFixtures();
|
|
44
|
-
this.presetService.fixtureSelectionChanged.next();
|
|
45
|
-
}
|
|
46
|
-
openFixturePool() {
|
|
47
|
-
this.fixturePoolService.open();
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
FixtureComponent.ctorParameters = () => [
|
|
51
|
-
{ type: ProjectService },
|
|
52
|
-
{ type: PresetService },
|
|
53
|
-
{ type: FixturePoolService },
|
|
54
|
-
{ type: FixtureService },
|
|
55
|
-
{ type: IntroService }
|
|
56
|
-
];
|
|
57
|
-
FixtureComponent = __decorate([
|
|
58
|
-
Component({
|
|
59
|
-
selector: 'lib-app-fixture',
|
|
60
|
-
template: "<div class=\"card border-secondary h-100 panel\" [class.card-intro-active]=\"introService.showStep('fixtures')\">\n <div class=\"card-header d-flex\">\n <div>Fixtures</div>\n <div class=\"ml-auto\">\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"selectNone(); (false)\"\n ><i class=\"fa fa-square-o fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"selectAll(); (false)\"\n ><i class=\"fa fa-check-square-o fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"openFixturePool(); (false)\"\n ><i class=\"fa fa-cog fa-fw\" aria-hidden=\"true\"></i\n ></a>\n </div>\n </div>\n\n <div class=\"card-body h-100 p-0\">\n <!-- List of fixtures -->\n <div *ngIf=\"presetService.selectedPreset\" class=\"list-group\" [sortablejs]=\"projectService.project.fixtures\">\n <div\n class=\"list-group-item\"\n *ngFor=\"let item of projectService.project.fixtures\"\n [class.inactive-list-item]=\"!fixtureIsSelected(item)\"\n >\n <div class=\"row d-flex\" (click)=\"selectFixture($event, item)\" style=\"cursor: pointer\">\n <div class=\"col-auto list-sort-handle my-auto\" style=\"cursor: move; cursor: -webkit-grabbing\">\n <i class=\"fa fa-bars\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"active\" [ngModel]=\"fixtureIsSelected(item)\" />\n </div>\n <div>\n <span class=\"icon-{{ fixtureService.getFixtureIconClass(fixtureService.getProfileByUuid(item.profileUuid)) }} mr-1\"></span>\n {{ item.name }}\n </div>\n </div>\n </div>\n </div>\n\n <div *ngIf=\"projectService.project.fixtures.length == 0\" class=\"w-100 h-100 d-flex p-3 text-center\">\n <a href=\"#\" class=\"m-auto\" (click)=\"openFixturePool(); (false)\"\n ><i class=\"fa fa-plus-circle fa-fw\" aria-hidden=\"true\"></i> {{ 'designer.fixture.no-fixtures' | translate }}</a\n >\n </div>\n </div>\n</div>\n",
|
|
61
|
-
styles: [""]
|
|
62
|
-
}),
|
|
63
|
-
__metadata("design:paramtypes", [ProjectService,
|
|
64
|
-
PresetService,
|
|
65
|
-
FixturePoolService,
|
|
66
|
-
FixtureService,
|
|
67
|
-
IntroService])
|
|
68
|
-
], FixtureComponent);
|
|
69
|
-
export { FixtureComponent };
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Acm9ja2V0c2hvdy9kZXNpZ25lci8iLCJzb3VyY2VzIjpbImxpYi9maXh0dXJlL2ZpeHR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU83RCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFnQjtJQUMzQixZQUNTLGNBQThCLEVBQzlCLGFBQTRCLEVBQzNCLGtCQUFzQyxFQUN2QyxjQUE4QixFQUM5QixZQUEwQjtRQUoxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7SUFDaEMsQ0FBQztJQUVKLFFBQVEsS0FBSSxDQUFDO0lBRWIsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVLEVBQUUsT0FBZ0I7UUFDeEMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFO1lBQ3pDLG1DQUFtQztZQUNuQyxJQUFJLENBQUMsY0FBYyxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxhQUFhLENBQUMsK0JBQStCLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0Q7YUFBTTtZQUNMLHlDQUF5QztZQUN6QyxJQUFJLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0NBQ0YsQ0FBQTs7WUEzQzBCLGNBQWM7WUFDZixhQUFhO1lBQ1Asa0JBQWtCO1lBQ3ZCLGNBQWM7WUFDaEIsWUFBWTs7QUFOeEIsZ0JBQWdCO0lBTDVCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxpQkFBaUI7UUFDM0Isb3FFQUF1Qzs7S0FFeEMsQ0FBQztxQ0FHeUIsY0FBYztRQUNmLGFBQWE7UUFDUCxrQkFBa0I7UUFDdkIsY0FBYztRQUNoQixZQUFZO0dBTnhCLGdCQUFnQixDQTZDNUI7U0E3Q1ksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpeHR1cmUgfSBmcm9tICcuLi9tb2RlbHMvZml4dHVyZSc7XG5pbXBvcnQgeyBGaXh0dXJlUG9vbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9maXh0dXJlLXBvb2wuc2VydmljZSc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBJbnRyb1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbnRyby5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZml4dHVyZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZpeHR1cmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJvamVjdFNlcnZpY2U6IFByb2plY3RTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcmVzZXRTZXJ2aWNlOiBQcmVzZXRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZml4dHVyZVBvb2xTZXJ2aWNlOiBGaXh0dXJlUG9vbFNlcnZpY2UsXG4gICAgcHVibGljIGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSxcbiAgICBwdWJsaWMgaW50cm9TZXJ2aWNlOiBJbnRyb1NlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge31cblxuICBmaXh0dXJlSXNTZWxlY3RlZChmaXh0dXJlOiBGaXh0dXJlKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZml4dHVyZVNlcnZpY2Uuc2V0dGluZ3NTZWxlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpeHR1cmVTZXJ2aWNlLnNldHRpbmdzRml4dHVyZUlzU2VsZWN0ZWQoZml4dHVyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZUlzU2VsZWN0ZWQoZml4dHVyZSk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0Rml4dHVyZShldmVudDogYW55LCBmaXh0dXJlOiBGaXh0dXJlKSB7XG4gICAgaWYgKHRoaXMuZml4dHVyZVNlcnZpY2Uuc2V0dGluZ3NTZWxlY3Rpb24pIHtcbiAgICAgIC8vIHNlbGVjdCBmaXh0dXJlcyBmb3IgdGhlIHNldHRpbmdzXG4gICAgICB0aGlzLmZpeHR1cmVTZXJ2aWNlLnN3aXRjaFNldHRpbmdzRml4dHVyZVNlbGVjdGlvbihmaXh0dXJlKTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uU2V0dGluZ3NDaGFuZ2VkLm5leHQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gc2VsZWN0IGZpeHR1cmVzIGZvciB0aGUgY3VycmVudCBwcmVzZXRcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5zd2l0Y2hGaXh0dXJlU2VsZWN0aW9uKGZpeHR1cmUpO1xuICAgICAgdGhpcy5wcmVzZXRTZXJ2aWNlLmZpeHR1cmVTZWxlY3Rpb25DaGFuZ2VkLm5leHQoKTtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdEFsbCgpIHtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0QWxsRml4dHVyZXMoKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UuZml4dHVyZVNlbGVjdGlvbkNoYW5nZWQubmV4dCgpO1xuICB9XG5cbiAgc2VsZWN0Tm9uZSgpIHtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0Tm9GaXh0dXJlcygpO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5maXh0dXJlU2VsZWN0aW9uQ2hhbmdlZC5uZXh0KCk7XG4gIH1cblxuICBvcGVuRml4dHVyZVBvb2woKSB7XG4gICAgdGhpcy5maXh0dXJlUG9vbFNlcnZpY2Uub3BlbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Component, HostListener } from '@angular/core';
|
|
3
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
4
|
-
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
5
|
-
import { ToastrService } from 'ngx-toastr';
|
|
6
|
-
import { Subject } from 'rxjs';
|
|
7
|
-
import { map } from 'rxjs/operators';
|
|
8
|
-
import { FixtureProfile } from '../../models/fixture-profile';
|
|
9
|
-
import { FixtureService } from '../../services/fixture.service';
|
|
10
|
-
import { ProjectService } from '../../services/project.service';
|
|
11
|
-
let FixturePoolCreateFromFileComponent = class FixturePoolCreateFromFileComponent {
|
|
12
|
-
constructor(bsModalRef, translateService, toastrService, fixtureService, projectService) {
|
|
13
|
-
this.bsModalRef = bsModalRef;
|
|
14
|
-
this.translateService = translateService;
|
|
15
|
-
this.toastrService = toastrService;
|
|
16
|
-
this.fixtureService = fixtureService;
|
|
17
|
-
this.projectService = projectService;
|
|
18
|
-
this.onClose = new Subject();
|
|
19
|
-
}
|
|
20
|
-
ngOnInit() {
|
|
21
|
-
this.dropzoneConfig = {
|
|
22
|
-
url: 'dummy',
|
|
23
|
-
addRemoveLinks: false,
|
|
24
|
-
maxFilesize: 10 /* 10 MB */,
|
|
25
|
-
acceptedFiles: '.json',
|
|
26
|
-
timeout: 0,
|
|
27
|
-
accept: (file, done) => {
|
|
28
|
-
const reader = new FileReader();
|
|
29
|
-
reader.addEventListener('loadend', (event) => {
|
|
30
|
-
// validate the file
|
|
31
|
-
const text = event.target.result;
|
|
32
|
-
const json = JSON.parse(text);
|
|
33
|
-
if (json['$schema'].match('https://raw.githubusercontent.com/OpenLightingProject/open-fixture-library/schema-(.*)/schemas/fixture.json')) {
|
|
34
|
-
// create the metadata from the file. we don't have the corresponding
|
|
35
|
-
// manufacturer-file, therefore we just assume the attributes from the
|
|
36
|
-
// fixture-file.
|
|
37
|
-
const manufacturerShortName = json['manufacturerKey'];
|
|
38
|
-
const manufacturerName = manufacturerShortName;
|
|
39
|
-
const uuid = manufacturerShortName + '/' + json['fixtureKey'];
|
|
40
|
-
const profile = new FixtureProfile(json);
|
|
41
|
-
profile.manufacturerShortName = manufacturerShortName;
|
|
42
|
-
profile.manufacturerName = manufacturerName;
|
|
43
|
-
profile.uuid = uuid;
|
|
44
|
-
profile.createdFromFile = true;
|
|
45
|
-
// add the profile to the project, if not already added
|
|
46
|
-
const loadedProfile = this.fixtureService.getProfileByUuid(uuid);
|
|
47
|
-
if (!loadedProfile) {
|
|
48
|
-
this.projectService.project.fixtureProfiles.push(profile);
|
|
49
|
-
}
|
|
50
|
-
// add a new fixture from this profile
|
|
51
|
-
this.onClose.next(profile);
|
|
52
|
-
this.bsModalRef.hide();
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
// show an error toast
|
|
56
|
-
const msg = 'designer.fixture-pool.invalid-fixture-profile-file';
|
|
57
|
-
const title = 'designer.misc.toast-upload-error-title';
|
|
58
|
-
this.translateService.get([msg, title]).subscribe((result) => {
|
|
59
|
-
this.toastrService.error(result[msg], result[title], { timeOut: 0, extendedTimeOut: 0, enableHtml: true });
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
done('noerr');
|
|
63
|
-
});
|
|
64
|
-
reader.readAsText(file);
|
|
65
|
-
},
|
|
66
|
-
previewTemplate: `
|
|
67
|
-
<div style="display: none;">
|
|
68
|
-
<!-- No preview -->
|
|
69
|
-
</div>
|
|
70
|
-
`,
|
|
71
|
-
};
|
|
72
|
-
this.translateService
|
|
73
|
-
.get('designer.misc.dropzone-message')
|
|
74
|
-
.pipe(map((result) => {
|
|
75
|
-
this.uploadMessage = '<h3 class="mb-0"><i class="fa fa-cloud-upload"></i></h3>' + result;
|
|
76
|
-
}))
|
|
77
|
-
.subscribe();
|
|
78
|
-
}
|
|
79
|
-
onUploadError(args) {
|
|
80
|
-
if (args[1] === 'noerr') {
|
|
81
|
-
// this error is set in the accept event listener -> everything OK
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const msg = 'designer.misc.toast-upload-error';
|
|
85
|
-
const title = 'designer.misc.toast-upload-error-title';
|
|
86
|
-
this.translateService.get([msg, title]).subscribe((result) => {
|
|
87
|
-
this.toastrService.error(result[msg] + args[1], result[title], { timeOut: 0, extendedTimeOut: 0, enableHtml: true });
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
ok() {
|
|
91
|
-
this.onClose.next(undefined);
|
|
92
|
-
this.bsModalRef.hide();
|
|
93
|
-
}
|
|
94
|
-
cancel() {
|
|
95
|
-
this.onClose.next(undefined);
|
|
96
|
-
this.bsModalRef.hide();
|
|
97
|
-
}
|
|
98
|
-
handleKeyboardEvent(event) {
|
|
99
|
-
this.ok();
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
FixturePoolCreateFromFileComponent.ctorParameters = () => [
|
|
103
|
-
{ type: BsModalRef },
|
|
104
|
-
{ type: TranslateService },
|
|
105
|
-
{ type: ToastrService },
|
|
106
|
-
{ type: FixtureService },
|
|
107
|
-
{ type: ProjectService }
|
|
108
|
-
];
|
|
109
|
-
__decorate([
|
|
110
|
-
HostListener('document:keydown.enter', ['$event']),
|
|
111
|
-
__metadata("design:type", Function),
|
|
112
|
-
__metadata("design:paramtypes", [Object]),
|
|
113
|
-
__metadata("design:returntype", void 0)
|
|
114
|
-
], FixturePoolCreateFromFileComponent.prototype, "handleKeyboardEvent", null);
|
|
115
|
-
FixturePoolCreateFromFileComponent = __decorate([
|
|
116
|
-
Component({
|
|
117
|
-
selector: 'lib-fixture-pool-create-from-file',
|
|
118
|
-
template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ 'designer.fixture-pool.create-fixture-from-profile-file-dialog-title' | translate }}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"bsModalRef.hide()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n</div>\n<div class=\"modal-body\">\n <!-- Dropzone -->\n <dropzone [config]=\"dropzoneConfig\" [useDropzoneClass]=\"'false'\" [message]=\"uploadMessage\" (error)=\"onUploadError($event)\"></dropzone>\n</div>\n<div class=\"modal-footer\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n",
|
|
119
|
-
styles: [""]
|
|
120
|
-
}),
|
|
121
|
-
__metadata("design:paramtypes", [BsModalRef,
|
|
122
|
-
TranslateService,
|
|
123
|
-
ToastrService,
|
|
124
|
-
FixtureService,
|
|
125
|
-
ProjectService])
|
|
126
|
-
], FixturePoolCreateFromFileComponent);
|
|
127
|
-
export { FixturePoolCreateFromFileComponent };
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1wb29sLWNyZWF0ZS1mcm9tLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJvY2tldHNob3cvZGVzaWduZXIvIiwic291cmNlcyI6WyJsaWIvZml4dHVyZS1wb29sL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFPaEUsSUFBYSxrQ0FBa0MsR0FBL0MsTUFBYSxrQ0FBa0M7SUFLN0MsWUFDUyxVQUFzQixFQUNyQixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsY0FBOEIsRUFDOUIsY0FBOEI7UUFKL0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFQakMsWUFBTyxHQUE0QixJQUFJLE9BQU8sRUFB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QTs7WUF4R3NCLFVBQVU7WUFDSCxnQkFBZ0I7WUFDbkIsYUFBYTtZQUNaLGNBQWM7WUFDZCxjQUFjOztBQWlHeEM7SUFEQyxZQUFZLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQzs7Ozs2RUFHbEQ7QUE3R1Usa0NBQWtDO0lBTDlDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxtQ0FBbUM7UUFDN0MsaXNCQUE2RDs7S0FFOUQsQ0FBQztxQ0FPcUIsVUFBVTtRQUNILGdCQUFnQjtRQUNuQixhQUFhO1FBQ1osY0FBYztRQUNkLGNBQWM7R0FWN0Isa0NBQWtDLENBOEc5QztTQTlHWSxrQ0FBa0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBEcm9wem9uZUNvbmZpZ0ludGVyZmFjZSB9IGZyb20gJ25neC1kcm9wem9uZS13cmFwcGVyJztcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZpeHR1cmVQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpeHR1cmUtcHJvZmlsZSc7XG5pbXBvcnQgeyBGaXh0dXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpeHR1cmUuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2plY3Quc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9maXh0dXJlLXBvb2wtY3JlYXRlLWZyb20tZmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpeHR1cmUtcG9vbC1jcmVhdGUtZnJvbS1maWxlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRml4dHVyZVBvb2xDcmVhdGVGcm9tRmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBkcm9wem9uZUNvbmZpZzogRHJvcHpvbmVDb25maWdJbnRlcmZhY2U7XG4gIHB1YmxpYyB1cGxvYWRNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBvbkNsb3NlOiBTdWJqZWN0PEZpeHR1cmVQcm9maWxlPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyU2VydmljZTogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIGZpeHR1cmVTZXJ2aWNlOiBGaXh0dXJlU2VydmljZSxcbiAgICBwcml2YXRlIHByb2plY3RTZXJ2aWNlOiBQcm9qZWN0U2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kcm9wem9uZUNvbmZpZyA9IHtcbiAgICAgIHVybDogJ2R1bW15JyxcbiAgICAgIGFkZFJlbW92ZUxpbmtzOiBmYWxzZSxcbiAgICAgIG1heEZpbGVzaXplOiAxMCAvKiAxMCBNQiAqLyxcbiAgICAgIGFjY2VwdGVkRmlsZXM6ICcuanNvbicsXG4gICAgICB0aW1lb3V0OiAwLFxuICAgICAgYWNjZXB0OiAoZmlsZTogYW55LCBkb25lOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgcmVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlbmQnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIHZhbGlkYXRlIHRoZSBmaWxlXG4gICAgICAgICAgY29uc3QgdGV4dCA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UodGV4dCk7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAganNvblsnJHNjaGVtYSddLm1hdGNoKFxuICAgICAgICAgICAgICAnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL09wZW5MaWdodGluZ1Byb2plY3Qvb3Blbi1maXh0dXJlLWxpYnJhcnkvc2NoZW1hLSguKikvc2NoZW1hcy9maXh0dXJlLmpzb24nXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBjcmVhdGUgdGhlIG1ldGFkYXRhIGZyb20gdGhlIGZpbGUuIHdlIGRvbid0IGhhdmUgdGhlIGNvcnJlc3BvbmRpbmdcbiAgICAgICAgICAgIC8vIG1hbnVmYWN0dXJlci1maWxlLCB0aGVyZWZvcmUgd2UganVzdCBhc3N1bWUgdGhlIGF0dHJpYnV0ZXMgZnJvbSB0aGVcbiAgICAgICAgICAgIC8vIGZpeHR1cmUtZmlsZS5cbiAgICAgICAgICAgIGNvbnN0IG1hbnVmYWN0dXJlclNob3J0TmFtZSA9IGpzb25bJ21hbnVmYWN0dXJlcktleSddO1xuICAgICAgICAgICAgY29uc3QgbWFudWZhY3R1cmVyTmFtZSA9IG1hbnVmYWN0dXJlclNob3J0TmFtZTtcbiAgICAgICAgICAgIGNvbnN0IHV1aWQgPSBtYW51ZmFjdHVyZXJTaG9ydE5hbWUgKyAnLycgKyBqc29uWydmaXh0dXJlS2V5J107XG4gICAgICAgICAgICBjb25zdCBwcm9maWxlID0gbmV3IEZpeHR1cmVQcm9maWxlKGpzb24pO1xuXG4gICAgICAgICAgICBwcm9maWxlLm1hbnVmYWN0dXJlclNob3J0TmFtZSA9IG1hbnVmYWN0dXJlclNob3J0TmFtZTtcbiAgICAgICAgICAgIHByb2ZpbGUubWFudWZhY3R1cmVyTmFtZSA9IG1hbnVmYWN0dXJlck5hbWU7XG4gICAgICAgICAgICBwcm9maWxlLnV1aWQgPSB1dWlkO1xuICAgICAgICAgICAgcHJvZmlsZS5jcmVhdGVkRnJvbUZpbGUgPSB0cnVlO1xuXG4gICAgICAgICAgICAvLyBhZGQgdGhlIHByb2ZpbGUgdG8gdGhlIHByb2plY3QsIGlmIG5vdCBhbHJlYWR5IGFkZGVkXG4gICAgICAgICAgICBjb25zdCBsb2FkZWRQcm9maWxlID0gdGhpcy5maXh0dXJlU2VydmljZS5nZXRQcm9maWxlQnlVdWlkKHV1aWQpO1xuICAgICAgICAgICAgaWYgKCFsb2FkZWRQcm9maWxlKSB7XG4gICAgICAgICAgICAgIHRoaXMucHJvamVjdFNlcnZpY2UucHJvamVjdC5maXh0dXJlUHJvZmlsZXMucHVzaChwcm9maWxlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gYWRkIGEgbmV3IGZpeHR1cmUgZnJvbSB0aGlzIHByb2ZpbGVcbiAgICAgICAgICAgIHRoaXMub25DbG9zZS5uZXh0KHByb2ZpbGUpO1xuICAgICAgICAgICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc2hvdyBhbiBlcnJvciB0b2FzdFxuICAgICAgICAgICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLmZpeHR1cmUtcG9vbC5pbnZhbGlkLWZpeHR1cmUtcHJvZmlsZS1maWxlJztcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yLXRpdGxlJztcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQoW21zZywgdGl0bGVdKS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10sIHJlc3VsdFt0aXRsZV0sIHsgdGltZU91dDogMCwgZXh0ZW5kZWRUaW1lT3V0OiAwLCBlbmFibGVIdG1sOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZG9uZSgnbm9lcnInKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUpO1xuICAgICAgfSxcbiAgICAgIHByZXZpZXdUZW1wbGF0ZTogYFxuICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCI+XG4gICAgICAgIDwhLS0gTm8gcHJldmlldyAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgYCxcbiAgICB9O1xuXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlXG4gICAgICAuZ2V0KCdkZXNpZ25lci5taXNjLmRyb3B6b25lLW1lc3NhZ2UnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy51cGxvYWRNZXNzYWdlID0gJzxoMyBjbGFzcz1cIm1iLTBcIj48aSBjbGFzcz1cImZhIGZhLWNsb3VkLXVwbG9hZFwiPjwvaT48L2gzPicgKyByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25VcGxvYWRFcnJvcihhcmdzOiBhbnkpIHtcbiAgICBpZiAoYXJnc1sxXSA9PT0gJ25vZXJyJykge1xuICAgICAgLy8gdGhpcyBlcnJvciBpcyBzZXQgaW4gdGhlIGFjY2VwdCBldmVudCBsaXN0ZW5lciAtPiBldmVyeXRoaW5nIE9LXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbXNnID0gJ2Rlc2lnbmVyLm1pc2MudG9hc3QtdXBsb2FkLWVycm9yJztcbiAgICBjb25zdCB0aXRsZSA9ICdkZXNpZ25lci5taXNjLnRvYXN0LXVwbG9hZC1lcnJvci10aXRsZSc7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChbbXNnLCB0aXRsZV0pLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XG4gICAgICB0aGlzLnRvYXN0clNlcnZpY2UuZXJyb3IocmVzdWx0W21zZ10gKyBhcmdzWzFdLCByZXN1bHRbdGl0bGVdLCB7IHRpbWVPdXQ6IDAsIGV4dGVuZGVkVGltZU91dDogMCwgZW5hYmxlSHRtbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIG9rKCkge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UubmV4dCh1bmRlZmluZWQpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iXX0=
|