{"version":3,"file":"obliczeniowo-elementary-channel-volume.mjs","sources":["../../../../projects/components/channel-volume/components/channel-volume/channel-volume.component.ts","../../../../projects/components/channel-volume/components/channel-volume/channel-volume.component.html","../../../../projects/components/channel-volume/channel-volume.module.ts","../../../../projects/components/channel-volume/obliczeniowo-elementary-channel-volume.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, model } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nexport interface Volumes {\n  left: number;\n  right: number;\n}\n\n@Component({\n    selector: 'obl-channel-volume',\n    templateUrl: './channel-volume.component.html',\n    styleUrls: ['./channel-volume.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        {\n            provide: NG_VALUE_ACCESSOR,\n            multi: true,\n            useExisting: ChannelVolumeComponent\n        },\n    ],\n    standalone: false\n})\nexport class ChannelVolumeComponent implements ControlValueAccessor {\n  /** Volumes value from range 0-1 */\n  volumes = model<Volumes>({\n    left: 0, right: 0\n  });\n\n  protected random?: number;\n\n  onChange = (value: { left: number; right: number }) => { };\n\n  onTouched = () => { };\n\n  registerOnValidatorChange(fn: () => void): void { this.onChange = fn; };\n\n  writeValue(set?: { left: number; right: number }): void {\n    if (set) {\n      this.volumes.set(set);\n    }\n  }\n\n  registerOnChange(onChange: any): void {\n    this.onChange = onChange;\n  }\n\n  registerOnTouched(onTouched: any): void {\n    this.onTouched = onTouched;\n  }\n\n  constructor() {\n    while (!this.random || document.querySelector(this.leftId)) {\n      this.random = Math.ceil(Math.random() * 10000000);\n    }\n  }\n\n  get leftId(): string {\n    return 'channelVolumeLeft' + this.random;\n  }\n\n  get rightId(): string {\n    return 'channelVolumeRight' + this.random;\n  }\n}\n","<svg width=\"100%\" viewBox=\"0 0 54.239583 25.135417\">\n  <defs>\n    <clipPath [attr.id]=\"rightId\">\n      <rect\n        [attr.width]=\"volumes().right * 30\"\n        height=\"10.583344\"\n        [attr.x]=\"31.749997 - volumes().right * 30\"\n        y=\"273.1875\"\n      />\n    </clipPath>\n    <clipPath [attr.id]=\"leftId\">\n      <rect\n        [attr.width]=\"volumes().left * 30\"\n        height=\"10.583333\"\n        [attr.x]=\"22.489584\"\n        y=\"285.09375\"\n      />\n    </clipPath>\n  </defs>\n  <g transform=\"translate(0,-271.86457)\">\n    <path\n      class=\"volume-left-background\"\n      d=\"m 1.3229167,273.18749 v 10.58333 h 3.9687499 v -10.58333 z m 5.2916666,1.32291 v 9.26042 h 3.9687507 v -9.26042 z m 5.2916667,1.32292 v 7.9375 H 15.875 v -7.9375 z m 5.291667,1.32292 v 6.61458 h 3.96875 v -6.61458 z m 5.291666,2.64583 v 3.96875 h 3.96875 v -3.96875 z m 5.291667,2.64583 v 1.32292 H 31.75 v -1.32292 z\"\n    />\n    <path\n      class=\"volume-right-background\"\n      d=\"m 52.916667,295.67707 v -10.58333 h -3.96875 v 10.58333 z m -5.291666,-1.32292 v -9.26041 h -3.96875 v 9.26041 z m -5.291667,-1.32291 v -7.9375 h -3.96875 v 7.9375 z m -5.291666,-1.32292 v -6.61458 h -3.96875 v 6.61458 z m -5.291667,-2.64583 v -3.96875 h -3.96875 v 3.96875 z m -5.291667,-2.64584 v -1.32291 h -3.96875 v 1.32291 z\"\n    />\n    <g class=\"lines\">\n      <path\n        d=\"m 20.6375,285.09374 h 0.529166 l 1e-6,10.58333 h -0.529166\"\n        style=\"\n          fill: none;\n          stroke-width: 0.25;\n          stroke-linecap: round;\n          stroke-linejoin: round;\n        \"\n      />\n      <path\n        d=\"M 21.166667,290.3854 H 20.637501\"\n        style=\"\n          stroke-width: 0.25;\n          stroke-linecap: round;\n          stroke-linejoin: round;\n        \"\n      />\n    </g>\n    <g transform=\"matrix(-1,0,0,1,54.239583,-10.58333)\" class=\"lines\">\n      <path\n        style=\"\n          fill: none;\n          stroke-width: 0.25;\n          stroke-linecap: round;\n          stroke-linejoin: round;\n        \"\n        d=\"m 20.6375,283.77082 h 0.529166 l 0,10.58333 H 20.6375\"\n      />\n      <path\n        style=\"\n          stroke-width: 0.25;\n          stroke-linecap: round;\n          stroke-linejoin: round;\n        \"\n        d=\"M 21.166666,289.06248 H 20.6375\"\n      />\n    </g>\n    <path\n      d=\"m 1.3229167,273.18749 v 10.58333 h 3.9687499 v -10.58333 z m 5.2916666,1.32291 v 9.26042 h 3.9687507 v -9.26042 z m 5.2916667,1.32292 v 7.9375 H 15.875 v -7.9375 z m 5.291667,1.32292 v 6.61458 h 3.96875 v -6.61458 z m 5.291666,2.64583 v 3.96875 h 3.96875 v -3.96875 z m 5.291667,2.64583 v 1.32292 H 31.75 v -1.32292 z\"\n      class=\"volume-left\"\n      [attr.clip-path]=\"'url(#' + rightId + ')'\"\n    />\n    <path\n      class=\"volume-right\"\n      d=\"m 52.916667,295.67707 v -10.58333 h -3.96875 v 10.58333 z m -5.291666,-1.32292 v -9.26041 h -3.96875 v 9.26041 z m -5.291667,-1.32291 v -7.9375 h -3.96875 v 7.9375 z m -5.291666,-1.32292 v -6.61458 h -3.96875 v 6.61458 z m -5.291667,-2.64583 v -3.96875 h -3.96875 v 3.96875 z m -5.291667,-2.64584 v -1.32291 h -3.96875 v 1.32291 z\"\n      [attr.clip-path]=\"'url(#' + leftId + ')'\"\n    />\n  </g>\n</svg>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ChannelVolumeComponent } from './components/channel-volume/channel-volume.component';\n\n@NgModule({\n  declarations: [\n    ChannelVolumeComponent\n  ],\n  imports: [\n    CommonModule\n  ],\n  exports: [\n    ChannelVolumeComponent\n  ]\n})\nexport class ChannelVolumeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}