@rocketshow/designer 1.32.0 → 1.33.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/esm2022/lib/array-sort-pipe.mjs +30 -0
- package/esm2022/lib/designer.component.mjs +605 -0
- package/esm2022/lib/designer.module.mjs +183 -0
- package/esm2022/lib/designer.service.mjs +14 -0
- package/esm2022/lib/effect/effect-curve/effect-curve.component.mjs +569 -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 +160 -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 +138 -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 +589 -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-mode.mjs +14 -0
- package/esm2022/lib/models/fixture-profile.mjs +70 -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-region-scene.mjs +8 -0
- package/esm2022/lib/models/preset.mjs +56 -0
- package/esm2022/lib/models/project.mjs +68 -0
- package/esm2022/lib/models/scene-playback-region.mjs +11 -0
- package/esm2022/lib/models/scene.mjs +27 -0
- package/esm2022/lib/models/universe.mjs +11 -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 +167 -0
- package/esm2022/lib/preview/models/fixture-3d.mjs +150 -0
- package/esm2022/lib/preview/models/moving-head-3d.mjs +243 -0
- package/esm2022/lib/preview/preview.component.mjs +212 -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 +27 -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 +431 -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 +400 -0
- package/esm2022/lib/services/preview-mesh.service.mjs +57 -0
- package/esm2022/lib/services/preview.service.mjs +496 -0
- package/esm2022/lib/services/project-load.service.mjs +149 -0
- package/esm2022/lib/services/project.service.mjs +97 -0
- package/esm2022/lib/services/scene.service.mjs +164 -0
- package/esm2022/lib/services/timeline.service.mjs +726 -0
- package/esm2022/lib/services/universe.service.mjs +23 -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 +334 -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 +10626 -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 +15 -12
- package/lib/designer.module.d.ts +54 -0
- package/lib/designer.service.d.ts +3 -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 +3 -0
- 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/preset/preset-settings/preset-settings.component.d.ts +3 -0
- package/lib/preset/preset.component.d.ts +3 -0
- 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 +3 -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 +3 -0
- 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 +3 -0
- package/lib/services/preview-mesh.service.d.ts +3 -0
- package/lib/services/preview.service.d.ts +4 -0
- package/lib/services/project-load.service.d.ts +3 -0
- package/lib/services/project.service.d.ts +3 -0
- package/lib/services/scene.service.d.ts +3 -0
- package/lib/services/timeline.service.d.ts +4 -1
- package/lib/services/universe.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 +3 -0
- 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.33.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/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,36 @@
|
|
|
1
|
+
import { Component, ElementRef, ViewChild } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
const _c0 = ["panTiltGrid"];
|
|
4
|
+
export class EffectPanTiltComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.points = [
|
|
7
|
+
[0, 500],
|
|
8
|
+
[500, 0],
|
|
9
|
+
[1000, 500],
|
|
10
|
+
[500, 1000],
|
|
11
|
+
];
|
|
12
|
+
this.dragged = null;
|
|
13
|
+
this.selected = this.points[0];
|
|
14
|
+
}
|
|
15
|
+
redraw() { }
|
|
16
|
+
ngOnInit() { }
|
|
17
|
+
static { this.ɵfac = function EffectPanTiltComponent_Factory(t) { return new (t || EffectPanTiltComponent)(); }; }
|
|
18
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EffectPanTiltComponent, selectors: [["lib-app-effect-pan-tilt"]], viewQuery: function EffectPanTiltComponent_Query(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
20
|
+
} if (rf & 2) {
|
|
21
|
+
let _t;
|
|
22
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.panTiltGrid = _t.first);
|
|
23
|
+
} }, decls: 2, vars: 0, consts: [["panTiltGrid", ""], ["width", "150", "height", "150", "viewBox", "-100 -100 1200 1200", 1, "pan-tilt-grid", 2, "border", "1px solid white"]], template: function EffectPanTiltComponent_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵnamespaceSVG();
|
|
25
|
+
i0.ɵɵelement(0, "svg", 1, 0);
|
|
26
|
+
} } }); }
|
|
27
|
+
}
|
|
28
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EffectPanTiltComponent, [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ selector: 'lib-app-effect-pan-tilt', template: "<svg #panTiltGrid class=\"pan-tilt-grid\" width=\"150\" height=\"150\" viewBox=\"-100 -100 1200 1200\" style=\"border: 1px solid white\"></svg>\n" }]
|
|
31
|
+
}], () => [], { panTiltGrid: [{
|
|
32
|
+
type: ViewChild,
|
|
33
|
+
args: ['panTiltGrid']
|
|
34
|
+
}] }); })();
|
|
35
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EffectPanTiltComponent, { className: "EffectPanTiltComponent" }); })();
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LXBhbi10aWx0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZWZmZWN0L2VmZmVjdC1wYW4tdGlsdC9lZmZlY3QtcGFuLXRpbHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9lZmZlY3QvZWZmZWN0LXBhbi10aWx0L2VmZmVjdC1wYW4tdGlsdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU96RSxNQUFNLE9BQU8sc0JBQXNCO0lBaUJqQztRQVZRLFdBQU0sR0FBRztZQUNmLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQztZQUNSLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNSLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztZQUNYLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQztTQUNaLENBQUM7UUFFTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsYUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFbkIsQ0FBQztJQUVSLE1BQU0sS0FBSSxDQUFDO0lBRW5CLFFBQVEsS0FBSSxDQUFDO3VGQXJCRixzQkFBc0I7b0VBQXRCLHNCQUFzQjs7Ozs7OztZQ1BuQyw0QkFBcUk7OztpRkRPeEgsc0JBQXNCO2NBTGxDLFNBQVM7MkJBQ0UseUJBQXlCO29CQUtULFdBQVc7a0JBQXBDLFNBQVM7bUJBQUMsYUFBYTs7a0ZBRGIsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWVmZmVjdC1wYW4tdGlsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZmZlY3QtcGFuLXRpbHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZmZlY3QtcGFuLXRpbHQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFZmZlY3RQYW5UaWx0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgncGFuVGlsdEdyaWQnKSBwYW5UaWx0R3JpZDogRWxlbWVudFJlZjtcblxuICAvLyBwcml2YXRlIGxpbmUgPSBkMy5saW5lKCk7XG4gIHByaXZhdGUgc3ZnO1xuICBwcml2YXRlIHBhdGg7XG5cbiAgcHJpdmF0ZSBwb2ludHMgPSBbXG4gICAgWzAsIDUwMF0sXG4gICAgWzUwMCwgMF0sXG4gICAgWzEwMDAsIDUwMF0sXG4gICAgWzUwMCwgMTAwMF0sXG4gIF07XG5cbiAgcHJpdmF0ZSBkcmFnZ2VkID0gbnVsbDtcbiAgcHJpdmF0ZSBzZWxlY3RlZCA9IHRoaXMucG9pbnRzWzBdO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwcml2YXRlIHJlZHJhdygpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxufVxuIiwiPHN2ZyAjcGFuVGlsdEdyaWQgY2xhc3M9XCJwYW4tdGlsdC1ncmlkXCIgd2lkdGg9XCIxNTBcIiBoZWlnaHQ9XCIxNTBcIiB2aWV3Qm94PVwiLTEwMCAtMTAwIDEyMDAgMTIwMFwiIHN0eWxlPVwiYm9yZGVyOiAxcHggc29saWQgd2hpdGVcIj48L3N2Zz5cbiJdfQ==
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { EffectCurve } from '../models/effect-curve';
|
|
4
|
+
import { EffectPanTilt } from '../models/effect-pan-tilt';
|
|
5
|
+
import { EffectService } from '../services/effect.service';
|
|
6
|
+
import { PresetService } from '../services/preset.service';
|
|
7
|
+
import { UuidService } from '../services/uuid.service';
|
|
8
|
+
import { WarningDialogService } from '../services/warning-dialog.service';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../services/uuid.service";
|
|
11
|
+
import * as i2 from "../services/preset.service";
|
|
12
|
+
import * as i3 from "../services/effect.service";
|
|
13
|
+
import * as i4 from "../services/warning-dialog.service";
|
|
14
|
+
import * as i5 from "@angular/common";
|
|
15
|
+
import * as i6 from "ngx-bootstrap/accordion";
|
|
16
|
+
import * as i7 from "./effect-curve/effect-curve.component";
|
|
17
|
+
import * as i8 from "./effect-pan-tilt/effect-pan-tilt.component";
|
|
18
|
+
import * as i9 from "@ngx-translate/core";
|
|
19
|
+
function EffectComponent_div_1_accordion_group_3_i_3_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelement(0, "i", 27);
|
|
21
|
+
} }
|
|
22
|
+
function EffectComponent_div_1_accordion_group_3_i_4_Template(rf, ctx) { if (rf & 1) {
|
|
23
|
+
i0.ɵɵelement(0, "i", 28);
|
|
24
|
+
} }
|
|
25
|
+
function EffectComponent_div_1_accordion_group_3_i_13_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelement(0, "i", 29);
|
|
27
|
+
} }
|
|
28
|
+
function EffectComponent_div_1_accordion_group_3_i_14_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
+
i0.ɵɵelement(0, "i", 30);
|
|
30
|
+
} }
|
|
31
|
+
function EffectComponent_div_1_accordion_group_3_div_15_Template(rf, ctx) { if (rf & 1) {
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 31);
|
|
33
|
+
i0.ɵɵelement(1, "lib-app-effect-curve", 32);
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
} if (rf & 2) {
|
|
36
|
+
const item_r3 = i0.ɵɵnextContext().$implicit;
|
|
37
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
38
|
+
i0.ɵɵadvance();
|
|
39
|
+
i0.ɵɵproperty("curve", item_r3)("isSelected", item_r3 == ctx_r3.effectService.selectedEffect);
|
|
40
|
+
} }
|
|
41
|
+
function EffectComponent_div_1_accordion_group_3_div_16_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementStart(0, "div", 33);
|
|
43
|
+
i0.ɵɵelement(1, "lib-app-effect-pan-tilt");
|
|
44
|
+
i0.ɵɵelementEnd();
|
|
45
|
+
} }
|
|
46
|
+
function EffectComponent_div_1_accordion_group_3_Template(rf, ctx) { if (rf & 1) {
|
|
47
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
48
|
+
i0.ɵɵelementStart(0, "accordion-group", 13);
|
|
49
|
+
i0.ɵɵlistener("isOpenChange", function EffectComponent_div_1_accordion_group_3_Template_accordion_group_isOpenChange_0_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r3.openEffect(item_r3, $event)); });
|
|
50
|
+
i0.ɵɵelementStart(1, "button", 14)(2, "div", 15);
|
|
51
|
+
i0.ɵɵtemplate(3, EffectComponent_div_1_accordion_group_3_i_3_Template, 1, 0, "i", 16)(4, EffectComponent_div_1_accordion_group_3_i_4_Template, 1, 0, "i", 17);
|
|
52
|
+
i0.ɵɵelementStart(5, "span", 18);
|
|
53
|
+
i0.ɵɵtext(6);
|
|
54
|
+
i0.ɵɵpipe(7, "translate");
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
i0.ɵɵelementStart(8, "div", 19)(9, "i", 20);
|
|
57
|
+
i0.ɵɵlistener("click", function EffectComponent_div_1_accordion_group_3_Template_i_click_9_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(2); item_r3.visible = !item_r3.visible; ctx_r3.presetService.previewLive(); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
58
|
+
i0.ɵɵelementEnd()();
|
|
59
|
+
i0.ɵɵelementStart(10, "div", 21)(11, "i", 22);
|
|
60
|
+
i0.ɵɵlistener("click", function EffectComponent_div_1_accordion_group_3_Template_i_click_11_listener($event) { const item_r3 = i0.ɵɵrestoreView(_r2).$implicit; const ctx_r3 = i0.ɵɵnextContext(2); ctx_r3.deleteEffect(item_r3); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
61
|
+
i0.ɵɵelementEnd()();
|
|
62
|
+
i0.ɵɵelementStart(12, "div", 21);
|
|
63
|
+
i0.ɵɵtemplate(13, EffectComponent_div_1_accordion_group_3_i_13_Template, 1, 0, "i", 23)(14, EffectComponent_div_1_accordion_group_3_i_14_Template, 1, 0, "i", 24);
|
|
64
|
+
i0.ɵɵelementEnd()()();
|
|
65
|
+
i0.ɵɵtemplate(15, EffectComponent_div_1_accordion_group_3_div_15_Template, 2, 2, "div", 25)(16, EffectComponent_div_1_accordion_group_3_div_16_Template, 2, 0, "div", 26);
|
|
66
|
+
i0.ɵɵelementEnd();
|
|
67
|
+
} if (rf & 2) {
|
|
68
|
+
const item_r3 = ctx.$implicit;
|
|
69
|
+
const ctx_r3 = i0.ɵɵnextContext(2);
|
|
70
|
+
i0.ɵɵproperty("isOpen", ctx_r3.effectService.selectedEffect == item_r3);
|
|
71
|
+
i0.ɵɵadvance(3);
|
|
72
|
+
i0.ɵɵproperty("ngIf", item_r3.type == "curve");
|
|
73
|
+
i0.ɵɵadvance();
|
|
74
|
+
i0.ɵɵproperty("ngIf", item_r3.type == "pan-tilt");
|
|
75
|
+
i0.ɵɵadvance(2);
|
|
76
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 10, "designer.effect.type-" + item_r3.type));
|
|
77
|
+
i0.ɵɵadvance(3);
|
|
78
|
+
i0.ɵɵclassProp("text-primary", item_r3.visible);
|
|
79
|
+
i0.ɵɵadvance(4);
|
|
80
|
+
i0.ɵɵproperty("ngIf", item_r3 == ctx_r3.effectService.selectedEffect);
|
|
81
|
+
i0.ɵɵadvance();
|
|
82
|
+
i0.ɵɵproperty("ngIf", item_r3 != ctx_r3.effectService.selectedEffect);
|
|
83
|
+
i0.ɵɵadvance();
|
|
84
|
+
i0.ɵɵproperty("ngIf", item_r3.type == "curve");
|
|
85
|
+
i0.ɵɵadvance();
|
|
86
|
+
i0.ɵɵproperty("ngIf", item_r3.type == "pan-tilt");
|
|
87
|
+
} }
|
|
88
|
+
function EffectComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
89
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
90
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "accordion", 4);
|
|
91
|
+
i0.ɵɵtemplate(3, EffectComponent_div_1_accordion_group_3_Template, 17, 12, "accordion-group", 5);
|
|
92
|
+
i0.ɵɵelementEnd();
|
|
93
|
+
i0.ɵɵelementStart(4, "div", 6)(5, "div", 7)(6, "a", 8);
|
|
94
|
+
i0.ɵɵelement(7, "i", 9);
|
|
95
|
+
i0.ɵɵtext(8);
|
|
96
|
+
i0.ɵɵpipe(9, "translate");
|
|
97
|
+
i0.ɵɵelementEnd();
|
|
98
|
+
i0.ɵɵelementStart(10, "div", 10)(11, "a", 11);
|
|
99
|
+
i0.ɵɵlistener("click", function EffectComponent_div_1_Template_a_click_11_listener() { i0.ɵɵrestoreView(_r1); const ctx_r3 = i0.ɵɵnextContext(); ctx_r3.addCurveEffect(); return i0.ɵɵresetView(false); });
|
|
100
|
+
i0.ɵɵelement(12, "i", 12);
|
|
101
|
+
i0.ɵɵtext(13);
|
|
102
|
+
i0.ɵɵpipe(14, "translate");
|
|
103
|
+
i0.ɵɵelementEnd()()()()()();
|
|
104
|
+
} if (rf & 2) {
|
|
105
|
+
const ctx_r3 = i0.ɵɵnextContext();
|
|
106
|
+
i0.ɵɵadvance(2);
|
|
107
|
+
i0.ɵɵproperty("closeOthers", true);
|
|
108
|
+
i0.ɵɵadvance();
|
|
109
|
+
i0.ɵɵproperty("ngForOf", ctx_r3.presetService.selectedPreset.effects);
|
|
110
|
+
i0.ɵɵadvance(5);
|
|
111
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 4, "designer.effect.add-new"), " ");
|
|
112
|
+
i0.ɵɵadvance(5);
|
|
113
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(14, 6, "designer.effect.curve"), "");
|
|
114
|
+
} }
|
|
115
|
+
export class EffectComponent {
|
|
116
|
+
constructor(uuidService, presetService, effectService, warningDialogService) {
|
|
117
|
+
this.uuidService = uuidService;
|
|
118
|
+
this.presetService = presetService;
|
|
119
|
+
this.effectService = effectService;
|
|
120
|
+
this.warningDialogService = warningDialogService;
|
|
121
|
+
}
|
|
122
|
+
ngOnInit() { }
|
|
123
|
+
addEffect(effect) {
|
|
124
|
+
this.effectService.selectedEffect = effect;
|
|
125
|
+
if (this.presetService.selectedPreset) {
|
|
126
|
+
this.presetService.selectedPreset.effects.push(effect);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
addCurveEffect() {
|
|
130
|
+
const effect = new EffectCurve();
|
|
131
|
+
effect.uuid = this.uuidService.getUuid();
|
|
132
|
+
this.addEffect(effect);
|
|
133
|
+
this.presetService.previewLive();
|
|
134
|
+
}
|
|
135
|
+
addPanTiltEffect() {
|
|
136
|
+
this.addEffect(new EffectPanTilt());
|
|
137
|
+
}
|
|
138
|
+
openEffect(effect, event) {
|
|
139
|
+
if (event) {
|
|
140
|
+
this.effectService.selectedEffect = effect;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
if (this.effectService.selectedEffect === effect) {
|
|
144
|
+
this.effectService.selectedEffect = undefined;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
deleteEffect(effect) {
|
|
149
|
+
this.warningDialogService
|
|
150
|
+
.show('designer.effect.delete-warning')
|
|
151
|
+
.pipe(map((result) => {
|
|
152
|
+
if (result) {
|
|
153
|
+
this.presetService.selectedPreset.effects.splice(this.presetService.selectedPreset.effects.indexOf(effect), 1);
|
|
154
|
+
this.presetService.previewLive();
|
|
155
|
+
}
|
|
156
|
+
}))
|
|
157
|
+
.subscribe();
|
|
158
|
+
}
|
|
159
|
+
static { this.ɵfac = function EffectComponent_Factory(t) { return new (t || EffectComponent)(i0.ɵɵdirectiveInject(i1.UuidService), i0.ɵɵdirectiveInject(i2.PresetService), i0.ɵɵdirectiveInject(i3.EffectService), i0.ɵɵdirectiveInject(i4.WarningDialogService)); }; }
|
|
160
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EffectComponent, selectors: [["lib-app-effect"]], decls: 2, vars: 1, consts: [[1, "card", "border-secondary", "panel", "h-100"], ["class", "card-body capability-container", 4, "ngIf"], [1, "card-body", "capability-container"], [1, "m-3"], [3, "closeOthers"], ["style", "margin-top: 1px", 3, "isOpen", "isOpenChange", 4, "ngFor", "ngForOf"], [1, "d-flex", "mx-auto", "mt-3"], [1, "dropdown", "d-flex"], ["href", "#", "role", "button", "id", "dropdownMenuLink", "data-toggle", "dropdown", "aria-haspopup", "true", "aria-expanded", "false", 1, "btn", "btn-secondary", "dropdown-toggle"], ["aria-hidden", "true", 1, "fa", "fa-plus"], ["aria-labelledby", "dropdownMenuLink", 1, "dropdown-menu"], ["href", "#", 1, "dropdown-item", 3, "click"], ["aria-hidden", "true", 1, "fa", "fa-area-chart", "fa-fw"], [2, "margin-top", "1px", 3, "isOpenChange", "isOpen"], ["accordion-heading", "", 1, "btn", "btn-link", "btn-block", "clearfix"], [1, "pull-left", "float-left", "d-flex", "w-100"], ["class", "fa fa-area-chart fa-fw my-auto", "aria-hidden", "true", 4, "ngIf"], ["class", "fa fa-arrows-alt fa-fw my-auto", "aria-hidden", "true", 4, "ngIf"], [1, "ml-2"], [1, "ml-auto", "mr-2"], ["aria-hidden", "true", 1, "fa", "fa-eye", "fa-fw", 3, "click"], [1, "mr-2"], ["aria-hidden", "true", 1, "fa", "fa-trash", "fa-fw", 3, "click"], ["class", "fa fa-caret-down fa-fw", "aria-hidden", "true", 4, "ngIf"], ["class", "fa fa-caret-right fa-fw", "aria-hidden", "true", 4, "ngIf"], ["style", "min-width: 670px", 4, "ngIf"], ["style", "min-width: 500px", 4, "ngIf"], ["aria-hidden", "true", 1, "fa", "fa-area-chart", "fa-fw", "my-auto"], ["aria-hidden", "true", 1, "fa", "fa-arrows-alt", "fa-fw", "my-auto"], ["aria-hidden", "true", 1, "fa", "fa-caret-down", "fa-fw"], ["aria-hidden", "true", 1, "fa", "fa-caret-right", "fa-fw"], [2, "min-width", "670px"], [3, "curve", "isSelected"], [2, "min-width", "500px"]], template: function EffectComponent_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
162
|
+
i0.ɵɵtemplate(1, EffectComponent_div_1_Template, 15, 8, "div", 1);
|
|
163
|
+
i0.ɵɵelementEnd();
|
|
164
|
+
} if (rf & 2) {
|
|
165
|
+
i0.ɵɵadvance();
|
|
166
|
+
i0.ɵɵproperty("ngIf", ctx.presetService.selectedPreset);
|
|
167
|
+
} }, dependencies: [i5.NgForOf, i5.NgIf, i6.AccordionComponent, i6.AccordionPanelComponent, i7.EffectCurveComponent, i8.EffectPanTiltComponent, i9.TranslatePipe] }); }
|
|
168
|
+
}
|
|
169
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EffectComponent, [{
|
|
170
|
+
type: Component,
|
|
171
|
+
args: [{ selector: 'lib-app-effect', template: "<div class=\"card border-secondary panel h-100\">\n <div class=\"card-body capability-container\" *ngIf=\"presetService.selectedPreset\">\n <div class=\"m-3\">\n <accordion [closeOthers]=\"true\">\n <accordion-group\n *ngFor=\"let item of presetService.selectedPreset.effects; let i = index\"\n [isOpen]=\"effectService.selectedEffect == item\"\n (isOpenChange)=\"openEffect(item, $event)\"\n style=\"margin-top: 1px\"\n >\n <button class=\"btn btn-link btn-block clearfix\" accordion-heading>\n <div class=\"pull-left float-left d-flex w-100\">\n <i *ngIf=\"item.type == 'curve'\" class=\"fa fa-area-chart fa-fw my-auto\" aria-hidden=\"true\"></i>\n <i *ngIf=\"item.type == 'pan-tilt'\" class=\"fa fa-arrows-alt fa-fw my-auto\" aria-hidden=\"true\"></i>\n <span class=\"ml-2\">{{ 'designer.effect.type-' + item.type | translate }}</span>\n <div class=\"ml-auto mr-2\">\n <i\n (click)=\"item.visible = !item.visible; presetService.previewLive(); $event.stopPropagation()\"\n class=\"fa fa-eye fa-fw\"\n [class.text-primary]=\"item.visible\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <div class=\"mr-2\">\n <i (click)=\"this.deleteEffect(item); $event.stopPropagation()\" class=\"fa fa-trash fa-fw\" aria-hidden=\"true\"></i>\n </div>\n <div class=\"mr-2\">\n <i *ngIf=\"item == effectService.selectedEffect\" class=\"fa fa-caret-down fa-fw\" aria-hidden=\"true\"></i>\n <i *ngIf=\"item != effectService.selectedEffect\" class=\"fa fa-caret-right fa-fw\" aria-hidden=\"true\"></i>\n </div>\n </div>\n </button>\n\n <div *ngIf=\"item.type == 'curve'\" style=\"min-width: 670px\">\n <lib-app-effect-curve [curve]=\"item\" [isSelected]=\"item == effectService.selectedEffect\"></lib-app-effect-curve>\n </div>\n\n <div *ngIf=\"item.type == 'pan-tilt'\" style=\"min-width: 500px\">\n <lib-app-effect-pan-tilt></lib-app-effect-pan-tilt>\n </div>\n </accordion-group>\n </accordion>\n\n <div class=\"d-flex mx-auto mt-3\">\n <div class=\"dropdown d-flex\">\n <a\n class=\"btn btn-secondary dropdown-toggle\"\n href=\"#\"\n role=\"button\"\n id=\"dropdownMenuLink\"\n data-toggle=\"dropdown\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n >\n <i class=\"fa fa-plus\" aria-hidden=\"true\"></i> {{ 'designer.effect.add-new' | translate }}\n </a>\n\n <div class=\"dropdown-menu\" aria-labelledby=\"dropdownMenuLink\">\n <a class=\"dropdown-item\" href=\"#\" (click)=\"addCurveEffect(); (false)\">\n <i class=\"fa fa-area-chart fa-fw\" aria-hidden=\"true\"></i> {{ 'designer.effect.curve' | translate }}</a\n >\n <!-- <a class=\"dropdown-item\" href=\"#\" (click)=\"addPanTiltEffect()\">\n <i class=\"fa fa-arrows-alt fa-fw\" aria-hidden=\"true\"></i> Pan/Tilt</a> -->\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
172
|
+
}], () => [{ type: i1.UuidService }, { type: i2.PresetService }, { type: i3.EffectService }, { type: i4.WarningDialogService }], null); })();
|
|
173
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EffectComponent, { className: "EffectComponent" }); })();
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZWZmZWN0L2VmZmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL2VmZmVjdC9lZmZlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7O0lDSTVELHdCQUE4Rjs7O0lBQzlGLHdCQUFpRzs7O0lBYy9GLHdCQUFzRzs7O0lBQ3RHLHdCQUF1Rzs7O0lBSzdHLCtCQUEyRDtJQUN6RCwyQ0FBZ0g7SUFDbEgsaUJBQU07Ozs7SUFEa0IsY0FBYztJQUFDLEFBQWYsK0JBQWMsOERBQW9EOzs7SUFHMUYsK0JBQThEO0lBQzVELDBDQUFtRDtJQUNyRCxpQkFBTTs7OztJQW5DUiwyQ0FLQztJQUZDLHFQQUFnQixrQ0FBd0IsS0FBQztJQUl2QyxBQURGLGtDQUFrRSxjQUNqQjtJQUU3QyxBQURBLHFGQUEwRix3RUFDRztJQUM3RixnQ0FBbUI7SUFBQSxZQUFxRDs7SUFBQSxpQkFBTztJQUU3RSxBQURGLCtCQUEwQixZQU12QjtJQUpDLHVPQUF1QyxrQ0FBMkIsd0JBQUUsd0JBQXdCLEtBQUM7SUFLakcsQUFERyxpQkFBSSxFQUNEO0lBRUosQUFERixnQ0FBa0IsYUFDNEY7SUFBekcsb01BQVMsNEJBQXVCLHdCQUFFLHdCQUF3QixLQUFDO0lBQ2hFLEFBRDhHLGlCQUFJLEVBQzVHO0lBQ04sZ0NBQWtCO0lBRWhCLEFBREEsdUZBQWtHLDBFQUNDO0lBR3pHLEFBREUsQUFERSxpQkFBTSxFQUNGLEVBQ0M7SUFNVCxBQUpBLDJGQUEyRCw4RUFJRztJQUdoRSxpQkFBa0I7Ozs7SUFsQ2hCLHVFQUErQztJQU12QyxlQUEwQjtJQUExQiw4Q0FBMEI7SUFDMUIsY0FBNkI7SUFBN0IsaURBQTZCO0lBQ2QsZUFBcUQ7SUFBckQsbUZBQXFEO0lBS3BFLGVBQW1DO0lBQW5DLCtDQUFtQztJQVFqQyxlQUEwQztJQUExQyxxRUFBMEM7SUFDMUMsY0FBMEM7SUFBMUMscUVBQTBDO0lBSzlDLGNBQTBCO0lBQTFCLDhDQUEwQjtJQUkxQixjQUE2QjtJQUE3QixpREFBNkI7Ozs7SUFsQ3ZDLEFBREYsQUFERiw4QkFBaUYsYUFDOUQsbUJBQ2lCO0lBQzlCLGdHQUtDO0lBZ0NILGlCQUFZO0lBSVIsQUFERixBQURGLDhCQUFpQyxhQUNGLFdBUzFCO0lBQ0MsdUJBQTZDO0lBQUMsWUFDaEQ7O0lBQUEsaUJBQUk7SUFHRixBQURGLGdDQUE4RCxhQUNVO0lBQXBDLGlKQUFTLHVCQUFnQix3QkFBRyxLQUFLLEtBQUU7SUFDbkUseUJBQXlEO0lBQUMsYUFBeUM7O0lBUS9HLEFBREUsQUFERSxBQURFLEFBREUsQUFKdUcsaUJBQ3BHLEVBR0csRUFDRixFQUNGLEVBQ0YsRUFDRjs7O0lBaEVTLGVBQW9CO0lBQXBCLGtDQUFvQjtJQUVWLGNBQXlDO0lBQXpDLHFFQUF5QztJQWlEVixlQUNoRDtJQURnRCxnRkFDaEQ7SUFJOEQsZUFBeUM7SUFBekMsOEVBQXlDOztBRDVDakgsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxXQUF3QixFQUN6QixhQUE0QixFQUM1QixhQUE0QixFQUMzQixvQkFBMEM7UUFIMUMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUNqRCxDQUFDO0lBRUosUUFBUSxLQUFJLENBQUM7SUFFTCxTQUFTLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFFM0MsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxnQkFBZ0I7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQWMsRUFBRSxLQUFVO1FBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUM7WUFDaEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDekIsSUFBSSxDQUFDLG9CQUFvQjthQUN0QixJQUFJLENBQUMsZ0NBQWdDLENBQUM7YUFDdEMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2IsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQy9HLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztnRkFuRFUsZUFBZTtvRUFBZixlQUFlO1lDZjVCLDhCQUErQztZQUM3QyxpRUFBaUY7WUFtRW5GLGlCQUFNOztZQW5FeUMsY0FBa0M7WUFBbEMsdURBQWtDOzs7aUZEY3BFLGVBQWU7Y0FMM0IsU0FBUzsyQkFDRSxnQkFBZ0I7O2tGQUlmLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWZmZWN0IH0gZnJvbSAnLi4vbW9kZWxzL2VmZmVjdCc7XG5pbXBvcnQgeyBFZmZlY3RDdXJ2ZSB9IGZyb20gJy4uL21vZGVscy9lZmZlY3QtY3VydmUnO1xuaW1wb3J0IHsgRWZmZWN0UGFuVGlsdCB9IGZyb20gJy4uL21vZGVscy9lZmZlY3QtcGFuLXRpbHQnO1xuaW1wb3J0IHsgRWZmZWN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2VmZmVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5pbXBvcnQgeyBVdWlkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3V1aWQuc2VydmljZSc7XG5pbXBvcnQgeyBXYXJuaW5nRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3dhcm5pbmctZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItYXBwLWVmZmVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZmZlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZmZlY3QuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFZmZlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHV1aWRTZXJ2aWNlOiBVdWlkU2VydmljZSxcbiAgICBwdWJsaWMgcHJlc2V0U2VydmljZTogUHJlc2V0U2VydmljZSxcbiAgICBwdWJsaWMgZWZmZWN0U2VydmljZTogRWZmZWN0U2VydmljZSxcbiAgICBwcml2YXRlIHdhcm5pbmdEaWFsb2dTZXJ2aWNlOiBXYXJuaW5nRGlhbG9nU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIHByaXZhdGUgYWRkRWZmZWN0KGVmZmVjdDogRWZmZWN0KSB7XG4gICAgdGhpcy5lZmZlY3RTZXJ2aWNlLnNlbGVjdGVkRWZmZWN0ID0gZWZmZWN0O1xuXG4gICAgaWYgKHRoaXMucHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldCkge1xuICAgICAgdGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmVmZmVjdHMucHVzaChlZmZlY3QpO1xuICAgIH1cbiAgfVxuXG4gIGFkZEN1cnZlRWZmZWN0KCkge1xuICAgIGNvbnN0IGVmZmVjdCA9IG5ldyBFZmZlY3RDdXJ2ZSgpO1xuICAgIGVmZmVjdC51dWlkID0gdGhpcy51dWlkU2VydmljZS5nZXRVdWlkKCk7XG4gICAgdGhpcy5hZGRFZmZlY3QoZWZmZWN0KTtcbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgfVxuXG4gIGFkZFBhblRpbHRFZmZlY3QoKSB7XG4gICAgdGhpcy5hZGRFZmZlY3QobmV3IEVmZmVjdFBhblRpbHQoKSk7XG4gIH1cblxuICBvcGVuRWZmZWN0KGVmZmVjdDogRWZmZWN0LCBldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmVmZmVjdFNlcnZpY2Uuc2VsZWN0ZWRFZmZlY3QgPSBlZmZlY3Q7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmVmZmVjdFNlcnZpY2Uuc2VsZWN0ZWRFZmZlY3QgPT09IGVmZmVjdCkge1xuICAgICAgICB0aGlzLmVmZmVjdFNlcnZpY2Uuc2VsZWN0ZWRFZmZlY3QgPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZGVsZXRlRWZmZWN0KGVmZmVjdDogRWZmZWN0KSB7XG4gICAgdGhpcy53YXJuaW5nRGlhbG9nU2VydmljZVxuICAgICAgLnNob3coJ2Rlc2lnbmVyLmVmZmVjdC5kZWxldGUtd2FybmluZycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICB0aGlzLnByZXNldFNlcnZpY2Uuc2VsZWN0ZWRQcmVzZXQuZWZmZWN0cy5zcGxpY2UodGhpcy5wcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0LmVmZmVjdHMuaW5kZXhPZihlZmZlY3QpLCAxKTtcbiAgICAgICAgICAgIHRoaXMucHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNhcmQgYm9yZGVyLXNlY29uZGFyeSBwYW5lbCBoLTEwMFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGNhcGFiaWxpdHktY29udGFpbmVyXCIgKm5nSWY9XCJwcmVzZXRTZXJ2aWNlLnNlbGVjdGVkUHJlc2V0XCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tM1wiPlxuICAgICAgPGFjY29yZGlvbiBbY2xvc2VPdGhlcnNdPVwidHJ1ZVwiPlxuICAgICAgICA8YWNjb3JkaW9uLWdyb3VwXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlc2V0U2VydmljZS5zZWxlY3RlZFByZXNldC5lZmZlY3RzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBbaXNPcGVuXT1cImVmZmVjdFNlcnZpY2Uuc2VsZWN0ZWRFZmZlY3QgPT0gaXRlbVwiXG4gICAgICAgICAgKGlzT3BlbkNoYW5nZSk9XCJvcGVuRWZmZWN0KGl0ZW0sICRldmVudClcIlxuICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMXB4XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpbmsgYnRuLWJsb2NrIGNsZWFyZml4XCIgYWNjb3JkaW9uLWhlYWRpbmc+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHVsbC1sZWZ0IGZsb2F0LWxlZnQgZC1mbGV4IHctMTAwXCI+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbS50eXBlID09ICdjdXJ2ZSdcIiBjbGFzcz1cImZhIGZhLWFyZWEtY2hhcnQgZmEtZncgbXktYXV0b1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3Bhbi10aWx0J1wiIGNsYXNzPVwiZmEgZmEtYXJyb3dzLWFsdCBmYS1mdyBteS1hdXRvXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj57eyAnZGVzaWduZXIuZWZmZWN0LnR5cGUtJyArIGl0ZW0udHlwZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLWF1dG8gbXItMlwiPlxuICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXRlbS52aXNpYmxlID0gIWl0ZW0udmlzaWJsZTsgcHJlc2V0U2VydmljZS5wcmV2aWV3TGl2ZSgpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYSBmYS1leWUgZmEtZndcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnRleHQtcHJpbWFyeV09XCJpdGVtLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTJcIj5cbiAgICAgICAgICAgICAgICA8aSAoY2xpY2spPVwidGhpcy5kZWxldGVFZmZlY3QoaXRlbSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIGNsYXNzPVwiZmEgZmEtdHJhc2ggZmEtZndcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXItMlwiPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbSA9PSBlZmZlY3RTZXJ2aWNlLnNlbGVjdGVkRWZmZWN0XCIgY2xhc3M9XCJmYSBmYS1jYXJldC1kb3duIGZhLWZ3XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbSAhPSBlZmZlY3RTZXJ2aWNlLnNlbGVjdGVkRWZmZWN0XCIgY2xhc3M9XCJmYSBmYS1jYXJldC1yaWdodCBmYS1md1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ2N1cnZlJ1wiIHN0eWxlPVwibWluLXdpZHRoOiA2NzBweFwiPlxuICAgICAgICAgICAgPGxpYi1hcHAtZWZmZWN0LWN1cnZlIFtjdXJ2ZV09XCJpdGVtXCIgW2lzU2VsZWN0ZWRdPVwiaXRlbSA9PSBlZmZlY3RTZXJ2aWNlLnNlbGVjdGVkRWZmZWN0XCI+PC9saWItYXBwLWVmZmVjdC1jdXJ2ZT5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT0gJ3Bhbi10aWx0J1wiIHN0eWxlPVwibWluLXdpZHRoOiA1MDBweFwiPlxuICAgICAgICAgICAgPGxpYi1hcHAtZWZmZWN0LXBhbi10aWx0PjwvbGliLWFwcC1lZmZlY3QtcGFuLXRpbHQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYWNjb3JkaW9uLWdyb3VwPlxuICAgICAgPC9hY2NvcmRpb24+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXgtYXV0byBtdC0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93biBkLWZsZXhcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSBkcm9wZG93bi10b2dnbGVcIlxuICAgICAgICAgICAgaHJlZj1cIiNcIlxuICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBpZD1cImRyb3Bkb3duTWVudUxpbmtcIlxuICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJkcm9wZG93blwiXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtcGx1c1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4ge3sgJ2Rlc2lnbmVyLmVmZmVjdC5hZGQtbmV3JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYT5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25NZW51TGlua1wiPlxuICAgICAgICAgICAgPGEgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCIgaHJlZj1cIiNcIiAoY2xpY2spPVwiYWRkQ3VydmVFZmZlY3QoKTsgKGZhbHNlKVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFyZWEtY2hhcnQgZmEtZndcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IHt7ICdkZXNpZ25lci5lZmZlY3QuY3VydmUnIHwgdHJhbnNsYXRlIH19PC9hXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8IS0tIDxhIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIGhyZWY9XCIjXCIgKGNsaWNrKT1cImFkZFBhblRpbHRFZmZlY3QoKVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93cy1hbHQgZmEtZndcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IFBhbi9UaWx0PC9hPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Component, HostListener } from '@angular/core';
|
|
2
|
+
import { BsModalRef } from 'ngx-bootstrap/modal';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "ngx-bootstrap/modal";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "@ngx-translate/core";
|
|
8
|
+
function ErrorDialogComponent_p_13_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
+
i0.ɵɵelementStart(0, "p", 13);
|
|
10
|
+
i0.ɵɵtext(1);
|
|
11
|
+
i0.ɵɵelementEnd();
|
|
12
|
+
} if (rf & 2) {
|
|
13
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
14
|
+
i0.ɵɵadvance();
|
|
15
|
+
i0.ɵɵtextInterpolate1("(", ctx_r0.details, ")");
|
|
16
|
+
} }
|
|
17
|
+
export class ErrorDialogComponent {
|
|
18
|
+
constructor(bsModalRef) {
|
|
19
|
+
this.bsModalRef = bsModalRef;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.onClose = new Subject();
|
|
23
|
+
}
|
|
24
|
+
ok() {
|
|
25
|
+
this.onClose.next(1);
|
|
26
|
+
this.bsModalRef.hide();
|
|
27
|
+
}
|
|
28
|
+
cancel() {
|
|
29
|
+
this.onClose.next(2);
|
|
30
|
+
this.bsModalRef.hide();
|
|
31
|
+
}
|
|
32
|
+
handleKeyboardEvent(event) {
|
|
33
|
+
this.ok();
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = function ErrorDialogComponent_Factory(t) { return new (t || ErrorDialogComponent)(i0.ɵɵdirectiveInject(i1.BsModalRef)); }; }
|
|
36
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ErrorDialogComponent, selectors: [["lib-error-dialog"]], hostBindings: function ErrorDialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
37
|
+
i0.ɵɵlistener("keydown.enter", function ErrorDialogComponent_keydown_enter_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
|
|
38
|
+
} }, decls: 19, vars: 8, consts: [[1, "card-modal"], [1, "card"], [1, "card-header"], [1, "card-body"], [1, "row"], [1, "col-auto"], [1, "mb-0"], ["aria-hidden", "true", 1, "fa", "fa-exclamation-circle", "text-danger"], [1, "col", "pl-0"], ["class", "mt-1 mb-0", 4, "ngIf"], [1, "card-footer"], [1, "d-flex", "float-right"], ["type", "button", 1, "btn", "btn-primary", 3, "click"], [1, "mt-1", "mb-0"]], template: function ErrorDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2);
|
|
40
|
+
i0.ɵɵtext(3);
|
|
41
|
+
i0.ɵɵpipe(4, "translate");
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
i0.ɵɵelementStart(5, "div", 3)(6, "div", 4)(7, "div", 5)(8, "h2", 6);
|
|
44
|
+
i0.ɵɵelement(9, "i", 7);
|
|
45
|
+
i0.ɵɵelementEnd()();
|
|
46
|
+
i0.ɵɵelementStart(10, "div", 8)(11, "p", 6);
|
|
47
|
+
i0.ɵɵtext(12);
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
i0.ɵɵtemplate(13, ErrorDialogComponent_p_13_Template, 2, 1, "p", 9);
|
|
50
|
+
i0.ɵɵelementEnd()()();
|
|
51
|
+
i0.ɵɵelementStart(14, "div", 10)(15, "div", 11)(16, "button", 12);
|
|
52
|
+
i0.ɵɵlistener("click", function ErrorDialogComponent_Template_button_click_16_listener() { ctx.ok(); return false; });
|
|
53
|
+
i0.ɵɵtext(17);
|
|
54
|
+
i0.ɵɵpipe(18, "translate");
|
|
55
|
+
i0.ɵɵelementEnd()()()()();
|
|
56
|
+
} if (rf & 2) {
|
|
57
|
+
i0.ɵɵadvance(3);
|
|
58
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 4, "designer.misc.error"), " ");
|
|
59
|
+
i0.ɵɵadvance(9);
|
|
60
|
+
i0.ɵɵtextInterpolate(ctx.message);
|
|
61
|
+
i0.ɵɵadvance();
|
|
62
|
+
i0.ɵɵproperty("ngIf", ctx.details);
|
|
63
|
+
i0.ɵɵadvance(4);
|
|
64
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(18, 6, "designer.misc.ok"), " ");
|
|
65
|
+
} }, dependencies: [i2.NgIf, i3.TranslatePipe] }); }
|
|
66
|
+
}
|
|
67
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ErrorDialogComponent, [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ selector: 'lib-error-dialog', template: "<div class=\"card-modal\">\n <div class=\"card\">\n <div class=\"card-header\">\n {{ 'designer.misc.error' | translate }}\n </div>\n\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-auto\">\n <h2 class=\"mb-0\">\n <i class=\"fa fa-exclamation-circle text-danger\" aria-hidden=\"true\"></i>\n </h2>\n </div>\n <div class=\"col pl-0\">\n <p class=\"mb-0\">{{ message }}</p>\n <p *ngIf=\"details\" class=\"mt-1 mb-0\">({{ details }})</p>\n </div>\n </div>\n </div>\n\n <div class=\"card-footer\">\n <div class=\"d-flex float-right\">\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok(); (false)\">\n {{ 'designer.misc.ok' | translate }}\n </button>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
70
|
+
}], () => [{ type: i1.BsModalRef }], { handleKeyboardEvent: [{
|
|
71
|
+
type: HostListener,
|
|
72
|
+
args: ['document:keydown.enter', ['$event']]
|
|
73
|
+
}] }); })();
|
|
74
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ErrorDialogComponent, { className: "ErrorDialogComponent" }); })();
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbmVyL3NyYy9saWIvZXJyb3ItZGlhbG9nL2Vycm9yLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL2Vycm9yLWRpYWxvZy9lcnJvci1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztJQ2FyQiw2QkFBcUM7SUFBQSxZQUFlO0lBQUEsaUJBQUk7OztJQUFuQixjQUFlO0lBQWYsK0NBQWU7O0FETjlELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFHLENBQUM7SUFFOUMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sRUFBRTtRQUNQLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNaLENBQUM7cUZBekJVLG9CQUFvQjtvRUFBcEIsb0JBQW9CO1lBQXBCLCtHQUFBLCtCQUEyQixpQ0FBUDs7WUNQN0IsQUFERixBQURGLDhCQUF3QixhQUNKLGFBQ1M7WUFDdkIsWUFDRjs7WUFBQSxpQkFBTTtZQUtBLEFBREYsQUFERixBQURGLDhCQUF1QixhQUNKLGFBQ08sWUFDSDtZQUNmLHVCQUF1RTtZQUUzRSxBQURFLGlCQUFLLEVBQ0Q7WUFFSixBQURGLCtCQUFzQixZQUNKO1lBQUEsYUFBYTtZQUFBLGlCQUFJO1lBQ2pDLG1FQUFxQztZQUczQyxBQURFLEFBREUsaUJBQU0sRUFDRixFQUNGO1lBSUYsQUFERixBQURGLGdDQUF5QixlQUNTLGtCQUN3QztZQUF4QiwyRkFBUyxRQUFJLFNBQUcsS0FBSyxJQUFFO1lBQ25FLGFBQ0Y7O1lBSVIsQUFERSxBQURFLEFBREUsQUFERSxpQkFBUyxFQUNMLEVBQ0YsRUFDRixFQUNGOztZQXpCQSxlQUNGO1lBREUsNEVBQ0Y7WUFVc0IsZUFBYTtZQUFiLGlDQUFhO1lBQ3pCLGNBQWE7WUFBYixrQ0FBYTtZQVFqQixlQUNGO1lBREUsMEVBQ0Y7OztpRkRmSyxvQkFBb0I7Y0FMaEMsU0FBUzsyQkFDRSxrQkFBa0I7MkNBMkI1QixtQkFBbUI7a0JBRGxCLFlBQVk7bUJBQUMsd0JBQXdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7O2tGQXRCdkMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZXJyb3ItZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Vycm9yLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Vycm9yLWRpYWxvZy5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEVycm9yRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb25DbG9zZTogU3ViamVjdDxudW1iZXI+O1xuXG4gIG1lc3NhZ2U6IHN0cmluZztcbiAgZGV0YWlsczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYnNNb2RhbFJlZjogQnNNb2RhbFJlZikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm9uQ2xvc2UgPSBuZXcgU3ViamVjdCgpO1xuICB9XG5cbiAgcHVibGljIG9rKCk6IHZvaWQge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDEpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBwdWJsaWMgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMub25DbG9zZS5uZXh0KDIpO1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVudGVyJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5vaygpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZC1tb2RhbFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAge3sgJ2Rlc2lnbmVyLm1pc2MuZXJyb3InIHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgIDxoMiBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlIHRleHQtZGFuZ2VyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvaDI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHBsLTBcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTBcIj57eyBtZXNzYWdlIH19PC9wPlxuICAgICAgICAgIDxwICpuZ0lmPVwiZGV0YWlsc1wiIGNsYXNzPVwibXQtMSBtYi0wXCI+KHt7IGRldGFpbHMgfX0pPC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsb2F0LXJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9rKCk7IChmYWxzZSlcIj5cbiAgICAgICAgICB7eyAnZGVzaWduZXIubWlzYy5vaycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';
|
|
2
|
+
import { CachedFixtureChannel } from '../../../models/cached-fixture-channel';
|
|
3
|
+
import { FixtureProfile } from '../../../models/fixture-profile';
|
|
4
|
+
import { PresetService } from '../../../services/preset.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../../services/preset.service";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/forms";
|
|
9
|
+
import * as i4 from "ngx-bootstrap-slider";
|
|
10
|
+
import * as i5 from "@ngx-translate/core";
|
|
11
|
+
const _c0 = ["sliderValue"];
|
|
12
|
+
function FixtureCapabilityChannelComponent_div_9_div_1_span_6_Template(rf, ctx) { if (rf & 1) {
|
|
13
|
+
i0.ɵɵelementStart(0, "span");
|
|
14
|
+
i0.ɵɵtext(1, " - ");
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
} }
|
|
17
|
+
function FixtureCapabilityChannelComponent_div_9_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
19
|
+
i0.ɵɵelementStart(0, "div", 5)(1, "input", 14);
|
|
20
|
+
i0.ɵɵtwoWayListener("ngModelChange", function FixtureCapabilityChannelComponent_div_9_div_1_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.selectedCapability, $event) || (ctx_r1.selectedCapability = $event); return i0.ɵɵresetView($event); });
|
|
21
|
+
i0.ɵɵlistener("change", function FixtureCapabilityChannelComponent_div_9_div_1_Template_input_change_1_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.capabilitySelected()); });
|
|
22
|
+
i0.ɵɵelementEnd();
|
|
23
|
+
i0.ɵɵelementStart(2, "label", 15);
|
|
24
|
+
i0.ɵɵtext(3);
|
|
25
|
+
i0.ɵɵpipe(4, "translate");
|
|
26
|
+
i0.ɵɵelementStart(5, "small");
|
|
27
|
+
i0.ɵɵtemplate(6, FixtureCapabilityChannelComponent_div_9_div_1_span_6_Template, 2, 0, "span", 16);
|
|
28
|
+
i0.ɵɵtext(7);
|
|
29
|
+
i0.ɵɵelementEnd()()();
|
|
30
|
+
} if (rf & 2) {
|
|
31
|
+
const capability_r3 = ctx.$implicit;
|
|
32
|
+
const i_r4 = ctx.index;
|
|
33
|
+
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
34
|
+
i0.ɵɵadvance();
|
|
35
|
+
i0.ɵɵpropertyInterpolate1("name", "capabilityGeneric", ctx_r1.capabilityIndex, "Option");
|
|
36
|
+
i0.ɵɵpropertyInterpolate2("id", "capabilityGeneric", ctx_r1.capabilityIndex, "Option", i_r4, "");
|
|
37
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx_r1.selectedCapability);
|
|
38
|
+
i0.ɵɵproperty("value", capability_r3);
|
|
39
|
+
i0.ɵɵadvance();
|
|
40
|
+
i0.ɵɵpropertyInterpolate2("for", "capabilityGeneric", ctx_r1.capabilityIndex, "Option", i_r4, "");
|
|
41
|
+
i0.ɵɵadvance();
|
|
42
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 13, "designer.fixtureCapabilityType." + capability_r3.capability.type), "");
|
|
43
|
+
i0.ɵɵadvance(3);
|
|
44
|
+
i0.ɵɵproperty("ngIf", capability_r3.capability.comment);
|
|
45
|
+
i0.ɵɵadvance();
|
|
46
|
+
i0.ɵɵtextInterpolate1(" ", capability_r3.capability.comment, "");
|
|
47
|
+
} }
|
|
48
|
+
function FixtureCapabilityChannelComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
49
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
50
|
+
i0.ɵɵtemplate(1, FixtureCapabilityChannelComponent_div_9_div_1_Template, 8, 15, "div", 13);
|
|
51
|
+
i0.ɵɵelementEnd();
|
|
52
|
+
} if (rf & 2) {
|
|
53
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
54
|
+
i0.ɵɵadvance();
|
|
55
|
+
i0.ɵɵproperty("ngForOf", ctx_r1._channel.capabilities);
|
|
56
|
+
} }
|
|
57
|
+
function FixtureCapabilityChannelComponent_div_10_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
const _r5 = i0.ɵɵgetCurrentView();
|
|
59
|
+
i0.ɵɵelementStart(0, "div", 17)(1, "div", 18)(2, "input", 19, 0);
|
|
60
|
+
i0.ɵɵlistener("ngModelChange", function FixtureCapabilityChannelComponent_div_10_Template_input_ngModelChange_2_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setValue($event)); });
|
|
61
|
+
i0.ɵɵelementEnd()();
|
|
62
|
+
i0.ɵɵelementStart(4, "div", 20)(5, "mv-slider", 21, 1);
|
|
63
|
+
i0.ɵɵlistener("change", function FixtureCapabilityChannelComponent_div_10_Template_mv_slider_change_5_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.setValue($event.newValue)); });
|
|
64
|
+
i0.ɵɵelementEnd()()();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
67
|
+
i0.ɵɵclassProp("pl-0", (ctx_r1._channel.capabilities == null ? null : ctx_r1._channel.capabilities.length) > 1);
|
|
68
|
+
i0.ɵɵadvance(2);
|
|
69
|
+
i0.ɵɵproperty("ngModel", ctx_r1.templateValue);
|
|
70
|
+
i0.ɵɵadvance(3);
|
|
71
|
+
i0.ɵɵproperty("value", ctx_r1.templateValue)("orientation", "vertical")("reversed", true)("tooltip", "hide")("min", ctx_r1.rangeMin)("max", ctx_r1.rangeMax)("step", 1);
|
|
72
|
+
} }
|
|
73
|
+
export class FixtureCapabilityChannelComponent {
|
|
74
|
+
set channel(value) {
|
|
75
|
+
this._channel = value;
|
|
76
|
+
this.updateChannel();
|
|
77
|
+
}
|
|
78
|
+
constructor(presetService) {
|
|
79
|
+
this.presetService = presetService;
|
|
80
|
+
this.rangeMin = 0;
|
|
81
|
+
this.rangeMax = 0;
|
|
82
|
+
this.defaultValue = 0;
|
|
83
|
+
this.value = 0;
|
|
84
|
+
this.templateValue = 0;
|
|
85
|
+
}
|
|
86
|
+
updateChannel() {
|
|
87
|
+
this.selectedCapability = this._channel.capabilities[0];
|
|
88
|
+
this.value = this.presetService.getChannelValue(this._channel.name, this.profile.uuid);
|
|
89
|
+
this.calculateTemplateValue();
|
|
90
|
+
if (this.value >= 0) {
|
|
91
|
+
for (const capability of this._channel.capabilities) {
|
|
92
|
+
if (capability.capability.dmxRange.length > 0 && capability.centerValue === this.value) {
|
|
93
|
+
this.selectedCapability = capability;
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
this.rangeMin = this.getRangeMin();
|
|
99
|
+
this.rangeMax = this.getRangeMax();
|
|
100
|
+
this.defaultValue = this.getDefaultValue();
|
|
101
|
+
}
|
|
102
|
+
capabilityHasRange() {
|
|
103
|
+
if (this._channel.capabilities && this._channel.capabilities.length === 1) {
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
if (this.selectedCapability && this.selectedCapability.capability.angleStart) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
getRangeMin() {
|
|
112
|
+
if (this.selectedCapability.capability.dmxRange.length > 0) {
|
|
113
|
+
return this.selectedCapability.capability.dmxRange[0];
|
|
114
|
+
}
|
|
115
|
+
return 0;
|
|
116
|
+
}
|
|
117
|
+
getRangeMax() {
|
|
118
|
+
if (this.selectedCapability.capability.dmxRange.length > 0) {
|
|
119
|
+
return this.selectedCapability.capability.dmxRange[1];
|
|
120
|
+
}
|
|
121
|
+
return this._channel.maxValue;
|
|
122
|
+
}
|
|
123
|
+
ngOnInit() { }
|
|
124
|
+
setValue(value, ignoreCapabilityRange = false) {
|
|
125
|
+
if (isNaN(value)) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (!ignoreCapabilityRange && (value < this.getRangeMin() || value > this.getRangeMax())) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
this.value = value;
|
|
132
|
+
this.calculateTemplateValue();
|
|
133
|
+
this.presetService.setChannelValue(this._channel.name, this.profile.uuid, value);
|
|
134
|
+
if (this.sliderValue) {
|
|
135
|
+
// update the value without change detector for performance reasons and only in a specific
|
|
136
|
+
// interval. each value set will trigger a layout/reflow event and slow down the performance
|
|
137
|
+
// TODO use the same technique in the dimmer/pan/tilt/color sliders
|
|
138
|
+
if (!this.valueSetTimer) {
|
|
139
|
+
this.valueSetTimer = setTimeout(() => {
|
|
140
|
+
this.sliderValue.nativeElement.value = this.value;
|
|
141
|
+
this.valueSetTimer = undefined;
|
|
142
|
+
}, 30);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
this.presetService.previewLive();
|
|
146
|
+
}
|
|
147
|
+
calculateTemplateValue() {
|
|
148
|
+
this.templateValue = this.value ? this.value : this.getDefaultValue();
|
|
149
|
+
}
|
|
150
|
+
getDefaultValue() {
|
|
151
|
+
if (this._channel.defaultValue) {
|
|
152
|
+
return this._channel.defaultValue;
|
|
153
|
+
}
|
|
154
|
+
return 0;
|
|
155
|
+
}
|
|
156
|
+
changeActive(active) {
|
|
157
|
+
if (active) {
|
|
158
|
+
this.setValue(this.getDefaultValue(), true);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
this.presetService.deleteChannelValue(this._channel.name, this.profile.uuid);
|
|
162
|
+
this.selectedCapability = this._channel.capabilities[0];
|
|
163
|
+
this.value = undefined;
|
|
164
|
+
this.calculateTemplateValue();
|
|
165
|
+
}
|
|
166
|
+
this.presetService.previewLive();
|
|
167
|
+
}
|
|
168
|
+
capabilitySelected() {
|
|
169
|
+
// select the center value of the selected capability
|
|
170
|
+
if (this.capabilityHasRange) {
|
|
171
|
+
this.setValue(this.selectedCapability.capability.dmxRange[0], true);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.setValue(this.selectedCapability.centerValue, true);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
static { this.ɵfac = function FixtureCapabilityChannelComponent_Factory(t) { return new (t || FixtureCapabilityChannelComponent)(i0.ɵɵdirectiveInject(i1.PresetService)); }; }
|
|
178
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FixtureCapabilityChannelComponent, selectors: [["lib-app-fixture-capability-channel"]], viewQuery: function FixtureCapabilityChannelComponent_Query(rf, ctx) { if (rf & 1) {
|
|
179
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
180
|
+
} if (rf & 2) {
|
|
181
|
+
let _t;
|
|
182
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sliderValue = _t.first);
|
|
183
|
+
} }, inputs: { profile: "profile", channel: "channel", capabilityIndex: "capabilityIndex" }, decls: 11, vars: 10, consts: [["sliderValue", ""], ["slider", ""], [1, "card", "border-secondary", "h-100", 2, "min-height", "200px"], [1, "card-header"], [1, "my-auto"], [1, "form-check"], ["type", "checkbox", 1, "form-check-input", 3, "ngModelChange", "id", "ngModel"], [1, "form-check-label", 3, "for"], [1, "card-body", "h-100", "d-flex", 2, "flex-direction", "column", "overflow", "hidden"], [1, "row", "h-100"], ["class", "col mr-3", "style", "overflow-y: auto", 4, "ngIf"], ["class", "col col-auto d-flex mx-auto", "style", "flex-direction: column", 3, "pl-0", 4, "ngIf"], [1, "col", "mr-3", 2, "overflow-y", "auto"], ["class", "form-check", 4, "ngFor", "ngForOf"], ["type", "radio", 1, "form-check-input", 3, "ngModelChange", "change", "ngModel", "name", "id", "value"], [1, "form-check-label", 2, "max-width", "200px", 3, "for"], [4, "ngIf"], [1, "col", "col-auto", "d-flex", "mx-auto", 2, "flex-direction", "column"], [1, "mb-4", "w-100", "d-flex"], ["type", "text", 1, "mx-auto", 2, "width", "45px", "height", "20px", "text-align", "center", "font-size", "12px", "font-family", "monospace", 3, "ngModelChange", "ngModel"], [1, "h-100", "w-100", "d-flex"], [1, "mx-auto", 2, "height", "100%", 3, "change", "value", "orientation", "reversed", "tooltip", "min", "max", "step"]], template: function FixtureCapabilityChannelComponent_Template(rf, ctx) { if (rf & 1) {
|
|
184
|
+
i0.ɵɵelementStart(0, "div", 2)(1, "div", 3)(2, "div", 4)(3, "div", 5)(4, "input", 6);
|
|
185
|
+
i0.ɵɵlistener("ngModelChange", function FixtureCapabilityChannelComponent_Template_input_ngModelChange_4_listener($event) { return ctx.changeActive($event); });
|
|
186
|
+
i0.ɵɵelementEnd();
|
|
187
|
+
i0.ɵɵelementStart(5, "label", 7);
|
|
188
|
+
i0.ɵɵtext(6);
|
|
189
|
+
i0.ɵɵelementEnd()()()();
|
|
190
|
+
i0.ɵɵelementStart(7, "div", 8)(8, "div", 9);
|
|
191
|
+
i0.ɵɵtemplate(9, FixtureCapabilityChannelComponent_div_9_Template, 2, 1, "div", 10)(10, FixtureCapabilityChannelComponent_div_10_Template, 7, 10, "div", 11);
|
|
192
|
+
i0.ɵɵelementEnd()()();
|
|
193
|
+
} if (rf & 2) {
|
|
194
|
+
i0.ɵɵclassProp("capability-deactivated", ctx.value == undefined);
|
|
195
|
+
i0.ɵɵadvance(4);
|
|
196
|
+
i0.ɵɵpropertyInterpolate1("id", "capabilityGeneric", ctx.capabilityIndex, "Active");
|
|
197
|
+
i0.ɵɵproperty("ngModel", ctx.value != undefined);
|
|
198
|
+
i0.ɵɵadvance();
|
|
199
|
+
i0.ɵɵpropertyInterpolate1("for", "capabilityGeneric", ctx.capabilityIndex, "Active");
|
|
200
|
+
i0.ɵɵadvance();
|
|
201
|
+
i0.ɵɵtextInterpolate1(" ", ctx._channel == null ? null : ctx._channel.name, " ");
|
|
202
|
+
i0.ɵɵadvance(3);
|
|
203
|
+
i0.ɵɵproperty("ngIf", (ctx._channel.capabilities == null ? null : ctx._channel.capabilities.length) > 1);
|
|
204
|
+
i0.ɵɵadvance();
|
|
205
|
+
i0.ɵɵproperty("ngIf", ctx.capabilityHasRange());
|
|
206
|
+
} }, dependencies: [i2.NgForOf, i2.NgIf, i3.DefaultValueAccessor, i3.CheckboxControlValueAccessor, i3.RadioControlValueAccessor, i3.NgControlStatus, i3.NgModel, i4.SliderComponent, i5.TranslatePipe], changeDetection: 0 }); }
|
|
207
|
+
}
|
|
208
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FixtureCapabilityChannelComponent, [{
|
|
209
|
+
type: Component,
|
|
210
|
+
args: [{ selector: 'lib-app-fixture-capability-channel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card border-secondary h-100\" [class.capability-deactivated]=\"value == undefined\" style=\"min-height: 200px\">\n <div class=\"card-header\">\n <div class=\"my-auto\">\n <div class=\"form-check\">\n <input\n type=\"checkbox\"\n class=\"form-check-input\"\n id=\"capabilityGeneric{{ capabilityIndex }}Active\"\n [ngModel]=\"value != undefined\"\n (ngModelChange)=\"changeActive($event)\"\n />\n <label class=\"form-check-label\" for=\"capabilityGeneric{{ capabilityIndex }}Active\">\n {{ _channel?.name }}\n </label>\n </div>\n </div>\n </div>\n\n <div class=\"card-body h-100 d-flex\" style=\"flex-direction: column; overflow: hidden\">\n <div class=\"row h-100\">\n <!-- display all options, if there is more than one -->\n <div *ngIf=\"_channel.capabilities?.length > 1\" class=\"col mr-3\" style=\"overflow-y: auto\">\n <div *ngFor=\"let capability of _channel.capabilities; let i = index\" class=\"form-check\">\n <input\n [(ngModel)]=\"selectedCapability\"\n (change)=\"capabilitySelected()\"\n class=\"form-check-input\"\n type=\"radio\"\n name=\"capabilityGeneric{{ capabilityIndex }}Option\"\n id=\"capabilityGeneric{{ capabilityIndex }}Option{{ i }}\"\n [value]=\"capability\"\n />\n <label style=\"max-width: 200px\" class=\"form-check-label\" for=\"capabilityGeneric{{ capabilityIndex }}Option{{ i }}\">\n {{ 'designer.fixtureCapabilityType.' + capability.capability.type | translate\n }}<small><span *ngIf=\"capability.capability.comment\"> - </span> {{ capability.capability.comment }}</small>\n </label>\n </div>\n </div>\n\n <!-- display a slider to select the value for the currently selected capability, if it has a range -->\n <div\n *ngIf=\"capabilityHasRange()\"\n class=\"col col-auto d-flex mx-auto\"\n [class.pl-0]=\"_channel.capabilities?.length > 1\"\n style=\"flex-direction: column\"\n >\n <div class=\"mb-4 w-100 d-flex\">\n <input\n #sliderValue\n class=\"mx-auto\"\n type=\"text\"\n [ngModel]=\"templateValue\"\n (ngModelChange)=\"setValue($event)\"\n style=\"width: 45px; height: 20px; text-align: center; font-size: 12px; font-family: monospace\"\n />\n </div>\n\n <div class=\"h-100 w-100 d-flex\">\n <mv-slider\n #slider\n class=\"mx-auto\"\n [value]=\"templateValue\"\n (change)=\"setValue($event.newValue)\"\n [orientation]=\"'vertical'\"\n [reversed]=\"true\"\n style=\"height: 100%\"\n [tooltip]=\"'hide'\"\n [min]=\"rangeMin\"\n [max]=\"rangeMax\"\n [step]=\"1\"\n ></mv-slider>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
|
|
211
|
+
}], () => [{ type: i1.PresetService }], { sliderValue: [{
|
|
212
|
+
type: ViewChild,
|
|
213
|
+
args: ['sliderValue', { static: false }]
|
|
214
|
+
}], profile: [{
|
|
215
|
+
type: Input
|
|
216
|
+
}], channel: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}], capabilityIndex: [{
|
|
219
|
+
type: Input
|
|
220
|
+
}] }); })();
|
|
221
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FixtureCapabilityChannelComponent, { className: "FixtureCapabilityChannelComponent" }); })();
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduZXIvc3JjL2xpYi9maXh0dXJlL2ZpeHR1cmUtY2FwYWJpbGl0eS9maXh0dXJlLWNhcGFiaWxpdHktY2hhbm5lbC9maXh0dXJlLWNhcGFiaWxpdHktY2hhbm5lbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ25lci9zcmMvbGliL2ZpeHR1cmUvZml4dHVyZS1jYXBhYmlsaXR5L2ZpeHR1cmUtY2FwYWJpbGl0eS1jaGFubmVsL2ZpeHR1cmUtY2FwYWJpbGl0eS1jaGFubmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztJQzhCNUMsNEJBQTRDO0lBQUMsbUJBQUU7SUFBQSxpQkFBTzs7OztJQVhqRSxBQURGLDhCQUF3RixnQkFTcEY7SUFQQSw0VUFBZ0M7SUFDaEMscU1BQVUsMkJBQW9CLEtBQUM7SUFGakMsaUJBUUU7SUFDRixpQ0FBbUg7SUFDakgsWUFDRTs7SUFBQSw2QkFBTztJQUFBLGlHQUE0QztJQUFXLFlBQW1DO0lBRXZHLEFBREUsQUFEcUcsaUJBQVEsRUFDckcsRUFDSjs7Ozs7SUFSRixjQUFtRDtJQUFuRCx3RkFBbUQ7SUFDbkQsZ0dBQXdEO0lBTHhELHlEQUFnQztJQU1oQyxxQ0FBb0I7SUFFbUMs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QUFPO2tCQUROLEtBQUs7WUFJRixPQUFPO2tCQURWLEtBQUs7WUFPTixlQUFlO2tCQURkLEtBQUs7O2tGQXZCSyxpQ0FBaUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWNoZWRGaXh0dXJlQ2FwYWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9jYWNoZWQtZml4dHVyZS1jYXBhYmlsaXR5JztcbmltcG9ydCB7IENhY2hlZEZpeHR1cmVDaGFubmVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2NhY2hlZC1maXh0dXJlLWNoYW5uZWwnO1xuaW1wb3J0IHsgRml4dHVyZVByb2ZpbGUgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZml4dHVyZS1wcm9maWxlJztcbmltcG9ydCB7IFByZXNldFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9wcmVzZXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1hcHAtZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZml4dHVyZS1jYXBhYmlsaXR5LWNoYW5uZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maXh0dXJlLWNhcGFiaWxpdHktY2hhbm5lbC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGaXh0dXJlQ2FwYWJpbGl0eUNoYW5uZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdzbGlkZXJWYWx1ZScsIHsgc3RhdGljOiBmYWxzZSB9KSBzbGlkZXJWYWx1ZTogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZENhcGFiaWxpdHk6IENhY2hlZEZpeHR1cmVDYXBhYmlsaXR5O1xuICBfY2hhbm5lbDogQ2FjaGVkRml4dHVyZUNoYW5uZWw7XG5cbiAgcmFuZ2VNaW4gPSAwO1xuICByYW5nZU1heCA9IDA7XG4gIGRlZmF1bHRWYWx1ZSA9IDA7XG4gIHZhbHVlID0gMDtcbiAgdGVtcGxhdGVWYWx1ZSA9IDA7XG5cbiAgdmFsdWVTZXRUaW1lcjogYW55O1xuXG4gIEBJbnB1dCgpXG4gIHByb2ZpbGU6IEZpeHR1cmVQcm9maWxlO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBjaGFubmVsKHZhbHVlOiBDYWNoZWRGaXh0dXJlQ2hhbm5lbCkge1xuICAgIHRoaXMuX2NoYW5uZWwgPSB2YWx1ZTtcbiAgICB0aGlzLnVwZGF0ZUNoYW5uZWwoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGNhcGFiaWxpdHlJbmRleDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcHJlc2V0U2VydmljZTogUHJlc2V0U2VydmljZSkge31cblxuICBwcml2YXRlIHVwZGF0ZUNoYW5uZWwoKSB7XG4gICAgdGhpcy5zZWxlY3RlZENhcGFiaWxpdHkgPSB0aGlzLl9jaGFubmVsLmNhcGFiaWxpdGllc1swXTtcblxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnByZXNldFNlcnZpY2UuZ2V0Q2hhbm5lbFZhbHVlKHRoaXMuX2NoYW5uZWwubmFtZSwgdGhpcy5wcm9maWxlLnV1aWQpO1xuICAgIHRoaXMuY2FsY3VsYXRlVGVtcGxhdGVWYWx1ZSgpO1xuXG4gICAgaWYgKHRoaXMudmFsdWUgPj0gMCkge1xuICAgICAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9mIHRoaXMuX2NoYW5uZWwuY2FwYWJpbGl0aWVzKSB7XG4gICAgICAgIGlmIChjYXBhYmlsaXR5LmNhcGFiaWxpdHkuZG14UmFuZ2UubGVuZ3RoID4gMCAmJiBjYXBhYmlsaXR5LmNlbnRlclZhbHVlID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhcGFiaWxpdHkgPSBjYXBhYmlsaXR5O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yYW5nZU1pbiA9IHRoaXMuZ2V0UmFuZ2VNaW4oKTtcbiAgICB0aGlzLnJhbmdlTWF4ID0gdGhpcy5nZXRSYW5nZU1heCgpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5nZXREZWZhdWx0VmFsdWUoKTtcbiAgfVxuXG4gIGNhcGFiaWxpdHlIYXNSYW5nZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5fY2hhbm5lbC5jYXBhYmlsaXRpZXMgJiYgdGhpcy5fY2hhbm5lbC5jYXBhYmlsaXRpZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWxlY3RlZENhcGFiaWxpdHkgJiYgdGhpcy5zZWxlY3RlZENhcGFiaWxpdHkuY2FwYWJpbGl0eS5hbmdsZVN0YXJ0KSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldFJhbmdlTWluKCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXBhYmlsaXR5LmNhcGFiaWxpdHkuZG14UmFuZ2UubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDYXBhYmlsaXR5LmNhcGFiaWxpdHkuZG14UmFuZ2VbMF07XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGdldFJhbmdlTWF4KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXBhYmlsaXR5LmNhcGFiaWxpdHkuZG14UmFuZ2UubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRDYXBhYmlsaXR5LmNhcGFiaWxpdHkuZG14UmFuZ2VbMV07XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2NoYW5uZWwubWF4VmFsdWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgc2V0VmFsdWUodmFsdWU6IGFueSwgaWdub3JlQ2FwYWJpbGl0eVJhbmdlOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCFpZ25vcmVDYXBhYmlsaXR5UmFuZ2UgJiYgKHZhbHVlIDwgdGhpcy5nZXRSYW5nZU1pbigpIHx8IHZhbHVlID4gdGhpcy5nZXRSYW5nZU1heCgpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGN1bGF0ZVRlbXBsYXRlVmFsdWUoKTtcblxuICAgIHRoaXMucHJlc2V0U2VydmljZS5zZXRDaGFubmVsVmFsdWUodGhpcy5fY2hhbm5lbC5uYW1lLCB0aGlzLnByb2ZpbGUudXVpZCwgdmFsdWUpO1xuICAgIGlmICh0aGlzLnNsaWRlclZhbHVlKSB7XG4gICAgICAvLyB1cGRhdGUgdGhlIHZhbHVlIHdpdGhvdXQgY2hhbmdlIGRldGVjdG9yIGZvciBwZXJmb3JtYW5jZSByZWFzb25zIGFuZCBvbmx5IGluIGEgc3BlY2lmaWNcbiAgICAgIC8vIGludGVydmFsLiBlYWNoIHZhbHVlIHNldCB3aWxsIHRyaWdnZXIgYSBsYXlvdXQvcmVmbG93IGV2ZW50IGFuZCBzbG93IGRvd24gdGhlIHBlcmZvcm1hbmNlXG4gICAgICAvLyBUT0RPIHVzZSB0aGUgc2FtZSB0ZWNobmlxdWUgaW4gdGhlIGRpbW1lci9wYW4vdGlsdC9jb2xvciBzbGlkZXJzXG4gICAgICBpZiAoIXRoaXMudmFsdWVTZXRUaW1lcikge1xuICAgICAgICB0aGlzLnZhbHVlU2V0VGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNsaWRlclZhbHVlLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICAgIHRoaXMudmFsdWVTZXRUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSwgMzApO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlVGVtcGxhdGVWYWx1ZSgpIHtcbiAgICB0aGlzLnRlbXBsYXRlVmFsdWUgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZSgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLl9jaGFubmVsLmRlZmF1bHRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NoYW5uZWwuZGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgY2hhbmdlQWN0aXZlKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUodGhpcy5nZXREZWZhdWx0VmFsdWUoKSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJlc2V0U2VydmljZS5kZWxldGVDaGFubmVsVmFsdWUodGhpcy5fY2hhbm5lbC5uYW1lLCB0aGlzLnByb2ZpbGUudXVpZCk7XG4gICAgICB0aGlzLnNlbGVjdGVkQ2FwYWJpbGl0eSA9IHRoaXMuX2NoYW5uZWwuY2FwYWJpbGl0aWVzWzBdO1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVGVtcGxhdGVWYWx1ZSgpO1xuICAgIH1cbiAgICB0aGlzLnByZXNldFNlcnZpY2UucHJldmlld0xpdmUoKTtcbiAgfVxuXG4gIGNhcGFiaWxpdHlTZWxlY3RlZCgpIHtcbiAgICAvLyBzZWxlY3QgdGhlIGNlbnRlciB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgY2FwYWJpbGl0eVxuICAgIGlmICh0aGlzLmNhcGFiaWxpdHlIYXNSYW5nZSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkQ2FwYWJpbGl0eS5jYXBhYmlsaXR5LmRteFJhbmdlWzBdLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnNlbGVjdGVkQ2FwYWJpbGl0eS5jZW50ZXJWYWx1ZSwgdHJ1ZSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBib3JkZXItc2Vjb25kYXJ5IGgtMTAwXCIgW2NsYXNzLmNhcGFiaWxpdHktZGVhY3RpdmF0ZWRdPVwidmFsdWUgPT0gdW5kZWZpbmVkXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAyMDBweFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXktYXV0b1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIlxuICAgICAgICAgIGlkPVwiY2FwYWJpbGl0eUdlbmVyaWN7eyBjYXBhYmlsaXR5SW5kZXggfX1BY3RpdmVcIlxuICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlICE9IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQWN0aXZlKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiY2FwYWJpbGl0eUdlbmVyaWN7eyBjYXBhYmlsaXR5SW5kZXggfX1BY3RpdmVcIj5cbiAgICAgICAgICB7eyBfY2hhbm5lbD8ubmFtZSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgaC0xMDAgZC1mbGV4XCIgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBvdmVyZmxvdzogaGlkZGVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInJvdyBoLTEwMFwiPlxuICAgICAgPCEtLSBkaXNwbGF5IGFsbCBvcHRpb25zLCBpZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIC0tPlxuICAgICAgPGRpdiAqbmdJZj1cIl9jaGFubmVsLmNhcGFiaWxpdGllcz8ubGVuZ3RoID4gMVwiIGNsYXNzPVwiY29sIG1yLTNcIiBzdHlsZT1cIm92ZXJmbG93LXk6IGF1dG9cIj5cbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2FwYWJpbGl0eSBvZiBfY2hhbm5lbC5jYXBhYmlsaXRpZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImZvcm0tY2hlY2tcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDYXBhYmlsaXR5XCJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwiY2FwYWJpbGl0eVNlbGVjdGVkKClcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgICBuYW1lPVwiY2FwYWJpbGl0eUdlbmVyaWN7eyBjYXBhYmlsaXR5SW5kZXggfX1PcHRpb25cIlxuICAgICAgICAgICAgaWQ9XCJjYXBhYmlsaXR5R2VuZXJpY3t7IGNhcGFiaWxpdHlJbmRleCB9fU9wdGlvbnt7IGkgfX1cIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImNhcGFiaWxpdHlcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgPGxhYmVsIHN0eWxlPVwibWF4LXdpZHRoOiAyMDBweFwiIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImNhcGFiaWxpdHlHZW5lcmlje3sgY2FwYWJpbGl0eUluZGV4IH19T3B0aW9ue3sgaSB9fVwiPlxuICAgICAgICAgICAge3sgJ2Rlc2lnbmVyLmZpeHR1cmVDYXBhYmlsaXR5VHlwZS4nICsgY2FwYWJpbGl0eS5jYXBhYmlsaXR5LnR5cGUgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIH19PHNtYWxsPjxzcGFuICpuZ0lmPVwiY2FwYWJpbGl0eS5jYXBhYmlsaXR5LmNvbW1lbnRcIj4gLSA8L3NwYW4+IHt7IGNhcGFiaWxpdHkuY2FwYWJpbGl0eS5jb21tZW50IH19PC9zbWFsbD5cbiAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGRpc3BsYXkgYSBzbGlkZXIgdG8gc2VsZWN0IHRoZSB2YWx1ZSBmb3IgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjYXBhYmlsaXR5LCBpZiBpdCBoYXMgYSByYW5nZSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjYXBhYmlsaXR5SGFzUmFuZ2UoKVwiXG4gICAgICAgIGNsYXNzPVwiY29sIGNvbC1hdXRvIGQtZmxleCBteC1hdXRvXCJcbiAgICAgICAgW2NsYXNzLnBsLTBdPVwiX2NoYW5uZWwuY2FwYWJpbGl0aWVzPy5sZW5ndGggPiAxXCJcbiAgICAgICAgc3R5bGU9XCJmbGV4LWRpcmVjdGlvbjogY29sdW1uXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTQgdy0xMDAgZC1mbGV4XCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAjc2xpZGVyVmFsdWVcbiAgICAgICAgICAgIGNsYXNzPVwibXgtYXV0b1wiXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICBbbmdNb2RlbF09XCJ0ZW1wbGF0ZVZhbHVlXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogNDVweDsgaGVpZ2h0OiAyMHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IG1vbm9zcGFjZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImgtMTAwIHctMTAwIGQtZmxleFwiPlxuICAgICAgICAgIDxtdi1zbGlkZXJcbiAgICAgICAgICAgICNzbGlkZXJcbiAgICAgICAgICAgIGNsYXNzPVwibXgtYXV0b1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwidGVtcGxhdGVWYWx1ZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cInNldFZhbHVlKCRldmVudC5uZXdWYWx1ZSlcIlxuICAgICAgICAgICAgW29yaWVudGF0aW9uXT1cIid2ZXJ0aWNhbCdcIlxuICAgICAgICAgICAgW3JldmVyc2VkXT1cInRydWVcIlxuICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDEwMCVcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ2hpZGUnXCJcbiAgICAgICAgICAgIFttaW5dPVwicmFuZ2VNaW5cIlxuICAgICAgICAgICAgW21heF09XCJyYW5nZU1heFwiXG4gICAgICAgICAgICBbc3RlcF09XCIxXCJcbiAgICAgICAgICA+PC9tdi1zbGlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|