blob: d61005fb46e1b3f4599503ce6b71e272166f50aa [file] [log] [blame]
{"version":3,"file":"cdk-bidi.umd.js","sources":["../../../../../src/cdk/bidi/dir-document-token.ts","../../../../../src/cdk/bidi/directionality.ts","../../../../../src/cdk/bidi/dir.ts","../../../../../src/cdk/bidi/bidi-module.ts","../../../../../src/cdk/bidi/public-api.ts","../../../../../src/cdk/bidi/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 {DOCUMENT} from '@angular/common';\nimport {inject, InjectionToken} from '@angular/core';\n\n\n/**\n * Injection token used to inject the document into Directionality.\n * This is used so that the value can be faked in tests.\n *\n * We can't use the real document in tests because changing the real `dir` causes geometry-based\n * tests in Safari to fail.\n *\n * We also can't re-provide the DOCUMENT token from platform-brower because the unit tests\n * themselves use things like `querySelector` in test code.\n *\n * This token is defined in a separate file from Directionality as a workaround for\n * https://github.com/angular/angular/issues/22559\n *\n * @docs-private\n */\nexport const DIR_DOCUMENT = new InjectionToken<Document>('cdk-dir-doc', {\n providedIn: 'root',\n factory: DIR_DOCUMENT_FACTORY,\n});\n\n/** @docs-private */\nexport function DIR_DOCUMENT_FACTORY(): Document {\n return inject(DOCUMENT);\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 {EventEmitter, Inject, Injectable, Optional, OnDestroy} from '@angular/core';\nimport {DIR_DOCUMENT} from './dir-document-token';\n\n\nexport type Direction = 'ltr' | 'rtl';\n\n\n/**\n * The directionality (LTR / RTL) context for the application (or a subtree of it).\n * Exposes the current direction and a stream of direction changes.\n */\n@Injectable({providedIn: 'root'})\nexport class Directionality implements OnDestroy {\n /** The current 'ltr' or 'rtl' value. */\n readonly value: Direction = 'ltr';\n\n /** Stream that emits whenever the 'ltr' / 'rtl' state changes. */\n readonly change = new EventEmitter<Direction>();\n\n constructor(@Optional() @Inject(DIR_DOCUMENT) _document?: any) {\n if (_document) {\n // TODO: handle 'auto' value -\n // We still need to account for dir=\"auto\".\n // It looks like HTMLElemenet.dir is also \"auto\" when that's set to the attribute,\n // but getComputedStyle return either \"ltr\" or \"rtl\". avoiding getComputedStyle for now\n const bodyDir = _document.body ? _document.body.dir : null;\n const htmlDir = _document.documentElement ? _document.documentElement.dir : null;\n const value = bodyDir || htmlDir;\n this.value = (value === 'ltr' || value === 'rtl') ? value : 'ltr';\n }\n }\n\n ngOnDestroy() {\n this.change.complete();\n }\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 {\n Directive,\n Output,\n Input,\n EventEmitter,\n AfterContentInit,\n OnDestroy,\n} from '@angular/core';\n\nimport {Direction, Directionality} from './directionality';\n\n/**\n * Directive to listen for changes of direction of part of the DOM.\n *\n * Provides itself as Directionality such that descendant directives only need to ever inject\n * Directionality to get the closest direction.\n */\n@Directive({\n selector: '[dir]',\n providers: [{provide: Directionality, useExisting: Dir}],\n host: {'[attr.dir]': '_rawDir'},\n exportAs: 'dir',\n})\nexport class Dir implements Directionality, AfterContentInit, OnDestroy {\n /** Normalized direction that accounts for invalid/unsupported values. */\n private _dir: Direction = 'ltr';\n\n /** Whether the `value` has been set to its initial value. */\n private _isInitialized: boolean = false;\n\n /** Direction as passed in by the consumer. */\n _rawDir: string;\n\n /** Event emitted when the direction changes. */\n @Output('dirChange') change = new EventEmitter<Direction>();\n\n /** @docs-private */\n @Input()\n get dir(): Direction { return this._dir; }\n set dir(value: Direction) {\n const old = this._dir;\n const normalizedValue = value ? value.toLowerCase() : value;\n\n this._rawDir = value;\n this._dir = (normalizedValue === 'ltr' || normalizedValue === 'rtl') ? normalizedValue : 'ltr';\n\n if (old !== this._dir && this._isInitialized) {\n this.change.emit(this._dir);\n }\n }\n\n /** Current layout direction of the element. */\n get value(): Direction { return this.dir; }\n\n /** Initialize once default value has been set. */\n ngAfterContentInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n this.change.complete();\n }\n}\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 {Dir} from './dir';\n\n\n@NgModule({\n exports: [Dir],\n declarations: [Dir],\n})\nexport class BidiModule { }\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 {Directionality, Direction} from './directionality';\nexport {DIR_DOCUMENT} from './dir-document-token';\nexport {Dir} from './dir';\nexport * from './bidi-module';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {DIR_DOCUMENT_FACTORY as ɵangular_material_src_cdk_bidi_bidi_a} from './dir-document-token';"],"names":["InjectionToken","inject","DOCUMENT","EventEmitter","Injectable","Optional","Inject","Directive","Output","Input","NgModule"],"mappings":";;;;;;IAAA;;;;;;;AAQA,IAIA;;;;;;;;;;;;;;;AAeA,QAAa,YAAY,GAAG,IAAIA,iBAAc,CAAW,aAAa,EAAE;QACtE,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,oBAAoB;KAC9B,CAAC,CAAC;IAEH;AACA,aAAgB,oBAAoB;QAClC,OAAOC,SAAM,CAACC,eAAQ,CAAC,CAAC;IAC1B,CAAC;;ICnCD;;;;;;;AAQA,IAOA;;;;AAKA;QAOE,wBAA8C,SAAe;;YALpD,UAAK,GAAc,KAAK,CAAC;;YAGzB,WAAM,GAAG,IAAIC,eAAY,EAAa,CAAC;YAG9C,IAAI,SAAS,EAAE;;;;;gBAKb,IAAM,OAAO,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAC3D,IAAM,OAAO,GAAG,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,GAAG,IAAI,CAAC;gBACjF,IAAM,KAAK,GAAG,OAAO,IAAI,OAAO,CAAC;gBACjC,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC;aACnE;SACF;QAED,oCAAW,GAAX;YACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACxB;;;;;gBAvBFC,aAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;;gDAQjBC,WAAQ,YAAIC,SAAM,SAAC,YAAY;;;IC3B9C;;;;;;;AAQA,IAWA;;;;;;AAYA;QANA;;YAQU,SAAI,GAAc,KAAK,CAAC;;YAGxB,mBAAc,GAAY,KAAK,CAAC;;YAMnB,WAAM,GAAG,IAAIH,eAAY,EAAa,CAAC;SA4B7D;QAzBC,sBACI,oBAAG;;iBADP,cACuB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE;iBAC1C,UAAQ,KAAgB;gBACtB,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;gBACtB,IAAM,eAAe,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;gBAE5D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,KAAK,KAAK,IAAI,eAAe,KAAK,KAAK,IAAI,eAAe,GAAG,KAAK,CAAC;gBAE/F,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;oBAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;aACF;;;WAXyC;QAc1C,sBAAI,sBAAK;;iBAAT,cAAyB,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;;;WAAA;;QAG3C,gCAAkB,GAAlB;YACE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QAED,yBAAW,GAAX;YACE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;SACxB;;;;gBA5CFI,YAAS,SAAC;oBACT,QAAQ,EAAE,OAAO;oBACjB,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,EAAC,CAAC;oBACxD,IAAI,EAAE,EAAC,YAAY,EAAE,SAAS,EAAC;oBAC/B,QAAQ,EAAE,KAAK;iBAChB;;;yBAYEC,SAAM,SAAC,WAAW;sBAGlBC,QAAK;;;IC7CR;;;;;;;AAQA;QAQA;;;;;gBAJCC,WAAQ,SAAC;oBACR,OAAO,EAAE,CAAC,GAAG,CAAC;oBACd,YAAY,EAAE,CAAC,GAAG,CAAC;iBACpB;;;ICfD;;;;;;OAMG;;ICNH;;OAEG;;;;;;;;;;;;;;;;"}