You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by sc...@apache.org on 2018/04/30 21:03:38 UTC

[42/51] [partial] nifi-fds git commit: gh-pages update

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
deleted file mode 100644
index a130af9..0000000
--- a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
+++ /dev/null
@@ -1,187 +0,0 @@
-import * as tslib_1 from "tslib";
-/**
- * @license Angular v4.4.6
- * (c) 2010-2017 Google, Inc. https://angular.io/
- * License: MIT
- */
-import { AUTO_STYLE, NoopAnimationPlayer } from '@angular/animations';
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-var _contains = function (elm1, elm2) { return false; };
-var _matches = function (element, selector) { return false; };
-var _query = function (element, selector, multi) {
-    return [];
-};
-if (typeof Element != 'undefined') {
-    // this is well supported in all browsers
-    _contains = function (elm1, elm2) { return elm1.contains(elm2); };
-    if (Element.prototype.matches) {
-        _matches = function (element, selector) { return element.matches(selector); };
-    }
-    else {
-        var proto = Element.prototype;
-        var fn_1 = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
-            proto.oMatchesSelector || proto.webkitMatchesSelector;
-        if (fn_1) {
-            _matches = function (element, selector) { return fn_1.apply(element, [selector]); };
-        }
-    }
-    _query = function (element, selector, multi) {
-        var results = [];
-        if (multi) {
-            results.push.apply(results, element.querySelectorAll(selector));
-        }
-        else {
-            var elm = element.querySelector(selector);
-            if (elm) {
-                results.push(elm);
-            }
-        }
-        return results;
-    };
-}
-var matchesElement = _matches;
-var containsElement = _contains;
-var invokeQuery = _query;
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-function allowPreviousPlayerStylesMerge(duration, delay) {
-    return duration === 0 || delay === 0;
-}
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-/**
- * @experimental Animation support is experimental.
- */
-var MockAnimationDriver = (function () {
-    function MockAnimationDriver() {
-    }
-    MockAnimationDriver.prototype.matchesElement = function (element, selector) {
-        return matchesElement(element, selector);
-    };
-    MockAnimationDriver.prototype.containsElement = function (elm1, elm2) { return containsElement(elm1, elm2); };
-    MockAnimationDriver.prototype.query = function (element, selector, multi) {
-        return invokeQuery(element, selector, multi);
-    };
-    MockAnimationDriver.prototype.computeStyle = function (element, prop, defaultValue) {
-        return defaultValue || '';
-    };
-    MockAnimationDriver.prototype.animate = function (element, keyframes, duration, delay, easing, previousPlayers) {
-        if (previousPlayers === void 0) { previousPlayers = []; }
-        var player = new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);
-        MockAnimationDriver.log.push(player);
-        return player;
-    };
-    return MockAnimationDriver;
-}());
-MockAnimationDriver.log = [];
-/**
- * @experimental Animation support is experimental.
- */
-var MockAnimationPlayer = (function (_super) {
-    tslib_1.__extends(MockAnimationPlayer, _super);
-    function MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers) {
-        var _this = _super.call(this) || this;
-        _this.element = element;
-        _this.keyframes = keyframes;
-        _this.duration = duration;
-        _this.delay = delay;
-        _this.easing = easing;
-        _this.previousPlayers = previousPlayers;
-        _this.__finished = false;
-        _this.__started = false;
-        _this.previousStyles = {};
-        _this._onInitFns = [];
-        _this.currentSnapshot = {};
-        if (allowPreviousPlayerStylesMerge(duration, delay)) {
-            previousPlayers.forEach(function (player) {
-                if (player instanceof MockAnimationPlayer) {
-                    var styles_1 = player.currentSnapshot;
-                    Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; });
-                }
-            });
-        }
-        _this.totalTime = delay + duration;
-        return _this;
-    }
-    /* @internal */
-    MockAnimationPlayer.prototype.onInit = function (fn) { this._onInitFns.push(fn); };
-    /* @internal */
-    MockAnimationPlayer.prototype.init = function () {
-        _super.prototype.init.call(this);
-        this._onInitFns.forEach(function (fn) { return fn(); });
-        this._onInitFns = [];
-    };
-    MockAnimationPlayer.prototype.finish = function () {
-        _super.prototype.finish.call(this);
-        this.__finished = true;
-    };
-    MockAnimationPlayer.prototype.destroy = function () {
-        _super.prototype.destroy.call(this);
-        this.__finished = true;
-    };
-    /* @internal */
-    MockAnimationPlayer.prototype.triggerMicrotask = function () { };
-    MockAnimationPlayer.prototype.play = function () {
-        _super.prototype.play.call(this);
-        this.__started = true;
-    };
-    MockAnimationPlayer.prototype.hasStarted = function () { return this.__started; };
-    MockAnimationPlayer.prototype.beforeDestroy = function () {
-        var _this = this;
-        var captures = {};
-        Object.keys(this.previousStyles).forEach(function (prop) {
-            captures[prop] = _this.previousStyles[prop];
-        });
-        if (this.hasStarted()) {
-            // when assembling the captured styles, it's important that
-            // we build the keyframe styles in the following order:
-            // {other styles within keyframes, ... previousStyles }
-            this.keyframes.forEach(function (kf) {
-                Object.keys(kf).forEach(function (prop) {
-                    if (prop != 'offset') {
-                        captures[prop] = _this.__finished ? kf[prop] : AUTO_STYLE;
-                    }
-                });
-            });
-        }
-        this.currentSnapshot = captures;
-    };
-    return MockAnimationPlayer;
-}(NoopAnimationPlayer));
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-/**
- * @module
- * @description
- * Entry point for all public APIs of the platform-browser/animations/testing package.
- */
-export { MockAnimationDriver, MockAnimationPlayer };
-//# sourceMappingURL=testing.es5.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
deleted file mode 100644
index 11208a9..0000000
--- a/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"testing.es5.js","sources":["../../../../../../packages/animations/browser/testing/index.ts","../../../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../../../packages/animations/browser/testing/src/testing.ts","../../../../../../packages/animations/browser/src/util.ts","../../../../../../packages/animations/browser/src/render/shared.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser/animations/testing package.\n */\n\nexport * from './src/testing';\n","/**\n * @license\n * Copyright Google Inc. 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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: str
 ing]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n      public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.
 forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n    super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play(): void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousStyles).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n   
  if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 */\nexport {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n","/**\n * @license\n * Copyright Google Inc. 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/lic
 ense\n */\nimport {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/
 );\n  if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.ma
 tch(regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(sta
 rtIndex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n 
      destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any
 []) {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = origina
 l.replace(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).f
 orEach(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case Animati
 onMetadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagge
 r(node, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n
     driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[p
 rop];\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE_START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case
  'done':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetA
 sInMap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined
 ') {\n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = 
 _contains;\nexport const invokeQuery = _query;\n"],"names":[],"mappings":"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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/@angular/animations/browser/testing.js
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.js b/node_modules/@angular/animations/@angular/animations/browser/testing.js
deleted file mode 100644
index 5d60b4d..0000000
--- a/node_modules/@angular/animations/@angular/animations/browser/testing.js
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * @license Angular v4.4.6
- * (c) 2010-2017 Google, Inc. https://angular.io/
- * License: MIT
- */
-import { AUTO_STYLE, NoopAnimationPlayer } from '@angular/animations';
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-
-
-
-
-
-
-
-let _contains = (elm1, elm2) => false;
-let _matches = (element, selector) => false;
-let _query = (element, selector, multi) => {
-    return [];
-};
-if (typeof Element != 'undefined') {
-    // this is well supported in all browsers
-    _contains = (elm1, elm2) => { return elm1.contains(elm2); };
-    if (Element.prototype.matches) {
-        _matches = (element, selector) => element.matches(selector);
-    }
-    else {
-        const proto = Element.prototype;
-        const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||
-            proto.oMatchesSelector || proto.webkitMatchesSelector;
-        if (fn) {
-            _matches = (element, selector) => fn.apply(element, [selector]);
-        }
-    }
-    _query = (element, selector, multi) => {
-        let results = [];
-        if (multi) {
-            results.push(...element.querySelectorAll(selector));
-        }
-        else {
-            const elm = element.querySelector(selector);
-            if (elm) {
-                results.push(elm);
-            }
-        }
-        return results;
-    };
-}
-const matchesElement = _matches;
-const containsElement = _contains;
-const invokeQuery = _query;
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-function allowPreviousPlayerStylesMerge(duration, delay) {
-    return duration === 0 || delay === 0;
-}
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-/**
- * @experimental Animation support is experimental.
- */
-class MockAnimationDriver {
-    matchesElement(element, selector) {
-        return matchesElement(element, selector);
-    }
-    containsElement(elm1, elm2) { return containsElement(elm1, elm2); }
-    query(element, selector, multi) {
-        return invokeQuery(element, selector, multi);
-    }
-    computeStyle(element, prop, defaultValue) {
-        return defaultValue || '';
-    }
-    animate(element, keyframes, duration, delay, easing, previousPlayers = []) {
-        const player = new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);
-        MockAnimationDriver.log.push(player);
-        return player;
-    }
-}
-MockAnimationDriver.log = [];
-/**
- * @experimental Animation support is experimental.
- */
-class MockAnimationPlayer extends NoopAnimationPlayer {
-    constructor(element, keyframes, duration, delay, easing, previousPlayers) {
-        super();
-        this.element = element;
-        this.keyframes = keyframes;
-        this.duration = duration;
-        this.delay = delay;
-        this.easing = easing;
-        this.previousPlayers = previousPlayers;
-        this.__finished = false;
-        this.__started = false;
-        this.previousStyles = {};
-        this._onInitFns = [];
-        this.currentSnapshot = {};
-        if (allowPreviousPlayerStylesMerge(duration, delay)) {
-            previousPlayers.forEach(player => {
-                if (player instanceof MockAnimationPlayer) {
-                    const styles = player.currentSnapshot;
-                    Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);
-                }
-            });
-        }
-        this.totalTime = delay + duration;
-    }
-    /* @internal */
-    onInit(fn) { this._onInitFns.push(fn); }
-    /* @internal */
-    init() {
-        super.init();
-        this._onInitFns.forEach(fn => fn());
-        this._onInitFns = [];
-    }
-    finish() {
-        super.finish();
-        this.__finished = true;
-    }
-    destroy() {
-        super.destroy();
-        this.__finished = true;
-    }
-    /* @internal */
-    triggerMicrotask() { }
-    play() {
-        super.play();
-        this.__started = true;
-    }
-    hasStarted() { return this.__started; }
-    beforeDestroy() {
-        const captures = {};
-        Object.keys(this.previousStyles).forEach(prop => {
-            captures[prop] = this.previousStyles[prop];
-        });
-        if (this.hasStarted()) {
-            // when assembling the captured styles, it's important that
-            // we build the keyframe styles in the following order:
-            // {other styles within keyframes, ... previousStyles }
-            this.keyframes.forEach(kf => {
-                Object.keys(kf).forEach(prop => {
-                    if (prop != 'offset') {
-                        captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;
-                    }
-                });
-            });
-        }
-        this.currentSnapshot = captures;
-    }
-}
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-
-/**
- * @license
- * Copyright Google Inc. All Rights Reserved.
- *
- * Use of this source code is governed by an MIT-style license that can be
- * found in the LICENSE file at https://angular.io/license
- */
-/**
- * @module
- * @description
- * Entry point for all public APIs of the platform-browser/animations/testing package.
- */
-
-export { MockAnimationDriver, MockAnimationPlayer };
-//# sourceMappingURL=testing.js.map

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/@angular/animations/browser/testing.js.map b/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
deleted file mode 100644
index 3e6b6b5..0000000
--- a/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"testing.js","sources":["../../../../../../packages/animations/browser/testing/index.ts","../../../../../../packages/animations/browser/testing/src/testing.ts","../../../../../../packages/animations/browser/testing/src/mock_animation_driver.ts","../../../../../../packages/animations/browser/src/util.ts","../../../../../../packages/animations/browser/src/render/shared.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. 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\n/**\n * @module\n * @description\n * Entry point for all public APIs of the platform-browser/animations/testing package.\n */\n\nexport * from './src/testing';\n","/**\n * @license\n * Copyright Google Inc. 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 *
 /\nexport {MockAnimationDriver, MockAnimationPlayer} from './mock_animation_driver';\n","/**\n * @license\n * Copyright Google Inc. 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 {AUTO_STYLE, AnimationPlayer, NoopAnimationPlayer, ɵStyleData} from '@angular/animations';\n\nimport {AnimationDriver} from '../../src/render/animation_driver';\nimport {containsElement, invokeQuery, matchesElement} from '../../src/render/shared';\nimport {allowPreviousPlayerStylesMerge} from '../../src/util';\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationDriver implements AnimationDriver {\n  static log: AnimationPlayer[] = [];\n\n  matchesElement(element: any, selector: string): boolean {\n    return matchesElement(element, selector);\n  }\n\n  containsElement(elm1: any, elm2: any): boolean { return containsElement(elm1, elm2); }\n\n 
  query(element: any, selector: string, multi: boolean): any[] {\n    return invokeQuery(element, selector, multi);\n  }\n\n  computeStyle(element: any, prop: string, defaultValue?: string): string {\n    return defaultValue || '';\n  }\n\n  animate(\n      element: any, keyframes: {[key: string]: string | number}[], duration: number, delay: number,\n      easing: string, previousPlayers: any[] = []): MockAnimationPlayer {\n    const player =\n        new MockAnimationPlayer(element, keyframes, duration, delay, easing, previousPlayers);\n    MockAnimationDriver.log.push(<AnimationPlayer>player);\n    return player;\n  }\n}\n\n/**\n * @experimental Animation support is experimental.\n */\nexport class MockAnimationPlayer extends NoopAnimationPlayer {\n  private __finished = false;\n  private __started = false;\n  public previousStyles: {[key: string]: string | number} = {};\n  private _onInitFns: (() => any)[] = [];\n  public currentSnapshot: ɵStyleData = {};\n\n  constructor(\n     
  public element: any, public keyframes: {[key: string]: string | number}[],\n      public duration: number, public delay: number, public easing: string,\n      public previousPlayers: any[]) {\n    super();\n\n    if (allowPreviousPlayerStylesMerge(duration, delay)) {\n      previousPlayers.forEach(player => {\n        if (player instanceof MockAnimationPlayer) {\n          const styles = player.currentSnapshot;\n          Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]);\n        }\n      });\n    }\n\n    this.totalTime = delay + duration;\n  }\n\n  /* @internal */\n  onInit(fn: () => any) { this._onInitFns.push(fn); }\n\n  /* @internal */\n  init() {\n    super.init();\n    this._onInitFns.forEach(fn => fn());\n    this._onInitFns = [];\n  }\n\n  finish(): void {\n    super.finish();\n    this.__finished = true;\n  }\n\n  destroy(): void {\n    super.destroy();\n    this.__finished = true;\n  }\n\n  /* @internal */\n  triggerMicrotask() {}\n\n  play()
 : void {\n    super.play();\n    this.__started = true;\n  }\n\n  hasStarted() { return this.__started; }\n\n  beforeDestroy() {\n    const captures: ɵStyleData = {};\n\n    Object.keys(this.previousStyles).forEach(prop => {\n      captures[prop] = this.previousStyles[prop];\n    });\n\n    if (this.hasStarted()) {\n      // when assembling the captured styles, it's important that\n      // we build the keyframe styles in the following order:\n      // {other styles within keyframes, ... previousStyles }\n      this.keyframes.forEach(kf => {\n        Object.keys(kf).forEach(prop => {\n          if (prop != 'offset') {\n            captures[prop] = this.__finished ? kf[prop] : AUTO_STYLE;\n          }\n        });\n      });\n    }\n\n    this.currentSnapshot = captures;\n  }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 {AnimateTimings, AnimationMetadata, AnimationMetadataType, AnimationOptions, sequence, ɵStyleData} from '@angular/animations';\nimport {Ast as AnimationAst, AstVisitor as AnimationAstVisitor} from './dsl/animation_ast';\nimport {AnimationDslVisitor} from './dsl/animation_dsl_visitor';\n\nexport const ONE_SECOND = 1000;\n\nexport const SUBSTITUTION_EXPR_START = '{{';\nexport const SUBSTITUTION_EXPR_END = '}}';\nexport const ENTER_CLASSNAME = 'ng-enter';\nexport const LEAVE_CLASSNAME = 'ng-leave';\nexport const ENTER_SELECTOR = '.ng-enter';\nexport const LEAVE_SELECTOR = '.ng-leave';\nexport const NG_TRIGGER_CLASSNAME = 'ng-trigger';\nexport const NG_TRIGGER_SELECTOR = '.ng-trigger';\nexport const NG_ANIMATING_CLASSNAME = 'ng-animating';\nexport const NG_ANIMATING_SELECTOR = '.ng-animating';\n\nexport function resolveTimingValue(value: string | number) {\n  if (typeof value == 'number') return value;\n\n  const matches = (value as string).match(/^(-?[\\.\\d]+)(m?s)/);\n
   if (!matches || matches.length < 2) return 0;\n\n  return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\n\nfunction _convertTimeValueToMS(value: number, unit: string): number {\n  switch (unit) {\n    case 's':\n      return value * ONE_SECOND;\n    default:  // ms or something else\n      return value;\n  }\n}\n\nexport function resolveTiming(\n    timings: string | number | AnimateTimings, errors: any[], allowNegativeValues?: boolean) {\n  return timings.hasOwnProperty('duration') ?\n      <AnimateTimings>timings :\n      parseTimeExpression(<string|number>timings, errors, allowNegativeValues);\n}\n\nfunction parseTimeExpression(\n    exp: string | number, errors: string[], allowNegativeValues?: boolean): AnimateTimings {\n  const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n  let duration: number;\n  let delay: number = 0;\n  let easing: string = '';\n  if (typeof exp === 'string') {\n    const matches = exp.match(
 regex);\n    if (matches === null) {\n      errors.push(`The provided timing value \"${exp}\" is invalid.`);\n      return {duration: 0, delay: 0, easing: ''};\n    }\n\n    duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n\n    const delayMatch = matches[3];\n    if (delayMatch != null) {\n      delay = _convertTimeValueToMS(Math.floor(parseFloat(delayMatch)), matches[4]);\n    }\n\n    const easingVal = matches[5];\n    if (easingVal) {\n      easing = easingVal;\n    }\n  } else {\n    duration = <number>exp;\n  }\n\n  if (!allowNegativeValues) {\n    let containsErrors = false;\n    let startIndex = errors.length;\n    if (duration < 0) {\n      errors.push(`Duration values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (delay < 0) {\n      errors.push(`Delay values below 0 are not allowed for this animation step.`);\n      containsErrors = true;\n    }\n    if (containsErrors) {\n      errors.splice(startIn
 dex, 0, `The provided timing value \"${exp}\" is invalid.`);\n    }\n  }\n\n  return {duration, delay, easing};\n}\n\nexport function copyObj(\n    obj: {[key: string]: any}, destination: {[key: string]: any} = {}): {[key: string]: any} {\n  Object.keys(obj).forEach(prop => { destination[prop] = obj[prop]; });\n  return destination;\n}\n\nexport function normalizeStyles(styles: ɵStyleData | ɵStyleData[]): ɵStyleData {\n  const normalizedStyles: ɵStyleData = {};\n  if (Array.isArray(styles)) {\n    styles.forEach(data => copyStyles(data, false, normalizedStyles));\n  } else {\n    copyStyles(styles, false, normalizedStyles);\n  }\n  return normalizedStyles;\n}\n\nexport function copyStyles(\n    styles: ɵStyleData, readPrototype: boolean, destination: ɵStyleData = {}): ɵStyleData {\n  if (readPrototype) {\n    // we make use of a for-in loop so that the\n    // prototypically inherited properties are\n    // revealed from the backFill map\n    for (let prop in styles) {\n     
  destination[prop] = styles[prop];\n    }\n  } else {\n    copyObj(styles, destination);\n  }\n  return destination;\n}\n\nexport function setStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = styles[prop];\n    });\n  }\n}\n\nexport function eraseStyles(element: any, styles: ɵStyleData) {\n  if (element['style']) {\n    Object.keys(styles).forEach(prop => {\n      const camelProp = dashCaseToCamelCase(prop);\n      element.style[camelProp] = '';\n    });\n  }\n}\n\nexport function normalizeAnimationEntry(steps: AnimationMetadata | AnimationMetadata[]):\n    AnimationMetadata {\n  if (Array.isArray(steps)) {\n    if (steps.length == 1) return steps[0];\n    return sequence(steps);\n  }\n  return steps as AnimationMetadata;\n}\n\nexport function validateStyleParams(\n    value: string | number, options: AnimationOptions, errors: any[]) 
 {\n  const params = options.params || {};\n  const matches = extractStyleParams(value);\n  if (matches.length) {\n    matches.forEach(varName => {\n      if (!params.hasOwnProperty(varName)) {\n        errors.push(\n            `Unable to resolve the local animation param ${varName} in the given list of values`);\n      }\n    });\n  }\n}\n\nconst PARAM_REGEX =\n    new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nexport function extractStyleParams(value: string | number): string[] {\n  let params: string[] = [];\n  if (typeof value === 'string') {\n    const val = value.toString();\n\n    let match: any;\n    while (match = PARAM_REGEX.exec(val)) {\n      params.push(match[1] as string);\n    }\n    PARAM_REGEX.lastIndex = 0;\n  }\n  return params;\n}\n\nexport function interpolateParams(\n    value: string | number, params: {[name: string]: any}, errors: any[]): string|number {\n  const original = value.toString();\n  const str = original.re
 place(PARAM_REGEX, (_, varName) => {\n    let localVal = params[varName];\n    // this means that the value was never overidden by the data passed in by the user\n    if (!params.hasOwnProperty(varName)) {\n      errors.push(`Please provide a value for the animation param ${varName}`);\n      localVal = '';\n    }\n    return localVal.toString();\n  });\n\n  // we do this to assert that numeric values stay as they are\n  return str == original ? value : str;\n}\n\nexport function iteratorToArray(iterator: any): any[] {\n  const arr: any[] = [];\n  let item = iterator.next();\n  while (!item.done) {\n    arr.push(item.value);\n    item = iterator.next();\n  }\n  return arr;\n}\n\nexport function mergeAnimationOptions(\n    source: AnimationOptions, destination: AnimationOptions): AnimationOptions {\n  if (source.params) {\n    const p0 = source.params;\n    if (!destination.params) {\n      destination.params = {};\n    }\n    const p1 = destination.params;\n    Object.keys(p0).forEa
 ch(param => {\n      if (!p1.hasOwnProperty(param)) {\n        p1[param] = p0[param];\n      }\n    });\n  }\n  return destination;\n}\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n  return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function allowPreviousPlayerStylesMerge(duration: number, delay: number) {\n  return duration === 0 || delay === 0;\n}\n\nexport function visitDslNode(\n    visitor: AnimationDslVisitor, node: AnimationMetadata, context: any): any;\nexport function visitDslNode(\n    visitor: AnimationAstVisitor, node: AnimationAst<AnimationMetadataType>, context: any): any;\nexport function visitDslNode(visitor: any, node: any, context: any): any {\n  switch (node.type) {\n    case AnimationMetadataType.Trigger:\n      return visitor.visitTrigger(node, context);\n    case AnimationMetadataType.State:\n      return visitor.visitState(node, context);\n    case AnimationMe
 tadataType.Transition:\n      return visitor.visitTransition(node, context);\n    case AnimationMetadataType.Sequence:\n      return visitor.visitSequence(node, context);\n    case AnimationMetadataType.Group:\n      return visitor.visitGroup(node, context);\n    case AnimationMetadataType.Animate:\n      return visitor.visitAnimate(node, context);\n    case AnimationMetadataType.Keyframes:\n      return visitor.visitKeyframes(node, context);\n    case AnimationMetadataType.Style:\n      return visitor.visitStyle(node, context);\n    case AnimationMetadataType.Reference:\n      return visitor.visitReference(node, context);\n    case AnimationMetadataType.AnimateChild:\n      return visitor.visitAnimateChild(node, context);\n    case AnimationMetadataType.AnimateRef:\n      return visitor.visitAnimateRef(node, context);\n    case AnimationMetadataType.Query:\n      return visitor.visitQuery(node, context);\n    case AnimationMetadataType.Stagger:\n      return visitor.visitStagger(no
 de, context);\n    default:\n      throw new Error(`Unable to resolve animation metadata node #${node.type}`);\n  }\n}\n","/**\n * @license\n * Copyright Google Inc. 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 {AUTO_STYLE, AnimationEvent, AnimationPlayer, NoopAnimationPlayer, ɵAnimationGroupPlayer, ɵPRE_STYLE as PRE_STYLE, ɵStyleData} from '@angular/animations';\n\nimport {AnimationStyleNormalizer} from '../../src/dsl/style_normalization/animation_style_normalizer';\nimport {AnimationDriver} from '../../src/render/animation_driver';\n\nexport function optimizeGroupPlayer(players: AnimationPlayer[]): AnimationPlayer {\n  switch (players.length) {\n    case 0:\n      return new NoopAnimationPlayer();\n    case 1:\n      return players[0];\n    default:\n      return new ɵAnimationGroupPlayer(players);\n  }\n}\n\nexport function normalizeKeyframes(\n    
 driver: AnimationDriver, normalizer: AnimationStyleNormalizer, element: any,\n    keyframes: ɵStyleData[], preStyles: ɵStyleData = {},\n    postStyles: ɵStyleData = {}): ɵStyleData[] {\n  const errors: string[] = [];\n  const normalizedKeyframes: ɵStyleData[] = [];\n  let previousOffset = -1;\n  let previousKeyframe: ɵStyleData|null = null;\n  keyframes.forEach(kf => {\n    const offset = kf['offset'] as number;\n    const isSameOffset = offset == previousOffset;\n    const normalizedKeyframe: ɵStyleData = (isSameOffset && previousKeyframe) || {};\n    Object.keys(kf).forEach(prop => {\n      let normalizedProp = prop;\n      let normalizedValue = kf[prop];\n      if (prop !== 'offset') {\n        normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n        switch (normalizedValue) {\n          case PRE_STYLE:\n            normalizedValue = preStyles[prop];\n            break;\n\n          case AUTO_STYLE:\n            normalizedValue = postStyles[prop]
 ;\n            break;\n\n          default:\n            normalizedValue =\n                normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n            break;\n        }\n      }\n      normalizedKeyframe[normalizedProp] = normalizedValue;\n    });\n    if (!isSameOffset) {\n      normalizedKeyframes.push(normalizedKeyframe);\n    }\n    previousKeyframe = normalizedKeyframe;\n    previousOffset = offset;\n  });\n  if (errors.length) {\n    const LINE_START = '\\n - ';\n    throw new Error(\n        `Unable to animate due to the following errors:${LINE_START}${errors.join(LINE_START)}`);\n  }\n\n  return normalizedKeyframes;\n}\n\nexport function listenOnPlayer(\n    player: AnimationPlayer, eventName: string, event: AnimationEvent | undefined,\n    callback: (event: any) => any) {\n  switch (eventName) {\n    case 'start':\n      player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player.totalTime)));\n      break;\n    case 'do
 ne':\n      player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player.totalTime)));\n      break;\n    case 'destroy':\n      player.onDestroy(\n          () => callback(event && copyAnimationEvent(event, 'destroy', player.totalTime)));\n      break;\n  }\n}\n\nexport function copyAnimationEvent(\n    e: AnimationEvent, phaseName?: string, totalTime?: number): AnimationEvent {\n  const event = makeAnimationEvent(\n      e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName,\n      totalTime == undefined ? e.totalTime : totalTime);\n  const data = (e as any)['_data'];\n  if (data != null) {\n    (event as any)['_data'] = data;\n  }\n  return event;\n}\n\nexport function makeAnimationEvent(\n    element: any, triggerName: string, fromState: string, toState: string, phaseName: string = '',\n    totalTime: number = 0): AnimationEvent {\n  return {element, triggerName, fromState, toState, phaseName, totalTime};\n}\n\nexport function getOrSetAsInM
 ap(\n    map: Map<any, any>| {[key: string]: any}, key: any, defaultValue: any) {\n  let value: any;\n  if (map instanceof Map) {\n    value = map.get(key);\n    if (!value) {\n      map.set(key, value = defaultValue);\n    }\n  } else {\n    value = map[key];\n    if (!value) {\n      value = map[key] = defaultValue;\n    }\n  }\n  return value;\n}\n\nexport function parseTimelineCommand(command: string): [string, string] {\n  const separatorPos = command.indexOf(':');\n  const id = command.substring(1, separatorPos);\n  const action = command.substr(separatorPos + 1);\n  return [id, action];\n}\n\nlet _contains: (elm1: any, elm2: any) => boolean = (elm1: any, elm2: any) => false;\nlet _matches: (element: any, selector: string) => boolean = (element: any, selector: string) =>\n    false;\nlet _query: (element: any, selector: string, multi: boolean) => any[] =\n    (element: any, selector: string, multi: boolean) => {\n      return [];\n    };\n\nif (typeof Element != 'undefined') {
 \n  // this is well supported in all browsers\n  _contains = (elm1: any, elm2: any) => { return elm1.contains(elm2) as boolean; };\n\n  if (Element.prototype.matches) {\n    _matches = (element: any, selector: string) => element.matches(selector);\n  } else {\n    const proto = Element.prototype as any;\n    const fn = proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector ||\n        proto.oMatchesSelector || proto.webkitMatchesSelector;\n    if (fn) {\n      _matches = (element: any, selector: string) => fn.apply(element, [selector]);\n    }\n  }\n\n  _query = (element: any, selector: string, multi: boolean): any[] => {\n    let results: any[] = [];\n    if (multi) {\n      results.push(...element.querySelectorAll(selector));\n    } else {\n      const elm = element.querySelector(selector);\n      if (elm) {\n        results.push(elm);\n      }\n    }\n    return results;\n  };\n}\n\nexport const matchesElement = _matches;\nexport const containsElement = _con
 tains;\nexport const invokeQuery = _query;\n"],"names":[],"mappings":"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"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/animations.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/animations.metadata.json b/node_modules/@angular/animations/animations.metadata.json
index 2b5c2e0..ad39031 100644
--- a/node_modules/@angular/animations/animations.metadata.json
+++ b/node_modules/@angular/animations/animations.metadata.json
@@ -1 +1 @@
-{"__symbolic":"module","version":3,"metadata":{"AnimationBuilder":{"__symbolic":"class","members":{"build":[{"__symbolic":"method"}]}},"AnimationFactory":{"__symbolic":"class","members":{"create":[{"__symbolic":"method"}]}},"AnimationEvent":{"__symbolic":"interface"},"AUTO_STYLE":"*","AnimateChildOptions":{"__symbolic":"interface"},"AnimateTimings":{"__symbolic":"interface"},"AnimationAnimateChildMetadata":{"__symbolic":"interface"},"AnimationAnimateMetadata":{"__symbolic":"interface"},"AnimationAnimateRefMetadata":{"__symbolic":"interface"},"AnimationGroupMetadata":{"__symbolic":"interface"},"AnimationKeyframesSequenceMetadata":{"__symbolic":"interface"},"AnimationMetadata":{"__symbolic":"interface"},"AnimationMetadataType":{"State":0,"Transition":1,"Sequence":2,"Group":3,"Animate":4,"Keyframes":5,"Style":6,"Trigger":7,"Reference":8,"AnimateChild":9,"AnimateRef":10,"Query":11,"Stagger":12},"AnimationOptions":{"__symbolic":"interface"},"AnimationQueryMetadata":{"__symbolic":"interfa
 ce"},"AnimationQueryOptions":{"__symbolic":"interface"},"AnimationReferenceMetadata":{"__symbolic":"interface"},"AnimationSequenceMetadata":{"__symbolic":"interface"},"AnimationStaggerMetadata":{"__symbolic":"interface"},"AnimationStateMetadata":{"__symbolic":"interface"},"AnimationStyleMetadata":{"__symbolic":"interface"},"AnimationTransitionMetadata":{"__symbolic":"interface"},"AnimationTriggerMetadata":{"__symbolic":"interface"},"animate":{"__symbolic":"function","parameters":["timings","styles"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Animate"},"styles":{"__symbolic":"reference","name":"styles"},"timings":{"__symbolic":"reference","name":"timings"}}},"animateChild":{"__symbolic":"function","parameters":["options"],"defaults":[null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateChild"},"options":{"_
 _symbolic":"reference","name":"options"}}},"animation":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Reference"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"group":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Group"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"keyframes":{"__symbolic":"function","parameters":["steps"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Keyframes"},"steps":{"__symbolic":"reference","name":"steps"}}},"query":{"__symbolic":"function","parameters":["sele
 ctor","animation","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Query"},"selector":{"__symbolic":"reference","name":"selector"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"sequence":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Sequence"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"stagger":{"__symbolic":"function","parameters":["timings","animation"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Stagger"},"timings":{"__symbolic":"reference","name":"timings"},"animation":{"__symbolic":"reference","name":"animation"}
 }},"state":{"__symbolic":"function","parameters":["name","styles","options"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"State"},"name":{"__symbolic":"reference","name":"name"},"styles":{"__symbolic":"reference","name":"styles"},"options":{"__symbolic":"reference","name":"options"}}},"style":{"__symbolic":"function","parameters":["tokens"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Style"},"styles":{"__symbolic":"reference","name":"tokens"},"offset":null}},"transition":{"__symbolic":"function","parameters":["stateChangeExpr","steps","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Transition"},"expr":{"__symbolic":"reference","name":"stateChangeExpr"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbol
 ic":"reference","name":"options"}}},"trigger":{"__symbolic":"function","parameters":["name","definitions"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Trigger"},"name":{"__symbolic":"reference","name":"name"},"definitions":{"__symbolic":"reference","name":"definitions"},"options":{}}},"useAnimation":{"__symbolic":"function","parameters":["animation","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateRef"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"ɵStyleData":{"__symbolic":"interface"},"AnimationPlayer":{"__symbolic":"interface"},"NoopAnimationPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"_onFinish":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method
 "}],"onDestroy":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"triggerMicrotask":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}]}},"ɵPRE_STYLE":"!","ɵAnimationGroupPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AnimationPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"play":[{"__sy
 mbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"_onDestroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationBuilder":"./src/animation_builder","AnimationFactory":"./src/animation_builder","AnimationEvent":"./src/animation_event","AUTO_STYLE":"./src/animation_metadata","AnimateChildOptions":"./src/animation_metadata","AnimateTimings":"./src/animation_metadata","AnimationAnimateChildMetadata":"./src/animation_metadata","AnimationAnimateMetadata":"./src/animation_metadata","AnimationAnimateRefMetadata":"./src/animation_metadata","AnimationGroupMetadata":"./src/animation_metadata","AnimationKeyframesSequenceMetadata":"./src/animation_metadata","AnimationMetadata":"./src/animation_metadata","AnimationMetadataType":"./src/
 animation_metadata","AnimationOptions":"./src/animation_metadata","AnimationQueryMetadata":"./src/animation_metadata","AnimationQueryOptions":"./src/animation_metadata","AnimationReferenceMetadata":"./src/animation_metadata","AnimationSequenceMetadata":"./src/animation_metadata","AnimationStaggerMetadata":"./src/animation_metadata","AnimationStateMetadata":"./src/animation_metadata","AnimationStyleMetadata":"./src/animation_metadata","AnimationTransitionMetadata":"./src/animation_metadata","AnimationTriggerMetadata":"./src/animation_metadata","animate":"./src/animation_metadata","animateChild":"./src/animation_metadata","animation":"./src/animation_metadata","group":"./src/animation_metadata","keyframes":"./src/animation_metadata","query":"./src/animation_metadata","sequence":"./src/animation_metadata","stagger":"./src/animation_metadata","state":"./src/animation_metadata","style":"./src/animation_metadata","transition":"./src/animation_metadata","trigger":"./src/animation_metadata"
 ,"useAnimation":"./src/animation_metadata","ɵStyleData":"./src/animation_metadata","AnimationPlayer":"./src/players/animation_player","NoopAnimationPlayer":"./src/players/animation_player","ɵPRE_STYLE":"./src/private_export","ɵAnimationGroupPlayer":"./src/players/animation_group_player"},"importAs":"@angular/animations"}
\ No newline at end of file
+{"__symbolic":"module","version":4,"metadata":{"AnimationBuilder":{"__symbolic":"class","members":{"build":[{"__symbolic":"method"}]}},"AnimationFactory":{"__symbolic":"class","members":{"create":[{"__symbolic":"method"}]}},"AnimationEvent":{"__symbolic":"interface"},"AUTO_STYLE":"*","AnimateChildOptions":{"__symbolic":"interface"},"AnimateTimings":{"__symbolic":"interface"},"AnimationAnimateChildMetadata":{"__symbolic":"interface"},"AnimationAnimateMetadata":{"__symbolic":"interface"},"AnimationAnimateRefMetadata":{"__symbolic":"interface"},"AnimationGroupMetadata":{"__symbolic":"interface"},"AnimationKeyframesSequenceMetadata":{"__symbolic":"interface"},"AnimationMetadata":{"__symbolic":"interface"},"AnimationMetadataType":{"State":0,"Transition":1,"Sequence":2,"Group":3,"Animate":4,"Keyframes":5,"Style":6,"Trigger":7,"Reference":8,"AnimateChild":9,"AnimateRef":10,"Query":11,"Stagger":12},"AnimationOptions":{"__symbolic":"interface"},"AnimationQueryMetadata":{"__symbolic":"interfa
 ce"},"AnimationQueryOptions":{"__symbolic":"interface"},"AnimationReferenceMetadata":{"__symbolic":"interface"},"AnimationSequenceMetadata":{"__symbolic":"interface"},"AnimationStaggerMetadata":{"__symbolic":"interface"},"AnimationStateMetadata":{"__symbolic":"interface"},"AnimationStyleMetadata":{"__symbolic":"interface"},"AnimationTransitionMetadata":{"__symbolic":"interface"},"AnimationTriggerMetadata":{"__symbolic":"interface"},"animate":{"__symbolic":"function","parameters":["timings","styles"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Animate"},"styles":{"__symbolic":"reference","name":"styles"},"timings":{"__symbolic":"reference","name":"timings"}}},"animateChild":{"__symbolic":"function","parameters":["options"],"defaults":[null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateChild"},"options":{"_
 _symbolic":"reference","name":"options"}}},"animation":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Reference"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"group":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Group"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"keyframes":{"__symbolic":"function","parameters":["steps"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Keyframes"},"steps":{"__symbolic":"reference","name":"steps"}}},"query":{"__symbolic":"function","parameters":["sele
 ctor","animation","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Query"},"selector":{"__symbolic":"reference","name":"selector"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"sequence":{"__symbolic":"function","parameters":["steps","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Sequence"},"steps":{"__symbolic":"reference","name":"steps"},"options":{"__symbolic":"reference","name":"options"}}},"stagger":{"__symbolic":"function","parameters":["timings","animation"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Stagger"},"timings":{"__symbolic":"reference","name":"timings"},"animation":{"__symbolic":"reference","name":"animation"}
 }},"state":{"__symbolic":"function","parameters":["name","styles","options"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"State"},"name":{"__symbolic":"reference","name":"name"},"styles":{"__symbolic":"reference","name":"styles"},"options":{"__symbolic":"reference","name":"options"}}},"style":{"__symbolic":"function","parameters":["tokens"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Style"},"styles":{"__symbolic":"reference","name":"tokens"},"offset":null}},"transition":{"__symbolic":"function","parameters":["stateChangeExpr","steps","options"],"defaults":[null,null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Transition"},"expr":{"__symbolic":"reference","name":"stateChangeExpr"},"animation":{"__symbolic":"reference","name":"steps"},"options":{"__symbol
 ic":"reference","name":"options"}}},"trigger":{"__symbolic":"function","parameters":["name","definitions"],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"Trigger"},"name":{"__symbolic":"reference","name":"name"},"definitions":{"__symbolic":"reference","name":"definitions"},"options":{}}},"useAnimation":{"__symbolic":"function","parameters":["animation","options"],"defaults":[null,null],"value":{"type":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"AnimationMetadataType"},"member":"AnimateRef"},"animation":{"__symbolic":"reference","name":"animation"},"options":{"__symbolic":"reference","name":"options"}}},"ɵStyleData":{"__symbolic":"interface"},"AnimationPlayer":{"__symbolic":"interface"},"NoopAnimationPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor"}],"_onFinish":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method
 "}],"onDestroy":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"triggerMicrotask":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"triggerCallback":[{"__symbolic":"method"}]}},"ɵPRE_STYLE":"!","ɵAnimationGroupPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"AnimationPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"_onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"hasStart
 ed":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"_onDestroy":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}],"triggerCallback":[{"__symbolic":"method"}]}}},"origins":{"AnimationBuilder":"./src/animation_builder","AnimationFactory":"./src/animation_builder","AnimationEvent":"./src/animation_event","AUTO_STYLE":"./src/animation_metadata","AnimateChildOptions":"./src/animation_metadata","AnimateTimings":"./src/animation_metadata","AnimationAnimateChildMetadata":"./src/animation_metadata","AnimationAnimateMetadata":"./src/animation_metadata","AnimationAnimateRefMetadata":"./src/animation_metadata","AnimationGroupMetadata":"./src/animation_metadata","AnimationKeyframesSequenceMetadata":"./src/animation_
 metadata","AnimationMetadata":"./src/animation_metadata","AnimationMetadataType":"./src/animation_metadata","AnimationOptions":"./src/animation_metadata","AnimationQueryMetadata":"./src/animation_metadata","AnimationQueryOptions":"./src/animation_metadata","AnimationReferenceMetadata":"./src/animation_metadata","AnimationSequenceMetadata":"./src/animation_metadata","AnimationStaggerMetadata":"./src/animation_metadata","AnimationStateMetadata":"./src/animation_metadata","AnimationStyleMetadata":"./src/animation_metadata","AnimationTransitionMetadata":"./src/animation_metadata","AnimationTriggerMetadata":"./src/animation_metadata","animate":"./src/animation_metadata","animateChild":"./src/animation_metadata","animation":"./src/animation_metadata","group":"./src/animation_metadata","keyframes":"./src/animation_metadata","query":"./src/animation_metadata","sequence":"./src/animation_metadata","stagger":"./src/animation_metadata","state":"./src/animation_metadata","style":"./src/animatio
 n_metadata","transition":"./src/animation_metadata","trigger":"./src/animation_metadata","useAnimation":"./src/animation_metadata","ɵStyleData":"./src/animation_metadata","AnimationPlayer":"./src/players/animation_player","NoopAnimationPlayer":"./src/players/animation_player","ɵPRE_STYLE":"./src/private_export","ɵAnimationGroupPlayer":"./src/players/animation_group_player"},"importAs":"@angular/animations"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/browser.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser.d.ts b/node_modules/@angular/animations/browser.d.ts
index 16a14fb..746d982 100644
--- a/node_modules/@angular/animations/browser.d.ts
+++ b/node_modules/@angular/animations/browser.d.ts
@@ -1,6 +1,6 @@
 /**
- * @license Angular v4.4.6
- * (c) 2010-2017 Google, Inc. https://angular.io/
+ * @license Angular v5.2.0
+ * (c) 2010-2018 Google, Inc. https://angular.io/
  * License: MIT
  */ 
- export * from './browser/index'
+ export * from './browser/browser'

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/browser.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser.metadata.json b/node_modules/@angular/animations/browser.metadata.json
index 69ecc18..d4e8b1c 100644
--- a/node_modules/@angular/animations/browser.metadata.json
+++ b/node_modules/@angular/animations/browser.metadata.json
@@ -1 +1 @@
-{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./browser/index"}],"flatModuleIndexRedirect":true}
+{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./browser/browser"}],"flatModuleIndexRedirect":true}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/d07dd0f2/node_modules/@angular/animations/browser/browser.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/browser.d.ts b/node_modules/@angular/animations/browser/browser.d.ts
new file mode 100644
index 0000000..7417cc8
--- /dev/null
+++ b/node_modules/@angular/animations/browser/browser.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public_api';