blob: 88866cc5488340a5f2718d0dbe3fe0eeff98da93 [file] [log] [blame]
{"version":3,"file":"extended.es5.js","sources":["../../../src/lib/extended/module.ts","../../../src/lib/extended/style/style.ts","../../../src/lib/extended/style/style-transforms.ts","../../../src/lib/extended/show-hide/show-hide.ts","../../../src/lib/extended/class/class.ts","../../../src/lib/extended/img-src/img-src.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 */\nimport {NgModule} from '@angular/core';\nimport {CoreModule} from '@angular/flex-layout/core';\n\nimport {DefaultImgSrcDirective} from './img-src/img-src';\nimport {DefaultClassDirective} from './class/class';\nimport {DefaultShowHideDirective} from './show-hide/show-hide';\nimport {DefaultStyleDirective} from './style/style';\n\n\nconst ALL_DIRECTIVES = [\n DefaultShowHideDirective,\n DefaultClassDirective,\n DefaultStyleDirective,\n DefaultImgSrcDirective\n];\n\n/**\n * *****************************************************************\n * Define module for the Extended API\n * *****************************************************************\n */\n\n@NgModule({\n imports: [CoreModule],\n declarations: [...ALL_DIRECTIVES],\n exports: [...ALL_DIRECTIVES]\n})\nexport class ExtendedModule {\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 */\nimport {\n Directive,\n DoCheck,\n ElementRef,\n Inject,\n Optional,\n PLATFORM_ID,\n SecurityContext,\n Self,\n} from '@angular/core';\nimport {isPlatformServer, NgStyle, ɵNgStyleImpl, ɵNgStyleR2Impl} from '@angular/common';\nimport {DomSanitizer} from '@angular/platform-browser';\nimport {\n BaseDirective2,\n StyleUtils,\n MediaMarshaller,\n SERVER_TOKEN,\n} from '@angular/flex-layout/core';\n\nimport {\n NgStyleRawList,\n NgStyleType,\n NgStyleSanitizer,\n buildRawList,\n getType,\n buildMapFromSet,\n NgStyleMap,\n NgStyleKeyValue,\n stringToKeyValue,\n keyValuesToMap,\n} from './style-transforms';\n\nexport class StyleDirective extends BaseDirective2 implements DoCheck {\n\n protected DIRECTIVE_KEY = 'ngStyle';\n protected fallbackStyles: NgStyleMap;\n protected isServer: boolean;\n\n constructor(protected elementRef: ElementRef,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n protected delegate: ɵNgStyleImpl,\n protected sanitizer: DomSanitizer,\n @Optional() @Self() private readonly ngStyleInstance: NgStyle,\n @Optional() @Inject(SERVER_TOKEN) serverLoaded: boolean,\n @Inject(PLATFORM_ID) platformId: Object) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngStyleInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been\n // defined on the same host element; since the responsive variations may be defined...\n this.ngStyleInstance = new NgStyle(this.delegate);\n }\n this.init();\n const styles = this.nativeElement.getAttribute('style') || '';\n this.fallbackStyles = this.buildStyleMap(styles);\n this.isServer = serverLoaded && isPlatformServer(platformId);\n }\n\n /** Add generated styles */\n protected updateWithValue(value: any) {\n const styles = this.buildStyleMap(value);\n this.ngStyleInstance.ngStyle = {...this.fallbackStyles, ...styles};\n if (this.isServer) {\n this.applyStyleToElement(styles);\n }\n this.ngStyleInstance.ngDoCheck();\n }\n\n /** Remove generated styles */\n protected clearStyles() {\n this.ngStyleInstance.ngStyle = this.fallbackStyles;\n this.ngStyleInstance.ngDoCheck();\n }\n\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n */\n protected buildStyleMap(styles: NgStyleType): NgStyleMap {\n // Always safe-guard (aka sanitize) style property values\n const sanitizer: NgStyleSanitizer = (val: any) =>\n this.sanitizer.sanitize(SecurityContext.STYLE, val) || '';\n if (styles) {\n switch (getType(styles)) {\n case 'string': return buildMapFromList(buildRawList(styles),\n sanitizer);\n case 'array' : return buildMapFromList(styles as NgStyleRawList, sanitizer);\n case 'set' : return buildMapFromSet(styles, sanitizer);\n default : return buildMapFromSet(styles, sanitizer);\n }\n }\n\n return {};\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /** For ChangeDetectionStrategy.onPush and ngOnChanges() updates */\n ngDoCheck() {\n this.ngStyleInstance.ngDoCheck();\n }\n}\n\nconst inputs = [\n 'ngStyle',\n 'ngStyle.xs', 'ngStyle.sm', 'ngStyle.md', 'ngStyle.lg', 'ngStyle.xl',\n 'ngStyle.lt-sm', 'ngStyle.lt-md', 'ngStyle.lt-lg', 'ngStyle.lt-xl',\n 'ngStyle.gt-xs', 'ngStyle.gt-sm', 'ngStyle.gt-md', 'ngStyle.gt-lg'\n];\n\nconst selector = `\n [ngStyle],\n [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl],\n [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl],\n [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]\n`;\n\n// tslint:disable-next-line:variable-name\nexport const LayoutNgStyleImplProvider = {\n provide: ɵNgStyleImpl,\n useClass: ɵNgStyleR2Impl\n};\n\n/**\n * Directive to add responsive support for ngStyle.\n *\n */\n@Directive({selector, inputs, providers: [LayoutNgStyleImplProvider]})\nexport class DefaultStyleDirective extends StyleDirective implements DoCheck {\n protected inputs = inputs;\n}\n\n/** Build a styles map from a list of styles, while sanitizing bad values first */\nfunction buildMapFromList(styles: NgStyleRawList, sanitize?: NgStyleSanitizer): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter(entry => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\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\nexport type NgStyleRawList = string[];\nexport type NgStyleMap = {[klass: string]: string};\n// NgStyle selectors accept NgStyleType values\nexport type NgStyleType = string | Set<string> | NgStyleRawList | NgStyleMap;\n\n/**\n * Callback function for SecurityContext.STYLE sanitization\n */\nexport type NgStyleSanitizer = (val: any) => string;\n\n/** NgStyle allowed inputs */\nexport class NgStyleKeyValue {\n constructor(public key: string, public value: string, noQuotes = true) {\n this.key = noQuotes ? key.replace(/['\"]/g, '').trim() : key.trim();\n\n this.value = noQuotes ? value.replace(/['\"]/g, '').trim() : value.trim();\n this.value = this.value.replace(/;/, '');\n }\n}\n\nexport function getType(target: any): string {\n let what = typeof target;\n if (what === 'object') {\n return (target.constructor === Array) ? 'array' :\n (target.constructor === Set) ? 'set' : 'object';\n }\n return what;\n}\n\n/**\n * Split string of key:value pairs into Array of k-v pairs\n * e.g. 'key:value; key:value; key:value;' -> ['key:value',...]\n */\nexport function buildRawList(source: any, delimiter = ';'): NgStyleRawList {\n return String(source)\n .trim()\n .split(delimiter)\n .map((val: string) => val.trim())\n .filter(val => val !== '');\n}\n\n/** Convert array of key:value strings to a iterable map object */\nexport function buildMapFromList(styles: NgStyleRawList, sanitize?: NgStyleSanitizer): NgStyleMap {\n const sanitizeValue = (it: NgStyleKeyValue) => {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n };\n\n return styles\n .map(stringToKeyValue)\n .filter(entry => !!entry)\n .map(sanitizeValue)\n .reduce(keyValuesToMap, {} as NgStyleMap);\n}\n\n/** Convert Set<string> or raw Object to an iterable NgStyleMap */\nexport function buildMapFromSet(source: NgStyleType, sanitize?: NgStyleSanitizer): NgStyleMap {\n let list: string[] = [];\n if (getType(source) === 'set') {\n (source as Set<string>).forEach(entry => list.push(entry));\n } else {\n Object.keys(source).forEach((key: string) => {\n list.push(`${key}:${(source as NgStyleMap)[key]}`);\n });\n }\n return buildMapFromList(list, sanitize);\n}\n\n\n/** Convert 'key:value' -> [key, value] */\nexport function stringToKeyValue(it: string): NgStyleKeyValue {\n const [key, ...vals] = it.split(':');\n return new NgStyleKeyValue(key, vals.join(':'));\n}\n\n/** Convert [ [key,value] ] -> { key : value } */\nexport function keyValuesToMap(map: NgStyleMap, entry: NgStyleKeyValue): NgStyleMap {\n if (!!entry.key) {\n map[entry.key] = entry.value;\n }\n return map;\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 */\nimport {\n Directive,\n ElementRef,\n OnChanges,\n SimpleChanges,\n Optional,\n Inject,\n PLATFORM_ID,\n Injectable,\n AfterViewInit,\n} from '@angular/core';\nimport {isPlatformServer} from '@angular/common';\nimport {\n BaseDirective2,\n LAYOUT_CONFIG,\n LayoutConfigOptions,\n MediaMarshaller,\n SERVER_TOKEN,\n StyleUtils,\n StyleBuilder,\n} from '@angular/flex-layout/core';\nimport {coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {takeUntil} from 'rxjs/operators';\n\nexport interface ShowHideParent {\n display: string;\n}\n\n@Injectable({providedIn: 'root'})\nexport class ShowHideStyleBuilder extends StyleBuilder {\n buildStyles(show: string, parent: ShowHideParent) {\n const shouldShow = show === 'true';\n return {'display': shouldShow ? parent.display : 'none'};\n }\n}\n\nexport class ShowHideDirective extends BaseDirective2 implements AfterViewInit, OnChanges {\n protected DIRECTIVE_KEY = 'show-hide';\n\n /** Original dom Elements CSS display style */\n protected display: string = '';\n protected hasLayout = false;\n protected hasFlexChild = false;\n\n constructor(protected elementRef: ElementRef,\n protected styleBuilder: ShowHideStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n @Inject(LAYOUT_CONFIG) protected layoutConfig: LayoutConfigOptions,\n @Inject(PLATFORM_ID) protected platformId: Object,\n @Optional() @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean) {\n super(elementRef, styleBuilder, styler, marshal);\n }\n\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n\n ngAfterViewInit() {\n this.trackExtraTriggers();\n\n const children = Array.from(this.nativeElement.children);\n for (let i = 0; i < children.length; i++) {\n if (this.marshal.hasValue(children[i] as HTMLElement, 'flex')) {\n this.hasFlexChild = true;\n break;\n }\n }\n\n if (DISPLAY_MAP.has(this.nativeElement)) {\n this.display = DISPLAY_MAP.get(this.nativeElement)!;\n } else {\n this.display = this.getDisplayStyle();\n DISPLAY_MAP.set(this.nativeElement, this.display);\n }\n\n this.init();\n // set the default to show unless explicitly overridden\n const defaultValue = this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY, '');\n if (defaultValue === undefined || defaultValue === '') {\n this.setValue(true, '');\n } else {\n this.triggerUpdate();\n }\n }\n\n /**\n * On changes to any @Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n */\n ngOnChanges(changes: SimpleChanges) {\n Object.keys(changes).forEach(key => {\n if (this.inputs.indexOf(key) !== -1) {\n const inputKey = key.split('.');\n const bp = inputKey.slice(1).join('.');\n const inputValue = changes[key].currentValue;\n let shouldShow = inputValue !== '' ?\n inputValue !== 0 ? coerceBooleanProperty(inputValue) : false\n : true;\n if (inputKey[0] === 'fxHide') {\n shouldShow = !shouldShow;\n }\n this.setValue(shouldShow, bp);\n }\n });\n }\n\n // *********************************************\n // Protected methods\n // *********************************************\n\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n */\n protected trackExtraTriggers() {\n this.hasLayout = this.marshal.hasValue(this.nativeElement, 'layout');\n\n ['layout', 'layout-align'].forEach(key => {\n this.marshal\n .trackValue(this.nativeElement, key)\n .pipe(takeUntil(this.destroySubject))\n .subscribe(this.triggerUpdate.bind(this));\n });\n }\n\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n */\n protected getDisplayStyle(): string {\n return (this.hasLayout || (this.hasFlexChild && this.layoutConfig.addFlexToParent)) ?\n 'flex' : this.styler.lookupStyle(this.nativeElement, 'display', true);\n }\n\n /** Validate the visibility value and then update the host's inline display style */\n protected updateWithValue(value: boolean | string = true) {\n if (value === '') {\n return;\n }\n this.addStyles(value ? 'true' : 'false', {display: this.display});\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.style.setProperty('display', '');\n }\n this.marshal.triggerUpdate(this.parentElement!, 'layout-gap');\n }\n}\n\nconst DISPLAY_MAP: WeakMap<HTMLElement, string> = new WeakMap();\n\nconst inputs = [\n 'fxShow', 'fxShow.print',\n 'fxShow.xs', 'fxShow.sm', 'fxShow.md', 'fxShow.lg', 'fxShow.xl',\n 'fxShow.lt-sm', 'fxShow.lt-md', 'fxShow.lt-lg', 'fxShow.lt-xl',\n 'fxShow.gt-xs', 'fxShow.gt-sm', 'fxShow.gt-md', 'fxShow.gt-lg',\n 'fxHide', 'fxHide.print',\n 'fxHide.xs', 'fxHide.sm', 'fxHide.md', 'fxHide.lg', 'fxHide.xl',\n 'fxHide.lt-sm', 'fxHide.lt-md', 'fxHide.lt-lg', 'fxHide.lt-xl',\n 'fxHide.gt-xs', 'fxHide.gt-sm', 'fxHide.gt-md', 'fxHide.gt-lg'\n];\n\nconst selector = `\n [fxShow], [fxShow.print],\n [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl],\n [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl],\n [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg],\n [fxHide], [fxHide.print],\n [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl],\n [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl],\n [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]\n`;\n\n/**\n * 'show' Layout API directive\n */\n@Directive({selector, inputs})\nexport class DefaultShowHideDirective extends ShowHideDirective {\n protected inputs = inputs;\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 */\nimport {Directive, DoCheck, ElementRef, Input, Optional, Self} from '@angular/core';\nimport {NgClass, ɵNgClassImpl, ɵNgClassR2Impl} from '@angular/common';\nimport {BaseDirective2, StyleUtils, MediaMarshaller} from '@angular/flex-layout/core';\n\nexport class ClassDirective extends BaseDirective2 implements DoCheck {\n\n protected DIRECTIVE_KEY = 'ngClass';\n\n /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n */\n @Input('class')\n set klass(val: string) {\n this.ngClassInstance.klass = val;\n this.setValue(val, '');\n }\n\n constructor(protected elementRef: ElementRef,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n protected delegate: ɵNgClassImpl,\n @Optional() @Self() protected readonly ngClassInstance: NgClass) {\n super(elementRef, null!, styler, marshal);\n if (!this.ngClassInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been defined on\n // the same host element; since the responsive variations may be defined...\n this.ngClassInstance = new NgClass(this.delegate);\n }\n this.init();\n this.setValue('', '');\n }\n\n protected updateWithValue(value: any) {\n this.ngClassInstance.ngClass = value;\n this.ngClassInstance.ngDoCheck();\n }\n\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n */\n ngDoCheck() {\n this.ngClassInstance.ngDoCheck();\n }\n}\n\nconst inputs = [\n 'ngClass', 'ngClass.xs', 'ngClass.sm', 'ngClass.md', 'ngClass.lg', 'ngClass.xl',\n 'ngClass.lt-sm', 'ngClass.lt-md', 'ngClass.lt-lg', 'ngClass.lt-xl',\n 'ngClass.gt-xs', 'ngClass.gt-sm', 'ngClass.gt-md', 'ngClass.gt-lg'\n];\n\nconst selector = `\n [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],\n [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],\n [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]\n`;\n\n// tslint:disable-next-line:variable-name\nexport const LayoutNgClassImplProvider = {\n provide: ɵNgClassImpl,\n useClass: ɵNgClassR2Impl\n};\n\n/**\n * Directive to add responsive support for ngClass.\n * This maintains the core functionality of 'ngClass' and adds responsive API\n * Note: this class is a no-op when rendered on the server\n */\n@Directive({selector, inputs, providers: [LayoutNgClassImplProvider]})\nexport class DefaultClassDirective extends ClassDirective {\n protected inputs = inputs;\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 */\nimport {Directive, ElementRef, Inject, PLATFORM_ID, Injectable, Input} from '@angular/core';\nimport {isPlatformServer} from '@angular/common';\nimport {\n MediaMarshaller,\n BaseDirective2,\n SERVER_TOKEN,\n StyleBuilder,\n StyleDefinition,\n StyleUtils,\n} from '@angular/flex-layout/core';\n\n@Injectable({providedIn: 'root'})\nexport class ImgSrcStyleBuilder extends StyleBuilder {\n buildStyles(url: string) {\n return {'content': url ? `url(${url})` : ''};\n }\n}\n\nexport class ImgSrcDirective extends BaseDirective2 {\n protected DIRECTIVE_KEY = 'img-src';\n protected defaultSrc = '';\n\n @Input('src')\n set src(val: string) {\n this.defaultSrc = val;\n this.setValue(this.defaultSrc, '');\n }\n\n constructor(protected elementRef: ElementRef,\n protected styleBuilder: ImgSrcStyleBuilder,\n protected styler: StyleUtils,\n protected marshal: MediaMarshaller,\n @Inject(PLATFORM_ID) protected platformId: Object,\n @Inject(SERVER_TOKEN) protected serverModuleLoaded: boolean) {\n super(elementRef, styleBuilder, styler, marshal);\n this.init();\n this.setValue(this.nativeElement.getAttribute('src') || '', '');\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.setAttribute('src', '');\n }\n }\n\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `<img src=\"\">` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n */\n protected updateWithValue(value?: string) {\n const url = value || this.defaultSrc;\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.addStyles(url);\n } else {\n this.nativeElement.setAttribute('src', url);\n }\n }\n\n protected styleCache = imgSrcCache;\n}\n\nconst imgSrcCache: Map<string, StyleDefinition> = new Map();\n\nconst inputs = [\n 'src.xs', 'src.sm', 'src.md', 'src.lg', 'src.xl',\n 'src.lt-sm', 'src.lt-md', 'src.lt-lg', 'src.lt-xl',\n 'src.gt-xs', 'src.gt-sm', 'src.gt-md', 'src.gt-lg'\n];\n\nconst selector = `\n img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl],\n img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl],\n img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]\n`;\n\n/**\n * This directive provides a responsive API for the HTML <img> 'src' attribute\n * and will update the img.src property upon each responsive activation.\n *\n * e.g.\n * <img src=\"defaultScene.jpg\" src.xs=\"mobileScene.jpg\"></img>\n *\n * @see https://css-tricks.com/responsive-images-youre-just-changing-resolutions-use-src/\n */\n@Directive({selector, inputs})\nexport class DefaultImgSrcDirective extends ImgSrcDirective {\n protected inputs = inputs;\n}\n"],"names":["buildMapFromList","selector","inputs","tslib_1.__extends","tslib_1.__assign"],"mappings":"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"}