blob: 3708edb0b99e47aa041c56adee656a5aaa6e12dd [file] [log] [blame]
{"version":3,"file":"cdk-bidi.umd.min.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"],"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"],"names":["DIR_DOCUMENT_FACTORY","inject","DOCUMENT","DIR_DOCUMENT","InjectionToken","providedIn","factory","Directionality","_document","this","value","change","EventEmitter","bodyDir","body","dir","htmlDir","documentElement","prototype","ngOnDestroy","complete","type","Injectable","args","undefined","decorators","Optional","Inject","Dir","_dir","_isInitialized","Object","defineProperty","old","normalizedValue","toLowerCase","_rawDir","emit","ngAfterContentInit","Directive","selector","providers","provide","useExisting","host","[attr.dir]","exportAs","Output","Input","BidiModule","NgModule","exports","declarations"],"mappings":";;;;;;;uWAiCA,SAAgBA,KACd,MAAOC,GAAAA,OAAOC,EAAAA,UAPhB,GAAaC,GAAe,GAAIC,GAAAA,eAAyB,eACvDC,WAAY,OACZC,QAASN,ICVXO,EAAA,WAQE,QAAFA,GAAgDC,GAC5C,GANOC,KAAXC,MAA8B,MAGnBD,KAAXE,OAAoB,GAAIC,GAAAA,aAGhBJ,EAAW,CAKnB,GAAYK,GAAUL,EAAUM,KAAON,EAAUM,KAAKC,IAAM,KAChDC,EAAUR,EAAUS,gBAAkBT,EAAUS,gBAAgBF,IAAM,KACtEL,EAAQG,GAAWG,CACzBP,MAAKC,MAAmB,QAAVA,GAA6B,QAAVA,EAAmBA,EAAQ,OApClE,MAwCEH,GAAFW,UAAAC,YAAE,WACEV,KAAKE,OAAOS,2BAtBhBC,KAACC,EAAAA,WAADC,OAAalB,WAAY,+CAQzBgB,SAAAG,GAAAC,aAAAJ,KAAeK,EAAAA,WAAfL,KAA2BM,EAAAA,OAA3BJ,MAAkCpB,8HA3BlCI,KCyBAqB,EAAA,WAAA,QAAAA,KAQUnB,KAAVoB,KAA4B,MAGlBpB,KAAVqB,gBAAoC,EAMbrB,KAAvBE,OAAgC,GAAIC,GAAAA,aA4BpC,MAzBEmB,QAAFC,eACMJ,EADNV,UAAA,WAAE,WACuB,MAAOT,MAAKoB,UACnC,SAAQnB,GACV,GAAUuB,GAAMxB,KAAKoB,KACXK,EAAkBxB,EAAQA,EAAMyB,cAAgBzB,CAEtDD,MAAK2B,QAAU1B,EACfD,KAAKoB,KAA4B,QAApBK,GAAiD,QAApBA,EAA6BA,EAAkB,MAErFD,IAAQxB,KAAKoB,MAAQpB,KAAKqB,gBAC5BrB,KAAKE,OAAO0B,KAAK5B,KAAKoB,uCAK1BE,OAAFC,eAAMJ,EAANV,UAAA,aAAE,WAAyB,MAAOT,MAAKM,qCAGrCa,EAAFV,UAAAoB,mBAAE,WACE7B,KAAKqB,gBAAiB,GAGxBF,EAAFV,UAAAC,YAAE,WACEV,KAAKE,OAAOS,2BA3ChBC,KAACkB,EAAAA,UAADhB,OACEiB,SAAU,QACVC,YAAaC,QAASnC,EAAgBoC,YAAaf,IACnDgB,MAAOC,aAAc,WACrBC,SAAU,4BAaZnC,SAAAU,KAAG0B,EAAAA,OAAHxB,MAAU,eAGVR,MAAAM,KAAG2B,EAAAA,SAyBHpB,KC1DAqB,EAAA,WAAA,QAAAA,MAI0B,sBAJ1B5B,KAAC6B,EAAAA,SAAD3B,OACE4B,SAAUvB,GACVwB,cAAexB,OAEjBqB"}