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 19:32:22 UTC

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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/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
new file mode 100644
index 0000000..a130af9
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js
@@ -0,0 +1,187 @@
+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/4a326208/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
new file mode 100644
index 0000000..11208a9
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.es5.js.map
@@ -0,0 +1 @@
+{"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/4a326208/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
new file mode 100644
index 0000000..5d60b4d
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.js
@@ -0,0 +1,216 @@
+/**
+ * @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/4a326208/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
new file mode 100644
index 0000000..3e6b6b5
--- /dev/null
+++ b/node_modules/@angular/animations/@angular/animations/browser/testing.js.map
@@ -0,0 +1 @@
+{"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/4a326208/node_modules/@angular/animations/animations.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/animations.d.ts b/node_modules/@angular/animations/animations.d.ts
new file mode 100644
index 0000000..7417cc8
--- /dev/null
+++ b/node_modules/@angular/animations/animations.d.ts
@@ -0,0 +1,4 @@
+/**
+ * Generated bundle index. Do not edit.
+ */
+export * from './public_api';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/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
new file mode 100644
index 0000000..2b5c2e0
--- /dev/null
+++ b/node_modules/@angular/animations/animations.metadata.json
@@ -0,0 +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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/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
new file mode 100644
index 0000000..16a14fb
--- /dev/null
+++ b/node_modules/@angular/animations/browser.d.ts
@@ -0,0 +1,6 @@
+/**
+ * @license Angular v4.4.6
+ * (c) 2010-2017 Google, Inc. https://angular.io/
+ * License: MIT
+ */ 
+ export * from './browser/index'

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/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
new file mode 100644
index 0000000..69ecc18
--- /dev/null
+++ b/node_modules/@angular/animations/browser.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{},"exports":[{"from":"./browser/index"}],"flatModuleIndexRedirect":true}

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

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/index.metadata.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/index.metadata.json b/node_modules/@angular/animations/browser/index.metadata.json
new file mode 100644
index 0000000..fcc916a
--- /dev/null
+++ b/node_modules/@angular/animations/browser/index.metadata.json
@@ -0,0 +1 @@
+{"__symbolic":"module","version":3,"metadata":{"AnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}},"ɵAnimation":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","module":"@angular/animations","name":"AnimationMetadata"}]}],"buildTimelines":[{"__symbolic":"method"}]}},"ɵAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"_
 _symbolic":"method"}]}},"ɵWebAnimationsStyleNormalizer":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"},"members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵAnimationEngine":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"}]}],"registerTrigger":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"onInsert":[{"__symbolic":"method"}],"onRemove":[{"__symbolic":"method"}],"disableAnimations":[{"__symbolic":"method"}],"process":[{"__
 symbolic":"method"}],"listen":[{"__symbolic":"method"}],"flush":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}]}},"ɵWebAnimationsDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵsupportsWebAnimations":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":9,"module":"./src/render/web_animations/web_animations_driver"},"right":"undefined"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":43,"module":"./src/render/web_animations/web_animations_driver"},"right":"function"}}},"ɵWebAnimationsPlayer":{"__symbolic":
 "class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":32,"character":45,"module":"./src/render/web_animations/web_animations_player"}]},{"__symbolic":"error","message":"Expression form not supported","line":33,"character":22,"module":"./src/render/web_animations/web_animations_player"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵWebAnimationsPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"_buildPlayer":[{"__symbolic":"method"}],"_preparePlayerBeforeStart":[{"__symbolic":"method"}],"_triggerWebAnimation":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"finish":[{"__symb
 olic":"method"}],"reset":[{"__symbolic":"method"}],"_resetDomPlayerState":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationDriver":"./src/render/animation_driver","ɵAnimation":"./src/dsl/animation","ɵAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵNoopAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵWebAnimationsStyleNormalizer":"./src/dsl/style_normalization/web_animations_style_normalizer","ɵNoopAnimationDriver":"./src/render/animation_driver","ɵAnimationEngine":"./src/render/animation_engine_next","ɵWebAnimationsDriver":"./src/render/web_animations/web_animations_driver","ɵsupportsWebAnimations":"./src/render/web_animations/web_animations_driver","ɵWebAnimationsPlay
 er":"./src/render/web_animations/web_animations_player"},"importAs":"@angular/animations/browser"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/package.json
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/package.json b/node_modules/@angular/animations/browser/package.json
new file mode 100644
index 0000000..b9d1595
--- /dev/null
+++ b/node_modules/@angular/animations/browser/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "@angular/animations/browser",
+  "typings": "../browser.d.ts",
+  "main": "../bundles/animations-browser.umd.js",
+  "module": "../@angular/animations/browser.es5.js",
+  "es2015": "../@angular/animations/browser.js"
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/public_api.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/public_api.d.ts b/node_modules/@angular/animations/browser/public_api.d.ts
new file mode 100644
index 0000000..2af4ec6
--- /dev/null
+++ b/node_modules/@angular/animations/browser/public_api.d.ts
@@ -0,0 +1,13 @@
+/**
+ * @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 animation package.
+ */
+export * from './src/browser';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/browser.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/browser.d.ts b/node_modules/@angular/animations/browser/src/browser.d.ts
new file mode 100644
index 0000000..bdbe837
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/browser.d.ts
@@ -0,0 +1,14 @@
+/**
+ * @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 animation APIs of the animation browser package.
+ */
+export { AnimationDriver } from './render/animation_driver';
+export * from './private_export';

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
new file mode 100644
index 0000000..395228f
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation.d.ts
@@ -0,0 +1,17 @@
+/**
+ * @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
+ */
+import { AnimationMetadata, AnimationOptions, ɵStyleData } from '@angular/animations';
+import { AnimationDriver } from '../render/animation_driver';
+import { AnimationTimelineInstruction } from './animation_timeline_instruction';
+import { ElementInstructionMap } from './element_instruction_map';
+export declare class Animation {
+    private _driver;
+    private _animationAst;
+    constructor(_driver: AnimationDriver, input: AnimationMetadata | AnimationMetadata[]);
+    buildTimelines(element: any, startingStyles: ɵStyleData | ɵStyleData[], destinationStyles: ɵStyleData | ɵStyleData[], options: AnimationOptions, subInstructions?: ElementInstructionMap): AnimationTimelineInstruction[];
+}

http://git-wip-us.apache.org/repos/asf/nifi-fds/blob/4a326208/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
----------------------------------------------------------------------
diff --git a/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts b/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
new file mode 100644
index 0000000..83080f4
--- /dev/null
+++ b/node_modules/@angular/animations/browser/src/dsl/animation_ast.d.ts
@@ -0,0 +1,96 @@
+/**
+ * @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
+ */
+import { AnimateTimings, AnimationMetadataType, AnimationOptions, ɵStyleData } from '@angular/animations';
+export interface AstVisitor {
+    visitTrigger(ast: TriggerAst, context: any): any;
+    visitState(ast: StateAst, context: any): any;
+    visitTransition(ast: TransitionAst, context: any): any;
+    visitSequence(ast: SequenceAst, context: any): any;
+    visitGroup(ast: GroupAst, context: any): any;
+    visitAnimate(ast: AnimateAst, context: any): any;
+    visitStyle(ast: StyleAst, context: any): any;
+    visitKeyframes(ast: KeyframesAst, context: any): any;
+    visitReference(ast: ReferenceAst, context: any): any;
+    visitAnimateChild(ast: AnimateChildAst, context: any): any;
+    visitAnimateRef(ast: AnimateRefAst, context: any): any;
+    visitQuery(ast: QueryAst, context: any): any;
+    visitStagger(ast: StaggerAst, context: any): any;
+}
+export interface Ast<T extends AnimationMetadataType> {
+    type: T;
+    options: AnimationOptions | null;
+}
+export interface TriggerAst extends Ast<AnimationMetadataType.Trigger> {
+    type: AnimationMetadataType.Trigger;
+    name: string;
+    states: StateAst[];
+    transitions: TransitionAst[];
+    queryCount: number;
+    depCount: number;
+}
+export interface StateAst extends Ast<AnimationMetadataType.State> {
+    type: AnimationMetadataType.State;
+    name: string;
+    style: StyleAst;
+}
+export interface TransitionAst extends Ast<AnimationMetadataType.Transition> {
+    matchers: ((fromState: string, toState: string) => boolean)[];
+    animation: Ast<AnimationMetadataType>;
+    queryCount: number;
+    depCount: number;
+}
+export interface SequenceAst extends Ast<AnimationMetadataType.Sequence> {
+    steps: Ast<AnimationMetadataType>[];
+}
+export interface GroupAst extends Ast<AnimationMetadataType.Group> {
+    steps: Ast<AnimationMetadataType>[];
+}
+export interface AnimateAst extends Ast<AnimationMetadataType.Animate> {
+    timings: TimingAst;
+    style: StyleAst | KeyframesAst;
+}
+export interface StyleAst extends Ast<AnimationMetadataType.Style> {
+    styles: (ɵStyleData | string)[];
+    easing: string | null;
+    offset: number | null;
+    containsDynamicStyles: boolean;
+    isEmptyStep?: boolean;
+}
+export interface KeyframesAst extends Ast<AnimationMetadataType.Keyframes> {
+    styles: StyleAst[];
+}
+export interface ReferenceAst extends Ast<AnimationMetadataType.Reference> {
+    animation: Ast<AnimationMetadataType>;
+}
+export interface AnimateChildAst extends Ast<AnimationMetadataType.AnimateChild> {
+}
+export interface AnimateRefAst extends Ast<AnimationMetadataType.AnimateRef> {
+    animation: ReferenceAst;
+}
+export interface QueryAst extends Ast<AnimationMetadataType.Query> {
+    selector: string;
+    limit: number;
+    optional: boolean;
+    includeSelf: boolean;
+    animation: Ast<AnimationMetadataType>;
+    originalSelector: string;
+}
+export interface StaggerAst extends Ast<AnimationMetadataType.Stagger> {
+    timings: AnimateTimings;
+    animation: Ast<AnimationMetadataType>;
+}
+export interface TimingAst {
+    duration: number;
+    delay: number;
+    easing: string | null;
+    dynamic?: boolean;
+}
+export interface DynamicTimingAst extends TimingAst {
+    strValue: string;
+    dynamic: true;
+}