text: /**
   * Copyright 2017 Google Inc. All Rights Reserved.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  import {MDCComponent} from './base';
  import MDCLinearProgressFoundation from './linear-progress/foundation';
  
  export {MDCLinearProgressFoundation};
  
  export class MDCLinearProgress extends MDCComponent {
    static attachTo(root) {
      return new MDCLinearProgress(root);
    }
  
    set determinate(value) {
      this.foundation_.setDeterminate(value);
    }
  
    set progress(value) {
      this.foundation_.setProgress(value);
    }
  
    set buffer(value) {
      this.foundation_.setBuffer(value);
    }
  
    set reverse(value) {
      this.foundation_.setReverse(value);
    }
  
    open() {
      this.foundation_.open();
    }
  
    close() {
      this.foundation_.close();
    }
  
    getDefaultFoundation() {
      return new MDCLinearProgressFoundation({
        addClass: (className) => this.root_.classList.add(className),
        getPrimaryBar: () => this.root_.querySelector(MDCLinearProgressFoundation.strings.PRIMARY_BAR_SELECTOR),
        getBuffer: () => this.root_.querySelector(MDCLinearProgressFoundation.strings.BUFFER_SELECTOR),
        hasClass: (className) => this.root_.classList.contains(className),
        removeClass: (className) => this.root_.classList.remove(className),
        setStyle: (el, styleProperty, value) => el.style[styleProperty] = value,
      });
    }
  }
  