@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
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { Component, HostListener } from '@angular/core';
|
|
2
|
+
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@ngx-translate/core";
|
|
7
|
+
export class PresetSettingsComponent {
|
|
8
|
+
constructor(bsModalRef) {
|
|
9
|
+
this.bsModalRef = bsModalRef;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
this.name = this.preset.name;
|
|
13
|
+
this.startMillis = this.preset.startMillis;
|
|
14
|
+
this.endMillis = this.preset.endMillis;
|
|
15
|
+
this.fadeInMillis = this.preset.fadeInMillis;
|
|
16
|
+
this.fadeOutMillis = this.preset.fadeOutMillis;
|
|
17
|
+
this.fadeInPre = this.preset.fadeInPre;
|
|
18
|
+
this.fadeOutPost = this.preset.fadeOutPost;
|
|
19
|
+
}
|
|
20
|
+
ok() {
|
|
21
|
+
this.preset.name = this.name;
|
|
22
|
+
if (this.startMillis === undefined || this.startMillis === null || this.startMillis === '') {
|
|
23
|
+
this.preset.startMillis = undefined;
|
|
24
|
+
}
|
|
25
|
+
else if (!isNaN(this.startMillis) && this.startMillis >= 0) {
|
|
26
|
+
this.preset.startMillis = +this.startMillis;
|
|
27
|
+
}
|
|
28
|
+
if (this.endMillis === undefined || this.endMillis === null || this.endMillis === '') {
|
|
29
|
+
this.preset.endMillis = undefined;
|
|
30
|
+
}
|
|
31
|
+
else if (!isNaN(this.endMillis) && this.endMillis >= 0) {
|
|
32
|
+
this.preset.endMillis = +this.endMillis;
|
|
33
|
+
}
|
|
34
|
+
if (!isNaN(this.fadeInMillis) && this.fadeInMillis >= 0) {
|
|
35
|
+
this.preset.fadeInMillis = +this.fadeInMillis;
|
|
36
|
+
}
|
|
37
|
+
if (!isNaN(this.fadeOutMillis) && this.fadeOutMillis >= 0) {
|
|
38
|
+
this.preset.fadeOutMillis = +this.fadeOutMillis;
|
|
39
|
+
}
|
|
40
|
+
this.preset.fadeInPre = this.fadeInPre;
|
|
41
|
+
this.preset.fadeOutPost = this.fadeOutPost;
|
|
42
|
+
this.bsModalRef.hide();
|
|
43
|
+
}
|
|
44
|
+
cancel() {
|
|
45
|
+
this.bsModalRef.hide();
|
|
46
|
+
}
|
|
47
|
+
handleKeyboardEvent(event) {
|
|
48
|
+
this.ok();
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = function PresetSettingsComponent_Factory(t) { return new (t || PresetSettingsComponent)(i0.ɵɵdirectiveInject(i1.BsModalRef)); }; }
|
|
51
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PresetSettingsComponent, selectors: [["lib-preset-settings"]], hostBindings: function PresetSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
52
|
+
i0.ɵɵlistener("keydown.enter", function PresetSettingsComponent_keydown_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
|
|
53
|
+
} }, decls: 76, vars: 47, consts: [[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"], [1, "form-group", "row"], [1, "col-lg-4", "col-form-label"], [1, "col-lg-7"], ["type", "text", 1, "form-control", 3, "ngModelChange", "ngModel"], [1, "col-lg-1", "d-flex", "p-0"], [1, "my-auto"], [1, "col-lg-8", "d-flex"], [1, "form-check", "my-auto"], ["type", "checkbox", "id", "fadeInPre", 1, "form-check-input", 3, "ngModelChange", "ngModel"], ["for", "fadeInPre", 1, "form-check-label"], ["type", "checkbox", "id", "fadeOutPost", 1, "form-check-input", 3, "ngModelChange", "ngModel"], ["for", "fadeOutPost", 1, "form-check-label"], [1, "modal-footer"], ["href", "#", "role", "button", 1, "mr-3", "my-auto", 3, "click"], ["type", "button", 1, "btn", "btn-primary", 3, "click"]], template: function PresetSettingsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "h4", 1);
|
|
55
|
+
i0.ɵɵtext(2);
|
|
56
|
+
i0.ɵɵelementEnd();
|
|
57
|
+
i0.ɵɵelementStart(3, "button", 2);
|
|
58
|
+
i0.ɵɵlistener("click", function PresetSettingsComponent_Template_button_click_3_listener() { return ctx.bsModalRef.hide(); });
|
|
59
|
+
i0.ɵɵelementStart(4, "span", 3);
|
|
60
|
+
i0.ɵɵtext(5, "\u00D7");
|
|
61
|
+
i0.ɵɵelementEnd()()();
|
|
62
|
+
i0.ɵɵelementStart(6, "div", 4)(7, "div", 5)(8, "label", 6);
|
|
63
|
+
i0.ɵɵtext(9);
|
|
64
|
+
i0.ɵɵpipe(10, "translate");
|
|
65
|
+
i0.ɵɵelementEnd();
|
|
66
|
+
i0.ɵɵelementStart(11, "div", 7)(12, "input", 8);
|
|
67
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_12_listener($event) { return ctx.name = $event; });
|
|
68
|
+
i0.ɵɵelementEnd()()();
|
|
69
|
+
i0.ɵɵelementStart(13, "div", 5)(14, "label", 6);
|
|
70
|
+
i0.ɵɵtext(15);
|
|
71
|
+
i0.ɵɵpipe(16, "translate");
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementStart(17, "div", 7)(18, "input", 8);
|
|
74
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_18_listener($event) { return ctx.startMillis = $event; });
|
|
75
|
+
i0.ɵɵelementEnd()();
|
|
76
|
+
i0.ɵɵelementStart(19, "div", 9)(20, "div", 10);
|
|
77
|
+
i0.ɵɵtext(21);
|
|
78
|
+
i0.ɵɵpipe(22, "translate");
|
|
79
|
+
i0.ɵɵelementEnd()()();
|
|
80
|
+
i0.ɵɵelementStart(23, "div", 5)(24, "label", 6);
|
|
81
|
+
i0.ɵɵtext(25);
|
|
82
|
+
i0.ɵɵpipe(26, "translate");
|
|
83
|
+
i0.ɵɵelementEnd();
|
|
84
|
+
i0.ɵɵelementStart(27, "div", 7)(28, "input", 8);
|
|
85
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_28_listener($event) { return ctx.endMillis = $event; });
|
|
86
|
+
i0.ɵɵelementEnd()();
|
|
87
|
+
i0.ɵɵelementStart(29, "div", 9)(30, "div", 10);
|
|
88
|
+
i0.ɵɵtext(31);
|
|
89
|
+
i0.ɵɵpipe(32, "translate");
|
|
90
|
+
i0.ɵɵelementEnd()()();
|
|
91
|
+
i0.ɵɵelementStart(33, "div", 5)(34, "label", 6);
|
|
92
|
+
i0.ɵɵtext(35);
|
|
93
|
+
i0.ɵɵpipe(36, "translate");
|
|
94
|
+
i0.ɵɵelementEnd();
|
|
95
|
+
i0.ɵɵelementStart(37, "div", 7)(38, "input", 8);
|
|
96
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_38_listener($event) { return ctx.fadeInMillis = $event; });
|
|
97
|
+
i0.ɵɵelementEnd()();
|
|
98
|
+
i0.ɵɵelementStart(39, "div", 9)(40, "div", 10);
|
|
99
|
+
i0.ɵɵtext(41);
|
|
100
|
+
i0.ɵɵpipe(42, "translate");
|
|
101
|
+
i0.ɵɵelementEnd()()();
|
|
102
|
+
i0.ɵɵelementStart(43, "div", 5);
|
|
103
|
+
i0.ɵɵelement(44, "label", 6);
|
|
104
|
+
i0.ɵɵelementStart(45, "div", 11)(46, "div", 12)(47, "input", 13);
|
|
105
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_47_listener($event) { return ctx.fadeInPre = $event; });
|
|
106
|
+
i0.ɵɵelementEnd();
|
|
107
|
+
i0.ɵɵelementStart(48, "label", 14);
|
|
108
|
+
i0.ɵɵtext(49);
|
|
109
|
+
i0.ɵɵpipe(50, "translate");
|
|
110
|
+
i0.ɵɵelementEnd()()()();
|
|
111
|
+
i0.ɵɵelementStart(51, "div", 5)(52, "label", 6);
|
|
112
|
+
i0.ɵɵtext(53);
|
|
113
|
+
i0.ɵɵpipe(54, "translate");
|
|
114
|
+
i0.ɵɵelementEnd();
|
|
115
|
+
i0.ɵɵelementStart(55, "div", 7)(56, "input", 8);
|
|
116
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_56_listener($event) { return ctx.fadeOutMillis = $event; });
|
|
117
|
+
i0.ɵɵelementEnd()();
|
|
118
|
+
i0.ɵɵelementStart(57, "div", 9)(58, "div", 10);
|
|
119
|
+
i0.ɵɵtext(59);
|
|
120
|
+
i0.ɵɵpipe(60, "translate");
|
|
121
|
+
i0.ɵɵelementEnd()()();
|
|
122
|
+
i0.ɵɵelementStart(61, "div", 5);
|
|
123
|
+
i0.ɵɵelement(62, "label", 6);
|
|
124
|
+
i0.ɵɵelementStart(63, "div", 11)(64, "div", 12)(65, "input", 15);
|
|
125
|
+
i0.ɵɵlistener("ngModelChange", function PresetSettingsComponent_Template_input_ngModelChange_65_listener($event) { return ctx.fadeOutPost = $event; });
|
|
126
|
+
i0.ɵɵelementEnd();
|
|
127
|
+
i0.ɵɵelementStart(66, "label", 16);
|
|
128
|
+
i0.ɵɵtext(67);
|
|
129
|
+
i0.ɵɵpipe(68, "translate");
|
|
130
|
+
i0.ɵɵelementEnd()()()()();
|
|
131
|
+
i0.ɵɵelementStart(69, "div", 17)(70, "a", 18);
|
|
132
|
+
i0.ɵɵlistener("click", function PresetSettingsComponent_Template_a_click_70_listener() { ctx.cancel(); return false; });
|
|
133
|
+
i0.ɵɵtext(71);
|
|
134
|
+
i0.ɵɵpipe(72, "translate");
|
|
135
|
+
i0.ɵɵelementEnd();
|
|
136
|
+
i0.ɵɵelementStart(73, "button", 19);
|
|
137
|
+
i0.ɵɵlistener("click", function PresetSettingsComponent_Template_button_click_73_listener() { return ctx.ok(); });
|
|
138
|
+
i0.ɵɵtext(74);
|
|
139
|
+
i0.ɵɵpipe(75, "translate");
|
|
140
|
+
i0.ɵɵelementEnd()();
|
|
141
|
+
} if (rf & 2) {
|
|
142
|
+
i0.ɵɵadvance(2);
|
|
143
|
+
i0.ɵɵtextInterpolate(ctx.name);
|
|
144
|
+
i0.ɵɵadvance(7);
|
|
145
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 21, "designer.preset.settings-name"));
|
|
146
|
+
i0.ɵɵadvance(3);
|
|
147
|
+
i0.ɵɵproperty("ngModel", ctx.name);
|
|
148
|
+
i0.ɵɵadvance(3);
|
|
149
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(16, 23, "designer.preset.settings-start"));
|
|
150
|
+
i0.ɵɵadvance(3);
|
|
151
|
+
i0.ɵɵproperty("ngModel", ctx.startMillis);
|
|
152
|
+
i0.ɵɵadvance(3);
|
|
153
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 25, "designer.misc.ms"), " ");
|
|
154
|
+
i0.ɵɵadvance(4);
|
|
155
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(26, 27, "designer.preset.settings-end"));
|
|
156
|
+
i0.ɵɵadvance(3);
|
|
157
|
+
i0.ɵɵproperty("ngModel", ctx.endMillis);
|
|
158
|
+
i0.ɵɵadvance(3);
|
|
159
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(32, 29, "designer.misc.ms"), " ");
|
|
160
|
+
i0.ɵɵadvance(4);
|
|
161
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(36, 31, "designer.preset.settings-fade-in"));
|
|
162
|
+
i0.ɵɵadvance(3);
|
|
163
|
+
i0.ɵɵproperty("ngModel", ctx.fadeInMillis);
|
|
164
|
+
i0.ɵɵadvance(3);
|
|
165
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(42, 33, "designer.misc.ms"), " ");
|
|
166
|
+
i0.ɵɵadvance(6);
|
|
167
|
+
i0.ɵɵproperty("ngModel", ctx.fadeInPre);
|
|
168
|
+
i0.ɵɵadvance(2);
|
|
169
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(50, 35, "designer.preset.settings-fade-in-pre"), " ");
|
|
170
|
+
i0.ɵɵadvance(4);
|
|
171
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(54, 37, "designer.preset.settings-fade-out"));
|
|
172
|
+
i0.ɵɵadvance(3);
|
|
173
|
+
i0.ɵɵproperty("ngModel", ctx.fadeOutMillis);
|
|
174
|
+
i0.ɵɵadvance(3);
|
|
175
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(60, 39, "designer.misc.ms"), " ");
|
|
176
|
+
i0.ɵɵadvance(6);
|
|
177
|
+
i0.ɵɵproperty("ngModel", ctx.fadeOutPost);
|
|
178
|
+
i0.ɵɵadvance(2);
|
|
179
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(68, 41, "designer.preset.settings-fade-out-post"), " ");
|
|
180
|
+
i0.ɵɵadvance(4);
|
|
181
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(72, 43, "designer.misc.cancel"), " ");
|
|
182
|
+
i0.ɵɵadvance(3);
|
|
183
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(75, 45, "designer.misc.ok"));
|
|
184
|
+
} }, dependencies: [i2.DefaultValueAccessor, i2.CheckboxControlValueAccessor, i2.NgControlStatus, i2.NgModel, i3.TranslatePipe] }); }
|
|
185
|
+
}
|
|
186
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PresetSettingsComponent, [{
|
|
187
|
+
type: Component,
|
|
188
|
+
args: [{ selector: 'lib-preset-settings', template: "<div class=\"modal-header\">\n <h4 class=\"modal-title pull-left\">{{ name }}</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 <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.preset.settings-name' | translate }}</label>\n <div class=\"col-lg-7\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"name\" (ngModelChange)=\"name = $event\" />\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.preset.settings-start' | translate }}</label>\n <div class=\"col-lg-7\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"startMillis\" (ngModelChange)=\"startMillis = $event\" />\n </div>\n <div class=\"col-lg-1 d-flex p-0\">\n <div class=\"my-auto\">\n {{ 'designer.misc.ms' | translate }}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.preset.settings-end' | translate }}</label>\n <div class=\"col-lg-7\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"endMillis\" (ngModelChange)=\"endMillis = $event\" />\n </div>\n <div class=\"col-lg-1 d-flex p-0\">\n <div class=\"my-auto\">\n {{ 'designer.misc.ms' | translate }}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.preset.settings-fade-in' | translate }}</label>\n <div class=\"col-lg-7\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"fadeInMillis\" (ngModelChange)=\"fadeInMillis = $event\" />\n </div>\n <div class=\"col-lg-1 d-flex p-0\">\n <div class=\"my-auto\">\n {{ 'designer.misc.ms' | translate }}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\"></label>\n <div class=\"col-lg-8 d-flex\">\n <div class=\"form-check my-auto\">\n <input type=\"checkbox\" [ngModel]=\"fadeInPre\" (ngModelChange)=\"fadeInPre = $event\" class=\"form-check-input\" id=\"fadeInPre\" />\n\n <label class=\"form-check-label\" for=\"fadeInPre\">\n {{ 'designer.preset.settings-fade-in-pre' | translate }}\n </label>\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\">{{ 'designer.preset.settings-fade-out' | translate }}</label>\n <div class=\"col-lg-7\">\n <input type=\"text\" class=\"form-control\" [ngModel]=\"fadeOutMillis\" (ngModelChange)=\"fadeOutMillis = $event\" />\n </div>\n <div class=\"col-lg-1 d-flex p-0\">\n <div class=\"my-auto\">\n {{ 'designer.misc.ms' | translate }}\n </div>\n </div>\n </div>\n\n <div class=\"form-group row\">\n <label class=\"col-lg-4 col-form-label\"></label>\n <div class=\"col-lg-8 d-flex\">\n <div class=\"form-check my-auto\">\n <input type=\"checkbox\" [ngModel]=\"fadeOutPost\" (ngModelChange)=\"fadeOutPost = $event\" class=\"form-check-input\" id=\"fadeOutPost\" />\n\n <label class=\"form-check-label\" for=\"fadeOutPost\">\n {{ 'designer.preset.settings-fade-out-post' | translate }}\n </label>\n </div>\n </div>\n </div>\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 type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\">{{ 'designer.misc.ok' | translate }}</button>\n</div>\n" }]
|
|
189
|
+
}], () => [{ type: i1.BsModalRef }], { handleKeyboardEvent: [{
|
|
190
|
+
type: HostListener,
|
|
191
|
+
args: ['document:keydown.enter', ['$event']]
|
|
192
|
+
}] }); })();
|
|
193
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PresetSettingsComponent, { className: "PresetSettingsComponent" }); })();
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJlc2V0L3ByZXNldC1zZXR0aW5ncy9wcmVzZXQtc2V0dGluZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9wcmVzZXQvcHJlc2V0LXNldHRpbmdzL3ByZXNldC1zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUWpELE1BQU0sT0FBTyx1QkFBdUI7SUFXbEMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDN0MsQ0FBQztJQUVELEVBQUU7UUFD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Q0osbUNBQTZEO1lBQWYscUdBQVMsUUFBSSxJQUFDO1lBQUMsYUFBb0M7O1lBQ25HLEFBRG1HLGlCQUFTLEVBQ3RHOztZQTVGOEIsZUFBVTtZQUFWLDhCQUFVO1lBT0gsZUFBaUQ7WUFBakQsNkVBQWlEO1lBRTlDLGVBQWdCO1lBQWhCLGtDQUFnQjtZQUtuQixlQUFrRDtZQUFsRCw4RUFBa0Q7WUFFL0MsZUFBdUI7WUFBdkIseUNBQXVCO1lBSTdELGVBQ0Y7WUFERSwyRUFDRjtZQUtxQyxlQUFnRDtZQUFoRCw0RUFBZ0Q7WUFFN0MsZUFBcUI7WUFBckIsdUNBQXFCO1lBSTNELGVBQ0Y7WUFERSwyRUFDRjtZQUtxQyxlQUFvRDtZQUFwRCxnRkFBb0Q7WUFFakQsZUFBd0I7WUFBeEIsMENBQXdCO1lBSTlELGVBQ0Y7WUFERSwyRUFDRjtZQVF5QixlQUFxQjtZQUFyQix1Q0FBcUI7WUFHMUMsZUFDRjtZQURFLCtGQUNGO1lBTW1DLGVBQXFEO1lBQXJELGlGQUFxRDtZQUVsRCxlQUF5QjtZQUF6QiwyQ0FBeUI7WUFJL0QsZUFDRjtZQURFLDJFQUNGO1lBUXlCLGVBQXVCO1lBQXZCLHlDQUF1QjtZQUc1QyxlQUNGO1lBREUsaUdBQ0Y7WUFPSixlQUNGO1lBREUsK0VBQ0Y7WUFDNkQsZUFBb0M7WUFBcEMsZ0VBQW9DOzs7aUZEbkZ0Rix1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxxQkFBcUI7MkNBMEQvQixtQkFBbUI7a0JBRGxCLFlBQVk7bUJBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tGQXJEdkMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgUHJlc2V0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3ByZXNldCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wcmVzZXQtc2V0dGluZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJlc2V0LXNldHRpbmdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJlc2V0LXNldHRpbmdzLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJlc2V0U2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcmVzZXQ6IFByZXNldDtcblxuICBuYW1lOiBzdHJpbmc7XG4gIHN0YXJ0TWlsbGlzOiBudW1iZXI7XG4gIGVuZE1pbGxpczogbnVtYmVyO1xuICBmYWRlSW5NaWxsaXM6IG51bWJlcjtcbiAgZmFkZU91dE1pbGxpczogbnVtYmVyO1xuICBmYWRlSW5QcmU6IGJvb2xlYW47XG4gIGZhZGVPdXRQb3N0OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBic01vZGFsUmVmOiBCc01vZGFsUmVmKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubmFtZSA9IHRoaXMucHJlc2V0Lm5hbWU7XG4gICAgdGhpcy5zdGFydE1pbGxpcyA9IHRoaXMucHJlc2V0LnN0YXJ0TWlsbGlzO1xuICAgIHRoaXMuZW5kTWlsbGlzID0gdGhpcy5wcmVzZXQuZW5kTWlsbGlzO1xuICAgIHRoaXMuZmFkZUluTWlsbGlzID0gdGhpcy5wcmVzZXQuZmFkZUluTWlsbGlzO1xuICAgIHRoaXMuZmFkZU91dE1pbGxpcyA9IHRoaXMucHJlc2V0LmZhZGVPdXRNaWxsaXM7XG4gICAgdGhpcy5mYWRlSW5QcmUgPSB0aGlzLnByZXNldC5mYWRlSW5QcmU7XG4gICAgdGhpcy5mYWRlT3V0UG9zdCA9IHRoaXMucHJlc2V0LmZhZGVPdXRQb3N0O1xuICB9XG5cbiAgb2soKSB7XG4gICAgdGhpcy5wcmVzZXQubmFtZSA9IHRoaXMubmFtZTtcblxuICAgIGlmICh0aGlzLnN0YXJ0TWlsbGlzID09PSB1bmRlZmluZWQgfHwgdGhpcy5zdGFydE1pbGxpcyA9PT0gbnVsbCB8fCAodGhpcy5zdGFydE1pbGxpcyBhcyBhbnkpID09PSAnJykge1xuICAgICAgdGhpcy5wcmVzZXQuc3RhcnRNaWxsaXMgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmICghaXNOYU4odGhpcy5zdGFydE1pbGxpcykgJiYgdGhpcy5zdGFydE1pbGxpcyA+PSAwKSB7XG4gICAgICB0aGlzLnByZXNldC5zdGFydE1pbGxpcyA9ICt0aGlzLnN0YXJ0TWlsbGlzO1xuICAgIH1cbiAgICBpZiAodGhpcy5lbmRNaWxsaXMgPT09IHVuZGVmaW5lZCB8fCB0aGlzLmVuZE1pbGxpcyA9PT0gbnVsbCB8fCAodGhpcy5lbmRNaWxsaXMgYXMgYW55KSA9PT0gJycpIHtcbiAgICAgIHRoaXMucHJlc2V0LmVuZE1pbGxpcyA9IHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKCFpc05hTih0aGlzLmVuZE1pbGxpcykgJiYgdGhpcy5lbmRNaWxsaXMgPj0gMCkge1xuICAgICAgdGhpcy5wcmVzZXQuZW5kTWlsbGlzID0gK3RoaXMuZW5kTWlsbGlzO1xuICAgIH1cbiAgICBpZiAoIWlzTmFOKHRoaXMuZmFkZUluTWlsbGlzKSAmJiB0aGlzLmZhZGVJbk1pbGxpcyA+PSAwKSB7XG4gICAgICB0aGlzLnByZXNldC5mYWRlSW5NaWxsaXMgPSArdGhpcy5mYWRlSW5NaWxsaXM7XG4gICAgfVxuICAgIGlmICghaXNOYU4odGhpcy5mYWRlT3V0TWlsbGlzKSAmJiB0aGlzLmZhZGVPdXRNaWxsaXMgPj0gMCkge1xuICAgICAgdGhpcy5wcmVzZXQuZmFkZU91dE1pbGxpcyA9ICt0aGlzLmZhZGVPdXRNaWxsaXM7XG4gICAgfVxuXG4gICAgdGhpcy5wcmVzZXQuZmFkZUluUHJlID0gdGhpcy5mYWRlSW5QcmU7XG4gICAgdGhpcy5wcmVzZXQuZmFkZU91dFBvc3QgPSB0aGlzLmZhZGVPdXRQb3N0O1xuXG4gICAgdGhpcy5ic01vZGFsUmVmLmhpZGUoKTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub2soKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWhlYWRlclwiPlxuICA8aDQgY2xhc3M9XCJtb2RhbC10aXRsZSBwdWxsLWxlZnRcIj57eyBuYW1lIH19PC9oND5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjbG9zZSBwdWxsLXJpZ2h0XCIgYXJpYS1sYWJlbD1cIkNsb3NlXCIgKGNsaWNrKT1cImJzTW9kYWxSZWYuaGlkZSgpXCI+XG4gICAgPHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5XCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnByZXNldC5zZXR0aW5ncy1uYW1lJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy03XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cIm5hbWVcIiAobmdNb2RlbENoYW5nZSk9XCJuYW1lID0gJGV2ZW50XCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY29sLWxnLTQgY29sLWZvcm0tbGFiZWxcIj57eyAnZGVzaWduZXIucHJlc2V0LnNldHRpbmdzLXN0YXJ0JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy03XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cInN0YXJ0TWlsbGlzXCIgKG5nTW9kZWxDaGFuZ2UpPVwic3RhcnRNaWxsaXMgPSAkZXZlbnRcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMSBkLWZsZXggcC0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgICB7eyAnZGVzaWduZXIubWlzYy5tcycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCByb3dcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbGctNCBjb2wtZm9ybS1sYWJlbFwiPnt7ICdkZXNpZ25lci5wcmVzZXQuc2V0dGluZ3MtZW5kJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy03XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cImVuZE1pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cImVuZE1pbGxpcyA9ICRldmVudFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xIGQtZmxleCBwLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+e3sgJ2Rlc2lnbmVyLnByZXNldC5zZXR0aW5ncy1mYWRlLWluJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy03XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cImZhZGVJbk1pbGxpc1wiIChuZ01vZGVsQ2hhbmdlKT1cImZhZGVJbk1pbGxpcyA9ICRldmVudFwiIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xIGQtZmxleCBwLTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvXCI+XG4gICAgICAgIHt7ICdkZXNpZ25lci5taXNjLm1zJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHJvd1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImNvbC1sZy00IGNvbC1mb3JtLWxhYmVsXCI+PC9sYWJlbD5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTggZC1mbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBteS1hdXRvXCI+XG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbbmdNb2RlbF09XCJmYWRlSW5QcmVcIiAobmdNb2RlbENoYW5nZSk9XCJmYWRlSW5QcmUgPSAkZXZlbnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBpZD1cImZhZGVJblByZVwiIC8+XG5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImZhZGVJblByZVwiPlxuICAgICAgICAgIHt7ICdkZXNpZ25lci5wcmVzZXQuc2V0dGluZ3MtZmFkZS1pbi1wcmUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY29sLWxnLTQgY29sLWZvcm0tbGFiZWxcIj57eyAnZGVzaWduZXIucHJlc2V0LnNldHRpbmdzLWZhZGUtb3V0JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1sZy03XCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtuZ01vZGVsXT1cImZhZGVPdXRNaWxsaXNcIiAobmdNb2RlbENoYW5nZSk9XCJmYWRlT3V0TWlsbGlzID0gJGV2ZW50XCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEgZC1mbGV4IHAtMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm15LWF1dG9cIj5cbiAgICAgICAge3sgJ2Rlc2lnbmVyLm1pc2MubXMnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcm93XCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiY29sLWxnLTQgY29sLWZvcm0tbGFiZWxcIj48L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOCBkLWZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG15LWF1dG9cIj5cbiAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtuZ01vZGVsXT1cImZhZGVPdXRQb3N0XCIgKG5nTW9kZWxDaGFuZ2UpPVwiZmFkZU91dFBvc3QgPSAkZXZlbnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiBpZD1cImZhZGVPdXRQb3N0XCIgLz5cblxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZmFkZU91dFBvc3RcIj5cbiAgICAgICAgICB7eyAnZGVzaWduZXIucHJlc2V0LnNldHRpbmdzLWZhZGUtb3V0LXBvc3QnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cbiAgPGEgY2xhc3M9XCJtci0zIG15LWF1dG9cIiBocmVmPVwiI1wiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2FuY2VsKCk7IChmYWxzZSlcIj5cbiAgICB7eyAnZGVzaWduZXIubWlzYy5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYT5cbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiPnt7ICdkZXNpZ25lci5taXNjLm9rJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { BsModalService } from 'ngx-bootstrap/modal';
|
|
3
|
+
import { IntroService } from '../services/intro.service';
|
|
4
|
+
import { PresetService } from '../services/preset.service';
|
|
5
|
+
import { ProjectService } from '../services/project.service';
|
|
6
|
+
import { SceneService } from '../services/scene.service';
|
|
7
|
+
import { PresetSettingsComponent } from './preset-settings/preset-settings.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../services/preset.service";
|
|
10
|
+
import * as i2 from "../services/scene.service";
|
|
11
|
+
import * as i3 from "../services/project.service";
|
|
12
|
+
import * as i4 from "../services/intro.service";
|
|
13
|
+
import * as i5 from "ngx-bootstrap/modal";
|
|
14
|
+
import * as i6 from "@angular/common";
|
|
15
|
+
import * as i7 from "@angular/forms";
|
|
16
|
+
import * as i8 from "ngx-sortablejs-plus";
|
|
17
|
+
import * as i9 from "@ngx-translate/core";
|
|
18
|
+
function PresetComponent_div_12_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
20
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
21
|
+
i0.ɵɵlistener("click", function PresetComponent_div_12_Template_div_click_0_listener() { const i_r2 = i0.ɵɵrestoreView(_r1).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.selectPreset(i_r2)); });
|
|
22
|
+
i0.ɵɵelementStart(1, "div", 10)(2, "div", 11);
|
|
23
|
+
i0.ɵɵelement(3, "i", 12);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
i0.ɵɵelementStart(4, "div", 13)(5, "input", 14);
|
|
26
|
+
i0.ɵɵlistener("ngModelChange", function PresetComponent_div_12_Template_input_ngModelChange_5_listener($event) { const i_r2 = i0.ɵɵrestoreView(_r1).index; const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.activatePreset($event, i_r2)); })("click", function PresetComponent_div_12_Template_input_click_5_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
27
|
+
i0.ɵɵelementEnd()();
|
|
28
|
+
i0.ɵɵelementStart(6, "div");
|
|
29
|
+
i0.ɵɵtext(7);
|
|
30
|
+
i0.ɵɵelementEnd();
|
|
31
|
+
i0.ɵɵelementStart(8, "div", 15)(9, "button", 16);
|
|
32
|
+
i0.ɵɵlistener("click", function PresetComponent_div_12_Template_button_click_9_listener() { const item_r4 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.openSettings(item_r4); return i0.ɵɵresetView(false); });
|
|
33
|
+
i0.ɵɵtext(10, "...");
|
|
34
|
+
i0.ɵɵelementEnd()()()();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const item_r4 = ctx.$implicit;
|
|
37
|
+
const ctx_r2 = i0.ɵɵnextContext();
|
|
38
|
+
i0.ɵɵclassProp("active-light", !ctx_r2.projectService.project.previewPreset && item_r4 == ctx_r2.presetService.selectedPreset)("active", ctx_r2.projectService.project.previewPreset && item_r4 == ctx_r2.presetService.selectedPreset)("inactive-list-item", !ctx_r2.sceneService.presetIsSelected(item_r4));
|
|
39
|
+
i0.ɵɵadvance(5);
|
|
40
|
+
i0.ɵɵproperty("disabled", !ctx_r2.enableCheckbox())("ngModel", ctx_r2.sceneService.presetIsSelected(item_r4));
|
|
41
|
+
i0.ɵɵadvance(2);
|
|
42
|
+
i0.ɵɵtextInterpolate1(" ", item_r4.name, " ");
|
|
43
|
+
} }
|
|
44
|
+
export class PresetComponent {
|
|
45
|
+
constructor(presetService, sceneService, projectService, introService, modalService) {
|
|
46
|
+
this.presetService = presetService;
|
|
47
|
+
this.sceneService = sceneService;
|
|
48
|
+
this.projectService = projectService;
|
|
49
|
+
this.introService = introService;
|
|
50
|
+
this.modalService = modalService;
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() { }
|
|
53
|
+
selectPreset(index) {
|
|
54
|
+
this.projectService.project.previewPreset = true;
|
|
55
|
+
this.presetService.selectPreset(index);
|
|
56
|
+
}
|
|
57
|
+
enableCheckbox() {
|
|
58
|
+
return this.sceneService.selectedScenes && this.sceneService.selectedScenes.length === 1;
|
|
59
|
+
}
|
|
60
|
+
activatePreset(active, index) {
|
|
61
|
+
if (this.sceneService.selectedScenes && this.sceneService.selectedScenes.length === 1) {
|
|
62
|
+
const uuid = this.projectService.project.presets[index].uuid;
|
|
63
|
+
if (active) {
|
|
64
|
+
// Activate a new uuid
|
|
65
|
+
this.sceneService.selectedScenes[0].presetUuids.push(uuid);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Remove the uuid
|
|
69
|
+
for (let i = 0; i < this.sceneService.selectedScenes[0].presetUuids.length; i++) {
|
|
70
|
+
if (this.sceneService.selectedScenes[0].presetUuids[i] === uuid) {
|
|
71
|
+
this.sceneService.selectedScenes[0].presetUuids.splice(i, 1);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
addPreset() {
|
|
79
|
+
this.presetService.addPreset();
|
|
80
|
+
if (this.sceneService.selectedScenes && this.sceneService.selectedScenes.length === 1) {
|
|
81
|
+
this.sceneService.selectedScenes[0].presetUuids.push(this.presetService.selectedPreset.uuid);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
removePreset() {
|
|
85
|
+
if (!this.presetService.selectedPreset) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.projectService.project.presets.splice(this.projectService.project.presets.indexOf(this.presetService.selectedPreset), 1);
|
|
89
|
+
this.presetService.selectPreset(0);
|
|
90
|
+
}
|
|
91
|
+
openSettings(preset) {
|
|
92
|
+
const bsModalRef = this.modalService.show(PresetSettingsComponent, {
|
|
93
|
+
keyboard: true,
|
|
94
|
+
ignoreBackdropClick: false,
|
|
95
|
+
class: '',
|
|
96
|
+
initialState: { preset },
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
static { this.ɵfac = function PresetComponent_Factory(t) { return new (t || PresetComponent)(i0.ɵɵdirectiveInject(i1.PresetService), i0.ɵɵdirectiveInject(i2.SceneService), i0.ɵɵdirectiveInject(i3.ProjectService), i0.ɵɵdirectiveInject(i4.IntroService), i0.ɵɵdirectiveInject(i5.BsModalService)); }; }
|
|
100
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PresetComponent, selectors: [["lib-app-preset"]], decls: 13, vars: 7, consts: [[1, "card", "border-secondary", "h-100", "panel", "card-intro-preset", "card-intro-active"], [1, "card-header", "d-flex"], [1, "ml-auto"], ["href", "#", 1, "btn", "btn-secondary", "m-0,", "p-0", 3, "click"], ["aria-hidden", "true", 1, "fa", "fa-minus-circle", "fa-fw"], ["aria-hidden", "true", 1, "fa", "fa-plus-circle", "fa-fw"], [1, "card-body", "h-100", "p-0"], [1, "list-group", 3, "sortablejs"], ["class", "list-group-item", 3, "active-light", "active", "inactive-list-item", "click", 4, "ngFor", "ngForOf"], [1, "list-group-item", 3, "click"], [1, "row", "d-flex", 2, "cursor", "pointer"], [1, "col-auto", "list-sort-handle", "my-auto", 2, "cursor", "move", "cursor", "-webkit-grabbing"], ["aria-hidden", "true", 1, "fa", "fa-bars"], [1, "form-check"], ["type", "checkbox", "id", "active", 1, "form-check-input", 3, "ngModelChange", "click", "disabled", "ngModel"], [1, "my-auto", "ml-auto", "mr-2", "d-flex"], ["type", "button", 1, "btn", "btn-secondary", "btn-sm", "py-0", "px-1", 3, "click"]], template: function PresetComponent_Template(rf, ctx) { if (rf & 1) {
|
|
101
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div");
|
|
102
|
+
i0.ɵɵtext(3);
|
|
103
|
+
i0.ɵɵpipe(4, "translate");
|
|
104
|
+
i0.ɵɵelementEnd();
|
|
105
|
+
i0.ɵɵelementStart(5, "div", 2)(6, "a", 3);
|
|
106
|
+
i0.ɵɵlistener("click", function PresetComponent_Template_a_click_6_listener() { ctx.removePreset(); return false; });
|
|
107
|
+
i0.ɵɵelement(7, "i", 4);
|
|
108
|
+
i0.ɵɵelementEnd();
|
|
109
|
+
i0.ɵɵelementStart(8, "a", 3);
|
|
110
|
+
i0.ɵɵlistener("click", function PresetComponent_Template_a_click_8_listener() { ctx.addPreset(); return false; });
|
|
111
|
+
i0.ɵɵelement(9, "i", 5);
|
|
112
|
+
i0.ɵɵelementEnd()()();
|
|
113
|
+
i0.ɵɵelementStart(10, "div", 6)(11, "div", 7);
|
|
114
|
+
i0.ɵɵtemplate(12, PresetComponent_div_12_Template, 11, 9, "div", 8);
|
|
115
|
+
i0.ɵɵelementEnd()()();
|
|
116
|
+
} if (rf & 2) {
|
|
117
|
+
i0.ɵɵclassProp("card-intro-active", ctx.introService.showStep("presets"));
|
|
118
|
+
i0.ɵɵadvance(3);
|
|
119
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 5, "designer.preset.title"), " ");
|
|
120
|
+
i0.ɵɵadvance(8);
|
|
121
|
+
i0.ɵɵproperty("sortablejs", ctx.projectService.project.presets);
|
|
122
|
+
i0.ɵɵadvance();
|
|
123
|
+
i0.ɵɵproperty("ngForOf", ctx.projectService.project.presets);
|
|
124
|
+
} }, dependencies: [i6.NgForOf, i7.CheckboxControlValueAccessor, i7.NgControlStatus, i7.NgModel, i8.SortablejsDirective, i9.TranslatePipe] }); }
|
|
125
|
+
}
|
|
126
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PresetComponent, [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'lib-app-preset', template: "<div\n class=\"card border-secondary h-100 panel card-intro-preset card-intro-active\"\n [class.card-intro-active]=\"introService.showStep('presets')\"\n>\n <div class=\"card-header d-flex\">\n <div>\n {{ 'designer.preset.title' | translate }}\n </div>\n <div class=\"ml-auto\">\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"removePreset(); (false)\"\n ><i class=\"fa fa-minus-circle fa-fw\" aria-hidden=\"true\"></i\n ></a>\n <a href=\"#\" class=\"btn btn-secondary m-0, p-0\" (click)=\"addPreset(); (false)\"\n ><i class=\"fa fa-plus-circle 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 presets -->\n <div class=\"list-group\" [sortablejs]=\"projectService.project.presets\">\n <div\n class=\"list-group-item\"\n *ngFor=\"let item of projectService.project.presets; let i = index\"\n (click)=\"selectPreset(i)\"\n [class.active-light]=\"!projectService.project.previewPreset && item == presetService.selectedPreset\"\n [class.active]=\"projectService.project.previewPreset && item == presetService.selectedPreset\"\n [class.inactive-list-item]=\"!sceneService.presetIsSelected(item)\"\n >\n <div class=\"row d-flex\" 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\n type=\"checkbox\"\n [disabled]=\"!enableCheckbox()\"\n class=\"form-check-input\"\n id=\"active\"\n [ngModel]=\"sceneService.presetIsSelected(item)\"\n (ngModelChange)=\"activatePreset($event, i)\"\n (click)=\"$event.stopPropagation()\"\n />\n </div>\n <div>\n {{ item.name }}\n </div>\n <div class=\"my-auto ml-auto mr-2 d-flex\">\n <button type=\"button\" class=\"btn btn-secondary btn-sm py-0 px-1\" (click)=\"openSettings(item); (false)\">...</button>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
129
|
+
}], () => [{ type: i1.PresetService }, { type: i2.SceneService }, { type: i3.ProjectService }, { type: i4.IntroService }, { type: i5.BsModalService }], null); })();
|
|
130
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PresetComponent, { className: "PresetComponent" }); })();
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJlc2V0L3ByZXNldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL3ByZXNldC9wcmVzZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7O0lDY2hGLDhCQU9DO0lBSkMsNExBQVMseUJBQWUsS0FBQztJQU12QixBQURGLCtCQUFnRCxjQUNnRDtJQUM1Rix3QkFBNkM7SUFDL0MsaUJBQU07SUFFSixBQURGLCtCQUF3QixnQkFTcEI7SUFEQSxBQURBLG9OQUFpQixtQ0FBeUIsS0FBQyxpSUFDbEMsd0JBQXdCLEtBQUM7SUFFdEMsQUFURSxpQkFRRSxFQUNFO0lBQ04sMkJBQUs7SUFDSCxZQUNGO0lBQUEsaUJBQU07SUFFSixBQURGLCtCQUF5QyxpQkFDZ0U7SUFBdEMsZ0xBQVMsNEJBQWtCLHdCQUFHLEtBQUssS0FBRTtJQUFDLG9CQUFHO0lBR2hILEFBREUsQUFERSxBQUQ0RyxpQkFBUyxFQUMvRyxFQUNGLEVBQ0Y7Ozs7SUF4QkosQUFEQSxBQURBLDhIQUFvRyx5R0FD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QUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjO1FBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQ2pFLFFBQVEsRUFBRSxJQUFJO1lBQ2QsbUJBQW1CLEVBQUUsS0FBSztZQUMxQixLQUFLLEVBQUUsRUFBRTtZQUNULFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRTtTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO2dGQS9EVSxlQUFlO29FQUFmLGVBQWU7WUNUeEIsQUFERixBQUpGLDhCQUdDLGFBQ2lDLFVBQ3pCO1lBQ0gsWUFDRjs7WUFBQSxpQkFBTTtZQUVKLEFBREYsOEJBQXFCLFdBRWhCO1lBRDRDLGdGQUFTLGtCQUFjLFNBQUcsS0FBSyxJQUFFO1lBQzdFLHVCQUNGO1lBQUEsaUJBQUk7WUFDTCw0QkFDRztZQUQ0QyxnRkFBUyxlQUFXLFNBQUcsS0FBSyxJQUFFO1lBQzFFLHVCQUNGO1lBRUwsQUFERSxBQURHLGlCQUFJLEVBQ0QsRUFDRjtZQUlKLEFBRkYsK0JBQWlDLGNBRXVDO1lBQ3BFLG1FQU9DO1lBMEJQLEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0Y7O1lBcERKLHlFQUE0RDtZQUl4RCxlQUNGO1lBREUsOEVBQ0Y7WUFhd0IsZUFBNkM7WUFBN0MsK0RBQTZDO1lBR2hELGNBQW1DO1lBQW5DLDREQUFtQzs7O2lGRFQvQyxlQUFlO2NBTDNCLFNBQVM7MkJBQ0UsZ0JBQWdCOztrRkFJZixlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBQcmVzZXQgfSBmcm9tICcuLi9tb2RlbHMvcHJlc2V0JztcbmltcG9ydCB7IEludHJvU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ludHJvLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3ByZXNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvcHJvamVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNjZW5lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3NjZW5lLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlc2V0U2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3ByZXNldC1zZXR0aW5ncy9wcmVzZXQtc2V0dGluZ3MuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWFwcC1wcmVzZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJlc2V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJlc2V0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUHJlc2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByZXNldFNlcnZpY2U6IFByZXNldFNlcnZpY2UsXG4gICAgcHVibGljIHNjZW5lU2VydmljZTogU2NlbmVTZXJ2aWNlLFxuICAgIHB1YmxpYyBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHVibGljIGludHJvU2VydmljZTogSW50cm9TZXJ2aWNlLFxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIHNlbGVjdFByZXNldChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXZpZXdQcmVzZXQgPSB0cnVlO1xuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RQcmVzZXQoaW5kZXgpO1xuICB9XG5cbiAgZW5hYmxlQ2hlY2tib3goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdGVkU2NlbmVzICYmIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdGVkU2NlbmVzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIGFjdGl2YXRlUHJlc2V0KGFjdGl2ZTogYm9vbGVhbiwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lcyAmJiB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IHV1aWQgPSB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJlc2V0c1tpbmRleF0udXVpZDtcblxuICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAvLyBBY3RpdmF0ZSBhIG5ldyB1dWlkXG4gICAgICAgIHRoaXMuc2NlbmVTZXJ2aWNlLnNlbGVjdGVkU2NlbmVzWzBdLnByZXNldFV1aWRzLnB1c2godXVpZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmUgdGhlIHV1aWRcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lc1swXS5wcmVzZXRVdWlkcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgIGlmICh0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lc1swXS5wcmVzZXRVdWlkc1tpXSA9PT0gdXVpZCkge1xuICAgICAgICAgICAgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXNbMF0ucHJlc2V0VXVpZHMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFkZFByZXNldCgpIHtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UuYWRkUHJlc2V0KCk7XG5cbiAgICBpZiAodGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMgJiYgdGhpcy5zY2VuZVNlcnZpY2Uuc2VsZWN0ZWRTY2VuZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnNjZW5lU2VydmljZS5zZWxlY3RlZFNjZW5lc1swXS5wcmVzZXRVdWlkcy5wdXNoKHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC51dWlkKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVQcmVzZXQoKSB7XG4gICAgaWYgKCF0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb2plY3RTZXJ2aWNlLnByb2plY3QucHJlc2V0cy5zcGxpY2UodGhpcy5wcm9qZWN0U2VydmljZS5wcm9qZWN0LnByZXNldHMuaW5kZXhPZih0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQpLCAxKTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0UHJlc2V0KDApO1xuICB9XG5cbiAgb3BlblNldHRpbmdzKHByZXNldDogUHJlc2V0KSB7XG4gICAgY29uc3QgYnNNb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLnNob3coUHJlc2V0U2V0dGluZ3NDb21wb25lbnQsIHtcbiAgICAgIGtleWJvYXJkOiB0cnVlLFxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsXG4gICAgICBjbGFzczogJycsXG4gICAgICBpbml0aWFsU3RhdGU6IHsgcHJlc2V0IH0sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjYXJkIGJvcmRlci1zZWNvbmRhcnkgaC0xMDAgcGFuZWwgY2FyZC1pbnRyby1wcmVzZXQgY2FyZC1pbnRyby1hY3RpdmVcIlxuICBbY2xhc3MuY2FyZC1pbnRyby1hY3RpdmVdPVwiaW50cm9TZXJ2aWNlLnNob3dTdGVwKCdwcmVzZXRzJylcIlxuPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZC1mbGV4XCI+XG4gICAgPGRpdj5cbiAgICAgIHt7ICdkZXNpZ25lci5wcmVzZXQudGl0bGUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm1sLWF1dG9cIj5cbiAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTAsIHAtMFwiIChjbGljayk9XCJyZW1vdmVQcmVzZXQoKTsgKGZhbHNlKVwiXG4gICAgICAgID48aSBjbGFzcz1cImZhIGZhLW1pbnVzLWNpcmNsZSBmYS1md1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaVxuICAgICAgPjwvYT5cbiAgICAgIDxhIGhyZWY9XCIjXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBtLTAsIHAtMFwiIChjbGljayk9XCJhZGRQcmVzZXQoKTsgKGZhbHNlKVwiXG4gICAgICAgID48aSBjbGFzcz1cImZhIGZhLXBsdXMtY2lyY2xlIGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pXG4gICAgICA+PC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGgtMTAwIHAtMFwiPlxuICAgIDwhLS0gTGlzdCBvZiBwcmVzZXRzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwXCIgW3NvcnRhYmxlanNdPVwicHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJvamVjdFNlcnZpY2UucHJvamVjdC5wcmVzZXRzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdFByZXNldChpKVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmUtbGlnaHRdPVwiIXByb2plY3RTZXJ2aWNlLnByb2plY3QucHJldmlld1ByZXNldCAmJiBpdGVtID09IHByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIlxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInByb2plY3RTZXJ2aWNlLnByb2plY3QucHJldmlld1ByZXNldCAmJiBpdGVtID09IHByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXRcIlxuICAgICAgICBbY2xhc3MuaW5hY3RpdmUtbGlzdC1pdGVtXT1cIiFzY2VuZVNlcnZpY2UucHJlc2V0SXNTZWxlY3RlZChpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4XCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gbGlzdC1zb3J0LWhhbmRsZSBteS1hdXRvXCIgc3R5bGU9XCJjdXJzb3I6IG1vdmU7IGN1cnNvcjogLXdlYmtpdC1ncmFiYmluZ1wiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1iYXJzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFlbmFibGVDaGVja2JveCgpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgICAgaWQ9XCJhY3RpdmVcIlxuICAgICAgICAgICAgICBbbmdNb2RlbF09XCJzY2VuZVNlcnZpY2UucHJlc2V0SXNTZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFjdGl2YXRlUHJlc2V0KCRldmVudCwgaSlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS1hdXRvIG1sLWF1dG8gbXItMiBkLWZsZXhcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIHB5LTAgcHgtMVwiIChjbGljayk9XCJvcGVuU2V0dGluZ3MoaXRlbSk7IChmYWxzZSlcIj4uLi48L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { forkJoin } from 'rxjs';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { Fixture3d } from './fixture-3d';
|
|
5
|
+
export class ColorChanger3d extends Fixture3d {
|
|
6
|
+
createObjects() {
|
|
7
|
+
super.createObjects();
|
|
8
|
+
this.material = new THREE.MeshLambertMaterial({
|
|
9
|
+
color: 0x0d0d0d,
|
|
10
|
+
emissive: 0x0d0d0d,
|
|
11
|
+
});
|
|
12
|
+
this.mesh.material = this.material;
|
|
13
|
+
this.spotLightHelper = new THREE.SpotLightHelper(this.spotLight);
|
|
14
|
+
// scene.add(this.spotLightHelper);
|
|
15
|
+
this.objectGroup.add(this.spotlightGroup);
|
|
16
|
+
this.objectGroup.add(this.mesh);
|
|
17
|
+
// A moving head has about 32 cm in width
|
|
18
|
+
this.objectGroup.scale.multiplyScalar(9);
|
|
19
|
+
this.scene.add(this.objectGroup);
|
|
20
|
+
this.isLoaded = true;
|
|
21
|
+
}
|
|
22
|
+
constructor(fixtureService, previewMeshService, fixture, scene) {
|
|
23
|
+
super(fixtureService, fixture, scene);
|
|
24
|
+
this.objectGroup = new THREE.Object3D();
|
|
25
|
+
forkJoin([previewMeshService.getMesh('color-changer')])
|
|
26
|
+
.pipe(map(([colorChanger]) => {
|
|
27
|
+
this.mesh = colorChanger;
|
|
28
|
+
this.createObjects();
|
|
29
|
+
}))
|
|
30
|
+
.subscribe();
|
|
31
|
+
}
|
|
32
|
+
getObject() {
|
|
33
|
+
return this.objectGroup;
|
|
34
|
+
}
|
|
35
|
+
updatePreview(channelValues, masterDimmerValue) {
|
|
36
|
+
if (!this.isLoaded) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
super.updatePreview(channelValues, masterDimmerValue);
|
|
40
|
+
this.updatePosition(this.objectGroup);
|
|
41
|
+
// Update the material
|
|
42
|
+
if (this.lastSelected !== this.isSelected) {
|
|
43
|
+
if (this.isSelected) {
|
|
44
|
+
for (const child of this.mesh.children) {
|
|
45
|
+
child.material = this.selectedMaterial;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
for (const child of this.mesh.children) {
|
|
50
|
+
child.material = this.material;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
this.lastSelected = this.isSelected;
|
|
54
|
+
}
|
|
55
|
+
// Update the light helpers
|
|
56
|
+
// this.spotLightHelper.update();
|
|
57
|
+
}
|
|
58
|
+
destroy() {
|
|
59
|
+
this.scene.remove(this.objectGroup);
|
|
60
|
+
this.material.dispose();
|
|
61
|
+
this.spotLightHelper.dispose();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItY2hhbmdlci0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvcHJldmlldy9tb2RlbHMvY29sb3ItY2hhbmdlci0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQU0vQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQVNqQyxhQUFhO1FBQ3JCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBZ0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztZQUNyRCxLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pFLG1DQUFtQztRQUVuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWhDLHlDQUF5QztRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLGNBQThCLEVBQUUsa0JBQXNDLEVBQUUsT0FBc0IsRUFBRSxLQUFVO1FBQ3BILEtBQUssQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBL0JoQyxnQkFBVyxHQUFtQixJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQWlDekQsUUFBUSxDQUFDLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQztZQUV6QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sYUFBYSxDQUFDLGFBQW9DLEVBQUUsaUJBQXlCO1FBQ2xGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3RDLEtBQWMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuRCxDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDdEMsS0FBYyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUMzQyxDQUFDO1lBQ0gsQ0FBQztZQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLGlDQUFpQztJQUNuQyxDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2ggfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDYWNoZWRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlJztcbmltcG9ydCB7IEZpeHR1cmVDaGFubmVsVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZml4dHVyZS1jaGFubmVsLXZhbHVlJztcbmltcG9ydCB7IEZpeHR1cmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZml4dHVyZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXZpZXdNZXNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ByZXZpZXctbWVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IEZpeHR1cmUzZCB9IGZyb20gJy4vZml4dHVyZS0zZCc7XG5cbmV4cG9ydCBjbGFzcyBDb2xvckNoYW5nZXIzZCBleHRlbmRzIEZpeHR1cmUzZCB7XG4gIHByaXZhdGUgbWVzaDogVEhSRUUuTWVzaDtcblxuICBwcml2YXRlIG9iamVjdEdyb3VwOiBUSFJFRS5PYmplY3QzRCA9IG5ldyBUSFJFRS5PYmplY3QzRCgpO1xuXG4gIHByaXZhdGUgbGFzdFNlbGVjdGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbWF0ZXJpYWw6IFRIUkVFLk1lc2hTdGFuZGFyZE1hdGVyaWFsO1xuXG4gIHByb3RlY3RlZCBjcmVhdGVPYmplY3RzKCkge1xuICAgIHN1cGVyLmNyZWF0ZU9iamVjdHMoKTtcblxuICAgICh0aGlzLm1hdGVyaWFsIGFzIGFueSkgPSBuZXcgVEhSRUUuTWVzaExhbWJlcnRNYXRlcmlhbCh7XG4gICAgICBjb2xvcjogMHgwZDBkMGQsXG4gICAgICBlbWlzc2l2ZTogMHgwZDBkMGQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lc2gubWF0ZXJpYWwgPSB0aGlzLm1hdGVyaWFsO1xuXG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIgPSBuZXcgVEhSRUUuU3BvdExpZ2h0SGVscGVyKHRoaXMuc3BvdExpZ2h0KTtcbiAgICAvLyBzY2VuZS5hZGQodGhpcy5zcG90TGlnaHRIZWxwZXIpO1xuICAgIFxuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMuc3BvdGxpZ2h0R3JvdXApO1xuICAgIHRoaXMub2JqZWN0R3JvdXAuYWRkKHRoaXMubWVzaCk7XG5cbiAgICAvLyBBIG1vdmluZyBoZWFkIGhhcyBhYm91dCAzMiBjbSBpbiB3aWR0aFxuICAgIHRoaXMub2JqZWN0R3JvdXAuc2NhbGUubXVsdGlwbHlTY2FsYXIoOSk7XG5cbiAgICB0aGlzLnNjZW5lLmFkZCh0aGlzLm9iamVjdEdyb3VwKTtcblxuICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IoZml4dHVyZVNlcnZpY2U6IEZpeHR1cmVTZXJ2aWNlLCBwcmV2aWV3TWVzaFNlcnZpY2U6IFByZXZpZXdNZXNoU2VydmljZSwgZml4dHVyZTogQ2FjaGVkRml4dHVyZSwgc2NlbmU6IGFueSkge1xuICAgIHN1cGVyKGZpeHR1cmVTZXJ2aWNlLCBmaXh0dXJlLCBzY2VuZSk7XG5cbiAgICBmb3JrSm9pbihbcHJldmlld01lc2hTZXJ2aWNlLmdldE1lc2goJ2NvbG9yLWNoYW5nZXInKV0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChbY29sb3JDaGFuZ2VyXSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzaCA9IGNvbG9yQ2hhbmdlcjtcblxuICAgICAgICAgIHRoaXMuY3JlYXRlT2JqZWN0cygpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldE9iamVjdCgpOiBUSFJFRS5PYmplY3QzRCB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0R3JvdXA7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUHJldmlldyhjaGFubmVsVmFsdWVzOiBGaXh0dXJlQ2hhbm5lbFZhbHVlW10sIG1hc3RlckRpbW1lclZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNMb2FkZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzdXBlci51cGRhdGVQcmV2aWV3KGNoYW5uZWxWYWx1ZXMsIG1hc3RlckRpbW1lclZhbHVlKTtcblxuICAgIHRoaXMudXBkYXRlUG9zaXRpb24odGhpcy5vYmplY3RHcm91cCk7XG5cbiAgICAvLyBVcGRhdGUgdGhlIG1hdGVyaWFsXG4gICAgaWYgKHRoaXMubGFzdFNlbGVjdGVkICE9PSB0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiB0aGlzLm1lc2guY2hpbGRyZW4pIHtcbiAgICAgICAgICAoY2hpbGQgYXMgTWVzaCkubWF0ZXJpYWwgPSB0aGlzLnNlbGVjdGVkTWF0ZXJpYWw7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgdGhpcy5tZXNoLmNoaWxkcmVuKSB7XG4gICAgICAgICAgKGNoaWxkIGFzIE1lc2gpLm1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLmxhc3RTZWxlY3RlZCA9IHRoaXMuaXNTZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvLyBVcGRhdGUgdGhlIGxpZ2h0IGhlbHBlcnNcbiAgICAvLyB0aGlzLnNwb3RMaWdodEhlbHBlci51cGRhdGUoKTtcbiAgfVxuXG4gIGRlc3Ryb3koKSB7XG4gICAgdGhpcy5zY2VuZS5yZW1vdmUodGhpcy5vYmplY3RHcm91cCk7XG4gICAgdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCk7XG4gICAgdGhpcy5zcG90TGlnaHRIZWxwZXIuZGlzcG9zZSgpO1xuICB9XG59XG4iXX0=
|