{"version":3,"file":"divider.js","sources":["../../../../../../src/material/divider/divider.ts","../../../../../../src/material/divider/divider-module.ts","../../../../../../src/material/divider/public-api.ts","../../../../../../src/material/divider/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ChangeDetectionStrategy, Component, Input, ViewEncapsulation} from '@angular/core';\nimport {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\n\n@Component({\n  selector: 'mat-divider',\n  host: {\n    'role': 'separator',\n    '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n    '[class.mat-divider-vertical]': 'vertical',\n    '[class.mat-divider-horizontal]': '!vertical',\n    '[class.mat-divider-inset]': 'inset',\n    'class': 'mat-divider'\n  },\n  template: '',\n  styleUrls: ['divider.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MatDivider {\n  /** Whether the divider is vertically aligned. */\n  @Input()\n  get vertical(): boolean { return this._vertical; }\n  set vertical(value: boolean) { this._vertical = coerceBooleanProperty(value); }\n  private _vertical: boolean = false;\n\n  /** Whether the divider is an inset divider. */\n  @Input()\n  get inset(): boolean { return this._inset; }\n  set inset(value: boolean) { this._inset = coerceBooleanProperty(value); }\n  private _inset: boolean = false;\n\n  static ngAcceptInputType_vertical: BooleanInput;\n  static ngAcceptInputType_inset: BooleanInput;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\nimport {MatCommonModule} from '@angular/material/core';\nimport {MatDivider} from './divider';\n\n\n@NgModule({\n  imports: [MatCommonModule],\n  exports: [MatDivider, MatCommonModule],\n  declarations: [MatDivider],\n})\nexport class MatDividerModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport * from './divider';\nexport * from './divider-module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAAA;;;;;;;AAQA,MAkBa,UAAU;IAfvB;QAoBU,cAAS,GAAY,KAAK,CAAC;QAM3B,WAAM,GAAY,KAAK,CAAC;KAIjC;;IAbC,IACI,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;IAClD,IAAI,QAAQ,CAAC,KAAc,IAAI,IAAI,CAAC,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;;IAI/E,IACI,KAAK,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;IAC5C,IAAI,KAAK,CAAC,KAAc,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE;;;YAzB1E,SAAS,SAAC;gBACT,QAAQ,EAAE,aAAa;gBACvB,IAAI,EAAE;oBACJ,MAAM,EAAE,WAAW;oBACnB,yBAAyB,EAAE,sCAAsC;oBACjE,8BAA8B,EAAE,UAAU;oBAC1C,gCAAgC,EAAE,WAAW;oBAC7C,2BAA2B,EAAE,OAAO;oBACpC,OAAO,EAAE,aAAa;iBACvB;gBACD,QAAQ,EAAE,EAAE;gBAEZ,aAAa,EAAE,iBAAiB,CAAC,IAAI;gBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;aAChD;;;uBAGE,KAAK;oBAML,KAAK;;;AClCR;;;;;;;AAQA,MAUa,gBAAgB;;;YAL5B,QAAQ,SAAC;gBACR,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,OAAO,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC;gBACtC,YAAY,EAAE,CAAC,UAAU,CAAC;aAC3B;;;ACjBD;;;;;;GAMG;;ACNH;;GAEG;;;;"}